Hacker News new | ask | show | jobs
by itamarst 3140 days 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-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/) I cover some practical techniques for each stage, in order to help readers become more productive as an engineer.