TechU Solutions

View Original

3 Habits of a Great Software Engineer

The field of software development has taken off in the last few years. Today, there seem to be more job openings for software developers than actual developers to fill them. This generally seems to be a good thing for developers nowadays since this forces companies to be more competitive with pay, benefits, etc. However, I have noticed programs that are designed to churn out developers quickly. I have also seen that there are A LOT of them that have cropped up recently.

In general, I’m not against these kinds of programs at all. Often they are better than attending a 4-year university in terms of cost and how much you learn. I haven’t been to one of these programs myself; however, I’ve helped people going through various programs and read course curriculums of quite a few of these programs. Why am I talking about these kinds of programs in an article about the habits of great developers? Well, I believe you can’t just churn out great developers quickly. There is a lot of information to cover and many concepts one has to be familiar with. The field is also very fluid, and if you don’t stay up to date, you can become outdated. With these things in mind, I wanted to write something about habits that I’ve gotten myself into and habits I’ve seen other great developers get into as well. This doesn’t mean that you HAVE to do all these things to be a great software engineer. These are things I have noticed throughout my career.

Learn Everything

A great Software Engineer is always interested in learning. This field is not static and usually requires you to keep your knowledge up to date. New technologies are coming out every day, and frequently you have to make some decisions about new technologies. Sometimes your employer will turn to you to learn a new technology they want to integrate into a product, which can be an exciting opportunity. There are several reasons that this is a great opportunity.

The first reason is that it exposes you to something new. Being exposed to new technology helps you think about problems in a different way. It forces you to think about how, if at all, this technology can be applied to a problem. Even if that technology may not necessarily be used in that situation, these are always good things to constantly think about. I generally find that great software engineers have a lot of ideas floating around in their heads. Not just about their day job, but also about personal projects they may enjoy doing outside of work. That certainly does not mean you HAVE to be coding outside of work. The people I know who code outside of their day jobs do so because they genuinely love doing so. When you take on a personal project, you get the freedom to choose the tech stack you want and make whatever decisions you want. In doing so, you’ll make quite a few mistakes along the way, but you’ll learn a lot by doing that as well. With that being said, I think that learning more and educating yourself on new things in the tech world requires something of a passion for what you do. If that passion comes from the work you do at your day job or for yourself, I don’t think that really matters.

Be a Team Player

I have heard a lot about 10x developers and the like, but it pays to be a team player if you’re working in a team. If you haven’t heard the term 10x developer before, it’s someone who is ten times more productive than their team members. This is a great thing to be as it’s a great asset to the team, but you’re not a lone wolf. You should use this incredible skill to lift your team rather than try to leave them in the dust. I also want to be careful to say that if you feel as though you’re ahead of your team, you don’t need to go down to the level of the lowest developer. Suppose you have a senior developer and a junior developer on the same team; it’s great to meet in the middle somewhere. It pushes the junior developers to up their game, and the senior devs can lift these team members.

You may be thinking that there’s nothing in it for the senior guy in the example I gave, but I think that’s wrong. It’s not about individuals; it’s about the team in general. It would be best if you strived to have a team where you can have team members of varying skill levels but still knock things out quickly and efficiently. This involves effort from everyone. As I mentioned, the junior devs have to push themselves to keep up, and the senior devs have to push themselves to lift those guys up. It’s a beautiful thing to see when a team comes together and performs well.

Mentoring Team Members

This ties directly to lifting your team to your level. I’ve seen really great developers who have mentored me, I’ve mentored developers, and I’ve seen plenty of great developers take on the role of mentor. Mentoring team members does not mean you necessarily become a full-time teacher. This means that you take time to show less experienced developers how things should be done and explaining why. There are plenty of mentoring opportunities, like code reviews. If your team does code reviews, that’s a fantastic way to mentor team members around best practices and clean code.

Becoming a mentor in this way has an added benefit to you too. When you mentor curious minds, they generally ask questions. You’ll often find that they ask questions you may not have thought about before but know the answer to. This helps you think more thoroughly through the work you’re doing as well. It expands your knowledge of a particular area that will benefit you in the long run.

The Wrap Up

I want to be clear that if you think yourself a great developer but don’t think all of these things apply to you, it’s ok! Everyone is different, and these are just general trends I’ve noticed throughout my career. I would say that I would encourage anyone in the field right now to strive for the things I’ve mentioned. I genuinely love writing code, and that pushes me to learn everything I can about it. I can then take that knowledge and enrich a team I’m working with. I can help junior devs learn new things, and I can collaborate with other senior devs and share that knowledge while also increasing my own.

If you’ve enjoyed this article I’d love for you to join my mailing list where I send out additional tips & tricks!

If you found this article helpful, interesting, or entertaining buy me a coffee to help me continue to put out content!