To say that I am excited to be working in this field would be putting it lightly.
I get paid to do what I love, and my overall happiness level has increased dramatically. A year and some months ago, I was still settling for a menial desk job that offered security and benefits, but not quite enough satisfaction, all the while nervously applying for programming jobs for which I didn't think I was qualified.
If you're reading this and you happen to be in the position I was until a little over a year ago, you may not realize that being a good software developer doesn't necessarily require a computer science degree or years of work experience in the field.
What it does require is:
These are traits that I believe a lot of programming enthusiasts have, but perhaps not all of them realize how desirable they are to potential employers.
I sure didn't, until I started my entry level programming job search. I was surprised to find that out of the companies I was actually interested in working for, not only were most of them not dismissing me for my lack of experience, but a few of them were actually taking me seriously and expressing interest in hiring me.
Many budding programmers have the misconception that they need to know X language or Y application framework in order to get a job as a software developer. Others (myself included, at a certain point in my life) may feel like no one will consider hiring them because they don't have a four-year computer science degree.
As I was applying for coding jobs, I noticed a pattern. For the most part, larger software companies and corporations would either never get back to me, or they would dismiss me early on in the application process because they have a hard requirement of a certain level of computer science education and/or an equivalent number of years of prior work experience in the field.
From what I've read about these types of companies, the application process is typically handled by Human Resources personnel or hired recruiters, neither of which are really qualified to judge the merit of a programmer, so perhaps it is for the best that these companies looked me over.
On the other hand, I found that the start-ups I applied to were more flexible about the amount of education or experience that a job applicant has.
At my job interview with Kevel, we talked about:
I had a similar experience when interviewing with other software start-ups. The software engineers who interviewed me were, for the most part, not concerned that I had little to no experience with the databases, languages, or frameworks that they use.
On the other side of the token, it would be inaccurate to say that there are no prerequisites to becoming hirable as a programmer. There are certain things that engineering teams look for when considering a job applicant.
In my case, this was not something that I consciously decided to learn in order to be more hirable, but rather something that I decided to learn because it made using my computer easier and more enjoyable. If you haven't already, you should consider reading a good book on using the command line -- if nothing else, it will change the way you use computers.
Somewhere in the world, there is a company looking to hire a software engineer, and they're growing tired of wading through applications from computer science graduates who have little experience in any language other than (let's say) Java and little desire to learn something new.
If you're the type of person who likes to learn how to do new things and you can demonstrate that you've learned a new language or two just for the fun of it, then you may not realize it yet, but you have a real competitive advantage over these other applicants.
Different companies have different strategies for assessing your ability to write good code. If you have a portfolio of projects you have built that showcase the quality of the code you write, then this may be enough for some companies. Other companies may give you an assessment of some kind, either during or as a take-home addition to your interview.
Regardless of how it is assessed, you can improve the quality of the code you write exactly the same way as you would work on any other skill: by practicing. Writing code every day is one good way to improve the way you code.
OK, so you've successfully landed your first coding job at a software start-up. What can you expect when you start?
Well... it's hard for me to say anything definitive, but I can tell my story. Regardless, I can say this: whatever your current perspective is, you will surely have to adjust it; a software start-up is a truly unique work environment.
In my case, I came to software development after six years of working for the state government. I dressed conservatively, sat at a desk, and adjudicated claims for eight hours a day. It was very serious, requiring a lot of discipline and ability to adhere to protocol. I wasn't quite sure what to expect when I got my new role.
In some ways, I got what I expected: in contrast to the hierarchy and red tape inherent in my previous job, I was immediately:
On the other hand, the lack of structure took some adjustment.
I wasn't used to having this much freedom!
I was used to being handed tasks and having less control over what problems I worked on or how I felt I should solve them. For some people, not having this degree of freedom at work might be unimaginable. For me, it was all I knew for six years. Needless to say, people of different backgrounds will have different experiences.
Another thing that surprised me was that my existing skill-set from working in a non-programming-related job turned out to be relevant to my work at Kevel.
I've even exercised my customer service skills, from time to time when interacting with customers. I had a fear, coming into this, that I might lack some of the job skills that I need to be a good software developer. But this fear was soon dispelled, as I was pleasantly surprised to find that I'd already developed a lot of the skills I need from working outside of the software industry.
To be fair, the advice that I've imparted here is only really relevant if you are considering a programming job at a software start-up. If you really have your heart set on working for a larger, well-established company, then perhaps it isn't so helpful to market yourself solely on your work ethic, lust for knowledge, and the open-source projects in your GitHub portfolio.
Many companies will allow job applicants to substitute years of work experience for prerequisite educational degrees. Maybe once you bag your first programming job working for a start-up and you've been there for a few years, your resumé will look impressive enough to land itself in the hands of the right people at these larger companies.
Or, maybe you'll find yourself addicted to the start-up lifestyle and you'll never want to leave. So far, that's been my experience!
On November 15, 2020, I celebrated my sixth cake day at Kevel. I recently spoke with my colleague Jane O’Hara to discuss some of the ways my job has changed over the past few years — and offer some new advice to those looking for their first programming jobs.
(Article originally published on 11/15/2015; updated 1/14/21)
Dave is a Software Engineer at Kevel, where he uses Clojure and ClojureScript to build UIs, APIs, and backend services. He is also the creator of the Alda music composition programming language.