On Tuesday, 12 March 2024 at 22:27:11 UTC, Mike Shah wrote:
On Tuesday, 12 March 2024 at 20:40:49 UTC, Meta wrote:
On Tuesday, 12 March 2024 at 16:20:29 UTC, matheus. wrote:
[...]

I think it really depends on the person. My first language was C++, which was absolute hell to learn as a complete beginner to programming, but I really wanted to learn a language with low-level capabilities that could also do gamedev. Learning C++ as my first language was incredibly difficult, but it also made the programming parts of my CS degree a breeze - especially courses like machine level programming. Nobody else in the class even understood what a pointer was for the first couple weeks.

I've been at institutions where C++ is the first language and for most folks who were sure they wanted to do programming it was a fine enough language (when taught with care) to teach. In fact, it benefited me (and other instructors) quite a bit when I saw those students later and taught them computer graphics (usually taught in C++ to prepare them for job market).

For folks who were not sure if they wanted to study computer science, unfortunately they were scared away as they thought this was the only path for programming (i.e. C++, assembly, etc.). For this reason, a language that is gentler (e.g. Python, JavaScript, or I also suspect a large subset of D) would all have been better choices. More universities these days are offering courses with gentler options (e.g. Programming for non-majors) which usually take this approach to more slowly ramp students up -- which I think is a good thing to have these offerings. And then later on in the program, these students can learn the good stuff (i.e. systems, compilers, graphics, etc. :) )

I understand that outside of CS, something like Python is a fine choice, hiding many low-level details. But within a CS-curriculum, one needs to come beyond basics-of-programming to something like efficient algorithm-design-and-data-structures; isn't a typed language better here? (Like the quote of Knuth says: if you do not understand the hardware behind, your programs will look weird. I have observed this a lot with current data-science students, which use a map/dictionary for everything, largely ignoring the existence of arrays).

Reply via email to