Hello all, i am Ignatios, 23 yo. I would like to ask for some advice. I have good knowledge of the Java SE 7 APIs and 1 mounth ago i earned the OCP certification. I wish to be a good developer who can understand and write some quality piece of code, which i know it demands years of practise. From someone who has experience working in the field, i would like some recomendation on what to do next. There are so many different frameworks, technologies that employers ask for(Spring, Hibernate, JSON, ..) and i know none of them. Which of them are widely adopted in the software development industry and are good for me to learn? Should i get along with Java EE first, maybe by earning an other certification? I already tried building a few small applications like an adressbook, and a picture represention program using Swing. What should i do now? I am confused.
Ignatios Glinos wrote:Hello all, i am Ignatios, 23 yo. I would like to ask for some advice. I have good knowledge of the Java SE 7 APIs and 1 mounth ago i earned the OCP certification.
Congratulations! And welcome to JavaRanch Ignatios!
I wish to be a good developer who can understand and write some quality piece of code, which i know it demands years of practise. From someone who has experience working in the field, i would like some recomendation on what to do next. There are so many different frameworks...
Indeed there are, which is why my advice would be not to dive in too soon. Frameworks come and go, but Java has been around for 20 years; so make sure you really understand the basics well before you start mucking around with things like EE, which is NOT for the faint of heart (quite apart from the fact that it seems to be being supplanted by other, less "heavyweight", frameworks).
And to that end, since your cert was for version 7, my advice would be to install version 8 and spend a few weeks at the very least getting familiar with all the new stuff it offers - particularly lambdas and Streams. It's arguably the biggest change to the language since it began, and certainly since version 5.
Other things I would make sure you're really happy with before you start "branching out" too far:
Dates and times (also new for version 8)
The Java Collections Framework (Maps, Lists, Sets...what's on offer, when to use them, and why)
Locks - specifically, ReentrantLocks (←click).
Reflection (although I wouldn't go too mad with it )
technologies that employers ask for(Spring, Hibernate, JSON, ..) and i know none of them. Which of them are widely adopted in the software development industry and are good for me to learn?
Now here I can't help you so much because I'm not up on the latest and greatest. But again, I'd start a bit further back.
One thing that all these "webby" frameworks have in common is that the applications they help to build are likely to use databases, so I'd get really familiar with how to communicate with one - and to that end I'd suggest having a look at JDBC and JPA. You don't need to spend vast amounts of time on them, but at least knowing the basics will help you with something like Hibernate (a product I really like), because it's built on the backbone of those frameworks.
After that, the sky's the limit. I'm sure others will be able to give you good advice on technologies to look at, but I'd make sure that your ready to take them on before you dive in too deep.
Hope it helps.
"Leadership is nature's way of removing morons from the productive flow" - Dogbert
Articles by Winston can be found here
The advice there may seem somewhat "fluffy" to a novice like you who is mainly looking for specific technologies to learn. However, without a good grounding in basic principles and practices, I find that technologies become more difficult to understand and easier to misuse. Uninformed and inexperienced developers using advanced technologies without a proper understanding of basic good programming practices and principles are like soldiers fresh out of bootcamp who don't know how handle their weapons safely in a life-and-death, real-world combat scenario. Not that I'm assuming that you're writing bad code but in my experience, 9 out 10 developers do, even when they have a few years of work experience under their belts. Those basic "fluffy" things will help you keep everyone, including yourself, safe(r) from bad coding.
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop