One year ago today, I had literally no real programming experience. 3 days ago I accepted the offer for my first programming job… a 100% remote position with a great salary and benefits. I did it.
I’ll spare you the details of the learning-to-code process in this post, (I wrote a bit about that here) but I will say that a large part of my success is due to my involvement in a couple of different online communities. Most of my knowledge has come directly from The Odin Project and most of my motivation has come from being involved in the community that centers around their chatroom. (come say hi!)
When I first dove in to learning programming (April 20, 2016. Easy to remember because that’s the date I started my GitHub account.) it was primarily going to be a hobby for me. At the time I was a high school teacher, and since teacher salaries are generally rather low I did have some ideas of a side-gig or a summer filled with freelancing to supplement my income, but I was definitely not considering leaving teaching at that time. As time progressed, however I started hearing about other people who were in a similar situation and who had successfully made a career change.
I eventually started telling people that I was happy as a teacher and not looking for a career shift, but that I might consider it at some point in the future. At this point (6 months into my learning, more or less) I still considered my coding a hobby, but I was starting to see the usefulness of the skill a little more clearly. I created a couple of actually useful side-projects that went beyond the tutorials and toy apps that most people start with. The fact that other people were actually using something that I created was (and is) addicting.
About 3 months ago I decided to actually start looking for a full time dev position. I had talked to a few people in the industry, one of which was willing to give me a “tech screen” (basically a mock-interview) to find the holes in my learning and tell me what I should work on next. Obviously there was plenty I didn’t know, but he seemed generally shocked at how much I had successfully learned in the 9 months or so that I had been working on it. Near the end of the interview he said “If I were looking for a Jr. Developer, I’d hire you right now!”. Maybe he was just trying to make me feel good (ha) but that got the gears turning in my head…
To others that are either just starting out, or beginning to consider making the shift, let me tell you that getting a job isn’t easy. I’ve submitted more than 100 applications over the past few months, and after all of that I only actually got three interviews. The position that I have accepted did not come directly from submitting an application but from a connection I made with one of the hiring managers. Your experience may differ of course, especially if you’re willing to take an internship or an in-office job, but you should be ready for boatloads of rejection. It’s frustrating, because in the past year I’ve been hearing constantly that there’s a “shortage of developers” out there.. that there are thousands of jobs that are going to go unfulfilled in the next few years because there just aren’t enough programmers. In a climate like this it should be easy to get a job right? I realize that I made it more difficult on myself by insisting on finding remote work but it’s worth mentioning that finding a job is harder than it seemed like it was going to be when I really started.
There are a few key items that came up during the course of my interviewing that I think directly led to me actually getting the job. Because I had no professional experience and because the positions were remote, all of the interviewers I spoke to were interested in figuring out how much I knew about working on a distributed team using tools like Trello, Slack and of course git/GitHub. Luckily, during the past year, and especially during the past 3–4 months since I completed the Odin curriculum, I have worked on several collaborative projects using the aforementioned tools which made those questions relatively easy. I feel very comfortable saying that it is a good idea then, to seek out opportunities to work with others. Work on an open source project, find some friends (locally or in a chatroom) and work together on something. Do some pairing… get used to working on a team and be able to talk about how you can do it effectively.
The other thing in the interview that seemed to impress my interviewers was the fact that I had studied. Obviously the details here will change, but in the job listing there were a few clues about what types of skills they were looking for.. so for the week and a half between expressing my interest in the position and actually interviewing for it I focused my studies on those things. In this case, all of the items they mentioned (CSS animations, flexbox, and grid) were all things that I knew about but I really dug in deep and learned plenty of things that I didn’t previously know. When these things came up in the interview it was clear that I knew what I was talking about.. because I did.
Finally, I mentioned above that this position did not come directly from my submitting an application online (the “front-door”) but rather “through the side-door”. Finding jobs by making connections is not a new concept, and during my job search I came across that advice several times. The missing piece for me was, how on earth I was supposed to do that while looking for a remote position. I didn’t think that I was going to be able to meet my employer by attending local meetups because I was not looking for a local job, however in the end that is exactly how I found it. One of my local meetups has a slack room and after hanging out for just a little while I decided to ask if anyone knew of any local positions that would allow me to work from home and my new employer contacted me shortly after.
I don’t want to say you should never try the traditional application route, but be aware that of my three interviews, only one came from submitting an application through their online system. The others (including the job I got) came from knowing and connecting with someone within the company who was able to push my application through when it likely would have been ignored originally. The reason for this is that even if I am an amazing programmer, unless I lie, my applications state that I have no formal education and less than a year of experience. Even if I submit an amazing portfolio and a nice full GitHub account most hiring managers are going to instantly reject that application. Going through connections (the side door) connected me to someone that would actually take a minute to consider whether or not I was a decent programmer before burning my application for lack of experience. So, be ready to get involved and talk to people. Make friends and connections. Go to meetups.. even if you’re looking for remote work. Knowing people makes a big difference.
In conclusion, I want to say thank you to everyone that’s helped me along the way. I have an amazing group of friends on the net and locally that have been supportive and helpful along the way. My wife doesn’t have a clue what I do when I’m poking away at my laptop, but she’s supportive and proud of what I’ve accomplished. One year ago I never would have imagined that this was possible… but here I am. I’ve done it.