You are viewing a single thread.
View all comments
42 points

Sure python may be easier to learn, but it makes learning actual programming more difficult. Ever since the CS department switched to python, my workload as a computer systems TA has doubled.

permalink
report
reply
31 points

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.

permalink
report
parent
reply
14 points

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)

permalink
report
parent
reply
6 points

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

permalink
report
parent
reply
3 points
*

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).

permalink
report
parent
reply
1 point
Deleted by creator
permalink
report
parent
reply
14 points

I learned Python after I already knew C, and I will forever be grateful for that.

I took an Operating Systems class in undergrad whose first assignment was to implement a simple web server in C, and it was fine. Later, I took the same prof’s grad-level class and had to do basically the same assignment again, and all I could think was “wow, this is incredibly tedious: this whole thing would be literally two lines of Python.” Python absolutely ruined my patience for writing C (or at least, for writing C socket code that has to manually juggle IPv4 and v6 struct addrinfos and whatnot).

permalink
report
parent
reply
7 points
*

That sounds similar to this quote:

“It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.” — Edsger Dijkstra, 1975

But there’s been a good deal of programmers who have said that BASIC, and its ease of use and seeing almost instant results is extremely useful to not turn people off learning to code to begin with. Python is functionally the new BASIC in that regard, and while the language itself may not teach you to become an expert programmer, it may have gotten more people in the door than otherwise would have.

But that’s just my 2 cents.

permalink
report
parent
reply
7 points
*

that may be true for CS and software development, but I think that has ended up being more harmful for other fields like electrical engineering. Kind of like how non STEM majors are too afraid to try engineering or sciences, because they all think calculus is this big scary incomprehensible thing that only einstein-level geniuses can learn. I’m seeing that same kind of fear preventing students from going into engineering because they don’t want to learn anything besides python.

permalink
report
parent
reply
3 points

I was exposed to both basic and python first. No wonder it was so much harder for me to do code!

permalink
report
parent
reply
3 points

Ouch, I feel your pain. My high school education consisted of one course in C getting as far as pointers, then the next in Python.

permalink
report
parent
reply
3 points
*

shit I was planning on learning programming starting from python… so what now? I’ve got some high-school level microcontroller C memories, and I’m proficient with Ladder and simple Instruction List. I tend to learn by doing, that’s why I was going for Python, it felt like I could make something straight away.

permalink
report
parent
reply
7 points

If you learn by doing, chose the language appropriate for the pet project you are developing.

permalink
report
parent
reply
4 points

You could use JavaScript although I would go straight to TypeScript. Or maybe C#.

I am biased as I work with TS and C# .Net.

permalink
report
parent
reply
3 points

Assuming we are not developing for Apple devices, it’s C# all the way for me. I haven’t touched another language that I would choose over it. The language is clear and functionally complete and all I suspect I will ever need for desktop application development.

Sidenote: I am fond of using JS for web dev, though the looseness of the syntax and the whole ‘objects are just arrays’ things make it hard to recommend for beginners

permalink
report
parent
reply
3 points
*

buy yourself a copy of K&R 2e (The C programming language by Brian Kernighan and Dennis Ritchie). Its not only a good c book, but a great beginner programming book in general. If you’re a learn by doing guy, it has a lot of exercises you do.

i normally don’t learn by reading textsbooks myself, but this book proved an exception. its inexpensive too.

permalink
report
parent
reply

Programmer Humor

!programmerhumor@lemmy.ml

Create post

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

Rules:

  • Posts must be relevant to programming, programmers, or computer science.
  • No NSFW content.
  • Jokes must be in good taste. No hate speech, bigotry, etc.

Community stats

  • 5.4K

    Monthly active users

  • 888

    Posts

  • 9K

    Comments

Community moderators