Through sheer luck and a generous professor, I nabbed a two-month fellowship at Knight Lab after I graduated from Northwestern’s graduate journalism program, despite considering myself a web development newbie. I knew full well what the Lab did, but I never imagined getting involved on the development end. My aim at the start was to research a potential digital tool to aid in the practice of journalism and hand over a stack of paper to the pros to translate to code.
After getting my idea approved, I walked into the Lab thrilled to start. Armed with coffee, highlighters and Google, I was invincible. Then, during my initial meeting with Joe, where we set goals and guidelines for the next two months, he said, “And at the end I think you should build a website to showcase it.”
A website? Me? Sure, I’d used websites. I spent an obscene amount of my day on them. But to build one? He might as well have asked me to hotwire a car or split an atom. Nonetheless, I agreed, thinking to myself that that was farther down the line, and I’d cross that perilous, rickety bridge when I came to it.
I came to the bridge faster than expected. Despite using a month to scrape together every bit of research as possible, I eventually ran out of things to look up, an uncomfortable but fortunate eventuality. To get me to learn coding, I had to be backed into a corner and told unequivocally that this was what I had to do now. At Knight Lab, that’s just what happened.
After a month of quality time with an HTML textbook and Sublime Text, I’ve learned a few things. Being completely honest, learning to code is hard. Being just as honest, learning code is not as hard as you think it is. If I were to speak to someone else embarking on this journey, I think there are only a few things they’d need to know.
They call them ‘languages’ for a reason.
What can frustrate many people about coding is that you have to speak the computer’s lingo, and you have to speak it well. You have to learn what tags mean what. You have to learn what sections go where. You have to learn vocabulary, grammar and syntax. And it is a demanding language. In Spanish, you can write ‘n’ in place of ‘ñ’ and you will generally be understood, if not giggled at. In code, ‘;’ and ‘:’ are not interchangeable and never will be.
Like any language, you have to endure endless mistakes and constantly consult your dictionary while you stumble through the most basic of sentences. It is very easy to give up, but there’s nothing quite like when you type a line unassisted, open Google Chrome and realize you’ve successfully spoken computer.
No programmer is an island.
The term ‘open source’ means little to anyone outside the arena, but means the world to someone learning to code. In places like Bootstrap, Github and Wordpress, there’s a culture of camaraderie that’s very difficult to find anywhere else. A surprising number of total strangers want you to learn. They take time and energy to build something beautiful and functional, package it neatly into a zip file and merrily give it to you to break into a million pieces. And given the come-one, come-all attitude of coding, there are a huge number of forums and enthusiasts who are willing to answer any question you have. Even if you’re shy, any question you have has probably already been asked. Challenge: Go to StackOverflow and try to find a problem there isn’t an answer to.
Just do it.
I’d heard often from programmers that the best way to learn web development is to…well, web develop. It’s surprisingly true. Things like Codeacademy can hold your hand, but at the end of the day, when you’re sitting in front of a blank index.html file, there is little to do but start typing. One of my professor’s favorite pieces of advice was, “Open the program, hit buttons and break things.” At the time, it struck me as a little inefficient. After a month, I can’t see what else you would do.
We’re used to huge barriers of entry to any profession — needing work experience, certified degrees or experienced mentors. The most bizarre and most wonderful thing about learning how to code is that you don’t need any of that. All you need is an Internet connection and resolve. There is truly no limit to what you can learn, a fact that is dizzying and overwhelming, but also a huge rush when you start to pick up on it. The determining factor in learning to code isn’t your background. It’s your level of motivation.
My first website itself is nothing to write home about. With a hefty boost from Bootstrap, it is a list of nicely formatted text that scrolls and jumps from section to section. Still, I’m immensely pleased with it. My fellowship at the Knight Lab finishes in a mere seven days, but my education in coding has just begun.
To anyone as thoroughly unsure as I was about venturing into the world of web development, I’d strongly encourage you to stop worrying and start typing. (Right now, ideally.) If you want to construct a website, there is every tool imaginable at your disposal. All you have to do is pick one up and start building.