Jump to content

After python shpuld I learn java or c++

So today im ready to go to my next language (im ready to move on from python is what im saying) but im having trouble deciding if i should learn c++ first then java or java then c++. me personally wants to do java first then c++ but don't know if its a good idea. Sooooo what do you guys think

Link to comment
https://linustechtips.com/topic/954585-after-python-shpuld-i-learn-java-or-c/
Share on other sites

Link to post
Share on other sites

Depends on what you want to do. 
Most Web Development Companies seem to use Python and Java on their Backends.
C++ is for game development and other Graphics programs. 
Java also is used for Mobile Development on the Android. 

 

EDIT:
C++ is also commonly used in systems programming like Operating systems development. 

Link to post
Share on other sites

4 minutes ago, fpo said:

Depends on what you want to do. 
Most Web Development Companies seem to use Python and Java on their Backends.
C++ is for game development and other Graphics programs. 
Java also is used for Mobile Development on the Android. 

 

EDIT:
C++ is also commonly used in systems programming like Operating systems development. 

I want to do software development. so im guessing c++ then?

Link to post
Share on other sites

4 minutes ago, ClinnMix said:

I want to do software development. so im guessing c++ then?

You can do software development with all 3. 

 

Some users say they do most of their prototyping in Python & then go to a different language. Many users also state that each language is to be used for different applications. 
Many software are written in Java & many are written in C/C++. 
Java makes it "Easier" to have the application work on many platforms. C/C++ gives you "More performance." 
Where Ease is relative & the performance nowadays is more or less negligible with the speed of modern computers. It depends on what you're making and how complex it is. 

C & C++ (Which are a bit different but kinda similar) have the ability to be more powerful, but require you to do more work. Java has a lot of power but demands less from you & does some things automatically as it's almost as if it doesn't trust you. For instance (If I'm not remembering it wrong) Java passes variables or objects by reference as it doesn't believe you need such large amounts of data to be copied in ram. Copying data in ram can slow down a program & Java by default passes by reference. IF I'm not mistaken in exactly what it does. 

 

If you're planning on making a few basic programs, you can do it in just about any language. 

Even Minecraft is written in Java. If you know what kind of software you want to write, it may help choose a language, but the basic syntax structure is pretty similar between Java & C++. It doesn't matter which you go to. You likely can stand most of your career on-top of Python & never leave that. 

Link to post
Share on other sites

If you're looking to get a career as a software engineer, entry level recruiters will love either java or c++. What's far more important to getting a job is how well you can tackle interviews, and how well you know general programming concepts. There may be some smaller firms that require a specific language, but in my experience when going through job interviews in college, the companies that demand specific language knowledge for entry level positions are not typically the kinds of places most people dream of working at (with the obvious exception of places doing something very specific, but they typically have a higher "entry level" standard than what i'm talking about anyway).

 

If you are a good java dev coming looking for an entry level position and can show that, then people will hire you even if they don't use java in house. When it comes to entry level stuff, people are looking for solid fundamentals and the ability to learn any language to a certain level. If you can be a competent dev in a single language, you can learn more languages quickly. 

 

Instead of worrying about language, focus on the fundamentals. Practice interview problems, learn solid OOP fundamentals (coding to interfaces, modularity, polymorphism, good understanding of abstract data types, etc.), and have a basic understanding of big-O. Those will get you way further than worrying about know a bunch of specific language knowledge. 

 

The one note I would add though is if you do learn C++, you do get to familiarize yourself with stack vs heap memory, but that isn't enough to make C++ REQUIRED or anything. Just a bit of extra knowledge at a lower abstraction than most work with in todays tech stacks.

 

tl;dr many languages like C++, C#, and java are more than fine for general software development. Python can work too (though I do think it's good to be familiar with a statically typed language), If you want to do web dev then spend some time in javascript, but otherwise it really doesn't matter until you know which part of the industry you want to work in, and that choice can (and usually does) happen after your first job.

Gaming build:

CPU: i7-7700k (5.0ghz, 1.312v)

GPU(s): Asus Strix 1080ti OC (~2063mhz)

Memory: 32GB (4x8) DDR4 G.Skill TridentZ RGB 3000mhz

Motherboard: Asus Prime z270-AR

PSU: Seasonic Prime Titanium 850W

Cooler: Custom water loop (420mm rad + 360mm rad)

Case: Be quiet! Dark base pro 900 (silver)
Primary storage: Samsung 960 evo m.2 SSD (500gb)

Secondary storage: Samsung 850 evo SSD (250gb)

 

Server build:

OS: Ubuntu server 16.04 LTS (though will probably upgrade to 17.04 for better ryzen support)

CPU: Ryzen R7 1700x

Memory: Ballistix Sport LT 16GB

Motherboard: Asrock B350 m4 pro

PSU: Corsair CX550M

Cooler: Cooler master hyper 212 evo

Storage: 2TB WD Red x1, 128gb OCZ SSD for OS

Case: HAF 932 adv

 

Link to post
Share on other sites

5 hours ago, ClinnMix said:

So today im ready to go to my next language (im ready to move on from python is what im saying) but im having trouble deciding if i should learn c++ first then java or java then c++. me personally wants to do java first then c++ but don't know if its a good idea. Sooooo what do you guys think

What do you actually want to learn? Basic syntax and hello world usage of few languages or actual skills in like one of them? You will have hard time using any of them if you don't specialize, you don't learn the whole platform, tools, frameworks and libraries. If you want a job as a software developer then you won't be asked do you know JAVA, C++ or Python, you will be asked if you know software stack given company uses. Software stacks become more and more complex and also have additional services, other languages and companies need people that already know those stacks. Basic language knowledge is to little when compared to few year knowledge of the stack.

Link to post
Share on other sites

7 hours ago, riklaunim said:

Basic language knowledge is to little when compared to few year knowledge of the stack.

Even if they might strongly prefer a language on the resume, they shouldn't demand in depth knowledge (at least for an entry level position. Obviously if it's a senior engineer spot the expectations are different). I once had an interview for an entry level job and they asked all kinds of random specific java knowledge. For example they showed me a small code snip and asked why it wouldn't compile, and the answer was they were creating a new List<> instead of an ArrayList<>. Silly questions like that are signs of bad hiring practices, since that knowledge simply shows how familiar you are with java, not how well you can write code in java. The other interviews I had around that time with other companies let me demonstrate my actual abilities instead of just language trivia. I would MUCH rather have a future co-worker that had good fundamentals than one who just was familiar with the basic language libraries. A good engineer can learn that in an extremely short time, while a bad engineer can always know language specifics through familiarity. 

 

I will say one major exception is web dev firms, since the web stack is pretty specific and a new grad should have some basic webdev knowledge if they want to get into that field specifically.

Gaming build:

CPU: i7-7700k (5.0ghz, 1.312v)

GPU(s): Asus Strix 1080ti OC (~2063mhz)

Memory: 32GB (4x8) DDR4 G.Skill TridentZ RGB 3000mhz

Motherboard: Asus Prime z270-AR

PSU: Seasonic Prime Titanium 850W

Cooler: Custom water loop (420mm rad + 360mm rad)

Case: Be quiet! Dark base pro 900 (silver)
Primary storage: Samsung 960 evo m.2 SSD (500gb)

Secondary storage: Samsung 850 evo SSD (250gb)

 

Server build:

OS: Ubuntu server 16.04 LTS (though will probably upgrade to 17.04 for better ryzen support)

CPU: Ryzen R7 1700x

Memory: Ballistix Sport LT 16GB

Motherboard: Asrock B350 m4 pro

PSU: Corsair CX550M

Cooler: Cooler master hyper 212 evo

Storage: 2TB WD Red x1, 128gb OCZ SSD for OS

Case: HAF 932 adv

 

Link to post
Share on other sites

3 hours ago, reniat said:

Even if they might strongly prefer a language on the resume, they shouldn't demand in depth knowledge (at least for an entry level position. Obviously if it's a senior engineer spot the expectations are different).

