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.