I have been learning python for a year and I think I can code in python! I just need to work on projects to advance my skills. Lately I have been thinking to learn Java...so I took advice from my friends. They said I will have tough time learning Java because I have learned python before. They said I should have learned Java first and python later... maybe I messed up 😅😅
Is it true? Will it really be that difficult?😩
Python is my first language and I am thinking of learning Java now. Can I?! Please share your opinions
Thanks in advance 🤗🤗
Learn Java from Python background - Stack Overflow
just started learning Java after Python
Starting to learn Java after learning a fair bit of Python, intimidated.
You should start with the Java MOOC by the University of Helsinki. Its everything you will need to get started with learning the Java syntax. As you found out for yourself, one of the differences between Java and Python is that Java is a strongly typed language. Meaning you have to specify the data types before asigning them values.
Anyhow, after you complete the MOOC (both parts - 1 and 2) you will probably have enough knowledge to do anything regarding Java. Then you can go do android development if you so wish.
Good luck!
More on reddit.comIs it bullshit: Know Java, easy to learn Python. But not the other way around.
Videos
I would take a project you've implemented in Python and try converting it to Java. Since you already know basic programming fundamentals, it'll probably be easier if you take things you know how to do and figure out how you'd do the same sort of operations in Java (or whatever new language you want to learn).
In the end, the only way to learn to write code, is to write more code.
Java and C# will be less of a step away from Python than would C or C++ because Java, C#, and Python all have automatic memory management. A good Java book is Thinking in Java by Bruce Eckel. It starts at an introductory level, but also has a lot of depth.
The big difference with the language coming from Python is the fact that all variables are typed. The other hard thing with Java has to do with the bewildering array of Java APIs out there. The fact that you are interested in Android is an advantage here. After becoming comfortable with the core language, I suggest you start learning the Android API and focus on becoming an Android expert. I think Android will be a growing market for a while.
Good luck!
what in the world???
Java seems much more intense than Python did. Just a simple print statement is like 3-4 more words in Java than in Python. I want to learn Java because it seems much more robust and it will fill in a lot of the gaps I have. I also would like to be able to make my own android app as a side project in the future.
Is there some sort of flowchart or guide on what I should be teaching myself, almost like a curriculum? I want to set a path out in-front of me and cross off sections when I feel comfortable. For reference I got to the point where I am able to do KATA 5 level problems on codewars with python so im still a beginner over there too.
Thank you for any advice.
You should start with the Java MOOC by the University of Helsinki. Its everything you will need to get started with learning the Java syntax. As you found out for yourself, one of the differences between Java and Python is that Java is a strongly typed language. Meaning you have to specify the data types before asigning them values.
Anyhow, after you complete the MOOC (both parts - 1 and 2) you will probably have enough knowledge to do anything regarding Java. Then you can go do android development if you so wish.
Good luck!
The official Java tutorial is actually really good, and is broken down into topics so you can learn about specific areas of the language and standard libraries without needing to wade through a bunch of stuff that you don't need.
I also think baeldung has some really good free tutorials.
Best of luck!
I do think Java is more robust than Python, and it's also more performant at scale.
Hello people, I am looking to learn a programming language during the summer before college. The classes I'll be taking at univerisity uses Java. However, I've been trying to learn Python on my own for around two weeks using Automate the Boring stuff and Code academy. So I am still a noob. However, I've read some posts where people say learning Java as a first language will be much better than learning Python as a first language because it is easier to transfer from Java to Python but not the other way around. Now I am conflicted in which language I should devote myself to for the rest of the summer. Please give some advice. Thanks!
Edit: Thanks to everyone who replied and who tried to help. So some said that Python allows you to skip the useless code which therefore allows you to focus more on the concepts. While some said that Java forces you to explicitly write out all the steps which teaches you more on the fundamentals. Although I will eventually be learning Python as I am interested in Machine Learning/AI I think I will be learning Java for the rest of summer until university starts simply because of the fact my classes uses Java so I was think about getting a slight head start. Once again, thank you to everyone who helped.
- Don't put everything into classes. Python's built-in list and dictionaries will take you far.
- Don't worry about keeping one class per module. Divide modules by purpose, not by class.
- Use inheritance for behavior, not interfaces. Don't create an "Animal" class for "Dog" and "Cat" to inherit from, just so you can have a generic "make_sound" method.
Just do this:
class Dog(object):
def make_sound(self):
return "woof!"
class Cat(object):
def make_sound(self):
return "meow!"
class LolCat(object):
def make_sound(self):
return "i can has cheezburger?"
The referenced article has some good advice that can easily be misquoted and misunderstood. And some bad advice.
Leave Java behind. Start fresh. "do not trust your [Java-based] instincts". Saying things are "counter-intuitive" is a bad habit in any programming discipline. When learning a new language, start fresh, and drop your habits. Your intuition must be wrong.
Languages are different. Otherwise, they'd be the same language with different syntax, and there'd be simple translators. Because there are not simple translators, there's no simple mapping. That means that intuition is unhelpful and dangerous.
"A static method in Java does not translate to a Python classmethod." This kind of thing is really limited and unhelpful. Python has a staticmethod decorator. It also has a classmethod decorator, for which Java has no equivalent.
This point, BTW, also included the much more helpful advice on not needlessly wrapping everything in a class. "The idiomatic translation of a Java static method is usually a module-level function".
The Java
switchstatement in Java can be implemented several ways. First, and foremost, it's usually anif elif elif elifconstruct. The article is unhelpful in this respect. If you're absolutely sure this is too slow (and can prove it) you can use a Python dictionary as a slightly faster mapping from value to block of code. Blindly translating switch to dictionary (without thinking) is really bad advice.Don't use XML. Doesn't make sense when taken out of context. In context it means don't rely on XML to add flexibility. Java relies on describing stuff in XML; WSDL files, for example, repeat information that's obvious from inspecting the code. Python relies on introspection instead of restating everything in XML.
But Python has excellent XML processing libraries. Several.
Getters and setters are not required in Python they way they're required in Java. First, you have better introspection in Python, so you don't need getters and setters to help make dynamic bean objects. (For that, you use collections.namedtuple).
However, you have the property decorator which will bundle getters (and setters) into an attribute-like construct. The point is that Python prefers naked attributes; when necessary, we can bundle getters and setters to appear as if there's a simple attribute.
Also, Python has descriptor classes if properties aren't sophisticated enough.
Code duplication is often a necessary evil in Java (e.g. method overloading), but not in Python. Correct. Python uses optional arguments instead of method overloading.
The bullet point went on to talk about closure; that isn't as helpful as the simple advice to use default argument values wisely.