Culture / Development

Code n00b: The Long Journey to JavaScript Proficiency (and Profit)

14 Apr 2017 2:00pm, by

When you’re a beginner, it’s easy to believe you’re a pretty good programmer.

Once you start actually using those foundational coding chops to try building actual applications, however, that self-image shatters. The moment you realize how little you really do know basically equals intermediate programmer status: achievement unlocked.

It has been just about nine months since I finished a boot camp on front-end web development, a symbolic span that has been weighing on me this week. I really thought I would have found a dev job by now but, it turns out, the timeframe for gestating tiny humans has got nothing on learning to code.

To be fair, I didn’t think there would be employers fighting over me and my n00b front end skillz the very day we wrapped up boot camp. I knew that further leveling up my JavaScript abilities would take time and work but would also be a worthwhile investment. What I hadn’t counted on was how lonely, confusing and, most of all, slow coding self-study can be.

Bootcamp had been a demanding, even all-consuming, program — but it also provided structure and a built-in support group of other students simultaneously wrestling the same challenges. At first, I was relieved to be done but quickly realized that lacking that structure and support, any JS progress was going to be hard won indeed.

It turns out my fellow grads were feeling the same void. So, within a month of finishing, fifteen of us started a JS study group. As other life and work demands intervened, our numbers dwindled quickly. Within 90 days, the herd had thinned to just three of us determined to make ourselves a new career in coding. Over the next four or five months, we agreed upon courses of study, checked in with each other, and helped each other problem-solve sticky project snafus. Gradually, however, we heard from Zac — who had started a new job, though alas not in coding — less and less. And then not at all.

So then there were two. Scary, but also encouraging. Because Asa and me, we haven’t quit. Even when it’s hard, when we feel stupid or ridiculously inept or like we will simply never learn enough to actually, finally get the job each of us semi-desperately seeks — even then, this fact remains. Not quitting is the key to…well, if not exactly success, then surely something asymptotically approaching it.

Asa is further along the professional curve, having done both front-end and back-end boot camps. He has also been actually employed as a developer, though that gig turned out to be short term and he is now seeking to solidify his JS skills as he seriously joins the job hunt anew. He is also extremely hard-working, and smart. If we are ever both interested in pursuing the same employment opportunity I am planning to push him under a bus because that boy is serious competition.

Until that tragic day, though, we have — through trial and error — plotted a more or less effective course from late beginner JS programmer status toward the earliest glimmer of intermediacy.

Trial and Error, Starting with Error

Early on our study group agreed to follow the unfortunately titled JavaScript is Sexy. This is a free DIY curriculum written up by Richard Bovell, himself a front-end guy who also blogs about web dev stuff. It’s an ambitious seven-week approach — more or less a framework for self-teaching JS — that combines textbook instruction with select Codeacademy tutorials and reading some of Bovell’s articles.

JSIS turns up second place in Google results when you search “Javascript curriculum self-study” so presumably a lot of people like it, or at least have checked out the premises. JSIS, however, just didn’t work for our group — in fact, the second week of that particular program saw the biggest wave of people leaving our group.

Part of the problem for some was the rapid learning pace, but we all struggled with a curriculum dating from 2013 that no longer tracked with the referenced materials. For instance, there was a newer version of the text, the old one no longer available, and the chapters/pages we were supposed to be working through simply did not line up. Ditto newer browser versions that no longer did what we were supposed to be doing with them, at least in the way we were supposed to do it.

CodeWars provides terrific practice for building JavaScript muscle memory.

JSIS’s comments section is testimony to how many of us are searching for a learning path from beginner to advanced, or at least practical, JS knowledge. Many, many confused posts begging for updated material were still rolling in as late as November 2016. (Bovell used to reply to questions but appeared to stop sometime in 2014, perhaps because he is now offering pay-for-content courses. He should maybe contemplate the possibility that his hot mess of a free gateway course, which is how many people evaluate a program, is turning off potential paying students).

Did Someone Say Practical?

By the time one of our remaining study group members suggested trying the Watch and Code: Practical Javascript course, we were down to four or five people. Looking back I regret that we’d lost so many during the Great JSIS Crisis of ‘16 because Practical JavaScript is a winner. Creator Gordon Zhu — a former developer, product manager and marketer at Google — has developed a linear, logical foundational course that is consistently supported and constantly updated.

