Is Java the Right Choice as a First Language to Learn?

Written by zaidq | Published 2021/12/14
Tech Story Tags: java | software-engineering | learning-to-code | programming-for-beginners | learn-to-code | learn-java | java-vs-javascript | learn-programming

TLDRIn a world with billions of devices running Java, I got rid of it in my curriculum and replaced it with Javascript. This was done to make time to learn new trends smaller, i.e web3, VR, ML, etc.via the TL;DR App

I have been working on Learnly for the last couple of months. My goal from the start was simple: make it easy to learn software development, yet make full-stack engineers. I planned to create a strong base in problem-solving and teach Java as the first language. It is widely adopted, has a lot of use cases (mobile apps, backends, VR, gaming, etc.), is easier to teach computer science fundamentals, and is widely used for enterprise software development.

So what went wrong?

As I was building the content, I realized one important thing, even though I’m more comfortable in Java, I’m mainly building the entire Learnly application using Javascript. I am using React in the frontend, Lambdas for the backend, and deploying my stack using javascript CDK. I do actively develop Java applications at Amazon and have some personal projects deployed using Java, but I still kept asking myself why I’m teaching Java first. Maybe it was because that was my first language, and I did really well for myself?

I felt good about sticking to my opinion, teaching Java first, where the majority of courses teach Javascript or Python first these days. As I started to market Learnly, I noticed I am not getting any conversions, people aren’t even interested in inquiring about the program. I promise human monitored progress, so why isn’t everyone jumping to that? There could be many answers, like a saturated market and low reach, but the few hundreds of people visiting the website are also not interested. So after wondering what’s wrong and asking around for advice, I have come to the conclusion, it’s Java, for the right reasons.

Beginners today, rightfully so, are interested in getting their feet wet fast and getting to market fast. So naturally, people want to learn languages they can do more with less, such as Javascript and Python. The world is moving towards Web3 (blockchain), virtual reality (think metaverse), and artificial intelligence.

Between those, Javascript is more common than Java. Even solidity (language for smart contracts) is designed around ECMAScript syntax (Javascript) to make it easier to work with. So with clear signs in front of me, looking at the future, I decided on Javascript as the default language for Learnly as new developers will be able to accomplish a lot with Javascript alone, e.g., front web development, mobile development, VR, web3, ML, etc.

The future for Java

Java is much more mature than Javascript and Python. The way enterprise software can be developed using Java; these two scripting languages don’t even come close! Java will continue to prosper and play an important role. It’s all about picking the right technology for a given use case. In today’s world, engineers need to be language-agnostic; as microservices become more popular, more and more applications will have multi-language backends. Most big companies already have that. On a given day at Amazon, I may have to work with Java, Typescript, Javascript, HTML, CSS, and SQL. This is just my small team. Individual teams have their own flexibility, again the right technology for the use cases.

Future of Learnly

At Learnly, I will replace existing Java content with Javascript but will still continue on my mission to create language-agnostic, problem-solving engineers. Eventually, I will do a course on how to pick the right technology and may even teach Java again 😀. World, get ready to work Learnly devs, you will crave more and more. I can’t wait for Learnly graduates to get into the creator economy and solve some problems!

Follow me on Twitter for topics related to software engineering.

Thanks for reading.


Written by zaidq | My name means growth or to make progress, so that's what I'm into. Currently building learnly. Employed by Amazon.
Published by HackerNoon on 2021/12/14