What languages should one learn?
C: To learn about pointers and memory allocation and what seldom gets mentioned function pointers. In C, one can define a pointer to a function in a struct and build a system that imitates object oriented programming. It helps one learn how virtual method tables work.
Smalltalk: Smalltalk is tiny language that introduces object oriented programming and messages aka doThis:with:via... If one wants to leran Objective-C or Swift later on it's crucial.
Lisp: Abelson and Sussman of MIT use Lisp in SICP which you can find on the internet. Even after 60 years, Lisp is well known. "All you need to know is (+ x y) and you know Lisp".
Scala: I program in Scala 99% of the time for hobbying so bias. Scala introduces traits and f-bounded Turing complete type systems. You can choose to be very simple or very complex. I particularly like Shapeless by Miles Sabin because its show how to make a type safe Bag ala Smaltalk called HList as heterogeneous list. Traits enable one to build programs by 50 line modules. If you are considering learning Modula-2 or one of Niklaus Wirths languages, strongly suggest you skip to Scala.
3
09 May 2015 18:33
u/merosonox
in v/programming
What languages should one learn?
C: To learn about pointers and memory allocation and what seldom gets mentioned function pointers. In C, one can define a pointer to a function in a struct and build a system that imitates object oriented programming. It helps one learn how virtual method tables work.
Smalltalk: Smalltalk is tiny language that introduces object oriented programming and messages aka doThis:with:via... If one wants to leran Objective-C or Swift later on it's crucial.
Lisp: Abelson and Sussman of MIT use Lisp in SICP which you can find on the internet. Even after 60 years, Lisp is well known. "All you need to know is (+ x y) and you know Lisp".
Scala: I program in Scala 99% of the time for hobbying so bias. Scala introduces traits and f-bounded Turing complete type systems. You can choose to be very simple or very complex. I particularly like Shapeless by Miles Sabin because its show how to make a type safe Bag ala Smaltalk called HList as heterogeneous list. Traits enable one to build programs by 50 line modules. If you are considering learning Modula-2 or one of Niklaus Wirths languages, strongly suggest you skip to Scala.