Here was the post Why should learn Java in 2020 - and it started with:
Java is Easy to Learn
I'd say this is QUITE NOT TRUE, sorry :)
Perhaps so...
For further actions, you may consider blocking this person and/or reporting abuse
If you think Java is hard then learning C will be a nightmare.
PHP standard library has good net and https support as it's made for the web and Java can have a support like this as well if drafted and added to standard library.
I'm afraid you are messing C and C++
And anyway I learnt and used C years before Java. I started career as electronics developer where it is quite popular.
What you mean by that?
If you say "C is nightmare" there probably is some mistake.
C is quite simple language originating from 1970. C++ is it's extension from mid-1990s, with OOP, templates and (in recent standards) it have become really difficult to learn just because it has tons of features, many of which are legacy.
C++, Java, C# and Objective-C - they all are decendants of old simple C in some way.
Most people don't find it simple.
I agree C is small and simple.
C is easy enough to learn, but issues such as the following make it difficult to master:
I say this as somebody who's programmed C for many years, and still do. In my university placement year, I was given a copy of "Kernighan & Ritchie" to learn C in my first week.
Agreed but if you understood all these concepts then you will be able to understand any language.
Differerent classes of languages have their own subtleties so take time to learn. For example, I'd personally really need to think about how to write a prime sieve in a functional programming language.
It's surprising that some developers, even with quite a lot of C programming experience, program without giving sufficient thought to things I've listed above e.g. a new struct is defined, code is written to allocate memory for the structure and fields within it, but with no clean-up strategy in the (admittedly rare) case that memory allocation fails.
I've seen this on projects where a developer is programming in other languages e.g. Java alongside C.
It's because they are used to newer languages which cleans up everything for them.
Even with Java care has to be taken so that the garbage collector thinks it can actually release an object when it goes out of scope.
Java isn't a great first language. I've been a professional Java dev since 99. It is rational to choose technologies that are in demand. But it isn't about just learning one thing. A 'full stack' developer will also need to know about SQL, possibly Mongo, Object Relational Modeling, have a understanding of Git, Jenkins, JUnit. If writing front end apps you will need to know about CSS, Javascript, Angular, React, or Vue.
Furthermore there are other languages which are probably more concise and productive. For back end there is Node and Python now, both of which are gaining popularity in what was core Java territory.
The important thing as a developer is that you are always evaluating technologies. That does not mean learning every new flavour of the day language, but it does mean having a broader toolkit than just one language.
I recommend that new developers use something like Python which is both general purpose and concise. It does not force you into object orientation before you learn the basics. It is not a toy language, so you will actually be able to earn a dollar from it. And if you want to continue to Java it gives you a good foundation.
As a long time Java dev I can say it isn't the worst language, but it is wordy and does encourage you into binding to data structures through objects. In terms of difficulty learning, probably also not the worst, but not the best either. Better to start with languages that don't introduce complex concepts early.
I learned Java this past year and I still have trouble with it. So I going through drills on HackerRank and CodeWars. My sister is also learning it now so I'm helping her where I can. I agree its worth it to learn, but very difficult.
Hi Friend!
Thanks for sharing your experience!
What is the goal for you and your sister? Some kinds of tasks where Java is heavily used are simpler than others. For example, one may prefer to start career is "Web QA automation" - here people use Java to write tests which run through web-interfaces with Selenium library. It may be significantly easier for beginner than writing production server-side code for example. So I dare to recommend this way :)
Right now my goal is to start a new career! I've used Java with SpringBoot and MAMP to create a CRUD app. There's so much to possibly do, so now its wherever I can get in to work and learn. I went through LaunchCode here in STL to learn and we were told right off that there is a chance that where we end up may not be coding in Java or Python(the other language we learned) as they do placement.
I'm not sure what my sister's goals are. I feel like she would be good in a consultant type role.
Can't agree more. I am Rails Developer who graduated from bootcamp 2 years ago. Java is hard. For me, specially doing OO programming a lot of syntax didn't make sense to me. But After I learned Ruby, everything about OOP made sense, due to it's beautiful and readable syntax. I would recommend beginners or self-taught who wants to get into programming learn languages that has a simple syntax first, like Ruby or Python
I want to share how these language made to me to understand different programming paradigms on my journey:
Nice post. I'm from Peru.
When I graduated 5 years ago I learned Java and also I use Primefaces, Hibernate and a bit of Spring. The years passed and I wanted to learn something new so I started to learn PHP using Laravel and I love it. I have learned also Vue, Nuxt and working in company using these technologies but usually I found more job offers in Java or .NET (also learned 4 years ago but not using now) than PHP and Laravel. Now I am very interesting to learn Flutter (basic now) for working on it ...
What do you suggest me?
TY (sorry for my english)
nasty recruiter's messages - that one made me really laugh.
Java wasn't my first language when I started programming (I guess that would be Basic or maybe Pascal). I think learning is never really easy. It's important to take small steps. Yes, Java has a huge ecosystem full of libraries for any aspect you can imagine. So do other languages. As a developer, one of the most valuable skills (in my opinion) is to be able to learn new languages.
In the end, learning a programming language isn't different from learning other stuff, e.g. if you learn to swim, you typically won't start in the middle of the ocean and see how it goes. You'll take small steps and improve on that. The same should apply to your programming skills. Learn the basics, only look at a small subset. Then start looking at other aspects, one at a time. If you do too much at once, you might drown.
Coming from a C background, Java is relatively easy to pick up.
There is a load of other stuff such as the large number of libraries, how to use code comments, how to override methods such as equals / hashCode so that proper equality works in a collection.
However, subtleties - understanding and making proper use of features such as generics, enumerations, collections, why inheritance and interfaces should and should not be used take effort to understand. I suggest the book "Effective Java" by Joshua Bloch as it covers things from this angle instead of, say, going through the network programming library classes.
I'd suggest Python as a first language (maybe after a pictorial language such as Scratch for beginners) with something like inventwithpython.com/ or Raspberry Pi to work with.
Also, python has good support in areas such as numeric and scientific computing, machine learning and data science, and web development.
Great post, definitely agree. My first language was Java, and what a journey it was... I don't recommend as the first language.