Victor Okeugo

@VOkeugo

The Six Habits of Highly Effective Software Engineers

July 1st 2019

To be successful is to achieve an intended goal. Where there is no goal, there can be no success.

The journey towards becoming a globally competitive software engineer is not always smooth. Aspiring developers often doubt themselves at some point, and experienced engineers might suffer from the Impostor Syndrome.

In this post, I will share some tips on how you can badge the title “excellent engineer” from managers. I will also highlight some day-to-day coding habits to help you achieve this.

Before you read further, I want to be able to make you think differently about yourself. Purge yourself of negative mindset like, excellence is not for me, I don’t have natural talents and potentials. This is not true. You can learn new things, you are better at something, you can improve the skills you already have. Picture yourself living in a global world. No one will see you as a global software engineer if you don’t present yourself as one. It all begins with how you think of yourself. There are some habits you may need to unlearn.

Like Edmond Mbiaka said, “Take positive care of your mind, and it will surely take positive care of your life.”

As a mentor in the Microverse program, I frequently share my thoughts with my mentees. These are my words to them;

Successful software engineers:

  • set definite goals, and
  • choose excellent day-to-day habits

“To be successful is to achieve an intended goal. Where there is no goal, there can be no success”. Yes! You work so hard, and so smart but can you engage the force of excellence to achieve your desired goal (success).? Excellence is a lifestyle, not an event. It is an undeniable distinguishing factor in life.

Oftentimes you want to get one thing done, move to the next, and the next, and the next. But, remember no employer will recruit a loose developer irrespective their talents. Adopting a culture of excellence in your daily development activities will make you consider:

  • creating clean commit messages
  • writing tests to check your code performance and output, instead of making “code assumptions
  • using pull requests to improve your code
  • managing details when creating models, UI/UX in a manner that is beyond the usual
  • adopting standards
  • tracking how you spend your time
  • asking questions to gain clarity and reduce loop-back consequences
  • taking short breaks as often as you can

“I’m not a great programmer; I’m just a good programmer with great habits.” ― Kent Beck

Here are six cornerstone habits that will help you achieve excellence and make you a globally competitive software engineer.

1. Be intentional and deliberate

You should make a decision about the height you want to meet in your career and be intentional about it. Take your career a little more seriously, don’t just sit idle waiting for someone to ask you to join their team. “A lack of planning on your part does not constitute an emergency on another’s.”

Get to work, get a degree, get training, start somewhere! Excellence is execution tempered with discipline.

For me, I believe this is the first place to begin. If you have set some goals for yourself, then its time to move on to the next step.

Again, be deliberate about the next few things I will mention below.

2. Evaluate your process(es)

Measure twice, cut once. Think twice, code once.

“A programmer does not primarily write code; rather, he primarily writes to another programmer about his problem solution. The understanding of this fact is the final step in his maturation as an engineer”. (Anonymous)

Ask yourself some important questions.

  • Do you have a process to get things done? How does it help you to achieve the desired excellence?
  • Do you know about Gitflow Workflow?
  • How meaningful are your git-commit messages?
  • How often do you weigh readability and clean design when naming your variables?
  • Do you create PRs (Pull Requests) so that someone more competent than you can give a code review?
  • How much attention do you give to details?
  • Is code refactoring part of your day-to-day coding habits?
  • Do you create documentation for each feature you implement?
  • How often does your process benchmark performance while writing your code?

Asking yourself mattering questions will guide you in building excellent habits. These habits will mould your strengths before hiring managers.

3. Exposure and observation is important

Exposure expands your mind, and lack of it can pose a limitation to you. Read about, learn from and associate with people more experienced. Ask smart questions that infer that you crave to grow better. “Questions are the important thing, answers are less important. Learning to ask a good question is the heart of intelligence.” Assumption can sometimes be the lowest level of knowledge. Steer clear of it, ensure that you hold a clear understanding of what to do, and how to do it. Some concepts are difficult to understand, but with practice, they become part of you.

You also learn when you visit different cities, attend conferences and meetups. There are more online webinars, Lunch & Learn and training you can attend to expand your mind. I would recommend the Microverse program if you are looking to start your journey as a software engineer.

Connect with experienced senior engineers, discover their strategies, observe their style of coding, work ethics, and problem-solving approach. Take advantage of professional social media like LinkedIn. I quite agree with some hiring managers who are of the opinion that “LinkedIn has become a single source of truth for finding professionals."

Next…

4. Give your task all it takes, gain the required knowledge

Don’t jump steps. If you start a task, stick to it until you finish it.

Without requirements or design, programming is the art of adding bugs to an empty text file.” (Louis Srygley)

A couple of times you want to reply that tweet, watch YouTube videos, read that medium post, Yes! these are great of course. However, practising with a simple notepad to record ideas that cross your mind will help you maintain focus. Practice time tracking techniques with tools like Pomodoro and Clockify.

“Coding requires 1% effort, staying focused on coding requires 99% effort.” Maintaining focus requires deliberate action.

Every good problem solver must show great patience in order to get the problem solved. This is a rare quality in software developers.

Next...

5. Adopt standards and follow them strictly

Most times, when you learn a new language you begin to code in a particular style that you want. However, when you start working on smaller parts of a big application, your style could introduce conflicts and discredit your capacity to work in a team.

Software development teams adopt globally accepted standards and will contribute to improving them. Your ability to follow standards will distinguish surely you.

Learn about general coding standards, language-specific standards, design principles and stick to them. Standards help you write quality code — easy to maintain and debug.

You should:

  • find the best practices for tracking your code performance
  • follow best practices in design patterns for back-end or front-end development
  • follow software development methods
  • practice test-driven development

“Programs must be written for people to read, and only incidentally for machines to execute.”— Harold Abelson

6. Understand the law of value

“VALUE PEOPLE.” People will naturally value you if you offer them value. Learn to show empathy towards people.

Incrementally add value to yourself, improve your communication skills, learn a foreign language, practice public speaking, buy a new pet (if you love pets), visit your family and so on.

On the other hand, value your employer, code reviewer, senior engineers, line manager plus other team members.

In conclusion, I have highlighted strategies that can help aspiring engineers develop excellent habits

Thoughts lead to actions, actions to results, and results lead to good success. Start today!

More Related Stories