3 ms·
The title made me think about what my answer would be. If there's one thing a programmer should know, what is it? What is the most important thing I didn't und
by pg 18y ago
The title made me think about what my answer would be. If there's one thing a programmer should know, what is it? What is the most important thing I didn't understand about programming when I started doing it?
My answer would be: that code should be seen not as a static thing, like the answer to a math problem, but as an evolving effort to figure out the right question to be the answer to; and that it should thus be written to be easy to change.
- te_platt 18y agoComing up with "The" one thing a programmer should know seems too narrow a question. Kind of like "What is your favorite song?" instead of "What are some of your favorite songs?" A more interesting question might be "What things would you emphasize to someone learning to program?" Flexibility? Precision? My answer: Every programmer should 1. Learn C / Assembly - Understand how code interacts with hardware. 2. Learn Lisp - Understand how ideas interact with code (and vice versa). 3. Learn "O" notation - Understand algorithm complexity. 4. Be clean and flexible.
- andreyf 18y agocode should be [...] an evolving effort to figure out the right question to be the answer to Interesting change of perspective. Could you expound - do you mean this in terms of product design?
- pg 18y agoNo, not just product design. Practically all programs are best seen as explorations.
- tel 18y agoIn an industrial design class I took this sort of methodology was heavily stressed using words like "divergent thinking" and "no-worry prototypes". Generally, I believe that the super-specializing niche engineering that's popular today is best served by broadening your base rather than sharpening your technical skills to stand out in a field of pins. I.e. marketing, ID design attitudes, learning to paint.
- yters 18y agoIsn't looking for the one thing an instance of the same problem?
- skmurphy 18y agoYour answer is a better one for software engineers, Atwood's is the better one for software entrepreneurs.