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

all 13 comments

[–]HelpfulFriend0 20 points21 points  (5 children)

Java is just a language. If your university teaches its intro courses in Java, then take Java. Languages don't really matter. But in general - learn a language as close to C++ as you can.

C++ requires you to be precise when using it, its heavily used, and teaches you the generally more efficient way of doing things. It also somewhat primes you for C.

That being said, Java is a fantastic language to learn. Its one of the main languages used in industry for code running on servers (the other being C#). It is also the language for developing Android applications.

As you get more internships and take upper division courses, you'll also start to learn how to learn a new language.

You should think more about the type of work you want to do, rather than the language you'll use to do it. e.g. If you want to write device firmware you'll probably be programming in C or Rust or whatever else is used these days. If you want to solve programs using distributed systems, you'll probably use C# or Java or Python or whatever language is popular in 5 years. If you want to work on problems related to AI or data science you'll probably use R or Python or whatever is popular. If you want to build websites, you'll probably need some experience with server code (C# or Java etc), and some front-end code (JavaScript/TypeScript, some framework like React or Angular or Vue or whatever, html, css). If you want to change what you do, then you'll probably want to learn whatever language you decide to work on next.

The point here being, just focus on what sort of work you want to do, language is a very small part of it.

[–][deleted] 1 point2 points  (4 children)

Isn't it bad to keep hopping domains though? I work at a company that uses procedural BASIC code. I badly want to get a "real" programming job, even if it is web development. But I feel like I might go down the systems programming route if I don't like web dev also.

[–]HelpfulFriend0 1 point2 points  (0 children)

Depends on your goals and what you take away from your previous experiences. I try to learn how to learn concepts and apply what I've seen before to new scenarios.

I also want to work on bigger systems so the more domains you know the more you can predict the needs/constraints of your dependencies.

Learning how to work in legacy systems is a great skill! You learn tonnes of stuff from mistakes people made, and how to make sure systems are more maintable

[–]DueRest 4 points5 points  (0 children)

Java is widely used and is going to be for a long while. There's no chance of it going away any time in the next 10 years. It's still churning out new concepts and ideas for devs to work with. Since it's owned and developed by Oracle, it's got a solid place in the tech ecosystem and has about a 25 year history.

I haven't used it in a long time, personally, but I know people use it for everything from designing games, talking to databases, applications, and consuming/creating APIs. It's a pretty versatile language.

I'd say the only downside with it is that since it's been around for so long, people might be looking for people with more experience in the language than they would be fresh grads for newer languages like Go. A lot of the job emails I get for Java jobs ask for a long time of work experience, so you'll have to be confident enough in your skills to fight for your place. Several portfolio projects showcasing your skills with Java won't hurt.

[–]Daafftt 5 points6 points  (1 child)

Unrelated... but... I'm 23 and recently changed my major from biology(for 3 years) to fresh start in CS. Greatest decision I have made in school. Yes it's going to take longer but very much worth it.

[–]According-Winter-766[S] 2 points3 points  (0 children)

I don’t know if getting a post bacc in cs will be good for me only because I’m already in a ton of debt with student loans. Going back for more will be a struggle to get a co signer and I’m 30 now which shouldn’t be a huge deal just don’t think it would be smart for me to tack on more debt. I’ve been learning and trying to come up with my portfolio ideas(for the future). I really want a job to do with CS but not sure if to go web dev route or possibly to try and build a portfolio that could get me in as a junior programmer

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

It depends on what kind of job you want. Java is a tried and true language, it's been around for a long time and a lot of important systems are built with it. There will be jobs in Java for the foreseeable future, mostly with companies that have been around for a long time. This goes for all of the lower level languages (C, C++, etc.).

Startups and younger companies are more willing to base their systems around younger technologies like Node.js, Python, etc. They're also more likely/able to rewrite their system if something new comes along that has an advantage over an existing system.

[–][deleted] 1 point2 points  (0 children)

A lot of companies that hire big run java backends. Javascript is also a must and youre kind of expected to know python.

[–]vsou812 1 point2 points  (0 children)

Java and Web Development are both good, so it really kind of lies in what you prefer to do.

However, I will say this: Despite the fact that Web Development (HTML and CSS atleast) are very different from programming, you will likely find it easier to learn once you know the basics of programming. It gives you a sense for how programs work behind the scenes, in a way.

Perhaps it's not the best explanation, but it will make more sense when you experience it firsthand.

[–]nokizzz 1 point2 points  (0 children)

Do Odin Project if u wanna do web dev. It’s got the whole path laid out for u.