Alli Rense taught herself HTML at age 12 and never looked back. Since then, she worked in web development and project management for the US House of Representatives (please don’t hold that against her), nonprofits, and startups. She cofounded a hackerspace in 2008 and put her English degree to use with the blog formerly known as Hot Guys Reading Books which gave her 15 minutes of internet fame.
“Everyone should learn to code!” exclaimed the Internet in 2013. While some disagreed, services like Codecademy and Code School are making the learning-to-code experience different from the days of reading thick programming books and attending classes.
But even with these friendly UIs and encouragement from the community, learning new concepts in coding–new languages, patterns, frameworks, or just learning to code at all–can be daunting, particularly when it comes to making your new knowledge stick. Here’s a crash course in how to prepare.
Even seasoned coders can relate: Sometimes a new job or project requires learning an entire new language. This often comes along with a deadline, limited learning time, and additional pressure when something big (a job! a raise! a product launch!) is at stake. Most coders prefer the “dive right in” approach to new languages, which can lead to problems if the coder is missing essential information on the new language.
In order to retain new skills, new and experienced programmers need to follow the principle of Elaborative Rehearsal, encoding new concepts by building on top of existing knowledge.
I identified logical thinking, abstract thinking, math, and communication as the skills that build a framework for learning to code. Resources for learning programming languages are abundant, and resources for building a framework exist as well. You just need to know where to look. I’ve compiled a list of resources for each of the building blocks.
Computers are dumb. They do exactly what you tell them to do, no more and no less. Often when a computer isn’t behaving the way I expect, I remind myself it all boils down to ones and zeros. Reminding myself that the computer’s behavior is pure logic helps me gain perspective. Programming languages are based on logic, and understanding how an if-else statement works before attempting to code is essential. Forall x is an excellent resource for learning the concepts of logic. For more practice, play games like chess, soduku, and logic puzzles. A large portion of the LSAT includes logic puzzles, and you can find practice puzzles all over the Internet.