Landing Your Dream Job
5 tips on becoming a self-taught programmer
What you study does not determine what you will do for the rest of your life. Here’s how I went from writing marketing plans to building databases.
In college, I bounced from studying one subject to another before settling on marketing. As part of a business degree, marketing seemed like a reasonable option, even though my heart was never really in it. After finishing my undergraduate degree, I went on to do my masters in International Business, prolonging the dreaded question: “what next?”. Given my studies, my career had to be in marketing, right?
Being a fan of Wunderlist, I checked out the jobs page and saw an opening for Community Manager. I applied and luckily got the job prompting a move from Florida to Berlin. I had no idea that a year later I would be an engineer on the 6Wunderkinder Backend team. Curious about how I landed the dream job I never knew I wanted? Below are 5 tips that helped me discover my passion for programming.
1. Learn on the job
When an interim position as QA Manager opened up, I jumped at the opportunity. This new role led me to learn more about how the technology behind Wunderlist works. The more I learned about things like git, functional programming and object-oriented design, the more interested I became.
Then one day, I received a bug report and started to investigate myself. I dived in and began to play around with the code base. After a while, I came up with what I thought was a decent solution. I submitted my changes for approval and received word that they had been accepted. This gave me the confidence I needed to start tackling bugs on my own.
2. Learn online
While I wasn't out exploring my new city and enjoying a few of its renowned beers with friends, I was at home learning about computer science and the internet. I took great online Computer Science 101 classes offered for free by Harvard, Stanford and MIT. I also soaked up any introductory material on programming, including courses from Lynda.com and Codecademy.
Soon, I started to learn basic Ruby and Ruby on Rails, the technology powering Wunderlist’s backend, through tutorials such as Michael Hartl’s Ruby on Rails Tutorial. By May 2012, I was beginning to write small Ruby programs to help automate testing.
3. Learn to overcome fear
My thirst to learn kept growing the more I tried to satisfy it. I asked question after question, trying to soak up as much knowledge as possible. I even started going to conferences and developer meetups.
Yet, at times, I felt a bit out of place. After all, it seemed everyone had studied computer science in college. While they were learning about compilers and operating systems, I was learning about the marketing mix and break even points. However, the fear of missing out just motivated me even more.
After a while, I realized that due to the vast nature of computer science, even the most experienced developers faced challenges each day that were new, scary and exciting. I would have to get over my fear of not being good enough, because I knew that if the fear ever went away, I wasn’t pushing myself hard enough.
4. Learn by doing
Soon on top of fixing bugs, I was building tools, like our new admin panel and our beta program’s download page for the QA and Support team. At home I would build my own apps, contribute to open source and work with friends on side projects. Eventually, programming began to feel natural.
I opened up a Github account, and began writing programs without concern for how trivial, stupid or down right bad they were. I was also able to look at other people’s code and learn from those that had come before me.
The programming world is filled with experienced people willing to share their knowledge. Avdi Grimm’s Pair Program with Me initiative, where developers of all experience levels can pair program with other developers anywhere in the world, is a great example of this.
5. Just go for it
At the start of the new year, I told Chad Fowler, our CTO, that my goal was to be a full-time member of the Backend Team by the end of 2013. He just smiled and told me that with my passion and willingness to learn I could easily achieve this goal. A short time later, before I even realized it, I was officially on the backend team, eight months ahead of schedule.
Despite working for 6Wunderkinder, I’m no wunderkind. With patience and dedication (and at times mild obsession) anyone can start coding. I’ve met others just like me - people from different backgrounds such as theater, political science and music who have found that their true passion lies in programming. If you’re thinking about taking the leap, don’t be afraid to take chances and explore.