DEV Community

Jatin Naik
Jatin Naik

Posted on

What should some who is 18yrs old now, start learning first, Java or Python or both together????

So I just know the basics of both but can't decide which to master first ...
Can someone help

Top comments (24)

Collapse
 
ingosteinke profile image
Ingo Steinke

I agree that Java seems overly verbose and laden with legacy concepts that make simple things quite hard to achieve. But Java's strictness can help to understand important concepts of information science that you might have a hard time to make up later after starting with a (too) pragmatic dynamic ("scripting") language. Based on my own personal experience, I would not recommend Java to a beginner.

Maybe learning both together (an aspect neglected in most answers) could prove valuable insights. You might start with Python and Java to understand common concepts beyond one single programming language, and proceed with Python.

As several people suggested JavaScript: consider TypeScript, "a strongly typed programming language that builds on JavaScript". TypeScript is popular and useful for actual developer jobs, can be transpiled to JavaScript code that runs in browsers, or used in local or back-end setups with TypeScript support.

But as you mentioned AI and machine learning as a development goal, Python would be a good choice!

Collapse
 
taijidude profile image
taijidude • Edited

Saw this video today and remembered your question. In the video a ml developer advocate for a company explains how he would start today when trying to get into ml:

youtu.be/wtolixa9XTg

Collapse
 
lord_jastannun profile image
Jatin Naik

The video was unavailable...but I appreciate your gesture 🙌🙌

Collapse
 
taijidude profile image
taijidude

Hmmm... Tried to edit it. But somehow link is not working. Saw this in a channel called assemblyai

Collapse
 
taijidude profile image
taijidude

github.com/AssemblyAI-Examples/ML-...

Hoefully this does Work.

Thread Thread
 
lord_jastannun profile image
Jatin Naik

I am going to start my btech in Machine learning......this link is great help
Thanks a lot 😊🙏🙏

Collapse
 
haukeschlosser profile image
Hauke Schlosser • Edited

I disagree. There will always be multiple programming languages, since you cannot have it all in one. It depends on the use-case. Heck, if you program micro-controllers you program it even in C, despite it being from the 70s. Try doing it with Go, Rust or Javascript.

Collapse
 
lord_jastannun profile image
Jatin Naik

C is still being used !!!! 😳😳😳
I did not know that......

Thread Thread
 
pyguydev profile image
Christopher

C was used to create Python so yes it’s very much still relevant. You wouldn’t have most languages today without it.

Collapse
 
cwprogram profile image
Chris White

If you're wanting to learn how to program in general I tend to recommend python. The dynamic nature allows for you to get solutions up and running fairly quickly, and there are a reasonable amount of python package to do most anything these days with minimal effort. The AWS CLI also runs on python (or boto specifically) on the backend so it's also a nice way to interact with AWS services. In particular it's useful for doing Lambda based microservices.

After that I would recommend looking into Javascript, or well, the React framework. While there are unfavorable opinions on JS in general, the fact still remains it powers a good number of Fortune 500 sites and allows for UI development on web, smart phone, and other native platforms. It can make a powerful impact on a resume.

From there I'd consider looking into Golang. Being a strongly typed and somewhat lower level language there will be a bit more of a learning curve against the language itself before you start pushing out practical applications. It's also useful if you want to improve your skillset on low level networking and multi-threading.

Collapse
 
tombyrer profile image
Tom Byrer

