Conversations with Technology Leaders: Erik Meijer
This is a Q&A article I stumbled on that has some good pieces of advice in it.
First, I liked this point on the absolutist terms we so often use in conversations: “oh, we have to use X because it’s declarative”. Declarative compared to what? These arguments should be more specific.
We cannot talk about everything in absolute terms. Compared to assembly code, C is declarative. But compared to transistors and gates, assembly code is declarative. Developers need to recognize these levels of abstractions.
I also liked the metaphor of computer tools being an extension of your mind:
Good developers understand that they can't do everything, and they know how to leverage tools as prosthetics for their brains.
Some interesting advice on how to find your way between theory and practice (as alway the answer seems to lie somewhere in the middle):
focus at the intersection of theory and practice. There is no progress without friction. It is easy to dive into theory, or all the way into just practice—but the real interesting work happens between theory and practice. Try to understand both sides. The safe spot is to retreat to one of the extremes.
Remember: there is no silver bullet. Your processes alone won’t save you:
With prescriptive processes, people are looking for a silver bullet to solve problems, but it doesn't exist...The world is super-confusing, and you have to embrace it and work with it.
Lastly, I love this bit about finding questions before answers. I often have to remind myself of this before digging into any project:
first focus on finding the right questions, and then the answers.