a companion discussion area for blog.codinghorror.com

How To Become a Better Programmer by Not Programming


Complete bs =) congratulations on making one of those blog posts that rile people - sadly I fell for it. This post is idiotic and promotes a very dangerous notion - if you don’t master something in a short time give up…

Go back to your learn code in 24 hours =) getting that off my chest was worth the next ten minutes it’ll take me to unregistered from the site and blocking it from ever showing up In my searches again.


While normally I do agree with most of your work, observations, suggestions… this is one place I simply can’t both as a career software dev, instructor, and student.

It’s my belief anyone can be anything if they have sufficient drive. That said, not everyone can be anything as they simply lack the drive to accomplish that goal.

The first four years

I believe you can say in the first four years of any career path you can determine if it’s a good fit or not. Not that it’s impossible for someone who is less than a good programmer can’t become one after four years, rather you can usually determine if a person has sufficient drive to become one after four years.

Improvement over time (or regression)

That said typically after the four year mark you can tell if someone will advance in their career in that role or if they’re doomed to regress if they don’t expand. If a person has the drive and the passion they’ll perpetually learn and expand their understanding as a developer (both in technical ability, as well as being better at understanding when technical approaches are perhaps not the right solution) if a person lacks this drive they tend not to expand their knowledge meaningfully and ultimately their knowledge becomes less valuable as the world transitions to newer approaches. Typically there is no pacing change, you’re either getting ahead, or falling behind.

The bad to good and good to bad

In any career path you’ll have people who spend their first years as a bad developer then have that wake up moment where suddenly their work is more meaningful and become a much better developer. Just the same you’ll have an excellent developer who finds their work less meaningful and the quality of their work regresses rapidly.

It’s all about motivation. If your motivated enough you can accomplish what seems super human, but motivation is one of those fickle things that comes and goes. We all have passions we’re motivated about and things that suck the motivation right out of us.


That said, most people don’t change drastically. If someone becomes a developer because it pays realistically the motivation just won’t be enough to drive them to be great. Sadly more Great developers regress than other developers become great. Simply because to few have the drive to be great, and in the wake of ambitious projects failed the great can become disheartened and demotivated.


I think as long as one is driven to improve one’s shortcomings (algorithms, data structures, design, code style etc) one can get better at programming and everything it entails. The biggest mistake one can make is to get comfy and not strive for improvement anymore. I agree, that some people are better suited to be programmers than others and may have a natural aptitude for it, but a lot of that can be made up for with hard work and a constant drive to improve.

People without a strong natural talent may never become as proficient as those with talent (talent in the sense that some people are just great at Math for instance, while others struggle with it), but they can certainly surpass those who are not willing to continiously work on their skills.

Do you love coding? Then keep working on it! Don’t just give up, because someone tells you, that you will never be in the top 5%.


I think there’s something subtly wrong about the assumed causal connection here between people having a natural talent for programming, and not having a natural talent. I find that like anything in life, the best determiner of someone’s greatness at a particular discipline is all in their attitude. I’ve seen it in programming, I’ve seen it in music, and I’ve seen it in sports.

Attitude usually determines the vast majority of a given programmer’s long term ability to learn how to code. I think Bill is probably right, but I think he’s skipped something in his description. I think what has skipped is that even if someone is capable of understanding how to code, a poor attitude will still guarantee that the person never becomes a truly great developer. It’s unfortunate and frustrating because I know truly amazing people that are stubborn and refuse to change their programming habits because of their mistaken belief that they know best, and that others are merely talking nonsense.

I think that people’s attitudes can change! And I think that this is the secret to becoming a great programmer. You need to read, listen, discuss, be ready to put yourself out of your comfort zone, and so on. But, the reason that most people don’t keep improving after a few years is because they are not willing to change their attitude, and they are not willing to keep pushing themselves further and further.


It doesn’t apply just to programming, but to EVERY skill out there!

Sure you’ll be a better runner if you keep running, or a better soccer player if you keep playing soccer.

BUT a professional soccer player doesn’t just play soccer every single day, they DELIBERATE practice, learn bunch of tactic plays, improving their body and mental strength, etc. Doing this certain things gives you more GROWTH.

As one said, “perfect practice makes perfect”. It’s not only about working hard, but also working smart.