this post was submitted on 20 Jan 2024
9 points (90.9% liked)

Teach Programming

301 readers
1 users here now

Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient

founded 1 year ago
MODERATORS
 

How does your school/university teach it? What have been the pros and cons of that choice?
Obviously, teaching students logical and foundational concepts is the most important part, but a student's first programming language does color their internalization of the concepts and how they approach solving different problems. For example, OOP is really hard to grasp coming from a functional background. Learning how to manage memory efficiently and use appropriate data types is really hard coming from an interpreted language like Python or Javascript. What have you and your peers decided works best for you and your students?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 1 points 10 months ago* (last edited 10 months ago) (1 children)

I wish I started with Golang! To me it has the perfect balance of simplicity and power. You need to care about types but only a little bit. Most everything you need is in the standard library. It can be shared very easily as a binary. The concurrency model is quite different than anything else but that could be out of scope for a beginner language. Go also has memory areans (in experimental) and generics so there is enough to chew on for the more advanced students as well.

I went from python and JavaScript to rust and now I've settled onto Go. Python really hurt the way I understand programming as a whole and rust mostly corrected that but is overkill for most things I do.

[–] [email protected] 1 points 10 months ago (1 children)

How did Python hurt your understanding of programming?

[–] [email protected] 3 points 10 months ago* (last edited 10 months ago)

No types, anything async is a pain, the strong push for OO, no errors as values, std lib is not the most extensive, pip/virtual environments are cumbersome and hardly portable, and I find it's ability to do everything well hampers its ability to do something specific well. Not that any of these actually regressed my understanding of programming, they merely slowed my development. After some time spent in rust and golang I have a much deeper understanding of programming/cs in general.