Why Most Programmers DON'T Last
Summary
TLDRThe video script offers eight laws for a lasting career in software development, emphasizing the importance of embracing impostor syndrome, simplifying technology for others, buffering estimates, delaying commitments, avoiding the leveling grind, picking battles wisely, networking consistently, recognizing when to be a 'code monkey', and knowing when to transition out of coding roles. With over 27 years of industry experience, the speaker provides insights on career progression, work-life balance, and maintaining health in the tech industry, urging developers to adapt and evolve to succeed long-term.
Takeaways
- 😌 Embrace the feeling of not knowing everything as a natural part of being a programmer and a key to a long career.
- 🛠️ Simplify technology for others by making complex concepts easy to understand, which is a valuable skill in software development.
- 🕒 Learn to buffer and delay commitments to maintain a good reputation and deliver on promises in an industry with unreliable estimates.
- 🏃♂️ Skip the leveling grind by focusing on demonstrating your work at a senior level rather than getting stuck in company-specific title tiers.
- 🤝 Network consistently to prepare for potential job changes and to build a strong professional community around you.
- 🛡️ Pick your battles wisely and conserve your energy for key issues rather than fighting every disagreement.
- 🔍 Recognize when you're seen as a 'code monkey' and either accept the role or seek opportunities that value your broader contributions.
- 👴 Understand that as you gain experience, you should also develop skills like leadership and communication to increase your value proposition.
- 📚 Continuous learning and adapting to new technologies is crucial for career progression and staying relevant in software development.
- 🚪 Know when to get out of the industry while you still have value to offer, as companies often struggle to assess the worth of extensive experience.
- 💼 Maintain a healthy work-life balance and avoid burnout by not constantly fighting battles and focusing on what truly matters in your career.
Q & A
What is the first law to having a long and healthy career in software development according to the speaker?
-The first law is to embrace your impossibility. This means accepting that you won't know everything on a project and becoming comfortable with that uncertainty, which is a part of the job.
What does the speaker suggest as the second law for a lasting career in software development?
-The second law is to make technology just stupid simple. This involves being able to simplify complex technical concepts, patterns, and code so that they can be easily understood by others, even those who are not as technically proficient.
What is buffering and delaying commitments, and why is it important according to the third law?
-Buffering and delaying commitments means adding extra time to your estimates to account for uncertainties and complexities that may arise in software development. It is important to maintain a good reputation and deliver on commitments, especially in an industry where estimating tasks can be unreliable.
What does the speaker mean by 'skip the leveling grind' in the fourth law?
-The fourth law suggests that developers should not get caught up in the hierarchical levels of job titles in tech companies. Instead, they should focus on acquiring skills and demonstrating their ability to work at a senior level across the industry, rather than staying at one company and advancing through a fixed set of titles.
What is the fifth law for a long-lasting career in software development?
-The fifth law is to pick your battles wisely. This means not fighting every disagreement or trying to convince others on every technical decision, but rather focusing your energy on key issues that are important to the project and can make a significant impact.
Why is always networking important according to the sixth law?
-Always networking is important because it prepares you for potential job changes or layoffs. By building and maintaining relationships, you ensure that you have a support network and opportunities available to you when you need them, reducing stress and increasing career flexibility.
What does the speaker suggest about knowing when you are the 'Code Monkey' in the seventh law?
-The seventh law advises recognizing when your role in a company is primarily to write code, without much input into product direction or business strategy. It's important to accept this situation or consider moving on to a position where your broader skills and experience are valued.
What is the eighth law for having a long and lasting career as a developer?
-The eighth law is to get out while you can. This means recognizing the limitations of being an individual contributor as you gain more experience and considering moving into roles that value your broader skills, such as leadership or consulting, rather than just coding abilities.
What is the speaker's perspective on the value of experience in the tech industry?
-The speaker believes that most companies do not know how to value experience. They tend to focus on current tech knowledge and seniority level rather than the breadth of experience and skills that a developer may have acquired over the years.
What advice does the speaker give to new developers or those worried about their career longevity?
-The speaker advises new developers to understand the realities of the job, accept the nature of the work, and focus on developing skills that increase their value proposition over time. They also suggest not fighting against the industry norms and instead adapting to them to ensure a lasting and successful career.
Outlines
😀 Embracing Imposter Syndrome and Career Progression
The speaker emphasizes the importance of enduring the feeling of being an imposter in the software development field, suggesting that it's a natural part of learning new frameworks and business aspects. They share their 27 years of industry experience and stress the value of focusing energy on key project issues rather than complaining about unimportant details. The speaker introduces eight laws for a lasting career in programming, aiming to help developers advance faster and maintain their health.
🛠 Simplifying Technology and Managing Commitments
The speaker discusses the necessity of making technology understandable to non-experts, highlighting the importance of simplifying complex concepts for better team communication. They also address the challenge of estimating in software development, advocating for 'buffering' estimates to account for unpredictability and the need to 'delay commitments' by using research spikes to investigate tasks before providing accurate estimates.
🔄 Avoiding the Leveling Grind and Picking Battles Wisely
The speaker warns against the trap of company-level hierarchies that can stall career progression, advising to focus on demonstrating senior-level work rather than getting stuck in junior roles. They also discuss the importance of picking battles wisely, suggesting that not every technical disagreement is worth the energy, and that sometimes it's better to compromise for the sake of a healthier work-life balance.
🤝 Constant Networking and Knowing Your Role
Networking is presented as a crucial activity that should be ongoing, not just when job hunting, to ease transitions and open new opportunities. The speaker also touches on the importance of recognizing one's role within a company, suggesting that if developers are seen only as code writers, they should either accept this or seek opportunities elsewhere.
👨💻 Transitioning Beyond Coding and Navigating the Job Market
The speaker advises developers to transition beyond just coding roles as they gain experience, pointing out that companies often undervalue broad technical experience in favor of current tech proficiency. They suggest focusing on developing leadership, management, and communication skills to increase one's value proposition and ease the job search process as developers grow older in their careers.
Mindmap
Keywords
💡Career progression
💡Impostor syndrome
💡Frameworks
💡Architectural problems
💡Buffering estimates
💡Leveling grind
💡Job hopping
💡Networking
💡Code Monkey
💡Leadership
💡Tech interviews
Highlights
Embrace impostor syndrome as a natural part of software development and accept the constant learning process.
Simplify technology and communicate effectively with team members who may not have the same level of expertise.
Buffer and delay commitments to maintain a good reputation and manage expectations in the unpredictable nature of software development.
Avoid the leveling grind by focusing on demonstrating work at a senior level rather than getting stuck in company-specific titles.
Pick your battles wisely and not fight every technical disagreement to preserve energy for more critical issues.
Network consistently to prepare for potential job changes and maintain professional relationships.
Recognize when you are seen as a 'Code Monkey' and either accept the role or seek opportunities that value your input.
Understand the limitations of selling extensive experience and focus on current relevant skills and leadership abilities.
Consider transitioning out of individual contributor roles as you gain experience to avoid becoming obsolete.
Software development requires resilience and adaptability to thrive in a constantly changing industry.
Learn to manage estimates and commitments in a way that accounts for the unpredictable aspects of software projects.
Job hopping can limit your depth of knowledge and understanding of a business, impacting long-term career success.
It's important to know when to compromise on technical choices for the sake of team harmony and project progress.
Continuous networking is crucial for career progression and should not be limited to times of job seeking.
Accepting the role of a 'Code Monkey' when it aligns with the company's expectations can lead to job satisfaction.
As developers age, it's vital to develop skills beyond coding to increase value and marketability.
The industry often undervalues broad experience, so it's important to highlight current and relevant skills.
Transcripts
from my experience if you want to last
in this career you got to learn to just
bite your lip write codes sometimes
following patterns or using Frameworks
you don't love and save the energy and
save all that passion for the issues on
the project or the architectural
problems or you know whatever it is that
are really key and really important to
the project and use your energy
there
[Music]
YouTube is full of videos promising to
you some secret about how to be the best
programmer or just bitching about why it
sucks well these people may mean well
but honestly many of them do not have
the experience in the industry to advise
you on your career I've been in this
industry for 27 years on over 40
Projects and you you can have a long and
healthy career in software development
but you may have to stop complaining
about some things that other people do
and you may have to just man up and do
some things differently than other
people have told you here at healthy
software developer I like to talk about
four things career progression working
healthy finding purpose and meaning
through your work and escaping the
corporate grind this episode today is
specific typically to help you with
career progression and so I'd like to
share with you eight laws to having a
lasting career as a programmer if you
follow these laws you're going to move
ahead way faster than a lot of other
software developers and you're actually
going to be able to stay healthy while
doing it which is the point of this
whole channel the first law to having a
long and healthy career in software
development is to embrace your imposs
we like to complain in the industry all
the time about impostor syndrome and
it's a real psychological thing that
some people have but I think we often
claim that we're experiencing impostor
syndrome and we're not we're just
programmers let me give you an example
myself again after over 40 software
projects every project I join this
includes the project I worked on last
year for the first three months of that
project I'm swimming in Frameworks I've
never seen patterns that are maybe
somewhat new weird aspects to the
business I've never encountered and yet
everybody on the team wants to pretend
that they're so experienced that they
know exactly what's going on but you
know if you're actually really
intelligent and you have any sense of
self-awareness you're going to know I
don't know everything that's going on on
the project and I think if you can
become comfortable with that and just
accept that that is part of the job
you're going to have a long career in
software now if you don't like that
you're probably in the wrong position
the second law of having a Long and
Lasting career is to make technology
just stupid simple what I mean by this
is most of the people that you're going
to work with over your career are not
going to know the code as well as you
even if it's other devs on your team if
you're working on some feature and let's
say you're the only one who's working on
that aspect of the API or you know using
some third party library of course
you've read all the documentation
hopefully at least applicable to what
you're learning you've gotten in there
you've written the code you know it
better than anyone else well I think
some of the worst programmers I've
worked with and I've run into people who
are 20 years into their career and they
still do this is people who communicate
with others as though they know the same
amount as them and if you want to have a
really long career and enjoy it in
software development a superpower is to
be able to take technology patterns
Concepts practices code and dumb them
down you know no no offense intended but
way simplify them so that the average
anybody can understand what you really
[Music]
mean the third law to having a long and
lasting career in software development
is you have to learn to buffer And Delay
any commitments that you give to people
I would love it if every project that we
get to work on in our career is for some
super agile company that requires no
estimates and there's no deadlines and
there's no commitments but hello that is
not the reality that the vast majority
of developers are experiencing and you
may be surprised to hear that if you're
one of the lucky you who's on a really
great agile you know project where
there's no estimating and you're just
doing things based on customer
feedback but for the rest of us we have
to estimate we have to give out some
sort of idea of how long stuff's going
to take and you know if you watched any
of my other episodes or again listen to
them as a podcast you know that
forecasting in software development is
one of the most unreliable things and so
if you want to have a long career and
keep a good reputation you have to
deliver on your commitments and the only
way to deliver on commitments if you're
in an industry where committing to
things and estimating to things you know
is low reliability is to buffer the
living hell out of your estimates now
this might feel icky to you well why
should I add 20% 40% 60% to an estimate
because if you're dealing with
management who don't understand that and
you come back and tell them that you
discovered some you know unforeseen
complexity and they start to blame you
as though you're not a good programmer
because you couldn't have predicted the
future they don't care that that's an
aspect of of you know software
development That's Unique so if you want
to have a long career in this industry
you got to buffer your estimates the
other thing you got to do is you got to
delay commitments if somebody asks you
to estimate something and let's say it's
in a framework you've never used before
I like to use what are called research
spikes you've probably heard of this
it's basically you tell your client or
the company okay I'm going to spend
let's say6 18 hours over 3 days
investigating this task that you've
given me because there's this one's of
high ambiguity I I don't feel like I
know enough yet to even give you a
reliable estimate and so you tell them
I'm going to spend 16 hours and I'm
going to come back to you and I'm going
to tell you if I know enough yet to give
you an ACC accurate estimate or if I
even may need more time now people don't
love hearing this they just want to
shove you into committing to stuff
you've never done before but I learned
this as a technique as a consultant and
it can really get you out of a jam if
you just try it and you really will
start to set expectations with your
company or your client that hey I don't
just commit to stuff because you want it
if I'm uncomfortable it's going to cost
you something I got to dig into it and
look at it first and I may even find out
we need more time than I estimated just
to estimate what we're going to build
the fourth law of having a long lasting
career in software is to skip the
leveling grind oh my gosh so many of
these tech companies have software
engineer 1 2 3 4 5 6 senior engineer 2 3
4 5 staff engineer one two principal
engineer 1 two 3 if you work for one of
these companies it may feel like you're
progressing in your career but here's
the reality these companies are dangling
you along and keeping you running on a
treadmill for as long as possible to
just get to the level of a title that
you're probably at if you've been at a
company for 3 years four years and
you're still not senior engineer or
maybe let's say
six if that's because they're giving you
you know Junior 1 Junior 2 Junior 3
remember you should not be getting
promoted because there's a specific rung
you have to go through you should be
getting promoted because you're doing
work at the level of seniority across
the industry that that title is
associated with so if you want to
advance in your career and have a
lasting career you want to honestly pick
up skills as quickly as possible where
you can actually demonstrate that you're
operating at a senior or above level and
one of the biggest things that people do
that prevents them from doing this is
job hopping yes you can potentially make
more money if you hop a new job every
two years but here's the thing you're
never really learning enough about the
business you just worked for to really
understand more than just kind of the
bare minimum of a 2-year stay at a
company of how to actually support that
business with technology you're just
kind of a coder for for higher and if
the purpose of your career is to make as
much cash as possible that may work for
the first third to half of your career
but I'm going to talk about in a moment
how it's actually a really destructive
strategy and if you choose to fall into
that uh the longer you stay in this
industry the harder your job is going to
be the fifth law of a really long and
Lasting career is you got to pick your
battles wisely you're going to be on
projects you're probably experiencing
this now where your Tech lead or an
architect or some other senior developer
has a real strong opinion as to why the
pattern that you chose in code or some
you know coding pattern is not the best
one or this Library isn't as good as
this and you know earlier in my career
I'll be honest with you I used to just
fight too tooth and nail just fight
people if I knew you know in my in my
hardest of hearts that this was the
better pattern oh I wasn't going to let
you get away with it I was going to you
know lean in and make sure I provided as
much documentation and really convince
you of it and I tried to do that with
everything that I found that I felt like
somebody wasn't making the best decision
and it was fraking exhausting you know
that's not a way to have a lasting
career so I just want to tell you from
my experience if you want to last in
this career you got to learn to just
bite your lip write codes sometimes
following patterns or using Frameworks
you don't love and save the energy and
save all that passion for the issues on
the project or the architectural
problems or you know whatever it is that
are really key and really important to
the project and use your energy there
not only are you probably going to have
more energy then so you're going to be
willing to you know put together
presentations or write code samples or
you know do whatever it takes to
convince all the other people when you
do have to you know bring them along but
you're going to have more peace because
you're not going to be constantly
fighting people you got to let some of
these preferences that you have for
coding just go if you want to have a
long and successful and healthy career
the six law of having a really long
career in this industry if you want one
is always be networking if you're only
networking when you get an idea that oh
I think I might need a job soon there's
layoffs by then you're now competing
with everybody who just got laid off the
the job pool is more tough you know
these days you need to be networking all
the time I think LinkedIn is one of the
best platforms for networking a lot of
people don't know how to do this I help
you know my career coaching clients with
this this is just a skill that I think
we all need to have but I think every
week you need to be spending at least a
couple hours you know minimum one you
could spread it across the whole week
finding new people that work in the tech
Stacks the Technologies the industries
that you enjoy they're at the companies
that you'd maybe like to work for and
open a conversation with them interact
with their content on LinkedIn now I'm
not an advocate for wasting time on
LinkedIn in fact I'm pretty antisocial
networking if you if you actually have
talked to me personally let's say and
know me but the reality is if you want
to be in a position where if your job
starts to suck or there gets to be
layoffs or you need to move on you can
do it with the least stress you need to
always be building relationships with
new people and staying on their radar so
that if new doors open you're the first
person they ask the seventh law to
having a really long and successful and
healthy career and software development
is know when you are the Code Monkey if
you're on a project in management looks
at you simply as an engineer I want you
to write code that's the main thing I'm
paying you for for I've seen a lot of op
engineers and I fell into this too where
we will fight management or we will
fight product management or we will just
try to cram ourselves into strategy and
business conversations because we want
to have an influence on the business we
want to maybe have an influence on the
user experience but if we got hired into
a company and we got signs during the
interview that the main reason that they
want us there is just a sling code
that's really all they're looking for
and success from us in the position
so you need to know when you're at a
company you can figure this out once
you've joined or you can ask some really
good questions going into it am I about
to join a company that looks at
developers as people who should have
input on the product Direction the
business the design things like that or
am I not and accept the situation you
know if you're at a company and you're
really frustrated because they don't
want to take your feedback one of the
worst things you can do for your
personal
stress levels and your health is to try
to fight against something that's just
not in the nature of how they're looking
at the position the better thing to do
is you got to either completely accept
it and be okay with like I'm a Code
Monkey here that's how they look at me I
write code or move
[Music]
[Music]
on and the eighth law to having a really
long and Lasting career as a developer
is get out while you can I've met people
who are 20 30 years into their career
again around the the the level of
experience I have and they're still
going out on the open market and trying
to sell themselves as an individual
contributor and they have a list you
know 10 15 Frameworks long of all these
different programming languages and
Frameworks they've learned here's the
problem with this
most companies do not know how to Value
experience they don't they look at
people as if you're a developer my main
thing I care about is do you know the
current Tech that I need you to know are
you relatively experienced in just that
Tech and are you at the seniority level
that I feel pretty confident we can pay
you the market rate that's it I've tried
for years to sell myself on all these
years of experience in other languages I
have and it never goes anywhere and this
is partially why when I work with people
on helping them with their LinkedIn
profiles for example I help them just
nuke anything get rid of anything in
your profile that talks about stuff that
you're not going to actually want to do
it doesn't matter to employers anymore
it doesn't matter at all you need to
make it you know brain dead simple that
they're reading that and they just see
you as wow super strong candidate for
what I'm looking for the problem is
though people look at that as well if I
do that now I'm selling myself short
that's right because again companies
don't understand that you need to put
your yourself out there if you're still
wanting to write code is that you have
new skills that your average programmer
doesn't you can build consensus with
people you're a better Communicator
you're okay do you know give
presentations if you still sell yourself
as I want to make top dollar in the
industry you know based on just being a
20y year you know even 10year developer
and you don't have any skills around
leadership management you know again
Consulting something that increases your
value proposition the older you get I
hate to break this to you the harder
it's going to get for you to continue to
make the money that you think you're
worth and also to just pass all these
stupid Tech interviews and all the other
crap that we get thrown at us that
becomes just that much harder the longer
you work in the industry the harder of a
job you have and the less time you have
to actually not not study and just rest
so you can have a life what do you think
about these eight laws do you agree with
them do you disagree what are some of
the things you've done in your career to
help you last longer than other people
and if you're new to the industry are
you worried about some of these things
has what I've told you today hopefully
encourag you a little bit to just see
this is what the job is if you're okay
with this you're going to kick butt I
think you're going to be a great
developer if you fight against this and
you try to pretend this isn't true and
you go out there and you watch other
people's videos or listen to other
people's podcasts that tickle your your
ear and tell you that all you have to do
is be a really great coder I hate to
break it to you it's not true and you're
not going to last very long so leave me
some comments let me know what you think
until next time
[Music]
thanks
[Music]
[Laughter]
n
[Music]
[Music]
[Laughter]
[Music]
Посмотреть больше похожих видео
Lessons I Regret not knowing as a Software Engineer in My 20s
IT Job Market 2024-25 : Microsoft Hiring Manager on Resumes, Tier 3, Recession, Salary and Hiring 🚀
Mock Informational Meeting
Ottawa's Main 4 Employment Sectors - Living in Ottawa
5 Signs of an Inexperienced Self-Taught Developer (and how to fix)
BGMS Showed How BGMI Esports is RUINED
5.0 / 5 (0 votes)