As my third quarter at Medill came to a close in September I found myself at a crossroads, because after years of being paid to simply put words on a page, I was switching teams.
I had earlier enrolled in the school’s interactive track because deep down, I knew I wanted to learn to code — or rather, I knew I liked the idea of learning to code. Technology is constantly evolving, and journalism technology has an extraordinarily strong community full of smart individuals and can be used to build some seriously useful stuff.
So, per a tip from the Lab, I sent an email to 2013 Knight-Mozilla OpenNews fellow Noah Veltman, one of a few “journocoders” who have acknowledged the pressure they can occasionally face to match wits with those who have dedicated far greater portion of their lives to making things on the web.
I heard back from Veltman a week later, and his response was exhaustive and poignant. Here’s a few key points that really stood out:
...the kind of coding you do in the newsroom is so different from true ‘computer science.’ You aren't solving hard CS problems most of the time. You are solving hard design problems and hard editorial problems. Not that the coding is easy, but it's more nuts and bolts, not theory. It ends up being a big grab bag of different techniques and tricks, often held together with duct tape behind the scenes.
A common worry among aspiring newsroom coders is that they’re not on the technical level of those with computer science degrees, and I think it’s easy for them to forget they (we) don’t have to be — especially for the jobs they’ll likely be doing. Obviously, different skill sets are required for different jobs, but don’t make the mistake of assuming that web-focused journalistic positions require the acumen of an M.I.T or hacker school grad.
Just like if you want to be a writer, you must write, if you want to be a coder, you must code. That's it. No amount of strategizing or trying to take the right class or buy the right book is going to shortcut the learning process. You have to put in the reps. Don't be that guy who theoretically wants to do this stuff but avoids actually sitting down and doing it because you haven't gotten to the fun part yet. The sooner you start, and the more time you spend on it, the faster you'll learn, and the faster you'll get to the fun part.
If front-end is your goal, you may want to print the above paragraph, paste it to the top of your doorframe and slap it prior to sitting down at your office/desk/workspace each day, Fightin’ Irish style, because these are words to live by. Becoming proficient at programming languages isn’t magic. You’re never going to find the “right book,” nor should you rely on just one resource to help you along the way.
For me, the “fun part” is something as simple as correctly floating an image so it aligns with a paragraph, transforming a few tags into the beginnings of a horizontal nav-bar by adding an inline display or creating a hover effect over an element. Amateur to some I know, but it’s fun to see these things work, and I doubt I would’ve attained that sense of accomplishment by reading the latest flavor-of-the-week book cover-to-cover. Instead, it’s about diving into something you’ve got a vested interest in, or you’re likely to suffer a handful “false starts” as programmer and entrepreneur Spencer Fry notes in a fairly recent blog post:
It's simple, really. You must have a project in mind that you want to see built. Not any project, but a project that you care so deeply about that nothing can deter you from shipping it.
The lightbulb didn’t go on until age 28 for Fry — a full 10 years after he first decided he wanted to do something “computer related” as a profession. And 10 years ago, learning to code wasn’t as important as it is today or seen as a way to advance journalism career. For instance, consider this recent tweet from Joshua Benton, director of the Nieman Journalism Lab:
Look, not every journalist should learn Python! But if you want to ensure future employment, it’s prob as good an investment as is available.
Back to advice from Veltman:
...we can all learn more and accomplish more by leaning on each other than by comparing ourselves to each other. It's not a pizza pie. Someone else doing something cool doesn't take anything away from you. Quite the opposite: it paves the way for you to learn interesting things, to build on what they've done, to collaborate. You should welcome being surrounded by intimidatingly smart and accomplished people; punching above your weight is a lot more fun than punching down!
This is too important. Although many web-makers won’t admit it, there’s a level of insolence that exists between those that “know what they’re doing,” and those that don’t. Pop culture occasionally reinforces this stereotype, and, for whatever reason, it’s often intimidating for a novice to ask an experienced developer for help. This needs to change. Breaking down that wall and encouraging collaboration between tech and writing teams can improve journalists’ comprehension of code and also enhance productivity.
The most important thing you learn as you learn to code isn't specifics, it's confidence.
Webmaking is not for the impatient. Bugs invariably pop up no matter how skilled you are. A significant moment in my journey toward technology comprehension occurred during the dawn hours in early June, with the deadline for a mock-website I’d been working on for an interactive producing class looming.
It was my first time hosting a site on Wordpress, and I’d been battling its infamous “loop” since early that afternoon, attempting to cohesively align all the elements on my homepage. Hours of immense frustration later, I was a click away from sending in an unfinished product before I came across a plug-in that allowed me to alter Wordpress’ CSS from within the CMS itself. The code in my text editor was too fragile to touch, but the changes made in the plug-in finally resolved my issues. Is duct tape holding it together? Sure (maybe a little Elmer’s Glue, too). But hey, it worked.
Mentally, I consider myself in a better place than when I began my fellowship with the Knight Lab five months ago. I’ve graduated from “I want to code, please teach me” to “Maybe I can figure out what’s not working on my own (hint: check the console), but if I have a question, I’m not afraid to ask.” Working with lab veterans Tyler Fisher and Rebecca Lai during our weekly Open Lab Hours hasn’t hurt, either. However, there’s always more to learn, and with a post-grad internship with the Lab on the horizon, I’ll have more opportunities to continue putting in my reps.