Apps optimize

10 things to look for in an entry level software developer

With the right traits -- and a bit of coaching -- an entry level developer can prove to be a wise hire.

People are often afraid to hire entry level developers because they are relatively expensive to hire and it can take months before their productivity is high enough to justify hiring them. In addition, their lack of experience makes it hard to evaluate their abilities before you take them on. At the same time, bringing aboard entry level developers can make for a good long term investment in your company if you are willing to mentor them. Look for these 10 qualities in an entry level programmer to have the best chance of success.

1: Good attitude

All employees should have a good attitude, but it is even more important for entry level employees. They have a lot to learn, and the wrong attitude will keep them from learning what they need to. Another factor to consider is that the ROI on entry level developers is already poor; their salaries are much higher than entry level employees in other careers, and it can take months for them to meaningfully contribute to the bottom line. When someone is a "long term investment" in the future of the company, it is really important that they not make someone regret having them around long term.

2: Computer experience

While it is true that the typical programmer does not need to spend much time in server rooms or inside the guts of PCs, it is also true that the more general and advanced computer experience they have, the better able they are to understand how to fix problems with their code. For example, I've spent a lot of my career as a systems administrator, and I am constantly finding myself using tools and skills I learned while working with servers to find and fix bugs in code. The more computing experience an entry level developer can bring to the table, the better.

3: Work ethic

What takes an experienced developer a few hours may take an entry level developer a week. Clearly, it is critical that entry level programmers be willing to put in the time. I am not saying that they should be expected to work 60 hours a week and fire 'em if they can't! But what I am saying is that there needs to be the attitude of "I'm not happy until this task is done right," and if that means paying some dues, some dues need to be paid.

4: Ability to learn

Because entry level developers lag so far behind experienced developers, they must be able to get their knowledge levels up quickly. To make this worse, inexperienced developers can often cause friction on the entire team, between the errors that need to be fixed and the help that the rest of the team needs to provide. The longer an entry level programmer takes to learn the job, the longer it takes for the company to start seeing its investment pay off.

5: Educational history

Not every developer goes to college, and not every college makes good developers. But educational history can provide an important understanding of what someone's capabilities and interest are. A person with a science or math degree from a respected institution is likely to have strong logic skills, for example.

6: Previous job experience

Even if someone is new to software development, it does not mean that they are new to the workforce. Previous job history can tell you a lot about who they are. I did not major in computer science, but I worked a number of programming jobs and other computer jobs during college. On the other hand, I saw people with CS degrees who were flipping burgers in school. I really liked working with computers, and that's why I was working with them even when I did not need to be. Today, I look for the same thing in entry level programmers.

For "second chancers" (people who are making a major career shift), the previous job experience can be useful to know about. There are a lot of other jobs out there that hone the raw skills that go into a good developer, and it gives these folks a big leg up when they start writing code.

7: Lack of preconceived notions

The development industry is filled with dogma. And so long as that dogma is well founded, there is nothing wrong with it. Sadly, too many entry level developers parrot something a professor or online pundit has said, without fully understanding the reason or context. Or worse, they are stuck on an idea that isn't very good to begin with. Good entry level programmers will respect the opinions of their teachers and mentors but be willing to hear new ideas and approaches to problems.

8: Passion for programming

It is pretty easy to separate those who went into development for a paycheck from those who went into it because they were interested in it. Finding the folks with a real desire to be in this industry is critical, because when the chips are down, things like "work ethic" and "good attitude" depend heavily on the desire to learn and grow in the industry. And again, entry level programmers are a long term commitment. If they're just chasing a paycheck, you can bet that as soon as the job you have given them sweetens their resume, they will be headed to greener pastures.

9: Ability to ask questions

One of the most important things for an entry level developer to do is to ask questions. When someone lets the fear of sounding foolish get in the way of asking questions, it makes for a rocky relationship. A good entry level developer is willing to ask questions because it is better to spend a few minutes having a discussion than to lose two days trying to track an answer down.

10: Soft skills

In many software development shops, the programmers are little more than machines following a blueprint someone else made to crank out code. But most places need programmers to do more than sit at a desk grinding away. In my experience, soft skills, like written and oral communications and the ability to work with others, are much harder to teach than technical skills. If someone lacks these skills, it will be hard to have the risk you take in hiring them pay off in the long run.

About

Justin James is the Lead Architect for Conigent.

8 comments
macmania123
macmania123

"the programmers are little more than machines following a blueprint someone" - how do you even include the two different terms 'programmer' and a 'software developer' in an article like this? That's like saying an electrician and an electrical engineer is the same thing! First of all, there are clear distinctions between a software developer and a programmer. A programmer just codes given an algorithm/blueprint while software developers have to engineer this system that will interact with so many parts - part that you couldn't even imagine and that requires hard core skill while keeping in mind the computer architecture, operating system, space-time trade off, user interface, etc... I'm clearly flabbergasted that you include a programmer and a software developer in this article.

jeanne
jeanne

aren't these all important no matter what your skill level?

gevander
gevander

#5 and #6 are [b]complimentary[/b]. In a younger person, recently done of schooling, [i]education[/i] is going to count for more than [i]experience[/i]. In someone who has been working a while, [i]experience[/i] will count for more than [i]education[/i].

Suresh Mukhi
Suresh Mukhi

I give all my Software Developer candidates an actual, hands-on programming project. It may be report generation based on an existing database or a form design with the needed validations. If they can't do that, nothing else matters. They are not qualified.

anil_g
anil_g

I find that there are a lot of small programming jobs where eliciting the requirements is the main work: chasing up people and clarifying what's required and what will fit. If my programmer can't make some business judgements on their own it's going to be hard to allocate any work, and it'll take me longer to properly specify than to do the actual job myself. Soft skills and judgement can be an essential skill on the list.

Spook0
Spook0

I also look for the "inquisitive" gene. Granted, one doesn't want a person spending full time on the web researching the arcane derivations of a term, but one who is always looking to see how what they are doing and learning fits into and affects the world they have been hired into. This also applies to the computing universe of which their world is a part.

Kinetixx
Kinetixx

Great list. If i could add an eleventh "thing", it would that you want your new programmer to fit in to the existing team. This might be part of "good attitude" and "soft skills", but the culture of every company is different. To help me decide how a new person will fit into the team and company (or at least the key customers we work with), i like to take a candidate, and anyone on my team that can make it, to lunch or dinner. We talk about how we think our company works, mistakes we've made, how we work out issues and things like that. We also talk about projects we've done outside of work just for fun (things that might not show up on a CV), and see if the candidate has done the same, as another way to gauge their passion. It also helps the candidate learn more about us and whether they feel they'll fit in, which is equally important. In the last few years we've also asked the candidate to do some homework. We'll give them about 2 to 3 days to write code to do something specific, but not terribly difficult, that they might do in our shop. That helps us to see their work in action, beyond the CV or a portfolio, and how they deal with a deadline.