butt___hugger | 3 years ago | on: I still Lisp (2021)
butt___hugger's comments
butt___hugger | 3 years ago | on: Blizzard Infuriate Devs, End Remote Work, Cut Profit Sharing Bonus, Insult QA
butt___hugger | 3 years ago | on: Ask HN: How did you master the art of programming?
I consider myself a master programmer because I have seen so many problems and solutions that there isn't a 1:1 connection between them. A diversity of problems and solutions means that you will see what underlying principles are common or contrasted between each approach. Then you can apply those basic axioms to make your own algorithms that are custom-suited to each problem.
I think a master programmer should have knowledge of the following areas:
- Something like Python (primarily dynamic types, primarily imperative)
- Something like Haskell (static types, purely functional)
- Something like Scheme (dynamic types, minimalism, lambda calculus)
- Something like Rust (static types, imperative, lower-level)
- Something like Prolog (logic programming, constraint-based)
- Something like Forth (stack and concatenative programming)
I would compare this to learning to be a chef. You can learn a lot of recipes from the best cookbook, but that just means you can cook a meal. To be an expert, you understand each component of the recipe and can mix-and-match, create substitutions, to create exactly what you want.