← Back to context

Comment by aleph_minus_one

16 hours ago

> If you're a tinkerer, you don't care much for 1 and 5, and you see 2-4 as the whole point of programming. I'm a tinkerer. I'd be happy to just write code and throw it away. Coding is like solving sudokus. I could skip steps 1 and 5 forever. [...] The 5 phases look kind of symmetric. The outermost layer (1 and 5) are the entrepreneurial steps.

Even if you deeply into tinkering, 1 can be an insanely exciting and rewarding step: for example "how could an abstraction look like in which 2-4 become trivial special cases for many classes of programming problems?".

In my opinion the difference between "entrepreneur type" and "programmer type" (and yes: it can happen that both of these types work in the reciprocal job) is rather:

- People of the programmer type see solving problems as their primary goal. Satisfying customers just serves the purpose that these people pay money so that they can continue working on solving problems.

- People of the entrepreneur see satisfying customers as their primary goal. Programming is just a means to an end.

> Even if you deeply into tinkering, 1 can be an insanely exciting and rewarding step: for example "how could an abstraction look like in which 2-4 become trivial special cases for many classes of programming problems?".

Yes, but I think there's really two different definitions of point 1. It's "figure out what non-software problem you can solve with software" vs "figure out what technical problem to solve".

As the tinkering type, I also find 1 very rewarding but using the latter definition. Exploring a sizable code base and finding the part that, if simplified, cascades to a lot more simplification, that's very exciting. Figuring out what problem some companies or people have that could be solved? Very hard, very unexciting, not rewarding.

Yeah. I enjoy 2-4 most, 1 is the next, and 5 the least. I think the litmus test here is "if you knew could never deliver this to anyone, make money of it, get recognition for it, or even make it solve one of your own problems you have. Would you still be willing to spend time on it?"

If the answer is "no" you are probably more entrepreneurial than tinkerer. But it's a spectrum.

  • Good test. I would add one more question: "if you could never talk about your code or solutions with anyone, would you still be willing to spend time on it?"

    This helps differentiate between coding as an end and coding as a means to socializing.