I love the new languages like Go, Rust, Clojure, Node, ... but learning C on Unix has taught me more about computers than any of the (new) stuff I picked up in the past 10 years combined.<p>Debugging with gdb, strace, valgrind, lsof, ... and learning about low level system calls will teach you a great deal about how a program works, where it’s resources are used and how to eliminate it’s bottlenecks. What is a heap, stack or static memory? How does memory management or garbage-collection work on a modern OS? What is IPC and how do the individual system calls function &amp; require as input? ...