A five-minute speech given at Django Girls NYC on March 27th about my journey to becoming a web developer.
As a child, I took apart appliances in my home to see how they worked. I learned HTML from a boy in my middle school library aide period. I built Geocities websites for the fanfiction my friends and I wrote in high school. But after I saw the required math courses for a computer science major in my college course catalog, I got my degree in journalism.
I thought I couldn’t be a developer because I was so bad at math, I had to take remedial arithmetic in elementary school.
When, as the online editor of the school paper, I helped transition the paper to a new content management system and taught myself how to build simple webpages, I didn’t think of myself as a developer.
Journalism didn’t pan out for me, and I fell back on what I thought of as my meager web skills to pay rent and feed my cats. I figured I could teach myself anything I needed to know, since there were so many resources for learning to code online.
The problem is, before you know about the subject you want to learn, you don’t know what you need to know about the subject. You also can’t distinguish the good resources from the bad.
I read blogs and worked through tutorials and took every free online class I could find. And I kept hitting the same wall, where I wouldn’t know how to solve a problem, or I was getting an error and couldn’t find the solution online, and I would quit working on that project and do something else.
I took on freelance work and used the projects as learning experiences. This was dangerous, because if I failed to finish the work, a) I wouldn’t get paid, and b) it would damage my reputation. But I got lucky, and I learned a few things – HTML, CSS, and WordPress – really well.
When I built WordPress sites for small businesses, managed a national non-profit website and built responsive HTML emails, I didn’t think of myself as a developer. These were all things I taught myself to do through trial and error, or by copying and pasting snippets of code I found online, and bashing my head against a wall until they worked. That wasn’t developing, I thought.
In the fall of 2013, I found out about a program called Thinkful. They were offering a Front-End Web Development class online, but unlike every other online class I had taken, Thinkful taught web development through a series of actual projects designed to teach fundamental programming concepts, and provided one-on-one mentorship. It was also much less expensive than the bootcamps I had seen springing up, and wouldn’t require me to quit my job to spend time learning. I signed up.
I learned more in a week with Thinkful than I had in a month when I was learning on my own. The curated curriculum combined with a mentor who works in the industry was exactly what I needed: tell me what I need to learn and help me out when I get stuck.
Thinkful showed me that I actually knew more than I thought in a lot of ways, but learning it in a formal way with proper terminology really helped my confidence and abilities.
Shortly after completing the course, I got my dream job as a front-end developer at an awesome company. I’m finally a developer.
Looking back though, I was a developer from those first experiments in middle school. Maybe not a very good one, and certainly a novice, but still a developer.
I still have days when I’m sitting at my computer, hitting keys and thinking “I have no idea what I’m doing!” But I’ve gotten comfortable with that. No matter what level of programming you reach, you are always going to encounter languages and bugs and frameworks that leave you feeling like a beginner all over again. Technology changes faster than we can learn. The key is to take a deep breath and get started. I’m still pretty bad at math, though.
I spent an embarrassingly long time the other day trying to remember how to add an SSH key to my computer. The problem was that everything Google came back with involved generating an SSH key, where I had one that I needed to store on my machine so that I could get access to a server. So here are the steps I would’ve liked to find the other day:
cd into the command line to get to home folder.
cd .ssh to get into ssh folder
sublime keyfilename, where
sublime can be any editor and
keyfilename is whatever you want to name the key file.
4. Copy and paste the key into the file and save.
“Not only does this help children spot errors in their own code more readily, but it also encourages them to consider using their peers for assistance more frequently.”
Really want to carry out this teaching strategy with my ScriptEd students.