When I think about my career and the many developers I’ve met throughout the years, I think about what sets apart the true professionals from people I consider to be amateurs. Professionalism in software development is not just about the level of skill or how much experience one has. Many developers with great experience and expertise still operate as amateurs. What truly sets apart the pros from the amateurs is discipline.
Discipline for pros permeates all aspects of development but boils down to the mentality that “I take the time to do things right the first time.” As we go through this series on developmental discipline, I will discuss many of these items in depth. However, here are some basic things that every developer can choose to do regardless of their level of experience or skill that will make them more effective.
Abide by standards
To abide by standards, one must first have a set of standards. There are tons of standards; many companies have their own sets of them, and choosing which standard is less important than having one. If a developer is working on their own, they by no means need to spend the time creating them; if someone is early in their career, this is likely to get them into bad habits. There are excellent standards for every language, and they are very accessible. For instance, devs working in Golang can use Google’s standards found at https://google.github.io/styleguide/go/, and developers working in Python can use the official style guides found at https://peps.python.org/pep-0008/. Almost every language has a style guide, and one of the first things a developer should do when learning a language is to take the time to read through the guidelines.
Plan Ahead
One of the things that separates good developers from great developers is planning. Great developers take the time to plan what they will do before beginning to write code. This may be done on paper, with a tool like Lucid, or in a text editor. The important thing is that before you write code, you have an outline of the problem being solved and the solution. Everyone can do this; it is just a matter of time.
Know Your Tools
This is a big one. It may seem obvious, but the better developers know their tools, the more effectively they can use them. For almost every text editor and IDE, there are countless tutorials by both the companies that own them and by third-party content creators. I recommend a mix of both. Doing a little research on what plugins people use for a given language, what the most commonly used hotkeys are, and even just making sure the color scheme is comfortable to use (you will be staring at it a lot) makes a huge difference. Again, everyone can do this; it takes an hour or two of your day.
Conclusion
I’ll explore these and many others more deeply as we go through this series. The critical thing to remember is that the most significant difference between professionals and amateurs is not just skill, expertise, or experience. It is being disciplined enough to take time to do the little things, abiding by solid standards, planning your work, and knowing your tools are something everyone can do regardless of skill level that will make a big difference in your development career in the long run.