Every Developer Needs To Know How To Do This

Web Dev Simplified
3 Sept 202410:01

Summary

TLDRIn this video, Kyle from Web Dev Simplified emphasizes the critical skill of understanding the 'why' behind writing code, which can significantly enhance a developer's career. He shares a personal anecdote about a project for Disney's financial department that initially led to wasted effort and cost due to a lack of deep understanding of the client's needs. Kyle advises developers to delve into the root of client requests to write more efficient and effective code, leading to client satisfaction and professional success.

Takeaways

  • 💡 Understanding the 'why' behind the code you write is crucial for a successful developer career.
  • 🚀 Early adoption of this skill can set you apart from junior developers and lead to significant career advancements.
  • 🤝 Client satisfaction is often a result of developers comprehending the true needs behind the features they are asked to implement.
  • 💼 This skill is not technical but is about diving deep into the purpose of the code, which can lead to more efficient and effective solutions.
  • 📈 The speaker's personal anecdote illustrates the cost of not fully understanding requirements, leading to wasted effort and resources.
  • 🔍 It's important to question and clarify the purpose of tasks, even when they seem straightforward, to ensure they align with the user's actual needs.
  • 🗣️ Direct communication with end-users, when possible, can provide invaluable insights that lead to more accurate and efficient coding.
  • 🔄 Iterative development with client feedback is essential, but starting with a deep understanding of the problem can reduce the number of iterations.
  • 🛠️ Knowing the domain and specific sections of a project well can help in identifying the true needs and delivering more targeted solutions.
  • 📈 This skill can lead to better job performance, increased client satisfaction, and potentially better opportunities such as raises and promotions.

Q & A

  • What is the key skill that can catapult a developer's career to new levels according to Kyle?

    -The key skill is understanding why you are writing the code that you are writing and getting down to the nitty-gritty level of the purpose behind the code.

  • Why did Kyle's early career benefit from understanding the 'why' behind the code?

    -Understanding the 'why' behind the code set Kyle apart from Junior developers, made clients incredibly happy, and led to multiple raises at his job.

  • What was the story Kyle shared about his experience working with Disney's financial department?

    -Kyle was asked to add functionality to financial software to create charts and export data, which led to weeks of work and multiple iterations before realizing a simpler solution was available.

  • How did the initial misunderstanding of the client's needs lead to a loss of tens of thousands of dollars?

    -The loss occurred because Kyle spent weeks developing complex features that were not needed, when a simpler solution involving adding a single column to a table would have sufficed.

  • What is the importance of diving deep into the root problem when a client or user requests a feature?

    -Diving deep into the root problem ensures that the solution provided is the best fit for the actual need, which can save time and resources, and lead to higher satisfaction from clients or users.

  • Why is it crucial for developers to understand the domain of the project they are working on?

    -Understanding the domain provides a high-level overview of the project, which is essential for writing code that aligns with the business needs and objectives.

  • How can developers ensure they are writing code that conforms to the client's or user's expectations?

    -By asking clarifying questions, understanding the intent behind tasks, and getting as close to the source of the problem as possible.

  • What is the value of talking directly to the end-users of the software when developing features?

    -Talking directly to end-users can provide insights that help developers understand the real needs and use cases, leading to more effective and efficient solutions.

  • How can developers improve their ability to understand the 'why' behind the code they are writing?

    -Developers can improve this skill by familiarizing themselves with the project domain, specializing in certain sections of the application, and asking questions to clarify the intent behind tasks.

  • What are the potential benefits of mastering the skill of understanding the 'why' behind code for a developer's career?

    -Mastering this skill can lead to better job performance, client satisfaction, reduced need for revisions, and potential for raises, promotions, and more clients.

Outlines

00:00

💡 Understanding the 'Why' Behind Coding

