Code n00b: Not All Who Wander Are Lost
Not all who wander are lost is a favorite “Lord of the Rings” nerd-ism, and one I’ve always personally loved. Gandalf, however, never tried to learn computer programming, and also he already had a pretty sweet job in the wizardry sector. For those of us working toward that first junior web dev job, though, wandering can be a serious issue.
I had a significant, if humbling, breakthrough moment teaching a “learn to code” workshop a couple weekends ago where I realized the depths of my own addiction to wandering. I was explaining how learning to code is like learning a new foreign (spoken) language, and how nobody expects to speak fluent French after spending a few hours learning a bit of basic vocabulary and syntax. And it hit me that I actually DO kind of expect this, at least from myself. Not in such a blatant, direct way — but much more insidiously. As in, before I can build any kind of serious, involved project on my own, or before I can legit put myself forward for jobs I want, I need to be fluent. In everything.
This is a really damaging assumption: the equivalent of deciding you desperately want to go to Paris, but can’t even allow yourself to start planning a trip until you speak flawless French. Which is ridiculous. I’ve happily traveled foreign countries arriving only with a handful of basic phrases (“please,” “thank you,” and “where is coffee?”), confident that I would pick up the rest, as I went along and exactly when it was needed. This actually worked — I found my way around, learned more as I went along, and enjoyed help from friendly natives along the way. A tactic that should apply just as well to learning to code.
My wandering takes a deceptively legit form: I keep learning things. Chasing after new knowledge, new skills — after all, there’s a constantly evolving plethora of frameworks, platforms and micro technologies out there. So many cool toys! I love my new career path so much that I want to Play With All The Things… but, dang. It has now been exactly one year since I first attempted to onboard the web development profession like a crust punk leaping onto a SanFran-bound boxcar. And where has this constant shifting between content learning strategies (goodbye Udacity, hello Watch and Code!), technologies (“This week I’ll try out React!”) has gotten me exactly, well, not nowhere.
I do know vastly more than I did one year ago, and not just because anything is more than nothing. But I am definitely not where I want to be, and that trip-to-Paris epiphany made me realize that the root cause of this failure to fully progress is, well, me.
The way I’ve been going about this since graduating boot camp is the professional equivalent of trying on every piece of clothing in your closet, seeking the perfect outfit, only to end up still standing there in your underwear.
Realizing this was a tough, discouraging moment. Feeling like I’ve wasted so much time and effort pursuing so many different things, and never quite finishing anything all the way. But, having asked around in my circle of JS study buddies, I also now know that I am far from the only code n00b wandering between projects and platforms — too many projects and platforms — and feeling really stuck, unable to progress. We seem addicted to the new, the promise of better or easier or faster. Which is understandable, but also the fast track to failure.
The first step to recovery, however, is recognizing you have a problem. And now the question becomes, what to do about it?
The Hidden Path
The trickiest part of picking your way through the tech learning wilderness is that there is no path. I’m not the only one who has wasted a lot of time looking for that mythical pre-made route mapping exactly where to go and what to do first, then next, then next. Realizing that there is no one “right” way to go about this means taking some time to step back and think hard. About where I am now and where I want to get to. Which, I’m realizing, is another thing I’ve not quite done to completion.
I thought I was already doing that. I mean, “Learn front end web dev skills and then find a job” is a reasonable goal. But it’s too vague. Everything seems important all at the same time, and I end up working on one thing for awhile (see previous, “This week I’ll learn React!”), only to put it down to pick up something else. I put in all kinds of hours every week, but they are scattered between at least half a dozen areas of effort. All of these areas are legit learn-to-program activities, but I seem to almost never. Finish. Any. Of. Them.
Case in point: what is the first thing you need when hunting for a junior web dev job? Why, a portfolio of all the cool projects you’ve built! But: How many of us have started, yet never quite finished, building that portfolio site? I know I’m not alone (cough … cough). I have been working on my portfolio site in fits and starts since, um, November. Yikes.
There are all kinds of good reasons why it’s not done: I have been developing better, more impressive projects to showcase. I’ve learned a lot along the way and so this might also mean a redesign (or two) and some new features for the site itself. But at some point, you just got to get on the plane for Paris. Put that puppy up as a live URL and move on.
It doesn’t need to be perfect. But it does need to be, as in, have the virtue of existing beyond my local IDE.
So I’ll stop here, because instead of writing about all the other mostly-but-not-quite finished projects I’ve got languishing, I’m going to go and actually finish something. One thing. This thing.
How ‘bout you, Bilbo? Wanna stop wandering? Well, then, riddle me this: What are you going to finish today, this week?
Check out more Code n00b columns here.
Feature image via Pixabay.