DEV Community 👩‍💻👨‍💻

Discussion on: Java Beginner 💻

ritamchakraborty profile image
Ritam Chakraborty • Edited on

First all welcome to the IT/Java community. Hope you'll find this neighborhood like your home.

I'm being a Java developer since the starting of my career so let me give you some brief.

  1. First of all you must master the language. I personally started learning from JavaTPoint. Then try to compete the HackerRank Java course.
  2. Made yourself familiar with IntellJ idea. This is going to be your all time companion in your java journey.
  3. Learn little bit about data structure and algorithms. It's not totally necessary but it'll help you build a mindset for problem solving. You can practice from hacker rank, hacker earth, leet code, code wars.
  4. If interested learn about swing or processing to have fun making few gui applications. You can follow coding train YouTube channel.
  5. Java's demand is mostly in backend development these days. So you must get started with spring. Learn about annotations and injections.
  6. After spring, comes spring boot. Make yourself comfortable with the framework. Learn about how to create basic api then how to secure them with spring security and how to store data with spring data jpa. Also having knowledge about one database is useful like MySQL or postgres or mongodb. You call follow amigoscode, daily code buffer, Java techie YouTube channels.
  7. After you're good with spring boot learn about microservices. Have the idea about service registry, api gateway, config server to mention a few.
  8. As we're talking about microservices learning docker is a must. Also kubernates for managing them.
  9. Now that you've build your application you have to deploy them. You can use heroku. It has a free tier. However having knowledge of some cloud provider will be beneficial like gcp, AWS.
  10. Learn about cicd to automate your deployment.

These are generally the steps to be Java developer. I know it's kinda intimidating, but don't worry, take one step at a time. Keep breaking your apps and spend whole night in stack overflow. This is how the passion is build. Coding is an art. The more you spend time in it, better you'll get at it and more you start to love it.

Few other things to mention..

  1. Reactive programming is also gaining popularity these days with rxjava and project reactor and spring webflux. You may find them interesting
  2. And why would you just limit yourself to Java. Learn kotlin which is just a better version of Java and also have many carrier opportunities.

Anyways, hope you'll find this pointers useful. Will love to contribute to your GitHub repo someday. Cheers!

cheetah100 profile image
Peter Harrison

''' "If interested learn about swing or processing to have fun making few gui applications."

What kind of monster are you? The only thing you could find in Swing is the fiery depths of hell! Run, run away!

Trying to develop all the skills mentioned is actually quite an ask. Even then the trick isn't learning the syntax, it is understanding how to build things with it. And even when you think you have learned everything something new comes along. It is a kind of purgatory.

ritamchakraborty profile image
Ritam Chakraborty

Even in Java 18, swing and awt packages are still included. If they were absolute trash, they could have just dumped them. 🤷

Not saying that it'll be any beneficial to learn swing. I just mentioned because this is how i made myself familiar with Java. Before learning swing i didn't know any other ui frameworks, not even HTML. And only built command line applications so far. So seeing something graphical move infront of my eyes with the code I've written and in the language i love was quite intriguing. 😌

I still write swing applications just for the sake of challenge. Just like one would create a game written in basic just so to gain knowledge and and have fun. Creating swing applications gave idea about how to create big applications and modularize them.

It's a just a personal preference as i said "if interested", i just shared it as my personal experience. Other's opinions my vary. That doesn't me they are wrong. Like for example i wouldn't even recommend anyone to start with Java. Even in backend developement java had seen better days. Languages like node, go, deno are made from the ground up in the mind of cloud. In interns of memory usage Java is no match for them. And if i take kotlin it's superior than Java in every single way. Then why not just start with kotlin? But just like graphql couldn't replace rest, Java can not be replaced. At least any time soon. So be forward with your interest. As long as you enjoy what you do it doesn't matter. You just have to be better at what you do, there's always a place for everyone.

And i just want to force on your opinion of learning concepts. It's the most important thing. The tools may wear off but the skill of the worker will remain forever. Learn about the concepts and use them to make application in other language and framework. As end of the day Java is just a language. Which you'll help you how to talk to a computer, if you learn how to communicate, you'll surely can learn how to do that any other languages as well. Peace ✌️.

keshavkhurana11 profile image
KeshavKhurana11 Author

Thanks ! Ritam
Will surely follow all these :)