This paragraph emphasizes the importance of understanding the rationale behind the code one writes, which is crucial for a successful developer career. The speaker, Kyle, shares a personal experience where he underestimated the necessity of this skill, leading to a significant loss of time and money. He was tasked with enhancing financial software for Disney, adding features like custom charts and data exports based on initial client requests. However, through iterative development and deeper questioning, Kyle discovered a much simpler solution that would have met the client's needs more efficiently. This story illustrates the value of delving into the core purpose of the code and the business domain, which can lead to more effective and efficient solutions, client satisfaction, and career advancement.

05:00

🔍 Digging Deeper for Better Solutions

In this paragraph, the speaker advises developers to delve deeper into the root problems clients face rather than just addressing the symptoms. He points out that non-technical clients may not always know the best way to achieve their goals or may not fully articulate their needs. Kyle suggests developers should ask clarifying questions to understand the underlying issues and consider the broader context of their work. He also recommends getting as close to the source of the problem as possible, which might involve talking directly to end-users or project managers. This approach not only improves the quality of the code but also saves time by reducing the need for revisions. The speaker concludes by encouraging developers to apply this skill to enhance their work, regardless of whether they are working on freelance projects or in a traditional job setting, as it can lead to better job performance, client satisfaction, and professional growth.

Mindmap

Keywords

💡Developer

A developer, in the context of the video, refers to a professional who creates and maintains software applications. The video emphasizes the importance of a specific skill for developers to excel in their careers. The speaker, Kyle, uses his experience as a developer to illustrate the significance of understanding the 'why' behind the code they write, which is crucial for delivering solutions that meet client needs and avoiding unnecessary work.

💡Skill

The term 'skill' in the video is used to denote a proficiency or ability that a developer can acquire to improve their performance and career prospects. The video suggests that the skill of understanding the rationale behind writing code is more impactful than technical skills alone. It's about knowing the purpose of the code, which can lead to more efficient and effective solutions.

💡Code

Code, in this video, refers to the source code that developers write to create software applications. The speaker discusses the importance of understanding why one is writing a particular piece of code, rather than just focusing on the technical act of coding. This understanding helps in creating more relevant and efficient software features, as illustrated by the speaker's anecdote about developing financial software for Disney.

💡Career

The 'career' in the video is used to describe the professional journey of a developer. The skill of understanding the underlying reasons for writing code is portrayed as a key differentiator that can propel a developer's career to new heights. It's about moving beyond just being technically proficient to becoming a problem solver who can deliver high-value solutions.

💡Technical Skill

Technical skill, as mentioned in the video, refers to the specific abilities and knowledge required to perform tasks in software development, such as programming languages or frameworks. The video contrasts this with the non-technical skill of understanding the purpose of the code, suggesting that the latter can be just as, if not more, important for a developer's success.

💡Client Satisfaction

Client satisfaction is a central theme in the video, where the speaker discusses how understanding the 'why' behind the code can lead to solutions that meet client needs and result in happier clients. This is exemplified by the story of the speaker's work with Disney, where initially, the lack of understanding led to a costly and time-consuming development process.

💡Raise

A 'raise' in the video refers to an increase in salary, which is suggested as a potential outcome of mastering the skill of understanding the purpose behind the code. The speaker implies that this skill can lead to better job performance, which in turn can result in financial rewards such as raises.

💡Project Budgets

Project budgets are mentioned in the context of the speaker's experience working on financial software for Disney. Understanding the intricacies of project budgets and how the software can assist in managing them is crucial for writing relevant code. This example from the video underscores the importance of diving deep into the domain knowledge to write effective code.

💡Root Problem

The 'root problem' in the video refers to the fundamental issue that a client or user is trying to solve with the help of software. The speaker stresses the importance of identifying and addressing the root problem rather than just implementing the solution that the client initially suggests. This approach can lead to more efficient and effective software development.

💡Domain Knowledge

Domain knowledge is the understanding of the specific field or industry in which a developer is working. In the video, the speaker highlights the importance of having a good grasp of the domain, such as finance in the case of the Disney project, to write code that aligns with the business needs and objectives.

💡Revision

