Learning Skills: Entry Level Developer

Two women working together on a computer

Continuing our discussion of developer skills at different levels, today we will consider the entry level developer. This is someone who is new to the industry. They have some training on the basics of software construction and data structures, but little to no real industry experience.

The problem with not having experience is that the only way to get it is for someone to hire you so you can get it. One of the limitations of learning at school or on your own is that you don’t get to collaborate on much of your work. Once you get a job, you usually have to work on a team with other developers and follow processes that you are unfamiliar with. They also use tools that you’ve never seen before and have to learn. It can be confusing and frustrating sometimes.

Now, instead of just writing some code to solve a problem, you are assigned a bug on an existing system so you can figure out how it works. No one ever taught you how to read someone else’s code, so it usually looks confusing and, if you ask someone for help, they often assume you already know the structure of the system and where to find things. How discouraging.

But you are committed to making this work, so you plow through the code trying to figure out what it could mean. After an embarrassingly long time, you discover the problem and start to work on a solution. You submit a pull request only to be rejected because you don’t have a unit test. Or you didn’t follow proper coding standards. Or you wrote something that is already included in an internal library that you didn’t know about. Or any of a dozen other reasons. It can be discouraging, or you can see it as a way to refine your skills quickly and advance.

What you really need is a way to write high quality code from the outset. You need to develop good habits so that you naturally write clean code. As Kent Beck says, “I’m not a great programmer. I’m a good programmer with great habits.” The time to form these habits is early in your career. Great habits will quickly separate you from most other developers.

What are these habits? Many of them are covered in “The Pragmatic Programmer” by Andy Hunt and Dave Thomas, and “Clean Code” by Dr. Bob Martin. John Sonmez has written an extensive book with great practical advice for growing your career. A search around his Web site will yield a lot of great advice for the new developer.

In addition to reading and practicing, you need to learn how to work well with others. The best advice I can offer here is: thick skin and humility. Software developers can be direct and abrasive. They tend to be socially awkward. This is not an industry for someone who is easily offended. You need to be able to back up any assertion you make with solid facts. You need to speak up when you see something wrong. You need to learn from those who have gone before you. John Sonmez has also written a book on soft skills for developers that has very helpful advice.

If you are a senior developer, what has been most helpful in developing your skills? If you are new to the industry, what is your biggest struggle?