Habits of a Highly Effective Software Developer

twitter logo github logo ・1 min read

I'm conducting a research and I'll love to gain more insight into how other developers stay productive and sustain new habits in their career.

What are some habits you cultivate as developers that helps you stay winning and productive?

twitter logo DISCUSS (14)
markdown guide
 

Do whatever is necessary to stay in the flow. Flow means typing code. Non-flow means googling, using your mouse, switching windows, coffee breaks.

Here are common interruptions and fixes

  • googling / reading docs
    • download / integrate docs into your IDE (see devdocs) and use man pages. Also, retrieve the sources for your deps and make sure you have auto-complete (ctags) . Avoid googling as much as possible--it's a bad habit.
  • Waiting for builds
    • cache your artifacts to speed up your build, or invest in CI
  • Testing your software
    • make sure you can test quickly using CLI and not with interactive behavior. This usually means a unit suite or command-line experiments you can run. E.g. if you're building a service, write some curls that you can hit with assertions to make sure it works while you are building. If it's a UI write selenium tests.
  • Coding itself is slow
    • activate auto-complete and snippets in your ide. If you're new to the language, do kata to practice common blocks. Can you touch type? If not, learn and play typeracer to speed up
  • distractions (social media, chatting)
    • try rescuetime to identify pitfalls and block distractions

tl;dr Pretend your mouse is electrified. Any time you touch your mouse, think about why and automate it.

 

I agree completely on the don't google.
I have tried to make it a habit to go to the docs if I need to find something out, you learn some much more about the ecosystem that you develop on if you are working with the docs directly.

And automate autmate automate.

Even if it's only a few lines but might take you a little while manually, script it, it worth doing to get into the habit :)

 

I don't think that typing code fast the the answer to anything related with being effective. What do you mean by typing? Just typing? I actually type slow but I know I can deliver the features on time. It's what you type that matters and if you learn to type less and do more, that's efficiency for me.

Also I google a lot and read docs a lot. That gives me an array of solutions and articles that I can assess in a pragmatic manner before I implement something. Did you just tried to implement your own microservice architecture without looking, asking around, reading docs, comparing libraries and frameworks and googling the hell out of it? I think not. The same goes for every feature you may be asked to build. There will be always a better solution by the time you think you have the answer in your mind and where is the right place to find it? By googling of course.

Also I use the mouse a lot. I tend to forget keystore combinations

 
 

Being able to work on my own schedule is huge for me! I am an early riser(wake up at 5:45am to run), I like to start work around 7:30am and my most productive hours are in the morning. Then, I usually head home around 4:15pm. If I was forced to work the standard 9-5pm I know I would be far less productive than I am now.

Another tip I like to keep in mind is one my mom taught me, "Only worry about yourself" It can be easy as a developer to compare yourself to your peers and worry about what they are doing. At the end of the day, the only one you need to worry about is yourself. Focus on growing your own abilities and learning the way you learn best.

 

I'll try the early riser thing, it feels very promising.

 
 

Taking breaks when I need to, and always/consistently learning.

 

I can't agree more with resting and continuous learning.

 
  • I consciously limit my work day to 8 hours.
  • Once a week I stay away from writing any code for a whole day.
  • I sleep a lot.

I also believe that using an IDE instead of a simple text editor improves my performance, but this is secondary.

 

Thanks! I think I'm struggling with not writing code everything single day. Because I can't remember the last I did not touch code for a whole day.

 

Using a task management app to keep track of to-dos,
Using a version control system (git),
Going to gym during my lunch break.

 
 

By default, I always wake up by 5 am. It's usually weird if I wake up past time that.

Classic DEV Post from Feb 25

The Best Way to Advance Your Career

Where I answer a query from one of my awesome readers about how to advance your career based on my experience.

Gift Egwuenu profile image
Software Engineer with a passion for making the web accessible.