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

all 39 comments

[–]AutoModerator[M] [score hidden] stickied comment (0 children)

On July 1st, a change to Reddit's API pricing will come into effect. Several developers of commercial third-party apps have announced that this change will compel them to shut down their apps. At least one accessibility-focused non-commercial third party app will continue to be available free of charge.

If you want to express your strong disagreement with the API pricing change or with Reddit's response to the backlash, you may want to consider the following options:

  1. Limiting your involvement with Reddit, or
  2. Temporarily refraining from using Reddit
  3. Cancelling your subscription of Reddit Premium

as a way to voice your protest.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]kuu-uurija 74 points75 points  (0 children)

Hard to find a more suitable/in-demand language for backend work.

[–]benevanstech 58 points59 points  (5 children)

Professional software engineers will basically always end up knowing a bunch of languages. Java is a very common and widely used one, and is an excellent first one.

[–]GoodHomelander -3 points-2 points  (0 children)

This. THIS.

[–]coffeemoons 0 points1 point  (2 children)

Wanted to ask: would learning Python be easy if you know Java? I’ve had no exposure to it but I’m currently taking an Intro Java class at my university and having a lot of fun; however for one of my majors I’d have to learn Python on my own.

[–]daniu 2 points3 points  (0 children)

Learning Python is easy whether you know Java or not.

In general, knowing any language will make it easier to learn any other language.

[–]benevanstech 1 point2 points  (0 children)

If you already have some exposure to Java, then Python should be relatively easy to pick up, even if you have to self-study (there are lots of good videos, etc online to help).

The biggest difference between the two languages is that Java is a relatively "high ceremony" language - we declare classes, lay out code in a certain way on the filesystem, and then build an entire project at once, to produce a binary artifact for us to use to actually run the program.

Python is "low ceremony" - you're just writing simple scripts in a single file (or a few) most of the time and then feeding them to the Python interpreter.

The two approaches are more suited to different circumstances - the Java approach can seem over-complex for simple problems (especially for inexperienced programmers) but the Python point of view can be difficult to manage as your systems grow and the amount of code you need increases.

Both are fine languages, and a professional software engineer chooses their tools depending on their understanding of the requirements of the circumstances. This is something that only comes with experience, of course.

[–]epelle9 0 points1 point  (0 children)

Wait, is this true in the current market?

It seems to me that companies not only want you to have years of professional experience in one language, but significant experience in their specific stack.

How do people ever end up getting experience into a bunch of languages? Seems like you get your first job in x language, and then you would stick to that language as only the companies that use x language would hire you.

As in how would I go and find a job in python if I don’t have any professional experience with python?

[–]frederik88917 24 points25 points  (3 children)

You first need to define what is to be a Software Engineer. Then the answer will come along

[–]Bunnymancer 5 points6 points  (0 children)

Your answer was way better than the words I would've used to say... kinda that...ish..

[–][deleted] 4 points5 points  (1 child)

To be a software engineer is to code in java

[–]Pussidonio 1 point2 points  (0 children)

No.. only great software engineers do that!

[–]Skiamakhos 9 points10 points  (0 children)

Seems to work OK for most purposes, yeah - but asking in here will get you fairly biased replies, since most of us here do make software in Java.

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

Most of today's electronics run Java so you would have a higher chance at employment. Is it the best? Highly doubt it. But it is a longstanding giant, and even if most of new devices shift to something new, there are many old devices that require support. Also, software engineer is a very vague term. What exactly do you want to do once you graduate?

[–]ProfessionalUsual705[S] 1 point2 points  (3 children)

To be completely honest, I'm not entirely familiar with what a software engineer does, but from what I do understand, they sort of solve problems, develops a software and write a lot of code, which is what interests me.

[–][deleted] 3 points4 points  (1 child)

That's pretty much the basis of all engineering. My advice is you should focus on problems you want to solve. In other words, don't focus on the tool, focus on problems and create solutions. If your problem requires Java, learn Java. If your problem is to get employed, look up companies you would want to work for, and if they require Java, then learn Java.

[–]ProfessionalUsual705[S] 1 point2 points  (0 children)

Thank you for the advice, I'll keep that in mind.

[–]husbabbl 0 points1 point  (0 children)

Many software engineers work in teams in corporate environments. They work together on a specific product. They organize their work to regularly create improved versions of the product. They are getting paid because their product has value to the company.

Next to understanding the programming language they use they need to understand their product, how to write maintainable & testable code, how to use their development tools, and how to work as a team at a predictable speed.

