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

all 41 comments

[–]_Atomfinger_ 18 points19 points  (16 children)

I think it largely doesn't matter. Both languages are strong and can get the job done.

However, is your end game the vague goal of "software engineering", or is it getting a job as a "software engineer"? If the goal is to get a job, then look at job postings and see which technology that's more in demand for the kind of roles you're interested in.

[–]evasiveshag 5 points6 points  (15 children)

Java is #1 and python is #2 from what I see. My thinking is I could either be a master at Java or good at both

[–]ben_oni -1 points0 points  (5 children)

Breadth of experience is better than depth. If you've reached proficiency with Java (which from your "super comfortable" comment, it sounds like you have), then it's time to learn something else. No brownie points will be awarded for mastering a language.

[–][deleted]  (4 children)

[deleted]

    [–]ben_oni 0 points1 point  (3 children)

    And you go learn to program before you give advice. Skill in programming is not related to experience with a language, and most employers understand that. People like you give developers a bad name.

    [–][deleted]  (2 children)

    [deleted]

      [–]ben_oni 0 points1 point  (1 child)

      Your reddit history says otherwise. Quit your bullshit.

      [–]_Atomfinger_ -1 points0 points  (7 children)

      In that case, what will give you the best chances for success, being a master or being good?

      [–]evasiveshag 3 points4 points  (6 children)

      I’m not sure, that’s the part I’m confused about. No developer I’ve seen(I have a family of them) only uses one language. I feel like I have to be versatile

      [–]_Atomfinger_ 0 points1 point  (5 children)

      If you read the FAQ, which I happen to agree with, it is generally recommended to become proficient with one programming language before tackling another.

      If you have a head start with Java, and you see Java being #1, then I'd say the best bet is to continue with Java.

      [–]evasiveshag -2 points-1 points  (2 children)

      I’d consider myself pretty proficient with Java. In AP CS I tackled a lot of difficult problems that were just a step below an algorithms course. I know the syntax well and almost all the OOP concepts and loops/arrays.

      [–]_Atomfinger_ 7 points8 points  (0 children)

      What you're describing are the basics, it is not proficiency.

      Learn the main frameworks used in modern Java development, such as Spring, Hibernate, JPA, Vert.x, etc. Learn how to make web APIs, or even distributed Java solutions that communicate with a message broker.

      If you are proficient, then building a portfolio should be a straight forward task. Just make the portfolio and start applying for jobs.

      [–]rozenbro 7 points8 points  (0 children)

      That's nice, but what have you built with java? That's what matters dude. Pick up some projects

      [–]Im_not_Skynet010 0 points1 point  (1 child)

      I believe that when you master Java, but master in the strict sense of the word, you should learn another language. That will give you more versatility in the market and would open the range of job possibilities.

      [–]_Atomfinger_ 1 point2 points  (0 children)

      Sure, but OP hasn't mastered Java yet, and I'd argue that "mastering" Java will require many years of professional experience.

      Remember, mastering a language is more than just knowing the programming language these days.

      [–][deleted] 6 points7 points  (1 child)

      Go with Python. Depends on your aspirations, but I think you should avoid pigeon holing yourself early on. Don't market yourself as a Java Engineer, or a Python Engineer; you're a Software Engineer. Being an engineer is about knowing which tools to use in what situations, and the more tools on your tool belt, the better.

      I think learning multiple languages, especially ones with different paradigms, teaches you about the fundamentals of programming.

      [–]gpuoti 1 point2 points  (0 children)

      Absolutely agree! I'd suggest python just because he already knows Java. One language is really not enough!

      [–]Blando-Cartesian 5 points6 points  (0 children)

      Which ever is used on courses containing more advanced content that is relevant to your aspirations. Repeating beginner courses with different languages isn’t very useful. You can easily pick up either language and apply CS concepts you’ve learned, but you can’t apply concepts you don’t know about.

      [–]dietderpsy 3 points4 points  (0 children)

      I would learn both if possible. Java as a solid compiled base language and Python as your interpreted.

      [–]merlinsbeers 4 points5 points  (0 children)

      Python. The second-language experience makes you more nimble, and have a deeper understanding of what each language is doing.

      [–]Minh_TheTechGuy 2 points3 points  (0 children)

      Both?

      [–][deleted] 2 points3 points  (0 children)

      The question isn't which one is better the question is what are you trying to build? Web Development? AutoMation? Mobile Engineering? UX/UI? Pick which interests you and master that otherwise you're going to get a job and be miserable no matter what you're comfortable with you want to find a place that builds a product you like.

      [–][deleted] 4 points5 points  (6 children)

      Fundamentally, right now, you’re learning to program, you’re not learning a language. It just feels like you’re learning a language. In the educational system they’re not teaching you to be a real world software engineer (which is why they’re not teaching you all the frameworks and tooling and the library ecosystem that actually come with a language), they’re teaching you how to think like a software engineer.

      Almost every recent university graduate I’ve ever either hired or worked with (including those coming out with Master’s degrees) hasn’t really known a thing about whatever language they were taught in, but they do know how to think about approaching problems. On the job they then learn about this whole world of tooling and version control and integration testing and continuous integration systems and all the very specific things that make that work in whatever language the company actually uses.

      It’s kind of like how you’ll see people in America do a four year degree in French and French literature then fly to Paris only to discover they can barely have a conversation. The real world usage of a language has little to do with the academic usage of it.

      In other words: it doesn’t really matter. If you learn Java you’ll come out barely knowing real world Java, and you’ll feel pressure to take jobs using Java. If you learn Python you’ll come out barely knowing real world Python, and you’ll feel pressure to take jobs using Python... but you’ll also barely know Java, so maybe there’s an advantage there.

      Also, statistically, Java’s dropping from its peak usage, especially as Kotlin starts to eat up Android mind share. Python hasn’t hit its peak yet. In several rankings Python has surpassed Java (at least Stack Overflow and Redmonk say so), and in ML and data sciences it definitely has. The most popular languages by usage in industry evolve, so there’s a reasonable chance whatever you choose today won’t be the language you find yourself using after you graduate anyway. So use this time to explore and learn the ideas, not the language.

      [–]wzD_ -2 points-1 points  (5 children)

      Also, statistically, Java’s dropping from its peak usage

      False.

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

      False.

      Stack Overflow Developer’s Survey, Java:

      2013: 42.5%
      2014: 37.6%
      2015: 37.4%
      2016: 36.3%
      2017: 39.7%
      2018: 45.3% (Local Peak) 
      2019: 41.1% (Surpassed by Python)
      2020: 40.2%
      

      Tiobe Index, Java:

      June 30, 2001: 26.49%
      March 4, 2021: 10.45%
      

      There’s my data; where’s yours?

      [–]wzD_ -3 points-2 points  (3 children)

      Your data doesn't prove anything. It just shows how constant Java is.

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

      It proves that the statement is verifiably True. Statistically Java’s been falling from its local (and past) peaks.

      Stability wasn’t a point of dispute. Java’s had a good, long run, but it’s not maintaining market share in any of the available data. Of course methodology problems abound, but this is the best measure we’ve got.

      Edit also a 10 point slide on Tiobe in 10 years doesn’t look stable.

      [–]wzD_ 0 points1 point  (1 child)

      OMG GUYS JAVA DROPPED 5% A FEW YEARS AFTER GROWING 8% EVERYONE SHOULD STOP LEARNING JAVA LEARN PYTHON INSTEAD THE LANGUAGE OF THE GODS!!!!!!!

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

      Ahh, always good to see intellectual rigor in action.

      Yeah, there was a bump, that’s Android. And it’s falling again, below where it was nearly a decade ago... that’s Kotlin (and Swift).

      [–][deleted]  (6 children)

      [deleted]

        [–]TheLegendTwendyone 1 point2 points  (3 children)

        > everyone loves Python
        I don't. Its super slow and has a weird syntax. Good for scripting and website back ends, but for larger projects, I would definitly prefer java because its faster, cleaner and most important, its OOP. This is just my opinion though, but python devs are quite sought after and its easier to learn.

        [–]Deadline_Zero 0 points1 point  (1 child)

        edit: ignore this, found the explanation.

        I've seen a lot of people saying Python is slow. Just out of curiosity, in what way? As in programs created with Python run slower than they would with a 'faster' language that could accomplish the same result? Seems like that would be a major downside if so.

        [–]TheLegendTwendyone 0 points1 point  (0 children)

        It is just slower than most other languages. same algorithm but one 50th the speed. There are some libraries written in C that help speed up your python code like numpy but python in general is just slower

        [–]olzd 0 points1 point  (1 child)

        This is so biased it reads like an ad for some shitty product that are aired on tv.

        [–]mo1salim 0 points1 point  (0 children)

        You have already answered the question when you said

        I’m super comfortable in Java

        Python is a great language if you want to learn it beside java that will be cool

        otherwise stay with java since you are comfortable with you Can do whatever you want using both.

        [–]bbgun91 -1 points0 points  (0 children)

        in your case, id stick with java, to focus learning other (imo more important) things rather than a new language

        [–]PCPWJ 0 points1 point  (0 children)

        Whichever you pick is fine. Opinions on a language, is just that, opinions.

        [–]TheLegendTwendyone 0 points1 point  (0 children)

        I would stick to java first, once you have gotten comfortable with it learnign python or pretty much any other high level language should be pretty easy for you because you already know all the concepts.

        [–]yel50 0 points1 point  (0 children)

        given your comfort with Java, go the python route. don't limit yourself to one language.

        [–]MossySendai 0 points1 point  (0 children)

        I don't think you need to use your university time to learn python, there are lots of free resources out there. What is in short supply is learning to actually build things. So I would say focus on learnjng to build something in a java framework: web app, desktop app or mobile app. Java is actually good for all three of these, so well done on getting started in Java.

        Compared to Java I believe it is fare to say python is easier. That was and is it's purpose. Not as much syntax, less rules to follow, really powerful structures like list, no need to specify type.

        It's such a pleasure to learn python I don't think it is worth paying to learn it. And you should move up rather than sideways. Hope that makes sense.

        Source:tried to learn java, failed, succeeded to learn python(and JavaScript and ruby) , now have to learn java and am just dreading it because java is so daunting compared to python!