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.
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.
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.
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.
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.
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.
Especially when you are stuck and don't want to leave the problem. When you come back it’s like magic.
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.
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.
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.
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”.
That’s how you get fast. Through iterating fast. All things being equal, you’ll get the results sooner. This and this should help.
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.
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.
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.