Every Developer Needs To Know How To Do This
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
đĄ 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.
đ 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
đĄSkill
đĄCode
đĄCareer
đĄTechnical Skill
đĄClient Satisfaction
đĄRaise
đĄProject Budgets
đĄRoot Problem
đĄDomain Knowledge
đĄRevision
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
as a developer there are a million
different things that you could be
learning right now but there's one skill
in particular that you need to learn if
you want to have a successful career
this is something I learned early on in
my career and absolutely catapulted my
career to new levels it set me apart
from a lot of Junior developers and it
made the clients that I was working with
incredibly happy and led to me getting
multiple raises at my job this one skill
may sound like it's got to be something
crazy complicated and Technical but it's
not even a technical skill all that you
need to do is to learn how to realize
why you are writing the code that you
are writing and to get down to that
nitty-gritty level of why you're writing
that code this sounds like an easy skill
that you're probably already doing but
in reality you're not going far enough
in this video I want to talk about
exactly how you can hone this skill
figure out what you need to do and how
you can use this skill to catapult your
career to new levels or even land your
first
job welcome back to web dev simplified
my name is Kyle and my job is to
simplify the web for you so you can
start building your dream project sooner
and in order to really show you the
reason why this skill is so important I
want to tell you a story from my
developer career by a time I didn't use
this skill and how it led to tens of
thousands of dollars of lost money so
we're going to rewind all the way back
to when I was working at an agency and I
was working with Disney and I was
working on their financial department so
I was helping write Financial software
for them to manage like budgeting and
stuff for new projects not super
exciting stuff but it was you know code
and it was working and at the point I
got a request from a person I actually
talked with them one-on-one and they had
a request they said hey I have a lot of
excel sheets that are running all this
different budgeting software and doing
all these different things can you add
in the functionality for me to create
certain charts and Export certain data
from your software so that I don't need
to write all these complex Excel sheets
to do all this and I was like yeah
that's a pretty easy thing to do I can
add some charts to the data so you don't
have to write your Excel charts for it
and I can make it so you can export
certain data that you need for certain
things that's a relatively easy feature
now easy doesn't really mean quick it
still took quite a while to develop this
feature because adding in all these
custom charts and stuff was not super
easy to do because there's a quite large
and complex code base so I spent a
significant amount of time working on
this feature I wasn't working on other
features I was working on this feature
for adding new charts and adding new
things and even at the time when this
guy came to me with this request I asked
him multiple questions about okay why do
you need these charts and why do you
need these exports and he explained to
me why he needed them and I asked him
okay you know what are you doing in
those PowerPoint or Excel sheets and he
told me exactly what he was doing so I
got a pretty good idea of why I thought
I was writing this code so I thought
that I was following this Rule and
making sure I knew why I was writing my
specific code but I didn't dive deep
enough it wasn't until I was most of the
way through writing my code and I was
giving it back to this guy to say hey
can you test this and let me know if
this gives you exactly what you're
looking for and he started playing
around in the you know code that I wrote
and he was looking at it and he said you
know what it's actually doing a lot of
the things I wanted to do I'm getting
the charts I want I'm getting some other
things but hey can you add this one
extra feature to it that i' forgot about
I'm like okay sure that's not that bad I
spent a little time added that extra
feature gave it back to him and he's
like oh you know know what can you
actually add this extra feature as well
I added that extra feature gave it back
to him and we went back and forth with
like this for a little while adding
extra features and doing extra things
and it was taking significant amount of
time to add a feature give it back to
him come back add a feature give it back
to him and so on it wasn't until after
multiple iterations of making a feature
and giving it back that I finally sat
down again I'm like okay we need to
really go through and figure out exactly
what the use case you're using this for
is and as he started to really get in
depth with exactly what he was doing
inside these Excel sheets and all the
different charts he was trying to export
I realized that he really didn't need
all these complicated charts and exports
and everything and that the actual data
that he needed could be implemented much
easier I could essentially just add an
extra column to the table of data that
we're already displaying that would give
him 99% of all the information that he
needs I don't need any of these fancy
charts or exporting all I needed to do
was add one single column which required
me to write one extra little bit of SQL
code so the amount of work that I spent
was weeks and weeks of work building out
all these additional features and
charting and in reality all I needed to
do was spend a couple hours adding an
extra you know chart column to this
table it was that easy and this is why
it's so important to understand why
you're writing the code that you're
writing not only do you need to
understand the entire domain of the
business that you're working in so in
that particular case I was doing finance
software for managing project budgets I
had a pretty good understanding of
exactly why I was writing my code it was
to help people in the accounting
department finalize and do estimating
for budgets and so on I knew the
overview high level of what the code was
doing but I didn't know exactly what
every single feature I was implementing
was doing for example I thought these
charts were going to be helping with you
know doing estimates and en counting and
so on but really the actual data they
needed for that particular thing was a
much simpler piece of data I could have
got in a much better way and it's
important that you know this skill
because a lot of times if a
non-technical person is coming to you
and telling you what they want they
generally don't know the best way to get
there A lot of times they'll say hey can
you make this feel better or look better
or act better or maybe they're like hey
this thing doesn't quite feel right when
you do this particular thing can you
change how it works and they give you
kind of fuzzy language for exactly what
they want and even if they are giving
you specific language on things that you
need to fix and change they may not know
that there are better ways to do that
based on what they actually want deep
down so it's always important especially
when working with clients and doing
freelance work to really dive in and try
to figure out okay what is it that they
actually want at the root level they're
telling you what they think that they
want you to implement to fix their
problem but you really want to figure
out what is the problem that they're
running into because maybe the solution
they're telling you is not actually the
best solution to solve that problem and
even if they are coming to you with just
a problem and no solution make sure you
try to dig a little bit deeper to figure
out what the root of that problem
they're running into is because it may
actually impact how you write the
solution for it and I know it may sound
like this is something that's only
applicable if you're doing like
freelance work and so on but it's even
applicable at a normal everyday job
while I was at this exact same Agency
company I was working on some internal
projects at one point where is only
going to be used for the particular
company I was working at so very similar
to writing software at a normal company
and even then I still ran into these
problems where I had to make sure I
really dove in and figured out okay what
is the use case for this why do you want
this what is the underline root problem
that you're trying to solve digging
deeper and deeper into every single
thing that you're told to do will really
help you with writing the best possible
code also it'll save you tons of time
because like as you can see in the
example I told at the beginning of this
video I spent weeks and weeks writing
out this code when I probably could have
done the same exact thing in a single
day to solve the problem in a better way
so usually if you're writing code that
doesn't actually solve the underlying
problem they're going to come back to
you and say hey you know what I love
this code that you wrote but I still
need you to make changes because it
didn't actually solve the thing they
want even though they thought it would
so how exactly do you improve this skill
cuz it's easy for me to tell you to do
this but how exactly do you go about it
well the first thing that you're going
to want to do is to figure out the
domain of the project you're working on
the higher level like I said the
accounting that I was working on inside
that financing project figure out what
the high level overview of the project
is the next thing that you can work on
is if there's like a certain section of
the that you specialize in maybe more so
than other sections try to figure out
really good and in-depth what that
section of the application is doing so
if you're only working on like six
different pages of an application figure
out exactly why those pages are being
used and even if you have the ability
talk to the people using those pages if
I had the ability to talk to the
accountants and so on that were using
these Pages it may have helped me see
exactly what they wanted from these
pages instead of trying to guess from
you know being three levels removed if a
project manager is talking to them and
then telling the Project Lead and then
the project lead makes you know some
story for me to follow it's a lot of
steps removed so trying to get as close
to the source as possible will really
help I know this isn't always possible
at every company but even if you can
talk to like the project League or the
project manager and ask them hey can you
go back to the actual people that
created this issue this problem and ask
them a few additional clarifying
questions so I can figure out what the
root of that problem is this will again
help you with writing better code now
another thing you can do is a lot of
times in a software company you're going
to be having a board of different tasks
that you can accomplish and a lot of
times these tasks are pretty well
spelled out it'll be like hey go to this
particular page add this particular
button that does this particular thing
they're very easy do this do that do
this done but a lot of times they don't
really have any intent behind them it
may say hey create this button on this
page that does this thing but you don't
really know why people want that button
added to that page and often times if
you run into a task like this that has a
lot of steps on what to do but not
really why you want to do this I would
again go back and ask the Project Lead
project manager whoever put that task in
there ask them hey why are we adding
this button to the page I understand
that it's supposed to do X Y and Z but
what is the reason we want to add this
button you may realize the button isn't
even needed because you already have
something on a different page that does
exactly what they want or you may
realize hey this button actually should
probably do an additional two or three
things that it's not listed in the task
based on what they want or you may just
find out that you can just do it exactly
as is and it won't matter the nice thing
about this technique though is it
doesn't matter if you go back and you
find out you don't need to change
anything or you go back and you find
that you do need to make a lot of change
either way you'll know at the end when
you finish building out this project
it's going to most likely conform
exactly to what your client or your user
wants which means that they're going to
be incredibly happy with your work
because instead of constantly having to
go back and do revision after revision
they're getting what they want on the
first or maybe even the second attempt
which is much better than a lot of
companies and people can do project
managers project leads clients and even
employers are going to notice that you
have these skills and notice how you are
able to effortlessly complete projects
that don't need tons of changes and that
will lead to you getting better raises
promotions more clients more hours
whatever it is that you want you're
going to be able to obtain that by
implementing just this one single skill
and it's not even a technical skill so
it doesn't matter how bad you are at
programming this can put you a league
ahead of people that are 10 times better
at programming than you because you're
able to do things that the company
actually wants instead of just writing
good code now you may not have any good
places to implement this skill yet
because you're still looking for your
first job and if that's the case I
highly recommend checking out this video
linked right over here cuz it goes over
my top tips how to get hired right now
5.0 / 5 (0 votes)