3
1 Comment

13 tips to level up as a software developer

As a software engineer, there is a type of article/thread that is especially hard to resist not clicking and investigating: developer productivity hacks, programmer efficiency tips, principles for developers, you name it.

After more than ten years of developing software, I like to consider myself open-minded and looking to grow. So if there’s someone on Twitter sharing fourteen insights all junior developers could profit from I will look into it with a mixture of curiosity for new knowledge, and giddiness associated with a good inside joke that you know is coming.

One could call it a guilty pleasure, but there’s value in these lists. Even if you don’t take away any of the tips, it will almost for sure get you reflecting on your tools and principles and how you can still improve on them.

I wrote a longer list in my newsletter, but these are the ones that I see having the most impact on Indie Hackers.

Know how to get the best out of Google

It’s not just the magic tricks to get especially filtered results, but the ability to separate the wheat from the chaff: the sources that constantly provide reliable help, from those that are only optimized look like it.

Give the best names

Clean code reads like well-written prose. - Robert C. Martin

Every little name you come up with should spell how the thing you just created works and/or its purpose. Take advantage of it, because the tip doesn’t seem to work with kids and pets.

Always be carving more uninterrupted focus time

It’s your job to help stakeholders and colleagues figure out how to solve the same problems but without meetings. The ones that remain can be shortened or scheduled to the advantage of everyone. It’s really on you.

Beware of the solutions you come up with without looking at the code

It’s just X. - Unknown developer last words.

Nothing will ever be as simple as the solution you come up with without looking at the code, and nothing will ever be as incomplete, wrong, or downright catastrophic. Always count with a buffer for the increase in effort/complexity that will come from starting to read and changing code.

Go to job interviews even when you don’t want to move

Test yourself without pressure. Evaluate where you felt less comfortable and fix that. See what it takes in effort and time to get offers. If the time comes you’ll be at least 1% better prepared.

Take breaks

Especially when you are stuck and don't want to leave the problem. When you come back it’s like magic.

Ruthlessly automate repetitive work

If you feel like you’ve been in the same situation more times than it’s fun I got a relevant xkcd for you. Maybe start a list of the recipes and processes you have to execute more times than one and automate it away.

Guarantee that you are learning every day

This is not just a challenge to never relegate your learning to the “if there’s time” category: actively plan and take actions that grow your skills. It’s also a barometer of how challenged you feel in your current environment and what might indicate the time to move on.

Be intimate with your toolset

If there is a faster way to accomplish what you do with software you should know about it. Optimize how fast you can write, test, execute, debug and profile your code.

Start with the interface

You probably build systems at some level, even if it’s just one method using another. Focus first on the interface between systems and get the base skeleton working. Avoid at all costs building parts in isolation and plan an integration somewhere in the future “when everything is ready”.

Start small, finish small, iterate small

That’s how you get fast. Through iterating fast. All things being equal, you’ll get the results sooner. This and this should help.

Make the next action very obvious when leaving a task incomplete

I always worked until I had something done, and I always stopped when I knew what was going to happen next. That way I could be sure of going on the next day. - Ernest Hemingway

You probably still have to go to work even if you don’t know what happens next but there are two immediate benefits here. First, you don’t lose brain power trying to remember where you were in the thought process or what was the solution that you had in mind. Second, it’s undeniable the positive difference in momentum when you pick a task and immediately make progress.

Don’t use your brain for the todo list

We live in the age of the productivity/todo app. Don’t just jump mindlessly into the bandwagon, but maybe consider the number of things you keep in mind throughout the day, and if they could be offloaded from your brain into something else, like a piece of paper or a file in the cloud. I recently switched at work to one of these apps, and it’s been pretty good.

on May 16, 2022
  1. 1

    There were some great tips in here! Thanks for sharing. 🙏🏻

    I've been working on my writing process lately, and I've found that taking breaks and returning to my writing later for editing and revision is quite necessary. I would say that taking breaks and stepping away from difficult situations to allow yourself time to process is an under-utilized maneuver in many contexts.