On Tuesday, 12 March 2024 at 20:40:49 UTC, Meta wrote:
On Tuesday, 12 March 2024 at 16:20:29 UTC, matheus. wrote:
On Tuesday, 12 March 2024 at 14:52:32 UTC, Mike Shah wrote:
...
I really think D would be a wonderful first language. 🙂 Fast
feedback, no need to manage memory, and easy to use built-in
data structures would make for a nice intro course.
If you say that D would be a good language to learn in lieu
C++/Rust I'd agree, but as a First Language neither one would
be my choice.
Most here already program and know things, but as a first
language forget, at least where and when I did college
(Already knowing how to program), most people were lost with
all the concepts of C++ for example.
Bitwise shifts like << >> and the same operators being used in
cin/cout may be OK for most people already in programming and
using shell, but for those learning was a hell.
Matheus.
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. :) )