Original question from Quora:

How can I become a very good programmer?

My Answer:

So you want to be a very good programmer? Here is what I would do to get there.

First, wake up at 4:00 am every day. This will buy you something like 3 or 4 extra hours in your day, uninterrupted.

Oh and when I say every day, I mean 7 days a week.

That is 1,460 hours a year.

That is nearly 3/4 of a work year extra, so if you do it right you are gaining a massive time advantage over your competition (other programmers).

Now, how to spend it…. ah yes that is the question is it not?

I don’t care exactly how you spend it, but I would focus on two things…

Write code. Learn new things. 60–80% of your time should be spent writing code if you want to get better at programming. At least for the first decade of your career. Build things, lots of things, even if there is nobody to use them or they are scratching your own itch.

The balance of that time should be spent learning new things. Useful topics include programming languages, frameworks, public speaking, writing, money/wealth building, personal development, and sales/marketing.

Over time the balance might shift more toward learning new things once your programming skill is sufficiently high that you get past the 80/20 curve.

Now, here’s something important to understand. This is a system that you do every day, so every time you do it you are a little better off than you were before.

It has a kind of compound interest component to it where over time you are proficient at programming, speaking, presenting, writing, selling, wealth, and happiness that you have a balanced, happy, successful life.

One other thing to note. You will begin to notice your colleagues don’t really study outside of work. Pay them no mind and go about the business of grinding and getting better. As time goes on you will pass them many times over and they won’t really understand why.

That is often the way of things. I imagine Michael Jordan, Kobe Bryant, Tiger Woods, Peyton Manning, Jerry Rice, and other hard working, grinder athletes had similar experiences playing sports with others who just didn’t train as hard as they did.

After ten or twenty years, the nearly 1,500 hours a year of practice and self improvement turns into 15,000 - 30,000 hours. That is the equivalent of 7–15 years of extra work, or something like getting an undergraduate, masters, phd, and then some of extra skill advantage.

It’s a worthwhile and meaningful advantage that will make you a very successful programmer.

-Brian

P.S. Have you subscribed to Code Career Genius yet?