Code and comments

Practical and theoretical aspects of software development

Five things you DON’T need to get your first programming job

How do you get your first programming job? In any field there is the catch-22 of needing experience to get a job and needing a job to get experience. In software development there is good news: You can get experience without a job.

The bad news is that figuring out what experience to get can be paralyzing. Read the job ads and you find that experience with frameworks like Spring, Struts, and Hibernate are required for most Java jobs. Read forums and blogs and you find that the cool kids that get the startup jobs all have their projects available on GitHub or BitBucket. Some say that mobile jobs are hot. Others say that their are no decent jobs in Java or .NET, that you should be investing in Ruby, Clojure, Scala, and Node.js.

What if you don’t know where to begin? Let’s reduce the pressure by considering a list of things that you don’t need to have before getting your first programming job.

#1: Cool projects to display

If you’ve built something impressive, great, make the most of it. Most programmers haven’t, and this will distinguish you. Try to find an employer that cares about such things, as you’ll enjoy working with others that build stuff in their own time.

If you have nothing to display, don’t sweat it, most employers won’t ask. If you have an idea that you would love to try, go for it, you’ll learn a lot. If you don’t have any ideas right now, focus on learning the details of your primary language, and work on smaller exercises targeted to the concepts that you are learning.

#2: A Computer Science degree

A CS degree won’t hurt, but you’ll do just about as well with a bachelors degree in mathematics, physics, engineering, or other majors that require some rigor and logical thinking. If your degree is in English or psychology, then you have a greater burden to demonstrate that you can think logically.

If you have no college degree, then you can forget about employment at large companies until you have some years of experience, and having work that you can display publicly now becomes a necessity.

#3: Knowledge of multiple programming languages

Knowing a variety of languages and paradigms is a necessity as your career progresses. But you can get your first job with only knowledge of one language, particularly if it is Java or C#. If your one language is Python or Ruby, then I strongly recommend that you learn Java or C# immediately, as I’ve never known anyone to get a Python or Ruby job for their first job.

NB: I’m not counting HTML or SQL as “programming languages” here, you should definitely consider a working knowledge of these necessary for your first job.

#4: Experience with any framework

If you are looking for a job as a Java web developer, and you see Spring, Struts, or Hibernate listed in virtually every job ad, it isn’t crazy to think that you should learn one or more of these. But don’t bother.

First of all, these frameworks are created to solve the problems of large projects, problems that you haven’t experienced. A far better use of your time before getting a job would be to experience those problems by building a Java web application that uses Servlets and JSP, and connects to the database with JDBC. Second of all, either you have professional experience with a framework or you don’t, any knowledge you gain with tutorials and toy projects will not be relevant on your resume or in an interview.

#5: Experience with multiple platforms

These days we hear a lot about mobile development, do you need to build an app? Building a GUI desktop application seems so fundamental that it shouldn’t be overlooked, right? Don’t get distracted. The vast majority of entry-level jobs are in web development, so that should be your focus. I’ve still never built anything for a mobile device or the desktop, and it doesn’t seem to be getting in my way.

Aren’t all these things important?

Yes, they are important, and each of them can help you in your job search. My contention is simply that none of them are necessary for the first job. Obviously, some of these are essential for advancing your career.

So what is necessary for the first job?

Well, almost nothing is strictly necessary, given the great variety of jobs and potential qualifications. But there are some skills that I would highly recommend in most cases,  and I hope to detail this in a future post.


Written by Eric Wilson

December 19, 2011 at 8:00 am

Posted in commentary

Tagged with

One Response

Subscribe to comments with RSS.

  1. Hi Eric,

    I found out about you through a post you wrote at stackexchange on what programming jobs would be best for a mathematician. I’m currently in a similar situation to what yours was at the time. Though I’m not out of work, I’ve had trouble landing anything more than short term contract teaching positions since completing my PhD, so I’m starting to explore my non-academic options. Programming is something that has always interested me (I’ve done and still do a fair bit of coding, mostly in Matlab, starting as an undergraduate), so I’m wondering if I can bug you for some advice. If possible, you an reply to the email I used to submit this comment.

    In the meantime, I’ll continue reading your blog. 🙂



    March 19, 2014 at 5:10 pm

Comments are closed.

%d bloggers like this: