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
- Year 0: The Peter Norvig Challenge - Year 0
- Year 1: This Post
- Year 2: 3 Great Decisions - Year 2