DEV Community

Discussion on: Habits of a Highly Effective Software Developer

Collapse
 
tonymet profile image
Tony Metzidis • Edited

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.

Collapse
 
lauragift21 profile image
Gift Egwuenu

These are great tips 🔥. Thanks

Collapse
 
jamesdengel profile image
James dengel • Edited

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 :)

Collapse
 
theodesp profile image
Theofanis Despoudis • Edited

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