4 Great Decisions I made In The First Year Of Teaching Myself Programming

Publish Date - 21st Dec 2021

Last Updated - 21st Dec 2021

It's been 1 year in my Teaching Myself Programming In 10 Years Journey.

From day 1, I wrote code that has been going into production for my company. My company is not a SaaS or Software business. I create internal software to support the delivery and admin process.

Here are the 4 great decisions I made in the first year of teaching myself programming.

Building Production Applications

Portfolio applications are a waste of time.

A portfolio app is a short way of saying an application that doesn't do anything . Good software evolves over time. Real life software development is about adapting around the needs of the customer. And reworking (or creating new) features to support these needs.

For that reason, 100% of my code was for production applications. My customer was myself and my team.

Taking Focused Coding Hours Seriously

Learning complicated things is simple. Sit down, shut up and execute for 4 - 8 hours.

But, simple is not easy. In a world of distraction, doing that is almost impossible. I have a curse though. I don't like social media. or notifications. I have almost zero apps on my phone. I prefer silence.

I value "owning" my own mind and thoughts.

What does any of this have to do with programming?

Programming is high input, high output. It requires many variables (no pun intended) to be correct. This was the same as when I was an Excel Programmer. Focused time is the only time when I could get real work done.

For that reason, every day for the last 9 months, I would sit down at 5am for 3-4 hours to write software.

Becoming a "Full Time" Software Engineer

Overtime, as the production applications grew, I spent more time programming.

Software engineering became my full time work. I built more and more internal modules for the company. And strange thing started to happen... The total cost of freelancers dropped to almost zero. An army of machines could now do that work.

Focusing On One Language

Peter Norvig's advice is to learn many languages. To understand the different paradigms of software engineering.

That may be true but I do not think that is a good starting point. Understanding programming fundamentals (data structures, scope, closures etc) and good software design principles are more important. To support my learning of these fundamentals I stuck with one language: JavaScript (Node.js).

This turned out to be a good decision. Coupled with my "full time" software job, I focused only on these fundamentals. (except that time where I joined the Emacs vs Vim holy war!)

See other posts in this series