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.
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
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.
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?
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.
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).
Your mileage may very much vary, of course. The important thing is to just get on the road and drive.