4 ms·
They're different skills, yes. But if you want to be truly productive you need to have both: come up with the idea that will actually solve the problem efficien
by itamarst 9y ago
They're different skills, yes. But if you want to be truly productive you need to have both: come up with the idea that will actually solve the problem efficiently, and then implement it correctly.
In general I tend to think of problem solving as having three stages:
1. Identifying the problem.
2. Coming up with a solution, what you call "ideation".
3. Implementing the solution, what you call "execution".
Each has its own set of sub-skills. Beginning software engineers usually just do #3, "senior" engineers do #2 (senior as in typical job title), and some engineers do #1.
(In reality there's overlap in how you apply these skills, this is obviously a simplification, and there are other ways of thinking of this, e.g. here's a slightly different mapping: https://codewithoutrules.com/2017/10/04/technical-skills-productive/ https://codewithoutrules.com/2017/10/04/technical-skills-pro...)
So I personally think of it more as progression, rather than necessarily distinct things that never appear in the same person.
In one chapter of my book (https://codewithoutrules.com/saneworkweek/ https://codewithoutrules.com/saneworkweek/) I cover some practical techniques for each stage, in order to help readers become more productive as an engineer.