4 Attitudes and Abilities that Help as a Software Engineer


I’ve found 4 mental abilities and attitudes that helped my career as a software engineer. Enjoy!

1) The Ability to Focus, and not Browse the Web.

The internet has killed our ability to focus. Enough said. Most of you probably won’t finish this blog post. It’s okay, I don’t finish most of the ones I start either.

Let’s jump straight to strategies to regain our attention spans:

  1. Meditate. This one is cliche, but it works. I try to do meditation for 20 minutes each day, and I swear it gives me a 20% productivity boost the next day (I do it at night before I go to sleep). When you’ve been meditating regularly, you can resist incoming distractions. You won’t resist them every time, but you’ll stay focused more often than normal.
  2. Work at times when nobody else is around. Come in early in the morning or stay late into the night. There’s nothing like an empty office for pure, undisturbed productivity.
  3. Use Website blockers.
  4. Use Timers for periods of 20-30 minutes. Don’t allow yourself to be interrupted until the timer goes off. Force yourself to focus only on the task at hand during the 20 or 30 minute time period. Once you do this 2 or 3 times you’ll see how hard it can be.

2) Always Accept More Responsibility

There are many engineers who will balk at this suggestion because they don’t want to move up the career ladder. They have no intention of ever moving to management or even positions as technical leads. This advice is not for them. If you want more money, and you don’t want to experience the software engineering salary peak, then you need to always accept more responsibility.

If your boss recommends you become a technical lead, you should do it. If he or she implies it would be nice if you took over a project, then you should do it. If he or she suggests you should become a manager, then you should do it.

You shouldn’t expect money or accolades immediately, you need to assume those will come with time with your increased responsibilities. Success always has to be paid for up front.

A caveat to this rule is if you wind up doing the job of two people, and you’ve been doing it for a long period of time, and you’re still getting paid the same because your company doesn’t value you. Then it’s time to complain, threaten to quit, or demote yourself back to your old position.

3) Be as Active as Possible – Not Passive

Many people these days, not just software engineers, are increasingly passive. People sit back and let the TV wash over them. Try not to be like that.

How does this manifest on software projects?

  1. Never going above and beyond. These people do what they’re told. They do the job they’re assigned, but they never look for anything more. They won’t try to find especially innovative ways to solve the problems, and they’ll never be the ones to suggest “Now that we did this, this allows us to do this other really cool thing!” 
  2. Not expanding your skill set. If your skill set stays stagnant in this industry, you’re done. Passive people don’t bother to grow. They assume their skills will be valid forever instead of adapting to an ever changing world. They’ll sit back and complain about how you have to constantly learn new tools and frameworks. I agree it’s annoying, but the annoyance is irrelevant. It’s the industry we signed up for.
  3. Never volunteering for anything. They’ll be the last ones to suggest “Oh hey it would be awesome if we did XXX; I can spearhead that effort.”

4) Don’t Expend Mental Energy Trying to Fix things You Can’t Change

This is the toughest one for me. If something is broken in the organization, I want to fix it. I want to see change. I want things to work more efficiently. I think this is a good quality. If someone is paying you a salary, I think you owe them a certain amount of “fixing ability” where you try to make the organization better.

But this only goes so far. Sometimes there are powers or processes that just won’t budge, and it doesn’t do you any good to bitch and complain about them. It only pisses you off, and it probably won’t change anything. Plus there are usually people who have a different opinion, and who knows, maybe they’re right. You just don’t see their point of view.

Ensure that your boss is aware of the situation, but then try to move on. If you sit in your cube ruminating all day about broken processes, your productivity goes down, and so does your general happiness. Plus there will always be things that annoy you in every company you work for. No situation is perfect, so stop looking for perfection.

An exception exists for situations making you completely miserable. Then you need to change jobs. My general rule is if something in my job is pissing me off more than 20 or 30% of the time, it might be time for a change. That change might be as simple as confronting my boss about the problem. It might be as complicated as finding a new company to work for.

But before you hit that point, do what you can to avoid the situation and work around it. That’s the only strategy that does anybody any good. Complaining and ruminating won’t change anything.

What has helped you mentally as a software developer?

photo credit: thinker via photopin (license)