How to Be a Good Software Engineer: 6 Tips They Don’t Teach You at University
For me, becoming a developer has been a great career choice. It’s challenging, constantly evolving and deeply rewarding. There’s also a lot of demand out there for good developers. However, there are aspects of being a good developer that aren’t covered at university and mastering them will help you succeed – whether you’re already working or are looking for your first role. Here are some of the most useful tips I’ve picked up during my 12 years as a developer:
1. Being a great developer is more than just coding
2. Ideas are everything – so good debate skills are vital
Another important skill is communication, especially the power of persuasion that is often gained from the art of debate. For the best ideas to thrive, a team must be able to discuss and challenge them in a healthy, non-confrontational manner. Being able to communicate changing priorities, requirements and urgency in a collaborative, positive way will help your career and colleagues alike.
The ability to have an open dialogue with people who may not share your values or point of view will also help our industry, by fostering a more inclusive environment that’s attractive for people of all personality types and cultural backgrounds. This, in turn, widens the talent pool that organizations in all sectors can call on.
3. Engineering software to last in the real world is a whole different ball game
Writing software that’s being used by people, computers and businesses in the real world is very different to coding purely for educational purposes.
Enterprise applications need to run continuously, indefinitely – and be reliable throughout. So the code has to perform well, be easy to maintain, simple to check and fix, and take future growth and scalability into consideration when being designed. You can ensure these qualities by following a robust, mature software development cycle – which has six stages: Planning, Analysis, Design, Implementation, Testing & Integration, and Maintenance.
Building regular testing into the process is also critically important – from design and code reviews by other developers to automated testing.
4. Collaborate with different teams across your organization – you’ll learn loads
If you are given the opportunity to work beyond your division or business unit with another team, take it! You will see new, different points of view and grow your skill set.
InnerSource is a great approach that uses open source software and collaborative development processes to develop code across teams – so it’s worth studying how to implement it and consider how you can help within your own oorganization.
When someone has an idea, regardless of what unit they’re in, they can effectively be mentored by another team, and guided to make any changes needed, themselves. It’s a very fulfilling way to work, seeing someone empowered to take their own creativity and supported to turn it into an end-product.
5. Whoever you are and whatever you do – try some programming courses
Back in 2011, technology investor Marc Andreessen wrote “Why software is eating the world,” arguing that a massive technological and economic shift was happening, and software companies would take over large parts of the world economy.
More major businesses and industries are running on software – often delivered online or through the cloud. This is why, whatever field you may currently be working in, it will likely need more programming talent soon, if it doesn’t already. Even if you won’t become a programmer professionally, understanding how software works and its connection to how modern businesses create value for customers, will be incredibly useful.
6. The lone wolf software engineer is a myth
So often, on TV and in the movies, we’re presented with the notion of a developer working alone in a dark room, surrounded by screens, black boxes with flashing lights, and probably lots of coffee cups too. This is totally different from the reality of being a developer (okay, maybe the part about the coffee cups is true).
As I’ve experienced, so much of a developer's job is about teamwork, collaboration and communication. Doing these things well is really at the heart of a successful development career. This makes the work more enjoyable and improves the quality of what we do and the impact we can have – we’re all stronger when we work together.
It’s amazing how many innovations appear and how many problems get solved because someone walked past a colleague's desk and happened to ask them what they’re working on or how it’s going.
While I could keep adding to this list, the best advice I could offer is for you to go out and put these tips into action. By implementing these in your day-to-day, you will become a better programmer in no time – whether you’re still studying at university, an established programmer or simply looking to develop coding skills for you to use in your existing job.
Good luck and happy coding!