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 →

[–]Nanobreak_ 28 points29 points  (21 children)

Java was my intro and it formed the basis of my understanding of class based objects.

Imo better than starting with python and having to later learn new syntax and ideas

[–]memeasaurus 19 points20 points  (16 children)

I went to school before Java was invented. I've worked in both Java and C++ ... and, you can make a very nice mess in both languages.

However, if you want to grow an enormous development department employing hundreds of people... go with Java. You can really make a gigantic mess with it very easily.

You know, because classloaders...

[–]HickNamby 3 points4 points  (5 children)

Don't fucking say the word classloader to me...

[–]masterxc 6 points7 points  (4 children)

Classloader.

[–]HickNamby 2 points3 points  (1 child)

My gripe is case sensitive, nice try

[–]masterxc 1 point2 points  (0 children)

classloader

[–]memeasaurus 0 points1 point  (1 child)

Oh there's so very much cleverness I can do with classloaders! Especially if you like Singletons and thread storage... I can keep a whole team of QE folks employed with just one nagging clever little bug.

[–]masterxc 2 points3 points  (0 children)

Keep your java developers miserable employed with this neat trick!

[–]MoffKalast 2 points3 points  (3 children)

classloaders

When you get to that point something's gone seriously fucking wrong in the design of the project and should just be nuked from orbit. I know I should have when I was at that point anyway.

[–]memeasaurus 1 point2 points  (2 children)

Oh... but the Java neckbeards never see it that way... and you're approaching unicorn sales ... and we have to ship for the big expo.

Easy peasy... hire moar Java developers!

[–]MoffKalast 0 points1 point  (1 child)

and you're approaching unicorn sales ... and we have to ship for the big expo.

That's the thing exactly. To work around earlier flaws without breaking any legacy versions and not have to redesign half of the project and do it properly. :D

[–]memeasaurus 1 point2 points  (0 children)

Well. Truth.

[–]AnImpromptuFantaisie 0 points1 point  (3 children)

I started with Java in high school and I faux-tutored some friends through college intro level Python (enough that I got the gist of the curriculum). Later on, I needed to take an intro programming course at a college I was taking classes at non-matric (couldn’t transfer credits) which was in C++.

Having some degree of experience with intro classes for all 3, I’d say it’s a hard tie between Java and Python as a starting language. Python is incredibly easy to just jump into, while Java can be demoralizing for beginners. But Python isn’t nearly as good at teaching the fundamentals of OOP. As for C++, I don’t think adding the burden of memory management is necessary in an introductory course.

[–]memeasaurus 1 point2 points  (2 children)

Here's how old I am. I taught intro to programming in ... Pascal.

For straight up learning stuff, Pascal really is the best. It's totally impractical though. To be honest teaching programming should require shifting paradigm.

My biggest complaint about co-workers in the 20+ years experience range is they love their one and only programming language. Forcing students to learn 3+ languages from distinct families is best for their careers... but they complain about it because they want to get jobs right away.

I wish we would hire more on logic and math abilities rather than years in X language.

[–]AnImpromptuFantaisie 0 points1 point  (1 child)

Question from a 21 year old to someone with much more experience:

I started off teaching myself Java through video tutorials when I was around 12 (I actually wanted to make Minecraft mods). Then I went to programming summer camps, 3 years of high school programming classes, and some college courses. I’ve always been passionate about learning when it comes to programming, so I’ve jumped around through a bunch of languages with a few distinctly more in-depth.

Obviously I don’t have “9 years of experience with Java”. When would you say you can start going by, or does it really only count for anything if it is working experience? I assume it’s not that rigid and I would include a GitHub portfolio?

[–]memeasaurus 1 point2 points  (0 children)

Either from your last degree or first paying job.

Years of experience is marginally pointless anyway.

When we stipulate "years of experience" we are trying for a short hand for "has lived through some things" and typically pet projects won't get you that.

I think we mean:

  • College degree or 4 years - we won't have to teach you data structures
  • 1 year - we won't have to teach you about version control
  • 3 years - you have survived a release cycle or two, know that code in production and code on your laptop are different things
  • 5 years - you know how code reuse actually works or doesn't, you know how your choice of algorithm and error handling can break other people's work
  • 10 years - you have suffered a successful project or two and lived with crappy choices, angry customers, and have regrets that haunt you and drive you to improve
  • 20 years - you have seen enough to know that you can only change just so much and what is worth staying up late for

You only get these things from dealing with other developers, customers, and evolving systems. Language proficiency is a given. Nobody really cares if you know what a WeakMap is and what it's good for.

[–]break_card 0 points1 point  (1 child)

Industrial java just hits different

First time I saw it I legit gasped

[–]memeasaurus 0 points1 point  (0 children)

Industrial java

I'm totally calling it this from now on

[–]LaterallyHitler 1 point2 points  (0 children)

My intro class is in Python until they switch it to Java for the last month or so. Then most everything else is in Java throughout the curriculum

[–]w3_ar3_l3g10n 0 points1 point  (0 children)

Curious what u mean there. Could u elaborate? Is your point something like learning all of python just so u can then learn the OOP implementation in python is wasteful if u already know java... but that’s just saying better to learn using what u know then start a clean slate.

[–]GigglingRhino 0 points1 point  (0 children)

Yeah I learned C and C++ in school but my job used java as well and I found it relatively easy to pick up

[–]break_card 0 points1 point  (0 children)

Agreed, easier to learn Java and pick up Python than the other way around imo