Revision, as used in the video, refers to the process of making changes or improvements to a piece of software after it has been initially developed. The speaker suggests that by understanding the 'why' behind the code, developers can reduce the need for revisions, leading to more efficient development and higher client satisfaction.

Highlights

The importance of understanding the purpose behind the code you write for a successful developer career.

How early realization of this skill can set you apart from junior developers and lead to job raises.

The skill is not technical but involves realizing why you are writing specific code.

The author's personal experience and how this skill catapulted his career.

The story from the author's career about not using this skill and the resulting financial loss.

Working on financial software for Disney and the request to add charting and exporting features.

The iterative process of adding features and the realization that a simpler solution was possible.

The lesson learned from the Disney project about understanding the root of a client's needs.

The importance of knowing the domain of the project you're working on.

The value of diving deep into the specific features you're implementing to understand their purpose.

How non-technical clients may not know the best way to achieve their goals.

The need to ask clarifying questions to understand the root problem a client is trying to solve.

The impact of this skill on writing better code and saving time.

How understanding the 'why' behind tasks can lead to more efficient and effective coding.

The benefits of this skill for both freelance work and everyday job tasks.

Tips for improving this skill, including understanding the project domain and talking to users.

The potential for this skill to lead to better job opportunities, raises, and promotions.

How this non-technical skill can give you an edge over more technically skilled developers.

Advice for job seekers on implementing this skill to increase their chances of getting hired.

Transcripts

play00:00

as a developer there are a million

play00:01

different things that you could be

play00:02

learning right now but there's one skill

play00:05

in particular that you need to learn if

play00:07

you want to have a successful career

play00:09

this is something I learned early on in

play00:10

my career and absolutely catapulted my

play00:12

career to new levels it set me apart

play00:14

from a lot of Junior developers and it

play00:16

made the clients that I was working with

play00:18

incredibly happy and led to me getting

play00:20

multiple raises at my job this one skill

play00:23

may sound like it's got to be something

play00:24

crazy complicated and Technical but it's

play00:26

not even a technical skill all that you

play00:29

need to do is to learn how to realize

play00:31

why you are writing the code that you

play00:32

are writing and to get down to that

play00:34

nitty-gritty level of why you're writing

play00:36

that code this sounds like an easy skill

play00:38

that you're probably already doing but

play00:40

in reality you're not going far enough

play00:42

in this video I want to talk about

play00:43

exactly how you can hone this skill

play00:45

figure out what you need to do and how

play00:47

you can use this skill to catapult your

play00:48

career to new levels or even land your

play00:50

first

play00:54

job welcome back to web dev simplified

play00:57

my name is Kyle and my job is to

play00:58

simplify the web for you so you can

play01:00

start building your dream project sooner

play01:01

and in order to really show you the

play01:02

reason why this skill is so important I

play01:04

want to tell you a story from my

play01:06

developer career by a time I didn't use

play01:08

this skill and how it led to tens of

play01:10

thousands of dollars of lost money so

play01:12

we're going to rewind all the way back

play01:14

to when I was working at an agency and I

play01:15

was working with Disney and I was

play01:17

working on their financial department so

play01:19

I was helping write Financial software

play01:20

for them to manage like budgeting and

play01:22

stuff for new projects not super

play01:24

exciting stuff but it was you know code

play01:26

and it was working and at the point I

play01:28

got a request from a person I actually

play01:30

talked with them one-on-one and they had

play01:31

a request they said hey I have a lot of

play01:33

excel sheets that are running all this

play01:34

different budgeting software and doing

play01:36

all these different things can you add

play01:38

in the functionality for me to create

play01:39

certain charts and Export certain data

play01:41

from your software so that I don't need

play01:43

to write all these complex Excel sheets

play01:45

to do all this and I was like yeah

play01:46

that's a pretty easy thing to do I can

play01:48

add some charts to the data so you don't

play01:50

have to write your Excel charts for it

play01:51

and I can make it so you can export

play01:53

certain data that you need for certain

