10 regrets of experienced programmers
Summary
TLDRThe video script discusses the universal regrets developers have in their programming careers, offering insights and advice for aspiring programmers. The speaker humorously reflects on their experiences, emphasizing the importance of writing less code, learning to code early, completing projects, obtaining a computer science degree, investing in Bitcoin, understanding lower-level languages, embracing JavaScript on the server, practicing algorithms, prioritizing health, and questioning the impact of programming work. The speaker also highlights the benefits of using a Chrome plugin for staying updated with developer news and networking with other developers.
Takeaways
- đ Writing less code is more: Code is a liability, not an asset. Strive for simplicity to reduce maintenance and increase productivity.
- đ§ Learn to code early: The brain is most adaptable in youth, and starting early can lead to greater success in the tech industry.
- đ Finish what you start: Completing projects is more valuable than starting many and finishing none, despite the common tendency to abandon them.
- đ Pursue a computer science degree: While not strictly necessary, a degree can provide a solid foundation and networking opportunities for a tech career.
- đ° Invest wisely: Missed opportunities like not investing in Bitcoin early can be a regret, but learning from such regrets can be valuable.
- đ€ Learn lower-level languages: Understanding lower-level languages like C provides a strong foundation and makes you a more versatile programmer.
- đ Embrace JavaScript on the server: Using JavaScript across the full tech stack can lead to faster development and iteration, despite its drawbacks.
- đ Practice coding problems: While it may seem tedious, practicing algorithms and coding problems is crucial for technical interviews and improving as a developer.
- đïžââïž Prioritize health: Sitting for long periods and high stress can be detrimental to health; taking care of physical and mental well-being is essential for a long career.
- đ Real-world impact: While coding can be fulfilling, it's important to recognize the value and impact of other professions that may seem more directly beneficial to society.
- đŽ Legacy in code: Reflecting on one's career in tech, it's common to question the significance of the work done, especially when compared to more tangible professions.
Q & A
What does the speaker consider the most regrettable aspect of programming?
-The speaker regrets writing too much code, emphasizing that code is a liability rather than an asset, and that less code often leads to better maintainability and productivity.
Why does the speaker believe that simplicity is a virtue in programming?
-Simplicity is valued because it minimizes the time anyone has to spend dealing with the code. It is associated with brevity, readability, and maintainability, which are all important for efficient and effective programming.
At what age does the speaker suggest is the best time to start learning to code?
-The speaker humorously suggests that the best time to start learning to code is in the womb, but in reality, the second best time is as soon as possible, emphasizing that age is not a barrier to learning.
What is the '9090 rule' mentioned by the speaker?
-The '9090 rule' is a humorous way to describe the phenomenon where a software project seems 90% complete, but actually has 90% of the work still to be done, highlighting the difficulty in estimating software development time.
Why does the speaker express regret about not finishing more projects?
-The speaker regrets not finishing projects because it feels like time and effort were wasted without any completed work to show for it. However, they also acknowledge that recognizing when a project is not worth finishing is important.
What is the speaker's opinion on the necessity of having a computer science degree to be successful in programming?
-The speaker believes that while a computer science degree is not strictly necessary to learn how to code or even to get a job in tech, it can provide a solid foundation and networking opportunities that can lead to high-paying jobs at a young age.
Why does the speaker regret not having learned lower-level languages like C?
-The speaker feels that learning lower-level languages like C provides a strong foundation for understanding how programming works at a more fundamental level, which can make one a better programmer overall.
What is the speaker's stance on using JavaScript on the server?
-The speaker has no regrets about using JavaScript on the server. They appreciate the efficiency and speed of development that comes from using a single language across the entire tech stack.
Why does the speaker regret spending so much time practicing on LeetCode?
-The speaker regrets this because they feel that the time spent practicing algorithms could have been better used elsewhere, given that their career pinnacle involved teaching basic web development skills.
What health-related advice does the speaker give to programmers?
-The speaker advises programmers to prioritize their health by taking regular breaks, using a standing desk, and maintaining a good diet to reduce the risks associated with a sedentary lifestyle.
What is the speaker's final regret regarding their programming career?
-The speaker's final regret is the feeling that programming does not contribute to anything real or tangible, and they express a sense of envy towards professions that have a more direct and visible impact on the world.
Outlines
đ Reflections on Programming: Regrets and Advice
The speaker begins by sharing their experience volunteering at a hospice center for programmers, pondering what advice they would give to a young learner. They emphasize that while programming offers countless paths, there are common pitfalls that many developers regret. The video aims to discuss ten such regrets, starting with the importance of writing less code and valuing simplicity over complexity. The speaker humorously recounts their past pride in complex code, only to later realize that simplicity is key. They also touch upon the trade-offs between brevity, readability, performance, and other factors in coding. The first regret is not writing less code, which is seen as a liability rather than an asset, and the importance of productivity over code quantity is highlighted.
đ¶ Starting Young and the Value of a CS Degree
The second paragraph focuses on the benefits of starting to learn programming at a young age, when the brain is most adaptable. The speaker playfully suggests that one should start learning in the womb, but emphasizes that the next best time is immediately. They also discuss the advantages of obtaining a computer science degree, particularly for networking and securing high-paying tech jobs, despite the fact that it's not always necessary for employment. The speaker warns against the potential for ageism in tech and the preference for younger programmers, advising that starting early can be a significant advantage.
đ§ Finishing Projects and the Importance of Persistence
Regret number three is not finishing more projects, with the speaker lamenting the many side projects that were never completed. They describe the common phenomenon where a project seems 90% done but still requires a substantial amount of work. The importance of seeing projects through to completion is stressed, even though it's acknowledged that sometimes it's necessary to abandon a project that isn't working out. The value of recognizing when to stop and cut losses is highlighted as a critical skill.
đ Education, Investments, and the Power of JavaScript
The fourth regret is not obtaining a computer science degree, which the speaker views as a missed opportunity for early career advancement and networking. The paragraph also touches on the regret of missing investment opportunities, such as buying Bitcoin in its early stages. The speaker humorously reflects on the missed chance to become wealthy from such investments. They then discuss the versatility of JavaScript, expressing no regrets about using it across different platforms and for various applications. Despite its drawbacks, the speaker finds that the benefits of using a single language throughout the tech stack outweigh the negatives.
đ€ Learning Low-Level Languages and the Myth of 'Real Programmers'
The sixth regret is not learning lower-level languages like C, which the speaker believes is essential to becoming a 'real programmer.' They argue that understanding the basics of C can provide a strong foundation for other languages and improve one's programming skills. The speaker reflects on their own journey starting with high-level languages and expresses a wish to have learned C first.
đ» JavaScript on the Server and the Realities of Tech Jobs
The speaker shares their positive experience using JavaScript on the server side, despite its potential inefficiencies and lack of true type safety. They appreciate the development speed and iteration benefits it offers. The seventh regret is not learning low-level languages earlier in their career. The eighth regret is the time spent practicing algorithms for technical interviews, which the speaker feels was not as rewarding as they had hoped. The focus then shifts to the importance of health, with the ninth regret being not prioritizing it sooner. The sedentary nature of programming is compared to other unhealthy habits, and the speaker advises on how to mitigate these risks. The final regret, number ten, is the existential concern about the impact and reality of a programming career, with a wistful comparison to more seemingly 'real' professions.
Mindmap
Keywords
đĄCode Liability
đĄAbstraction
đĄSimplicity
đĄRegret
đĄLearning to Code
đĄSide Projects
đĄComputer Science Degree
đĄInvestment
đĄLow-Level Languages
đĄJavaScript on the Server
đĄTechnical Interviews
đĄHealth
đĄReal Work
Highlights
The importance of writing less code and understanding it as a liability rather than an asset.
As developers gain experience, they tend to write less code but increase productivity.
The realization that simplicity in code is often more valuable than complexity.
The trade-offs between code simplicity and other factors like readability, performance, maintainability, testability, and reusability.
The notion that the best time to start learning to code is as early as possible, ideally from a young age.
The potential ageism in the tech industry and the preference for younger programmers.
The benefits of using a tool like daily dodev for staying updated with developer news and networking.
The regret of not finishing more software projects and the importance of seeing them through to completion.
The value of obtaining a computer science degree for networking and securing high-paying tech jobs.
The missed opportunity of investing in Bitcoin in its early stages.
The significance of learning lower-level languages like C for a strong foundation in programming.
The versatility of JavaScript across different platforms and its impact on development speed.
The practice of grinding through coding challenges on platforms like LeetCode for technical interview preparation.
The importance of prioritizing health while working in a career that involves long hours in front of a computer.
The existential question of the impact and reality of a career in programming compared to other more tangible professions.
The speaker's personal regret about entering the field of programming due to its perceived lack of real-world impact.
Transcripts
recently I volunteered my time at a
hospice center for dying programmers
also known as X and I asked the question
you're on your deathbed a kid comes to
your side and says grandpa I want to
learn how to code what do you regret
most about programming my immediate
answer would be something like leave me
alone kid and let me die in peace but
it's actually an interesting question
because programming is not like most
careers it has billions of possible
paths with many conflicting opinions and
no single right way to do things despite
its unpredictable nature I found that
there are some Universal traps that
nearly every developer regrets falling
into and in today's video we're going to
look at 10 of them regret number one I
wish I would have written less code it's
extremely important to understand that
code is not an asset it's a liability
every block of code is something that
you'll have to maintain in the future
and something that could break your
application entirely beginners don't
write a lot of code because they don't
know how but as they gain more
experience they start writing more code
eventually everybody realizes that less
is more and the total lines of code
decrease while productivity increases
however someday you may trans send to
the genius level 10x engineer at which
point the lines of code you produce will
go negative I for one am not afraid to
admit that I regret 99% of the code I've
written I distinctly remember feeling
like a genius when I implemented my
first abstraction Factory Singleton
proxy decorator in JavaScript however a
few years later an angel came to me in a
dream and said bro you could have just
made that a regular function an idiot
admires complexity a genius admires
Simplicity and at that point I realized
my entire life was a lie Simplicity is
always a good thing to strive for but
there's a lot of other trade-offs to
consider like readability performance
maintainability testability reusability
and so on in addition what's the
definition of Simplicity is it about
brevity or readability or something else
entirely in my opinion it all comes down
to time the goal is to minimize the
amount of time anyone has to spend
messing around with your garbage code
regret number two I wish I would have
learned to code earlier when you're
young your brain is highly optimized for
learning but as you get old and crusty
and your pineal gland is calcified by
the fluoride in the water your ability
to learn becomes diminished that's why
most worldclass musicians start at a
very young age now you can learn to play
the piano or learn to code at any age
hell I learned how to play the Triangle
Well into my 30s but if you start
learning how to code when you're 2 or 3
years old you should easily be able to
land a six-figure job by the time you're
13 now most people won't admit it but
there's definitely agism in Tech
employers will often prefer a younger
programmer with a more malleable brain
and that's why the median age of
programmers around the world is around
30 obviously starting young is great for
a lot of things I wish I would have
bought Microsoft stock back in the'80s
the only problem is that I wasn't born
yet so if you want to learn how to code
the best time to start is in the womb
but the second best time is right now
because we're not getting any younger
before we move on to the next one one
thing I don't regret is installing the
Chrome plugin for daily dodev the
sponsor of today's video it's a
completely free tool that keeps you up
to speed on developer news so you never
miss out on the latest new gamechanging
JavaScript framework it's a tool built
by Developers for developers to curate
all the information you need in the
programming space but most importantly
it's a great place to network with other
like-minded developers not only will you
find discussions throughout the site but
you can also join squads to network with
other professionals using the same text
stack as you it's truly an amazing
resource and at the low low price of
free really every developer should be
part of the daily dodev community and
that brings us to regret number three I
wish I would have finished more projects
this is what my side projects directory
looks like and of all these projects I
finished maybe two or three of them
finishing a software project almost
always takes way longer than you'll
estimate there's something called the
9090 rule where when you feel like
you're 90% done with a project you still
have 90% to go it's not like building a
bridge where everything is laid out in a
blueprint with software you'll almost
always have all kinds of unexpected
things come up and if you're a solo
developer you might get distracted and
just quit the project and start
something entirely new from scratch I've
done that more times than I can count in
fact I'm even considering not finishing
this video in retrospect though I really
regret not finishing those projects I
don't even want to think about all the
hours flushed down the toilet with
nothing to show for it however it's also
important to be honest with yourself and
recognize when your app sucks that some
projects just aren't worth finishing and
sometimes knowing when to cut your
losses is even more important than
finishing a project regret number four I
wish I would have gotten a computer
science degree going to college is not
the most efficient way to learn how to
code you learn far more in a real world
job or by building things on your own
and you don't need a degree to get a job
even at Big tech companies but going to
college and networking and doing
internships is the most Surefire way to
get a high-paying job in Tech at a young
age and there are many jobs out there
that do require a degree even even
though it's arguably pointless what you
don't want to do is get scammed like all
these Millennials who went to college
for a useless degree like Egyptian
studies only to find out that there's no
jobs in that field so they go back to
school to get a PhD in Egyptian studies
to teach other kids Egyptian studies
creating a literal pyramid scheme
speaking of pyramid schemes regret
number five I wish I would have bought
Bitcoin in 2010 had you invested $100 in
Bitcoin when it was at 25 you'd be worth
about 25 million today that makes me sad
but it does bring me some joy to realize
that there are people out there that
bought Bitcoin at that price point only
to throw away their hard drive and are
now out there searching through
landfills to try to find them but
watching their suffering makes me feel a
little bit better about myself regret
number six I wish I would have learned
lower level languages like C most
programmers today start by learning
highlevel languages like Python and
JavaScript and you can build an entire
career without ever learning anything
lower than that but that begs the
question are you a real programmer and
the answer is no no you are not luckily
though all you have to do is learn the
basics of C which is a lot easier than
you I think you can learn it in 100
seconds or watch Channels like low-level
learning either way once you write your
first Segal you officially become a real
programmer but seriously even if you
don't need a low-level language learning
the basics of C will just make you a
better programmer I started with highle
languages like Java and PHP however if I
could go back I would have learned C
first because it gives you such a great
foundation for everything else regret
number seven JavaScript on the server
personally I don't regret JavaScript on
the server at all I use the JavaScript
in the browser I use it to build mobile
apps desktop top apps it's smart fridge
apps I use it for machine learning and
for VR and everything in between
including on the server and I have no
regrets JavaScript may not be the most
CPU and memory efficient language on the
server it may not have true type safety
and some of its npm packages may try to
mine crypto on your server but for me
being able to write JavaScript on the
server results in much faster
development and iteration because you've
got a single language across the entire
text stack regret number eight grinding
leak code many developers dream of
getting into a big Tech corporation like
Google Microsoft or Pi Piper but to do
that you'll need to get past a technical
interview or multiple technical
interviews but the only way to get good
at algorithms is to practice like many
programmers I've spent countless hours
practicing on Le code but every single
time my solution is to brute force it
with a hash table in retrospect though I
regret wasting all this time here
because the Pinnacle of my career has
been teaching people how to center divs
on YouTube regret number nine I wish I
would have prioritized my health earlier
sitting on your ass in front of a
computer all day is one of the least
healthy activities you can do according
to science it's right up there with
obesity and smoking if you combine this
activity with high amounts of stress and
a bad diet chances are your heart's
going to explode by the time you're 30 I
think a lot of people underestimate the
dangers of this career there's no way to
avoid being in front of a computer but
there's a lot of things you can do to
reduce the risk like get a standing desk
take regular breaks and don't consume
products like Prime which is currently
being sued for having a massive amount
of cancer-causing pfas inside every
bottle in addition when you take care of
your physical health your mental health
and sharpness will also improve as a
result thus making you a a better
programmer and finally that brings us to
regret number 10 I wish I never would
have learned a code in the first place
I've always found writing code very
satisfying but sometimes it feels like
we're not doing anything real like we're
just creating fake vaporware for a boss
with a fake job title who needs to hit
kpis for some fake performance metrics
to make some fake money for investors I
envy the scuba instructor who gets to
swim with turtles all day or the
paramedic who saves lives every day
these jobs might not pay as well but at
least they feel real I fear in my final
moments my grandchild will inquire about
my life's eon lishments and the most
impressive feed I can muster is
something
like the Wilson back in 24 I once
managed to fix a production bug while
only creating three more bugs in the
process thanks for watching and I will
see you in the next one
5.0 / 5 (0 votes)