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.