play01:54

things that's a relatively easy feature

play01:56

now easy doesn't really mean quick it

play01:58

still took quite a while to develop this

play02:00

feature because adding in all these

play02:02

custom charts and stuff was not super

play02:04

easy to do because there's a quite large

play02:06

and complex code base so I spent a

play02:08

significant amount of time working on

play02:10

this feature I wasn't working on other

play02:11

features I was working on this feature

play02:12

for adding new charts and adding new

play02:14

things and even at the time when this

play02:15

guy came to me with this request I asked

play02:17

him multiple questions about okay why do

play02:19

you need these charts and why do you

play02:20

need these exports and he explained to

play02:22

me why he needed them and I asked him

play02:23

okay you know what are you doing in

play02:24

those PowerPoint or Excel sheets and he

play02:26

told me exactly what he was doing so I

play02:27

got a pretty good idea of why I thought

play02:29

I was writing this code so I thought

play02:31

that I was following this Rule and

play02:32

making sure I knew why I was writing my

play02:34

specific code but I didn't dive deep

play02:36

enough it wasn't until I was most of the

play02:38

way through writing my code and I was

play02:39

giving it back to this guy to say hey

play02:41

can you test this and let me know if

play02:42

this gives you exactly what you're

play02:43

looking for and he started playing

play02:45

around in the you know code that I wrote

play02:46

and he was looking at it and he said you

play02:47

know what it's actually doing a lot of

play02:49

the things I wanted to do I'm getting

play02:50

the charts I want I'm getting some other

play02:51

things but hey can you add this one

play02:53

extra feature to it that i' forgot about

play02:55

I'm like okay sure that's not that bad I

play02:56

spent a little time added that extra

play02:58

feature gave it back to him and he's

play02:59

like oh you know know what can you

play03:00

actually add this extra feature as well

play03:01

I added that extra feature gave it back

play03:02

to him and we went back and forth with

play03:04

like this for a little while adding

play03:06

extra features and doing extra things

play03:08

and it was taking significant amount of

play03:09

time to add a feature give it back to

play03:11

him come back add a feature give it back

play03:12

to him and so on it wasn't until after

play03:14

multiple iterations of making a feature

play03:16

and giving it back that I finally sat

play03:17

down again I'm like okay we need to

play03:19

really go through and figure out exactly

play03:20

what the use case you're using this for

play03:22

is and as he started to really get in

play03:24

depth with exactly what he was doing

play03:25

inside these Excel sheets and all the

play03:27

different charts he was trying to export

play03:29

I realized that he really didn't need

play03:30

all these complicated charts and exports

play03:32

and everything and that the actual data

play03:34

that he needed could be implemented much

play03:36

easier I could essentially just add an

play03:37

extra column to the table of data that

play03:40

we're already displaying that would give

play03:41

him 99% of all the information that he

play03:44

needs I don't need any of these fancy

play03:45

charts or exporting all I needed to do

play03:47

was add one single column which required

play03:49

me to write one extra little bit of SQL

play03:51

code so the amount of work that I spent

play03:53

was weeks and weeks of work building out

play03:55

all these additional features and

play03:56

charting and in reality all I needed to

play03:58

do was spend a couple hours adding an

play04:00

extra you know chart column to this

play04:02

table it was that easy and this is why

play04:04

it's so important to understand why

play04:06

you're writing the code that you're

play04:08

writing not only do you need to

play04:10

understand the entire domain of the

play04:11

business that you're working in so in

play04:12

that particular case I was doing finance

play04:14

software for managing project budgets I

play04:17

had a pretty good understanding of

play04:18

exactly why I was writing my code it was

play04:20

to help people in the accounting

play04:22

department finalize and do estimating

play04:24

for budgets and so on I knew the

play04:25

overview high level of what the code was

play04:27

doing but I didn't know exactly what

play04:29

every single feature I was implementing

play04:31

was doing for example I thought these

play04:33

charts were going to be helping with you

play04:34

