Unis suck giant balls at teaching Java

So I've noticed that almost all the books etc. in Java are basically living in Java 5.0 land.

They teach an old, crusty and hard to use language. They don't teach modern Java, which is sad, because the 12 years of experience formed since Java 5 was released should actually be used for the benefits of the new learner.

So I ask you Sup Forums, if we were to teach modern Java, warts and all (there is no need to shy away from the fact that the language is imperfect), how should we do this?

My suggestions would be some basic fucking changes to the average curriculum, because I'm sick and tired of kids not knowing BASIC NECESSARY SHIT.

> What is maven/gradle/etc.
Just pick one and stick with it throughout. Don't build using eclipse. Don't use fucking javac. Javac are for those with special interests in this sort of thing.

> Don't teach java.io and neglect java.nio
FFS. How do I read a file?
USE:
java.nio.file.Files.readAllLines(path, cs)
If I see one more
InputStreamReader reader = new InputStreamReader(FileInputStream(new File("/path/to/file")));

I will fucking scream. I swear to the gods. Fuck this shit.
At least teach them the scanner trick.
Scanner sc = new Scanner(file).useDelimiter("\\Z");
String content = sc.next();
sc.close()

I mean, yeah, delimiter sounds strange, and explaining that EOF is a thing is strange. But people managed to learn that when we were taught C. Milennials aren't stupid. So stop treating them like idiots.

> Not teaching them how to talk to an RDBMS
What the flying fuck even is this?
You cannot rely on ORM tools. ORM tools deal with the boring shit for you. You still have to query manually from time to time.

If a new hire doesn't know how to use JDBC, then we have a problem.
Furthermore, how can you avoid teaching people about how classloaders work and claim you're teaching them Java? Don't teach them the subset that they have in common with C#. Actually teach them Java.

What do you think, Sup Forums?

>My suggestions would be some basic fucking changes to the average curriculum, because I'm sick and tired of kids not knowing BASIC NECESSARY SHIT.
>If a new hire...
>What do you think, Sup Forums
Too bad it isn't the Unis job to teach your code slaves.

>graduates should definitely know JDBC! not those ORM tools!
>oh but using high level functions for reading files instead of streams is perfectly fine
You're a retard. Unis should teach both low level functions AND higher level functions/frameworks to do the same stuff but quicker. I graduated 8 years ago though so I don't know the current situation.

I think the reason why so much software is so terrible is that there is really no education for programming properly. One hand you have unis, which really aren't there to create programmer drones, but teach fundamentals in CS. Then you have these weird code camps which are intro courses to hipster web frameworks where the people are totally lost without stackoverflow.com. Then all the self-taught people that learned the basics of PHP and then decided to never learn anything new ever again.

It's not that much of a problem, if uni did a good job at teaching you programming even using decade old standards you should be able to pick best practices relatively easily.
I did this during internships, companies didn't even need to pay me decently while i caught up to the tools they use.

It'd be nice if universities taught people directly how to be proficient with current technologies but the point of these formations is to give students an overall view of how shit works from hardware io interrupts and system calls to designing shit to meet client's use case. It gives you the ability to simply teach yourself what you need to know about a specific matter without comming here posting "hi Sup Forums how do i do websites do i need to learn nodejs ??" like a retard

Also researchers mostly don't use or produce production ready stuff as they mostly focus on doing pocs for their algorithms an whatnot so they mostly don't know shit about current best practices and can't teach them anyways.

>if we were to teach modern Java
I'd teach C instead, then teach people how to create their own prototyping and object oriented frameworks.

But learning how to program in uni is for retards anyway, so in reality I probably wouldn't bother teaching at all.

My college actually taught us the scanner method first. We're learning Java 1.8 here.

back when I was in CS we started with "java--" which was just a wrapper without classes.

it was horrible

>java 1.8
>meanwhile current java is java 8

what the actual fuck

I think you may be mistaken. The latest version of java is 1.8.*

>no eclipse
Then if not eclispe, then what IDE for Java then?

he meant use whatever ide you want but use maven or gradle directly to build your stuff

>Unis suck giant balls at teaching Java.
You seem to think that universities generally teach java, OP.

They don't. Universities teach programming. When they use java as a vehicle for teaching programming, they teach those parts of the language necessary for teaching programming. This is by design, as universities are not in the business of teaching java.

>So I've noticed that almost all the books etc. in Java are basically living in Java 5.0 land.
>They don't teach modern Java,
> What is maven/gradle/etc.
> Don't teach java.io and neglect java.nio
> Not teaching them how to talk to an RDBMS
All of this would be relevant for a java course. Fortunately, universities don't typically teach those, so your points are entirely irrelevant.

>If a new hire doesn't know how to use JDBC, then we have a problem.
Then perhaps the new hire should study some java after (or while) in university. And perhaps your hiring department should check for that.

>What do you think, Sup Forums?
I think that you don't understand the difference between a course in programming and a course in java. And I think you don't understand the difference between a university and vocational training.

>the current year
>reading files
top heh

USC: Columbia teaches modern Java in it's freshman classes.

I think he means the jdk version

Idk about you but my uni teaches all this from the very first intro to cs class. It's considered a weed out course and many people fail it. The program is very polished. I'm only a sophomore but I've learned twice what my friend at his uni learned in the same amount of time

>going to university to learn applied Java
That's community college tier bullshit. Universities teach algorithms, data structures and math.

Java is a cancerous piece of shit that's only value is its ubiquity.

There is no good way to learn or teach or use it. And even if there is, 0% of people give a fuck.

Lolololol did Java rape you when you were a little boy? Oh, excuse me, what a silly question - you're still a little boy, aren't you?

There is literally no college that offers CS that doesn't teach programming, even if it is the lesser part of the course.

>FFS. How do I read a file?
>USE:
>java.nio.file.Files.readAllLines(path, cs)

good luck reading files with sizes of 1GB+ using this shit

They teach students how to turn algorithms into code. Not necessarily how to build an industry level end product using modern architecture. You learn that shit on the job. It is the employer's responsibility to teach new workers how things are actually implemented in industry. Uni isn't a coding boot camp. A technical institute may be.

Unis don't teach Java. Workplaces do.

>Just pick one and stick with it throughout.
>Just pick Gradle and don't touch anything else
fixed
every other option is deprecated

>basic necessary shit
>java

Good one

Eclipse is shit. It's so fucking complicated you can lose days trying to fix the configuration.

Intellij is far far better. Netbeans also works in a pinch.

A junior colleague of mine once said in a meeting that he thought universities had better code than industry. Everyone laughed. I mean, some code in industry is dire; but in universities there's like no good code ever.

>recommending NetBeans over eclipse

What universites don't teach you is how to fill out the IPOs, grants, quotes, etc that go long with being in IT.

this.
So few learn to code by themselves, by ACTUALLY making simple bots/scripts/games/etc. these days.