Which traditions are you benefiting from?

About four years ago, @plexus wrote a text that stuck with me:

In it, he recommends learning churn-averse technology,

  • Clojure
  • Common Lisp
  • HTML
  • Make

and to study time-tested traditions.

  • UNIX
  • LISP
  • The Web
  • Emacs
  • TeX

Do you have any items to add? Why?

1 Like

Rich in a recent Nubank interview:

I think young programmers tend to be focused on the details of the technology of the day. Everything you learn about the specifics of a particular technology is going to change, and technologies will move along. So I think the main advice I have is to focus on principles and ideas, and less so on specifics, because the specifics will change. Spend your time and mental energy on understanding concepts and ideas and focusing on problems.

What I’d add to your list is computer science, which is to say math. One example which comes to mind is how word2vec tells us a fundamental truth about language, because at heart neural networks are applied statistics, which is to say math. Algorithms and data structures are remarkably churn-averse.

Depending on your area of interest, other “forever disciplines” like science, or philosophy may be relevant as well. For instance, most programmers can ignore computer hardware most of the time, but maybe you can’t or don’t want to. That would lead you to electrical engineering, which is to say physics. Maybe this point falls under the umbrella of Rich’s advice to focus on problems. I’m thinking also about design, in the sense of Rich’s talk Design, Composition and Performance: architecting systems and the art of deciding how the human/computer interaction layer should be.

The other tradition I’d add to your list is the host. For orthodox Clojure that means Java and the JVM. For CLJS it means JavaScript, browser APIs, and maybe even TypeScript, which leads to type systems, which is to say math.

4 Likes

I would look into APL (for instance Dyalog). If lisp is list-based, APL is array-based. There is a of interesting programming techniques here, for instance endless ways of working with indexes as bit-masks, for sorting etc.

1 Like

OCaml and C come to mind as well. I wrote about my recent experience with OCaml here OCaml at First Glance - (think)

Maybe Erlang and Prolog as well if one wants to broaden their horizons.

2 Likes

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.