know doing estimates and en counting and

play04:35

so on but really the actual data they

play04:37

needed for that particular thing was a

play04:39

much simpler piece of data I could have

play04:41

got in a much better way and it's

play04:42

important that you know this skill

play04:43

because a lot of times if a

play04:45

non-technical person is coming to you

play04:46

and telling you what they want they

play04:48

generally don't know the best way to get

play04:50

there A lot of times they'll say hey can

play04:51

you make this feel better or look better

play04:53

or act better or maybe they're like hey

play04:55

this thing doesn't quite feel right when

play04:56

you do this particular thing can you

play04:58

change how it works and they give you

play05:00

kind of fuzzy language for exactly what

play05:01

they want and even if they are giving

play05:03

you specific language on things that you

play05:05

need to fix and change they may not know

play05:07

that there are better ways to do that

play05:08

based on what they actually want deep

play05:10

down so it's always important especially

play05:12

when working with clients and doing

play05:14

freelance work to really dive in and try

play05:16

to figure out okay what is it that they

play05:17

actually want at the root level they're

play05:19

telling you what they think that they

play05:20

want you to implement to fix their

play05:22

problem but you really want to figure

play05:23

out what is the problem that they're

play05:25

running into because maybe the solution

play05:27

they're telling you is not actually the

play05:29

best solution to solve that problem and

play05:30

even if they are coming to you with just

play05:32

a problem and no solution make sure you

play05:34

try to dig a little bit deeper to figure

play05:35

out what the root of that problem

play05:37

they're running into is because it may

play05:38

actually impact how you write the

play05:40

solution for it and I know it may sound

play05:42

like this is something that's only

play05:43

applicable if you're doing like

play05:44

freelance work and so on but it's even

play05:46

applicable at a normal everyday job

play05:48

while I was at this exact same Agency

play05:50

company I was working on some internal

play05:52

projects at one point where is only

play05:54

going to be used for the particular

play05:55

company I was working at so very similar

play05:57

to writing software at a normal company

play05:59

and even then I still ran into these

play06:01

problems where I had to make sure I

play06:02

really dove in and figured out okay what

play06:04

is the use case for this why do you want

play06:06

this what is the underline root problem

play06:08

that you're trying to solve digging

play06:10

deeper and deeper into every single

play06:12

thing that you're told to do will really

play06:13

help you with writing the best possible

play06:15

code also it'll save you tons of time

play06:18

because like as you can see in the

play06:19

example I told at the beginning of this

play06:20

video I spent weeks and weeks writing

play06:22

out this code when I probably could have

play06:23

done the same exact thing in a single

play06:25

day to solve the problem in a better way

play06:27

so usually if you're writing code that

play06:29

doesn't actually solve the underlying

play06:30

problem they're going to come back to

play06:32

you and say hey you know what I love

play06:33

this code that you wrote but I still

play06:34

need you to make changes because it

play06:36

didn't actually solve the thing they

play06:37

want even though they thought it would

play06:38

so how exactly do you improve this skill

play06:41

cuz it's easy for me to tell you to do

play06:42

this but how exactly do you go about it

play06:44

well the first thing that you're going

play06:45

to want to do is to figure out the

play06:46

domain of the project you're working on

play06:48

the higher level like I said the

play06:50

accounting that I was working on inside

play06:51

that financing project figure out what

play06:53

the high level overview of the project

play06:55

is the next thing that you can work on

play06:57

is if there's like a certain section of

play06:59

the that you specialize in maybe more so

play07:01

than other sections try to figure out

play07:03

really good and in-depth what that

play07:05

section of the application is doing so

play07:07

if you're only working on like six

play07:09

different pages of an application figure

play07:10

out exactly why those pages are being

play07:12

used and even if you have the ability

play07:14

talk to the people using those pages if

play07:16

I had the ability to talk to the

play07:18

accountants and so on that were using

play07:19

these Pages it may have helped me see

play07:21

exactly what they wanted from these

play07:22

