Day #1: Laying the Groundwork
My goal is to become an expert programmer. I know it’ll take much more than 100 days, but you know what they say about a journey of 1000 miles. It starts with a single step.
As for my first step, I should decide on a language. I’m somewhat flexible on the choice. JavaSript and Python are the two clear contenders. They both have massive communities, so support is readily available. So are training resources. Every conceivable method of learning is available for both languages.
I have a few projects in mind I’d like to develop. I feel JavaScript would be the best suited for those projects. Most are frontend apps, but past experience (mostly with WordPress blogs/themes) has taught me that I will spend too much time on pixel-perfecting and not enough on actually learning to code.
Should I Start with JavaScript or Python? #
I think I’ll start with Python. I know JS isn’t all front-end work, but most of the training resources I’ve found include HTML and CSS. That’s not what I’m looking for. Python feels like the better choice. It’s equally popular and ubiquitous, but the beginner training trends more towards a CLI-based approach, which will keep me away from the deeper rabbit hole I know I’ll fall into.
I’ve dabbled in Python a little over my years in IT. I doubt I’ve written more than a few dozen lines of code. I looked at it for my chess engine project but dismissed it in favour of a lower-level language. As you’ll recall from yesterday’s post, my focus was on the engine and not on learning the language.
Now, I want to learn to be an expert program and become completely fluent in my chosen language. I’ll start with Python and see where it goes. As an aside, given its popularity for machine learning and data science, it’s likely a road whose end I may never see. But that’s half the fun.
How I Plan to Structure My Learning #
I plan to spend three hours each day learning my new craft. I’ve broken it up into two 90-minute sessions. One focused on coding along with training tutorials. The second focused on writing code on my own, likely in the form of challenges until I have an idea of some basic apps I’d like to write.
For instance, I’d like a script that runs every night on my computer and sweeps all the screenshots off my desktop into a folder or maybe the trash. I use screenshots (or snippets) a lot for my day job, and every few days I need to tidy up my desktop. Perhaps a script to automate the process would be an interesting project.
If I find myself with extra time throughout my day, I’ll spend a few minutes on a learning app like Brilliant. I love the gamified format. It works well for me with Duolingo and my Spanish lessons. I’ve also dabbled in German, Russian and French. I’ve just started with Brilliant. I haven’t decided if I want to spring for the full version. Any feedback from current users would be appreciated. I also tried Mimo, but I feel it’s just a limited version of Brilliant.
Like any good plan, this one is likely to fall apart quickly. But then I’ll just re-adjust and keep moving forward.
Only 99 more days to go…