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.
Justin James is the Lead Architect for Conigent.