That's also true, but still the questions are targeted at checking how you know the language and that knowledge comes with time - time when you were using a given language. I'm kind of skeptical jumping languages give anything meaningful in terms efficient knowledge of given language. Like I did few basic GUI apps in FLTK (C++) or a basic web Java applet, I even made a ESP32 "script" via Arduino layer (C) for a "smart" bench prototype - but still I "don't know"  C, C++ or Java. I'm a Python developer.

Link to post
Share on other sites

3 hours ago, riklaunim said:

but still the questions are targeted at checking how you know the language and that knowledge comes with time - time when you were using a given language.

I still think the true language trivia questions don't really start until you're no longer looking for entry level work. At least not typically. For entry level positions, I would not expect any of the knowledge that "comes with time". I'm instead looking at the basics to establish whether I think that an individual could learn the long term stuff and become a solid asset in a couple years time.

 

A lot of this is going to vary company to company though, and I admit I am using a lot of anecdotal experience. My experience is mostly with "software companies" who's primary product is software, and less with smaller companies that happen to have software divisions (insurance companies, retailers, etc.). I could see a smaller company choosing to require their tech stack for even entry level positions because they don't have as many resources to bring up a newbie, but I would also be cautious of going to a company like that for my first job for that same reason: I want to make sure I'm getting a solid mentoring experience and good career foundation, and a company that will prefer language familiarity over overall competency (again, this is very specifically for brand new grad hires), may not give me that foundation.

 

I ended up at a fantastic company out of college which set me up extremely well, and I wouldn't trade that experience for the world.

Gaming build:

CPU: i7-7700k (5.0ghz, 1.312v)

GPU(s): Asus Strix 1080ti OC (~2063mhz)

Memory: 32GB (4x8) DDR4 G.Skill TridentZ RGB 3000mhz

Motherboard: Asus Prime z270-AR

PSU: Seasonic Prime Titanium 850W

Cooler: Custom water loop (420mm rad + 360mm rad)

Case: Be quiet! Dark base pro 900 (silver)
Primary storage: Samsung 960 evo m.2 SSD (500gb)

Secondary storage: Samsung 850 evo SSD (250gb)

 

Server build:

OS: Ubuntu server 16.04 LTS (though will probably upgrade to 17.04 for better ryzen support)

CPU: Ryzen R7 1700x

Memory: Ballistix Sport LT 16GB

Motherboard: Asrock B350 m4 pro

PSU: Corsair CX550M

Cooler: Cooler master hyper 212 evo

Storage: 2TB WD Red x1, 128gb OCZ SSD for OS

Case: HAF 932 adv

 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×