So I just know the basics of both but can't decide which to master first ...
Can someone help
For further actions, you may consider blocking this person and/or reporting abuse
So I just know the basics of both but can't decide which to master first ...
Can someone help
For further actions, you may consider blocking this person and/or reporting abuse
Pxlmastr -
Surfsky -
jun -
Felix Turner -
Once suspended, lord_jastannun will not be able to comment or publish posts until their suspension is removed.
Once unsuspended, lord_jastannun will be able to comment and publish posts again.
Once unpublished, all posts by lord_jastannun will become hidden and only accessible to themselves.
If lord_jastannun is not suspended, they can still re-publish their posts from their dashboard.
Once unpublished, this post will become invisible to the public and only accessible to Jatin Naik.
They can still re-publish the post if they are not suspended.
Thanks for keeping DEV Community safe. Here is what you can do to flag lord_jastannun:
Unflagging lord_jastannun will restore default visibility to their posts.
Top comments (31)
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!
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
The video was unavailable...but I appreciate your gesture 🙌🙌
github.com/AssemblyAI-Examples/ML-...
Hoefully this does Work.
I am going to start my btech in Machine learning......this link is great help
Thanks a lot 😊🙏🙏
Hmmm... Tried to edit it. But somehow link is not working. Saw this in a channel called assemblyai
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.
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.
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.
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 ????
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.
Thanks for help👍👍😊
this is objectively bad for someone just starting out with no comprehension of what those terms even mean. It just introduces confusion.
When you are first learning something, you need to learn the basic fundamental concepts so you need information that is constrained by what you do not know that you do not know. That is like telling someone first learning physics to solve problems with basic things like the laws of thermodynamics and conservation of momentum and advanced quantum mechanics right off the bat.
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.
neither; Go, Rust and Javascript are the most relevant languages going forward. Places that are not using one or more them are not places you want to work.
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.
actually you agree, I specifcly said, to learn multiple languages ... someone did not read for comprehension and just assumed they knew what I was saying and just wanted to be contrary ... oh internet you so silly.
and Go, Rust, JavaScript and Python compile down and run on all the mainstream microcontrollers just fine, that part of your comment is just misinformation.
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.
Well if you are starting out (do not know what you do not know), and everyone has limited time (only 24hr in a day) so I would not recommend languages with so much baggage to someone starting out.
It is like saying you should start with Calculus in elementary school because, it is what is really relevant to make big $$$ and it is a super-set of everything before it.
Learning something like C++ or even Java as a first language in 2023 is like reading an X-Men comic from 1992 that has 6 foot notes in every panel and you have to stop look up what those footnotes are from 4 different other stories and 8 other characters to from comics published 3 yrs ago just to understand what the current panel is referring to.
Also, constraints are a good thing, they force you to focus on a goal and not getting distracted by all the decades of mostly incorrect information about OOP languages busted implementations.
In all seriousness, Erlang is more OO than Java/C#/C++, etc in the original concept of what OO means. The original core concept was "message passing" not "objects". Alan Kay says he regrets using the term "object" with how his work got perverted.
Alan Kay coined the term “object oriented programming” at grad school in 1966 or 1967. The big idea was to use encapsulated mini-computers in software which communicated via message passing rather than direct data sharing — to stop breaking down programs into separate “data structures” and “procedures”.
That said, I am not going to say "learn C" because it is "simpler" and every imperative language after it is based on its syntax ( and carries a lot of its broken baggage as well ).
Go is one of the most OO imperative languages, it is actually useful and has little baggage from previous languages. The entire language is designed around passing messages on Channels for concurrency, just like Erlang. The fact that you can write sophisticated useful code without touching Channels tells you it is not dogmatic about it. It teaches very hard to grasp concepts in a more gentle way than anything else at the moment.
Rust is similar, it teaches complex concepts, that are optional to use, but with a shallower learning curve; a wise man once said "with great power comes great responsibility", and you have the responsibly to learn those concepts and how they are implemented in each language.
JavaScript, well it is ubiquitous. It has LOTS of baggage, LOTS of misinformation from the decades it has been around, but it also has LOTS of great stuff. It is unavoidable and unfortunately the signal to noise ratio because of how long it has been around is hard to navigate for a new player.
In the end, Go is easier to learn all the relevant CONCEPTS with no information than Java/C# anything with decades of baggage (tool chain is extremely important as well) . After the concepts are mastered it is all just syntax for the most part, it is not, then maybe writing programs is not the right career choice.
Toolchain is almost MORE important than the language today. Go has the simplest toolchain of just about anything out there. Rust is really well thought out as well. They both have gvm and cargo as first class concerns. JavaScript is like npm/yarn/pmnp module/packager night mare. Vite does a lot to solve that, but do you really want a new player having to learn all that mess just to run "hello world!".
C is still being used !!!! 😳😳😳
I did not know that......
C was used to create Python so yes it’s very much still relevant. You wouldn’t have most languages today without it.
on current hardware the most performant versions of Python do not use CPython ... because GIL. And the GIL is because of C ... so
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.
Depends... What do you want to do?
Specialiation in ai and machine learning
Then skipping Java and diving directly into Python makes the most sense.
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!
C++ programmers just learn to write C++ in other languages. I the most atrocious Java, C#, Python, Go and Rust code I have seen have been written by C+ mains.
Because, they are rats that know where the C++ cheese is and think that the same way to solve to the Python maze is the way they solve the C++ maze, and they get the cheese in the absolute worse possible way for the Python maze, but declare "it works" regardless.
Even I think that older and challenging languages like C++ brings your programming skill to whole you new level ..
Thanks 👍
I think the best option would be to learn Java first.
says every Java main ...