Looking for a job at a company trying to save the world? Check out GoodJobs. It’s a job board I built with hand-picked engineering positions at companies trying to fix problems like climate-change and food insecurity.
Learning to code is hard. Software engineering, the field we most commonly refer to when talking about ‘learning to code’, is based upon a foundation of computer science and applied mathematics. And while it is true that you don’t need to be a mathematician or a computer scientist in order to be a software engineer, the another truth is that learning even basic programming concepts is hard for most people. In this article we will explore a little bit of learning theory, and how we can apply it to those just getting started with learning how to code. I’ll lay out some of the advantages and disadvantages of concepts like the bottom up versus top down approaches to learning, as well as some alternatives that are worth considering. This content is aimed at newer programmers, but these concepts are applicable to anyone who is interested in learning more effectively, even if the topic isn’t programming.
I’ve been a professional programmer for over 7 years, and I started messing around with code way earlier. If there’s one thing that I can say confidently about this profession, it’s that the learning never stops, and it never gets any easier. Every time you master a difficult concept, you can be sure that another one is right around the corner. I spent a lot of my time early on reading obsessively about programming topics, mostly in the form of what shiny new framework was better than the old solution to the problem. I read about topics like whether or not I should use jQuery or MooTools for my next website project. Frequently felt way out of my depth, like there was no way I could possibly understand any significant part of the web development ecosystem (and this was before the explosion of front-end solutions). Thankfully for you, people like me exist, with just enough perspective to help you steer clear of pitfalls and time sinks that won’t help you effectively level up as a programmer.