Hacker News new | ask | show | jobs
by cholantesh 3343 days ago
I can't comment on the Lisps, Python, or Ruby, as my experience with them is limited at best. However, I believe that C/++ is a fantastic pedagogical choice - admittedly, though, I am biased - this was how I was taught in college. I feel that C allows you to get up and running with the basics very quickly (hello world, basic operations with numbers and strings, file I/O, etc), and builds strong habits around using data structures efficiently.

>I think you can really see that when you look at courses that teach both C and C++, where too much time is spent on doing things in C and not really learning how to work idiomatically with C++.

I think teaching a language should not be the primary goal of most software engineering courses. Instead, a language should be chosen that complements the syllabus. This usually suggests that it plays well with a particular paradigm and doesn't have too many quirks that delay a student's progress with the material. C++, in my experience, is used to introduce students to OOP, and I think it makes a fine choice for this.

>If you compare C to a Lisp, I feel like the latter is far more applicable to modern everyday programming than the former, especially with the resurgence of functional programming.

I think it's a bit early on to say that functional is more applicable to modern programming as compared to OOP. Iterative is obviously a no-go, but most developers today are immersed in OO and BAs/product managers speak it a bit more fluently than they do FP. That said, if you're just starting out, you can probably jump in to FP more easily than you could if you were to learn OO first.