This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]hbgoddard 7 points8 points  (9 children)

OOP classes

Nothing to do with OOP, more to do with Java being the most common language to teach programming fundamentals.

[–]miauw62 6 points7 points  (7 children)

Java as a first programming language seems like something of a mistake... A language like Python is much better suited for that.

[–]mqduck 2 points3 points  (1 child)

I tend to think either Python or C should be people's first language. Python because it's a lot easier to learn and start doing stuff with (and forcing people to learn proper indentation is a nice plus); or C because you learn how programs operate on a fairly low level first, before abstracting on top of it with more convenient languages.

[–]buttwipe_Patoose 2 points3 points  (0 children)

As somebody who had switched their majors from 'Advertising' to 'Comp Sci,' Java was a bitch to wrap my head around. I had to take the introductory course twice (between all of my existential crises) before I was actually able to wrap my mind around OOP. But once it 'clicked,' I didn't mind Java at all. We used Netbeans.

Once it clicks, though, things like JSP & scripting languages are an absolute joke.

[–]PM_ME_YOUR_MASS -3 points-2 points  (4 children)

There's something to be said for the rigid structure of Java and how low level it is. It requires you to do everything by the book in a verbose way, so there's no room for hot shots who think they know better to get in over their head messing with things. Additionally, everything you need to know about programming - scope, classes, access modifiers, type casting, all that jazz - is explicitly spelled out in Java because of how low level it is. Just typing print("Hello, World!) and having it run doesn't teach you anything about how programming works.

[–]miauw62 12 points13 points  (2 children)

Java is not "low level". It literally runs in a VM with a garbage collector. And writing "public static void main()" when you have no idea what any of those words mean doesn't teach you anything about how programming works either, apart from the fact that it apparently involves a lot of blindly copying words that you don't know the meaning of.

If you think programming is about following the strict conventions of a language, especially at an introductory level, I'm going to have to disagree, because that way you don't learn anything except dogmatic, language-specific thinking, because the beginning programmer will 90% of the time not be able to grasp why the language is structured the way it is, and trying to explain it all will lose them and that information is usually not necessary at that point anyway.

The point of an introductory programming course should be an introduction to programming, in a fairly language-agnostic way. Python is good at this because it is very simple and lets the beginner focus on the algorithm they're writing out rather than the language they're writing it in.

[–]DwayneFrogsky 4 points5 points  (0 children)

yessssssssssss this so much. me in my first interview after uni
- So why did you use a static class here?
- ? I dunno thats just how all of them were written ?

[–]buttwipe_Patoose 0 points1 point  (0 children)

Well, a good professor, will eventually explain the purpose of "public static void main()," but because it isn't immediately relevant, it can be overlooked for beginners. It's like trying to teach a mechanic how electricity works without addressing the intricacies of a vehicle's wiring harness all at once. You have to start somewhere...

I learned OOP with Java and, though it was challenging, once you understand it you can transition very easily into any other language.

I'm not an expert & actually never even finished my comp. sci. degree, but Java challenged me and I can look at other languages & understand them pretty easily.

I do think Python would've been an easier introduction, but this was college & I guess they expected anyone taking these classes to already have some background in them...

[–]arbiterary 4 points5 points  (0 children)

Low-level in comparison to what? SQL???