I have been meaning to begin writing about my experience as a software engineering fellow at Hackbright Academy for ages. Ages! At first, I thought I'd begin by writing about my experience applying for the program, but then I was busy busy busy finishing my thesis, graduating from grad school, and preparing to start Hackbright. Then, I figured I'd begin by writing about what we were working on each week, but somehow it is now the first day of our fourth week. The time has been just flying by. So now I'll have to backtrack a bit to recap the things I had hoped to cover, but I figured this is as good of a place to begin writing as any. After all...
...the only way to start is to start.
This is as true for blogging as it is for starting anything you've been curious about trying, but it can be very difficult to make the first move. This was certainly true for me when it came to learning to code. When I entered grad school for urban planning, I assumed that it would be an opportunity to learn deeply about the interests that had attracted me to the field: urban design, environmental psychology, and urban systems. I signed up for classes that related to these interests, but I was also encouraged to sign up for the introductory geographic information systems (GIS) course, as it was a "valuable skill" for urban planners. I never imagined that this GIS class, taken out of some sense of academic duty, would change my professional path in such a major way.
In the GIS class, we learned to use ESRI mapping software to take the data with which urban planners are well-acquainted (Census data, American Community Survey data, transportation data, data we had gathered ourselves in neighborhood surveys, etc.) and visualize it in a spatial manner. I had never been a map nerd before, but this just clicked for me. Seeing the communicative power of maps, how they could help tell a story so clearly, and how community members used these maps as a starting point for opening up conversations about important issues in their neighborhoods--this hit the spot for me. Coming from a background in design, I appreciated the positive impact that well-designed maps and data visualizations could have on the planning process. I began to work on more complex projects, and soon found myself relying on help from software engineer friends to gather and munge the data I wanted to analyze. I appreciated their help, but wished I could do the work myself.
A friend of mine, who worked for a company called Mapbox, saw my growing interest in mapping technology and let me know about the meetups of folks involved in OpenStreetMap. These meetups deepened my interest in mapping; I really liked the community, and I really liked the work they were doing. At a breakfast meetup a few months later, I mentioned to another friend that I'd been wanting to learn to code for quite a while, but never knew where to even start. He told me about Railsbridge, a group that organized educational workshops aimed at helping introduce women to programming. I appreciated this new info and planned to look into it, but by the time I arrived at work, an email was waiting for me from this friend. He said he'd checked and there was a Railsbridge workshop happening that very weekend, starting that evening. It was just the push I needed--I signed up and attended, received my first taste of programming and loved it.
This set me off down the path of actually, really, FINALLY, starting to learn to code. I'm so thankful that this friend went out of his way to nudge me to do Railsbridge. If he hadn't, who knows how long it would have taken me to find a place to start. I hope I can pay this kindness forward someday; while I don't think it's necessary that every single person learn to program, I do think it's important to encourage people who express interest in learning, especially those who may not know where to begin, or who may not see a reflection of themselves or know where find a community within the larger field.
Although my first steps into programming were learning Ruby, I soon switched to learning JavaScript because I really had fun working on interactive web projects, using Leaflet and D3. Looking back, I can see that I probably could have started with any programming language--learning one language really does allow you to learn others more easily--but the key to staying motivated was the enjoyment I found in using what I was learning about JavaScript. My advice to anyone who is interested in starting to learn to code would be this: clearly, the most important thing to do is take that first step and start, but that first first step can be the hardest, and it's difficult to know where to start. Think of something that inspires you, something you are passionate about, something you'd enjoy creating, then try to find out what you'd need to learn in order to make it. If you love your project, you'll stay motivated to learn, and you'll have fun along the way. Perhaps it would be more apt to say...