re: What language would you recommend for a beginner? VIEW POST

TOP OF THREAD FULL DISCUSSION
re: Really glad to see a question like this! I started my programming journey with C#, which basically taught me what programming was and what I could...
 

IMHO, keep it simple. Teach them in a well understood and limited environment that will expose them to some of the pain points (but not enough to totally ruin their day).

For this reason I also reccomend C, though I come from embedded / systems programming, not webdev or data science. Giving C a bit of a critical look over, the main pain points are:
No inbuilt package management (you'll need to learn other tools alongside it like GNU make)
Types (at least for me) felt really scary when I was learning it.
Pointers are... An experience in and of themselves. I'd say this is the part of the language I really wouldn't want to force on a beginner, but pointers (in my experience) are such a core part of lower level programming, even with other languages. You NEED to grasp your memory model and how it relates to C or you're fscked. I'm still trying to think over a good way to teach pointers. Maybe teach a safe subset of their behavior first, treating them more like a reference in java. Avoid freaky pointer math.

code of conduct - report abuse