pages instead of trying to guess from

play07:24

you know being three levels removed if a

play07:26

project manager is talking to them and

play07:27

then telling the Project Lead and then

play07:29

the project lead makes you know some

play07:30

story for me to follow it's a lot of

play07:32

steps removed so trying to get as close

play07:34

to the source as possible will really

play07:35

help I know this isn't always possible

play07:37

at every company but even if you can

play07:39

talk to like the project League or the

play07:41

project manager and ask them hey can you

play07:42

go back to the actual people that

play07:44

created this issue this problem and ask

play07:46

them a few additional clarifying

play07:47

questions so I can figure out what the

play07:48

root of that problem is this will again

play07:50

help you with writing better code now

play07:52

another thing you can do is a lot of

play07:53

times in a software company you're going

play07:54

to be having a board of different tasks

play07:56

that you can accomplish and a lot of

play07:57

times these tasks are pretty well

play07:58

spelled out it'll be like hey go to this

play08:00

particular page add this particular

play08:01

button that does this particular thing

play08:03

they're very easy do this do that do

play08:05

this done but a lot of times they don't

play08:07

really have any intent behind them it

play08:09

may say hey create this button on this

play08:11

page that does this thing but you don't

play08:12

really know why people want that button

play08:14

added to that page and often times if

play08:17

you run into a task like this that has a

play08:18

lot of steps on what to do but not

play08:20

really why you want to do this I would

play08:22

again go back and ask the Project Lead

play08:24

project manager whoever put that task in

play08:26

there ask them hey why are we adding

play08:28

this button to the page I understand

play08:30

that it's supposed to do X Y and Z but

play08:32

what is the reason we want to add this

play08:34

button you may realize the button isn't

play08:36

even needed because you already have

play08:37

something on a different page that does

play08:39

exactly what they want or you may

play08:40

realize hey this button actually should

play08:42

probably do an additional two or three

play08:44

things that it's not listed in the task

play08:46

based on what they want or you may just

play08:48

find out that you can just do it exactly

play08:50

as is and it won't matter the nice thing

play08:52

about this technique though is it

play08:53

doesn't matter if you go back and you

play08:54

find out you don't need to change

play08:55

anything or you go back and you find

play08:57

that you do need to make a lot of change

play08:58

either way you'll know at the end when

play09:00

you finish building out this project

play09:02

it's going to most likely conform

play09:03

exactly to what your client or your user

play09:05

wants which means that they're going to

play09:07

be incredibly happy with your work

play09:08

because instead of constantly having to

play09:10

go back and do revision after revision

play09:12

they're getting what they want on the

play09:13

first or maybe even the second attempt

play09:15

which is much better than a lot of

play09:16

companies and people can do project

play09:18

managers project leads clients and even

play09:20

employers are going to notice that you

play09:22

have these skills and notice how you are

play09:24

able to effortlessly complete projects

play09:26

that don't need tons of changes and that

play09:29

will lead to you getting better raises

play09:30

promotions more clients more hours

play09:33

whatever it is that you want you're

play09:34

going to be able to obtain that by

play09:35

implementing just this one single skill

play09:37

and it's not even a technical skill so

play09:39

it doesn't matter how bad you are at

play09:41

programming this can put you a league

play09:43

ahead of people that are 10 times better

play09:44

at programming than you because you're

play09:46

able to do things that the company

play09:47

actually wants instead of just writing

play09:49

good code now you may not have any good

play09:50

places to implement this skill yet

play09:52

because you're still looking for your

play09:53

first job and if that's the case I

play09:55

highly recommend checking out this video

play09:56

linked right over here cuz it goes over

play09:58

my top tips how to get hired right now

Rate This

5.0 / 5 (0 votes)

Связанные теги
Web DevelopmentCareer GrowthCoding SkillsSoftware EfficiencyProject ManagementClient SatisfactionTechnical InsightDeveloper TipsProblem SolvingEfficient Coding
Вам нужно краткое изложение на английском?