this post was submitted on 16 Sep 2024
462 points (89.8% liked)

Programmer Humor

32548 readers
512 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] Uplink 31 points 2 months ago (4 children)

Everybody hating on Java being the de facto language every student learns first (at least back when I was in university) but I think it's actually a great first language while I don't think python is for one simple reason: it has types but tries to hide them from you. It is soooo important to understand types early though.

[–] [email protected] 14 points 2 months ago

Strictly-typed languages are the BEST for learning programming. I also like Java for it because there's a difference between int and Integer (forcing you to learn about objects)

[–] [email protected] 6 points 2 months ago

Java was my first language over ten years ago. I haven't touched it in a decade (I'm mostly a hobbyist). I am grateful that I had to type all that shit out, and grateful that I don't have to anymore (I've been using python since then).

I just recently helped a younger friend with their Java homework. I had to Google the syntax, but otherwise helped them ace it. I've mostly used Python since then, but learning java gave me such a good base of the fundamentals

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

The main problem with Java (or garbage collected languages in general) as a first language is needing to unlearn the bad habits it ingrains when you move to a systems programming language with manual memory management. Other than that it's a pretty good first language, though I'd suggest learning a bit of C at the same time just to get a basic grip on things like pointers and stack vs heap.

Edit: it occurs to me that C# would be the perfect learning language. It's very similar to Java and an easy first language, but you'd also learn about stack allocation through structs, and can teach pointers using unsafe (though I think unsafe code is still GCed, so this wouldn't help with the memory management side of things. Haven't touched C# in fifteen years so I'm not sure how it works anymore).