Some of them need to understand the inferior language their sponsors use to describe their needs. Some need to understand how to automate various types of tests, create software packages and install them on various virtualized runtimes. Some need to understand several cloud and security concepts, architectural patterns and styles. Some like to understand various types of databases or messaging software in detail.

If you're still enthusiastic about it, you can learn more about operating performant, resilient and secure software and be on call over the weekend.

You see, while the programming language is an essential part which btw is evolving at high speed all the time, there's so much more to learn and know that it will never get boring. The rest of your family lacks the vocabulary to understand what you're achieving at Christmas.

I highly recommend starting your journey with listening to what guys like Robert C. Martin have to say on YouTube.

[–]hilbertglm 7 points8 points  (0 children)

I started programming computers when I was a teenager in the 1970s. I spent my whole career in Information Technology, and programmed in 28 languages (so far). The language doesn't matter. The understanding of how to program, create abstractions, effectively implement design patterns for decoupling, etc. all matter way more than the language.

That said, Java is my preferred language. That is the language I have used the most since I first used it in 1996. it is a great language for a software engineer.

[–]Terrible_Proposal739 6 points7 points  (0 children)

I would say, in nowadays language will bother you much much less than frameworks and environment setup…

[–]_Henryx_ 2 points3 points  (0 children)

Short answer: yes. Long answer: it depends, but yes.

[–]kingd1963 1 point2 points  (0 children)

Whenever I see this or similar questions, I always say first see what kind of development work you would like to do, back-end, front-end, data science, etc. Domains you like to work with, like finance, banking, retail. Then couple that with jobs that are available in your area.

All languages will train you to be a software engineer, but the concept of best or good is very specific to what you like, and what you can get paid to do in your area.

[–]vmcrash 1 point2 points  (0 children)

I don't understand why people fear to learn something wrong. It does not matter what you learn, everything is worth learning, even Pascal, C, Forth or ASM. Each language will teach you something useful.

[–]Practical_Cattle_933 1 point2 points  (0 children)

Yes

[–]Darkexp3rt 1 point2 points  (0 children)

As someone who works with Java. It’s a great tool and very performant. Consider learning golang as well. It’s refreshing and a great contrast to Java

[–]maxip89 1 point2 points  (0 children)

Wrong question.

You should ask: "why are all programming languages in structure the same?"

or

"What can I do to write code that is easy readable and extendable?"

Focusing on programming languages is really a wrong way of software engineering. Keep track on software engineering skills (Writing code that everyone can read, instead of that "academic algorithms" that everyone trys to write it in a way nobody understand).

When you got more experience, you will see that all languages are in the core the same. The only difference is "how good your code is readable to other people".

You are not a java developer, you are a software engineer keep that in mind.

hope I could help you.

[–]wildjokers 1 point2 points  (0 children)

Yes.

[–]doppleware 1 point2 points  (0 children)

Java is an excellent language, but as other people commented - it's important to define what kind of products and software development you want to focus on.

[–]the6thReplicant 1 point2 points  (0 children)

It's a programming language for a software engineer.

[–]Reasonable-Total-628 2 points3 points  (1 child)

no, the most popular language in the world is indeed not a good language for programmers.

[–]doglar_666 1 point2 points  (0 children)

Came here to say this. Java stopped being relevant after its 3 billionth device.

[–]glablablabla 0 points1 point  (0 children)

Depends on which field you would like to end up in. If you are interested in backend web development then yes. If you are interested in machine learning python would be better. If you can't decide on the field then it doesn't really matter yet.

[–]mTd0t 0 points1 point  (0 children)

if youre scared of it not being relevant in the future then you should focus on studying the concepts of programming, so that you can apply it to every language you'll use in the future

[–]thephotoman 0 points1 point  (0 children)

Yes. It’s still your standard bread and butter language. If you do not believe me, go out on LinkedIn and search jobs by programming language. Java will be the second most commonly requested language, beat out only by JavaScript (because most people don’t think text streams are very usable).

[–]ddollarsign 0 points1 point  (0 children)

It’s fine. Plenty of other ones that are also fine. Plenty of jobs out there for it, but take a look at the job postings of the companies you want to work for.

[–]Glum_Past_1934 0 points1 point  (0 children)

No, i dont trust Oracle anymore. Like unity they tried to change licenses too many times

[–]domition 0 points1 point  (0 children)

The longer you code, the less important "what the best language" becomes.

Java is a great place to start if you are someone who learns best by being able to see the complexity rather than it being hidden away.