Dear new developer,
I found this post covered some things that good software engineers do. It doesn’t focus on the technical aspects, but on other aspects of software development. Things they do:
- Ask for help
- Work on one thing at a time
- Prioritise unblocking
My favorite quote:
In software development we rarely have the luxury of a todo list with a single item on it. Despite this, we are not able to work on two things simultaneously. Every time you work on one thing and change to another you pay the cost of mentally (and sometimes in development environment) context switching. As a result the most efficient way to work is generally to take one task to completion before starting another task.
These are all key things for engineers to do. The first makes sure you aren’t beating your head against the wall unnecessarily. The second makes sure you can focus on one thing and avoid context switching. For many kinds of development work, this is the most efficient way to accomplish a task. The third acknowledges that you should optimize for team productivity over individual productivity.
Three great pieces of advice. Worth reading the whole post, “Some Things Good Engineers Do”.
Dear new developer,
I thought this post from 2012, about what software developers want, was penetrating and relevant. This passage resonated for me:
And here’s the real crux of the problem: software engineers aren’t builders. Software engineers are creators. Building is what you do when you buy a piece of furniture from Ikea and get it home. The instructions are laid out and if you go step by step, you’ll get that comically small table you wanted. Creating is a different process, it’s birthing something without direction or instruction. It’s starting with a blank canvas and painting a masterpiece. Software engineers don’t get into coding because they want someone to tell them what to do, they get into it because they discovered they could create something useful. Every single software engineer fell in love with coding because she made a small, useful program early on and was hooked.
Even as a new developer, you’re constantly making small creative decisions (naming a variable, for example). This is part of what makes software development so fulfilling and fun. Any place where you are solely an order taker with no opportunity to add your unique perspective is a place I wouldn’t want to work. (Such a place would remind me of L. Bob Rife’s plans. And if you haven’t read Snow Crash, highly recommended.)
The whole post, “The care and feeding of software engineers (or, why engineers are grumpy)”, is worth a read.