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:
GenericsAnnotationsDates and times (also new for version 8)The Java Collections Framework (Maps, Lists, Sets...what's on offer, when to use them, and why)Multi-ThreadingLocks - specifically, ReentrantLocks (←click).RecursionReflection (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.
Winston