Tim Pittman

Learning JavaScript: Lessons

Earlier this I decided to learn JavaScript. Here’s what I’ve learned thus far.

Background:

I ran into an article by Derek Sivers on learning how to program: https://sivers.org/prog.

Then his follow-up article on learning JavaScript. https://sivers.org/learn-js

After running through FreeCodeCamp’s HTML/CSS courses, these articles inspired me to tackle JavaScript. I figured it’d be fun to learn, help me in my current job, and had little downside.

Learning JavaScript

I started with Head First HTML5 Programming.

If you are just staring out, I _highly_ recommend you go through this book. It very clearly walks you through what JavaScript does, what it can do, and walks you through building little apps along the way. I still use this book as a reference.

The style Head First uses to teach you the basics is invaluable. It creates a conversational style bolstered with side comments, Q/A, fake conversations and metaphors to help the ideas stick.

Derek also recommended FreeCodeCamp.com. So I started there as well. This gives you specific lessons on JavaScript basics. The exercises are a great supplement to Head First as they are interactive and make your brain sweat in a different way that Head First does.

I’m now about 279 challenges into the Front-End curriculum. I’ve built several small WebApps as part of the FCC curriculum. And now I’m working through the Intermediate Algorithm Challenges, which are pretty darned hard. You can view my Codepen here: http://codepen.io/Pittman021/. I am most proud of my Twitch.tv & Wikipedia apps.

What did I learn?:

I’ve become the non-technical guy who can troubleshoot CSS and HTML problems. I can speak more fluently with our front-end developers. I can troubleshoot and relay bugs more effectively with my team. And I now understand that there is no ‘easy’ or ‘simple’ solution to dev problems. Some of the simplest tasks building apps took FOREVER to complete because of the smallest and most frustrating reasons.

And I now understand that there is no ‘easy’ or ‘simple’ solution to development tasks.

I’ve become more effective at translating business requirements to internal teams and vice versa. Because I better understand how the sausage is made, I better understand limitations of potential features and requests.

I can speak to web developers on client teams now. Need to get some data form our product? Easy, because now I know how to talk JSON now. I know how to use that data to do stuff with it. It’s very liberating.

I really enjoy learning this. I enjoy the technical aspect of it. My day job requires flexing my soft skills. So I’ve enjoyed the hard, difficult, frustrating process of learning something more technical like coding.

I love digging and digging and digging until I come out of the other side with more understanding. I’m still a novice, but I’m learning everyday.

I forgot how rewarding it is to learn. To really sit down and dig into concepts. When was the last time you sat down and studied something? You’ll be shocked at how fast going through a book will bring you up to speed and make you feel competent.

I highly recommend you do the same. If you want to do X, but feel you don’t know Y, pick up a book. Photography, coding, writing, copywriting, productivity, etc. Find books/courses/classes/seminars to learn. You won’t regret it.

What do you want to learn?