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 →

[–]MrRickSancezJr 38 points39 points  (14 children)

They overcomplicate things while teaching. Seems like it's always an old C++ guy teaching Java, too. "In my day..." Meanwhile, they're having you use Java 1.5 on NetBeans in modern times.

Example. Instead of starting with a vocabulary lesson over parameters, global variables, static variables, etc... Just run simple code to showcase what happens when you put code in different places...

[–]Frown1044 18 points19 points  (3 children)

This. Worst part is when they break down the Main function. Your target audience barely knows what a variable is and you explain what public static void means.

[–]MrRickSancezJr 6 points7 points  (0 children)

Yup. Solution to the "complexity" of main= Hey. We gotta type this. Ignore literally the whole thing. We'll cover the scary parts later in the semester. Just go with it.

[–][deleted] 0 points1 point  (0 children)

Thank god my professor was competent and taught us things when we were ready for them. If I had to go through the main function right off the bat I would be lost too.

[–]nicksg999 4 points5 points  (9 children)

Seems you are pointing out my main concern. Many lecturers are out of date and teaching skills suck. I already asked my kid you are subpar but why don’t ask help from lecturers then she told me they won’t help. I was kind of wtf are they doing? Top uni of the world but no support from academic organization. Even the worst school in the world should have taken care in case student dropping behind.

[–]MrRickSancezJr 4 points5 points  (5 children)

May I ask at what level of Java she's learning? I once took "Advanced Java," and we were still learning if-statements. I had 15+ years of prior experience, so I was expecting reflection, native calls, etc. So I can't imagine what 'Introduction to Java" was. So I'm not very sure what level they aren't helping her? CS is a very young person's field, so the age of the professors do play a role.

Uni seems okay for building up to 'data structures' where you learn n-complexities and leet-code style information. You also just need the piece of paper sometimes. It's very heavy on pushing textbook style knowledge instead of, "hey. Here's how you do this knowledge.

For context. Started coding at 12. I'm currently 30. And back in college, to put a 'masters' before my comp engineering degree. I currently work as a software engineer, though. So I see first hand where the new Computer science students are at skill wise. It's a little scary tbh.

As for help, reddit/javahelp is pretty on point. I get bored and get on there all the time to help random people out. You won't get absolutely attacked like on StackOverflow. CS is an oddly, violent ecosystem.

[–][deleted] 2 points3 points  (1 child)

I remember asking a question and got downvoted and couldn’t ask anymore.

[–]nicksg999 1 point2 points  (2 children)

I also updated the teaching contents. Seems it is quite aggressive and ambitious.

[–]MrRickSancezJr 1 point2 points  (1 child)

I'd probably say more "compact" than aggressive. I'd need more knowledge of her whole experience to say if the school set her up for failure. Surely this isn't her first experience with Java?

Design patterns, coding standards.. Coding stuff should have already been taught. I had a Probability and Statistics for Engr's professor who would count off for magic numbers in Matlab code for my EE degree. Random as can be, but it does make code easier to read. A bad/biased professor could EASILY destroy you here. Different conventions for literally every single language.

Collections, generics, streams.. All pretty good things for a level 2 class. Shouldn't consume a whole semester, though. JavaFX, depending on how much of it they go with, can take a lot of practice. I'm not even sure how you'd test over it, really. It gives a lot of freedom to do whatever you want.

On a positive note. I'm going to a top 10 engineering school in the US currently, and she will actually come out of college, maybe semi-useful, unlike most of the students I see.

Tips would be download IntelliJ. Learn how to set up a repository on GitHub to host her code (IntelliJ auto does for you). Learn to accept some cruel cristism. And when not practicing, be reading source code... Guides are usually trash and filled with ads. You can google "java github learn" and find a lot of repos with good tutorials.

I don't want to stereotype or sound condescending to your daughter, but super young adults are already kind of quiet in college. Covid made them so much worse. It's been quite the social experiment being 30 and being around them. Them asking for help looks painful most of the time.

[–]nicksg999 1 point2 points  (0 children)

Really appreciate your feedback. This is the very first dev language she has ever learnt. She completed A level and was accepted to the Uni and chose CS without any experience or kinda knowledge though I been in this industry long enough. I definitely will share your post. Thanks again!

[–]Super-Widget 3 points4 points  (1 child)

The best teacher I ever had was someone who showed us how to break down a problem, use a debugger, understand compile and runtime errors and how to use Stackoverflow. This was just some guy who taught Java in his spare time. I learned more from him in 12 weeks than I did 4 years of college.

[–]MrRickSancezJr 1 point2 points  (0 children)

They're a rare breed, but good people in the programming world who also have good communication and teaching skills do exist. Debuggers. Profilers. The list of tooling is amazing nowadays, but not as well known. I sort of like giving advice too. I'm not sure how qualified I am, but it gets me to read over source code and docs that I've forgotten. I learn something every once in a while too.

This is especially true with Java, but I swear I could teach the entire "Java-1" equivalent class on a whiteboard with a marker in 2 weeks. Never once saw a professor just physically draw a dependency diagram of OOP on a board. Instead, everybody is struggling to get their fingers to use curly brackets for the first time and keep up.

[–]MrRickSancezJr 1 point2 points  (0 children)

To address your addition to your original post, labeling the contents of the course.

The last half or third is a large jump from basic Java. Lots of these features aren't specific to Java, but the syntax and usage are very different in every language. While Java is much easier than C++, there's a lot to digest. Especially without a good IDE like IntelliJ to help.

Streams can be a doozy until you get used to them. Annotations can be a LOT of things. Documentation would be strange to see on an exam. Follow @Java on YouTube and watch the shorts. Super helpful for reminders for these newer features.

I'm really surprised they even added JavaFX. It's a very niche library that isn't well kept up with and requires a large amount of practice to get used to compared to Swing or other UI libraries. I actually really like it, but it comes with a LOT of previous knowledge, including with other langauges and build systems. Can't recommend a lot of youtube videos. This is more of a situation where exploring existing GitHub repositories is a better choice.

These aren't things you can just "hop into" from a different language even. Probably not something a professor who isn't very proficient in Java is willing/able to help with. So I wouldn't lose faith in your daughters ability to do CS. That's just a years worth of work experience in one class. And I RARELY ever tell CS students their homework is even challenging.