I worked through PJS and was impressed. I would not recommend it for absolute beginners, however. Zhu is introducing fundamental JavaScript concepts like for loops and “if” statements, but things move really fast. Having a firm grasp of JS basic concepts enables students to garner the true gold of this course: wiring up all those tools into a real, working “to-do” app (and I promise no puppies are harmed in the making of this project). My personal recommendation for getting the most from this course are to go straight through the first time, building the app step by step with Gordon, and then do it over again attempting the code on your own.

PJS is an amazing product. All the more so because, even though it is free, Zhu makes himself abundantly available to support the material. He has live “office hours” every week to address questions, a PJS Facebook page for 24/7 support, and quickly responds to both PMs and emails. Once you complete the free starter course, Zhu offers a smorgasbord of advanced and subject-targeted courses for pay — all you can learn for an insanely reasonable $39 per month. I have not yet done this but have heard very good things from people who have enrolled.

Overall, this is one of the best “let’s get going in JavaScript!” courses on the web. More importantly, it can be one of those crucial missing steps in between learning the basics and actually being able to build useful stuff and, you know, passcode challenges thrown at you during job interviews. PJS does still require a significant amount of self-discipline, however. Self-learning isn’t for everyone, for a variety of reasons.

100 Days

My new year’s resolution was to seriously get good at JS. One of my strategies was to join the 100 Days of Code challenge, which kicked off on January 3rd. Participants commit to coding at least one hour each day, and being mutually supportive with as well as accountable to the 100DOC community via daily Twitter and GitHub documentation of each day’s progress.

It was a great experience, even though I dropped out at Day 62 when two weeks of serious illness sidelined me from pretty much everything. By that point, though, the discipline of daily coding had been pretty well ingrained, and I picked up with daily coding as soon as I was well enough to sit at a keyboard again.

Interestingly, when a current student posted to PJS’s Facebooks site seeking Gordon Zhu’s opinion of code challenge sites like Codewars, Zhu discouraged him from participating. His stated reason was that sites like these are a distraction, and you don’t build anything, you just do code snippets.

I, on the other hand, find Codewars truly valuable. I started doing challenges about three months into my JS learning, and for awhile was doing one each day. While it’s true the exercises are unrelated to each other and don’t accrue into any kind of app or project, they are terrific practice for building JS muscle memory. I really love coming up with a solution, then looking at everyone else’s solutions to see how they went about things differently (and, almost always, better). I have learned a great deal of JS doing Codewars, even though it is not a formal “curriculum.” Most significantly, conquering these challenges built self-confidence and helped me start to feel like a gen-yoo-wine coder.

Free Code Camp

I honestly don’t remember how I first ended up at Free Code Camp. But I have been working on its Full Stack Certification track since January, and I really like that it combines instruction with code challenges and building increasingly complex projects. Once students reach a certain point in the curriculum, you get paired with a nonprofit organization and help them build an app or website or whatever other real-world product they need. I haven’t gotten that far, but it seems win-win: Nonprofits get free help, coding n00bs get valuable real-world development — something we can ultimately show to potential employers. There is also a crucial social/community aspect: The Free Code Camp encourages students to join local study groups, typically run via Facebook, for staying accountable and getting help and feedback.

Again, the Free Code Camp moves pretty quickly and I’m not sure I would suggest it for an absolutely beginner. However, it seems like a viable next step for coding boot camp grads looking for structure and support to continue learning. (Asa is a Treehouse guy, by the way — I haven’t used that site but it seems to really be helping him make respectable progress similar to my experience with the Free Code Camp).

My takeaway after six months of struggling on my own to become adept at JavaScript: it takes a tremendous amount of self-discipline. No one cares but you, ultimately, whether you sit down and code vs catching up on your Netflix queue. So having accountability to someone or something, a group or cohort or program, is clutch. Asa and I, the last two members of JSIS Study Group (Our motto: “Damn JavaScript, you lookin’ fiiiine…”) have a mutual shaming agreement wherein we give each other shit when we miss our self-stated deadlines.

Your mileage may very much vary, of course. The important thing is to just get on the road and drive.

Feature image: Denys Nevozhai via Unsplash.

A newsletter digest of the week’s most important stories & analyses.

View / Add Comments

Please stay on topic and be respectful of others. Review our Terms of Use.