|
|
|
|
|
by inetsee
5015 days ago
|
|
If you are serious about thinking that Latin would be a good precursor to learning other languages, then I would recommend that you learn Scheme. Scheme is a dialect of Lisp, which was one of the first programming languages. Scheme was designed to be used to teach the fundamentals of programming, and was used for quite a while at MIT in their introductory programming course. The textbook that was used for the course (Structure and Interpretation of Computer Programs) is freely available online, as are quite a few video lectures that teach from the book. There is another dialect of Scheme called Racket, that has an entire development environment intended to make it easy to learn Scheme. Racket uses another book titled "How to Design Programs", that is also freely available online. Learning Scheme will give you a solid foundation in the fundamental concepts of programming. If you would rather start to learn programming with a more mainstream language, Python is the programming language that MIT is now using in their introductory programming course. For more information use your favorite search engine to look up "mit ocw gentle introduction programming" or "sicp" or "htdp". |
|
As inetsee says, Scheme is this. It will provide you with a firm basis for actually understanding how programs execute. (Theoretically, learning C will also do this, but if you want to come from that direction I recommend learning some assembly language instead, since the semantics of C are surprisingly complex). Stretching the analogy rather dangerously, Scheme is as relevant to the past, present and future of other languages as Latin (though this is a conceptual rather than historical truth), as pedagogical/minimalist as Esperanto, and as expressive as English.
Also, if you find HtDP too tame or SICP too challenging (certainly possible unless you have a science/math background, though most parts requiring specific knowledge are optional), try Concrete Abstractions (http://gustavus.edu/+max/concrete-abstractions.html).