Many devs make a living programming with only Python (I'm a JS dev myself).

BTW, Angular I think is more popular with "Fortune 500 companies", but startups, WordPress, & many platforms are ReactJS.

Collapse
 
lord_jastannun profile image
Jatin Naik

In order to learn coding and developing, not just as a hobby but in terms of making a carrier, I was thinking of mastering Java first and then move on to JS .....what do you think ????

Collapse
 
cwprogram profile image
Chris White • Edited

The reason why I'm hesitant to recommend Java for beginners is that it really shines when you're working with it in a sort of corporate setting where you have many things connecting together. This means resulting code is very structured. Making your code work within that structure is a pretty decent learning curve for someone starting out. This means getting to the point of doing things like simple REST API calls or basic file operations can feel cumbersome.

Python on the other hand lets you pick if you want to deal in imperative, object oriented, or functional to some degree. Imperative in particular means you can just start writing code to read files, connect to APIs, etc. The language handles a good amount of the setup to make that work. It means ideas to code happens faster, which is exactly what people learning need. The only minor hurdle might be understanding how virtual environments work.

Doing the same thing in Java would require some degree of class setup. You'll also need a Java SDK for compilation, a Java Runtime for execution, a reasonable IDE (which are actually fairly easy to find on that note). I'll also note that many modern enterprises are likely to be working against the JVM (java virtual machine) than against Java itself. This means you have alternatives to Java such as Scala, Clojure, Groovy, etc. You could even run Python against the JVM if you really wanted to.

I will also note that Java and JavaScript are different beasts in the event that's the reasoning for your learning path.

Thread Thread
 
lord_jastannun profile image
Jatin Naik

Thanks for help👍👍😊

Collapse
 
starswan profile image
Stephen Dicks

Actually I would recommend Java first. I worked in a python shop where very few people understood the fundamentals of OOP. Yes it's verbose and strict but it will help you grasp the fundamentals of a statically typed OO language. Later Java versions support a functional style too. Once you have that cracked then the nuances of python will be much easier to grasp. Personally I would avoid typescript for now - IMHO its error checking isn't strong enough for someone learning to program.

Collapse
 
tombyrer profile image
Tom Byrer

Python: easy to pick up, used in systems scripting, AI/ML, tooling, web services, scraping, etc

Java: used in Android OS, various sever projects

I suggest Python first.

Collapse
 
akashrchandran profile image
Akash R Chandran

Depends on what are you trying to achieve in future, if you're not continuing IT in future or you just want to learn as hobby then python would be the perfect choice, it's simple yet powerful. If your goal is to continue IT but work as Freelancer or start your own company, then go for languages that are going to get stay like JavaScript, Rust, Python. Want to join FAANG companies then first study Java thoroughly or C++. Python is also good choice, but companies prefer the other languages more.

Collapse
 
taijidude profile image
taijidude

Depends... What do you want to do?

Collapse
 
lord_jastannun profile image
Jatin Naik

Specialiation in ai and machine learning

Collapse
 
taijidude profile image
taijidude

Then skipping Java and diving directly into Python makes the most sense.

 
haukeschlosser profile image
Hauke Schlosser

Interesting reply, assuming what I want and not. I am sorry, if I offended you. However I did not want start a discussion and hence will keep my reply short. You stated what will be the most relevant languages and what companies he should choose because of that.
My argument was that there are reasons why there are so many languages used and to limit yourself to the places where you just use Go, Rust and Javascript I disagree. And yes, you may theoretically use these languages in the case of programming micro-controllers. You just do not do it in real life. For validation you may read statistics or dive into the industry yourself.

Collapse
 
haukeschlosser profile image
Hauke Schlosser

When you really want to pursue a career in IT, the language you choose is not too important. At some point, you will know several languages and are able to quickly learn and adapt to new ones (since the fundamental way how they work don't differ too much).

I might be alone here, but I think C++ is the best language to learn. Granted, only if you like a real challenge. Why? C++ doesn't make anything easy to you. You have to understand concepts and fundamentals, that you otherwise don't have to understand since more "modern" languages hide these things from you. Also in my experience, somebody who knows C++ really well is always able to learn other languages fairly quick. If you are even interested in certain industries (where performance matters a lot), it is still the GOAT and I don't see it changing in the foreseeable future.

Happy learning in any case!

Collapse
 
lord_jastannun profile image
Jatin Naik

Even I think that older and challenging languages like C++ brings your programming skill to whole you new level ..
Thanks 👍

Collapse
 
donaldx9 profile image
Donaldx9

I think the best option would be to learn Java first.