About Learning To Code

Today I tell you how I learned to code from scratch.

Step 1: I graduate college and I determine my skills (Spanish, persuasion, and sales). Over the years I put them to use in sales at companies in Colombia, Uruguay, and France. I work hard. On the side I eat up books and blogs on personal finance and index investing. I save 75% of my monthly salary. I live frugally. And I become financially independent.

Step 2: I decide I’m going to learn to code because I always wanted to be more involved in tech decisions at the businesses I was with and it’s something I’ve always wanted to do* And I now have created the time and space to do it because I’m financially free.

Step 3: I decide how I’m going to learn to code, which is self-taught.** I opt for self-taught because I like that it’s the most cost-effective (bootcamps and college degrees are expensive) and DIY is more my style.

Step 4: I decide what I’m going to learn. I choose HTML, CSS, and JavaScript because I find out these technologies have been around since the web’s early days and offer a solid foundation to build off of. Plus I think learning the fundamentals of plain JavaScript will serve me well if I want to explore JS frameworks later. These three languages to start seem like wise investments.

Step 5: I bumble around looking for resources that’ll set me on my path. I’m lucky and I find Derek Siver’s blog post Should you learn programming? Yes, which introduces me to WickedlySmart’s Head First textbooks. They’re game-changing. And are hands down the best educational materials on programming I come across. It is clear the good people at WickedlySmart understand teaching and want you to learn.

Step 6: I go through the textbooks in this order:

I do every exercise. I make Anki flash cards to boost memory of important concepts. And simultaneously, I work my way through FreeCodeCamp, work on a Jekyll blog, work on some projects, read MDN, read W3Schools, listen to podcasts like CodeNewbie, JavaScript Jabber and ShopTalk Show, watch screencasts and talks.

Step 7: One day I find myself testing JavaScript in the console and editing the CSS of a web page using Chrome’s DevTools, something that not long ago seemed as foreign as Mars, and realize, damn, I know how to code. I declare myself a front-end software developer.

* This is the hardest step and the most important because when you make a decision, you follow through. I think the difference between success and failure is oftentimes the difference between taking the time to stop in your tracks, be honest with yourself and make a decision v.s. not doing that. For awhile I wanted to learn to code and I’d play with Codecademy or Kahn Academy. Watch YouTube tutorials. Read blog posts. And then I’d eventually lose steam and stall out. The difference between then and now is that back then I never made the decision. You need to make decisions.

** I use the term self-taught because it appears to be an accepted term in web development circles. I don’t like it though because it de-emphasizes the teachers and contributors who came before you and wrote textbooks, wrote blog posts, created screencasts. In this spirit, I’m more of a motivated independent student taking advantage of the resources at his disposal thanks to others.


Originally published at gilbertginsberg.org