It actually uses a variation of LISP. I know old MIT college courses in Computer Science used to teach it.
The book, āHow to Design Programs,ā is based on a variation of LISP, which I know used to be taught in college computer science courses.
I have zero programming experience, but I want to learnānot for a job, just to truly understand it.
A lot of modern advice says to start with Python because itās easier or faster, but Iām not looking for shortcuts.
I want to go old-school. This book teaches programming with a 1990s-style approach. It may not use the latest tools, but Iāve heard it actually teaches how to think like a programmer and builds real logic skills.
Once I finish it, I plan to take the University of Helsinkiās Java MOOC. Again, sticking to fundamentals and learning the core ideas, not just trendy frameworks.
For context, Iām not naturally a math person eitherāIām teaching myself beginning college algebra right now. Thatās less about going old-school and more because I never had a college education, so Iām starting from scratch across the board.
So, does this sound like a solid strategy? My goal isnāt a careerājust a deep, strong foundation to see if I can really do this.
What do you all think?
I donāt remember being that impressed with HTDP but itās been a while and I didnāt look much. Iād say read SICP first in either case.
The Java thing sounds totally uninteresting and if your next language after Lisp isnāt a a mainstream one, Iād say try Haskell.
Regarding math: it can help but itās not that important for pure programming. If youāre good at languages and writing, thatās helpful in the same way. If youāre good at music, that is at least a helpful mindset.
I actually read that HTDP was written to be read before SICP, because they thought that for a beginner, some of the core fundamentals in SICP may be missed.
Again, about fundamentals. I actually wanna do python since is seems more āfunā but I wanna get all the basics down. And I did read after you have learned the harder languages, learning other languages comes much easier.
But Iāll look into Haskell. Thank you!
Java isnāt exactly hard, and itās not particularly fundamental. Itās just bureaucratic, and Python will be both more enjoyable and more useful. Java was trendy in the 1990s and lingers on because so much Java code is still around. If your goal is to use a serious type system (Lisp and Python donāt have that), Haskell will be far more enlightening than Java. If you want to use the JVM for some reason, Clojure (a Lisp dialect that run in it) might interest you.
For low level fundamentals, you want assembly language! That gives you almost no assistance and you have to do EVERYTHING yourself, organizing the program in your own head. For old fashioned imperative programming with lots of organizational assistance, try Ada.
You will probably have to learn C at some point, but save it for later when it will be easier for you to spot the weaknesses.
Good tips, thanks!
In university we had c++ and python courses alongside each other, and I currently get paid to write python. I honestly believe my knowledge of c++ (and of course the rest of the courses which went deeper into cpu architectures and data structures and whatnot) makes me a better python programmer, because of the deeper understanding of what goes on under the hood.
Great points. Thanks!