I work at a company where we have been developing a specific software for a few years now. We use certain technologies that I consider myself master of. However only developing new components to and existing system is not the best way to improve as a developer.
I am really eager to get to the next level. I consider myself a strong intermediate level java developer at this point.
I am looking for meaningful advanced tutorials for advanced java developers where I can get a good idea on how to use best practices. I don't mean Mykong type few liners I'm thinking more like popular and useful books or articles that can help me improve both in programming and mostly in architectural design.
Is there a similar collection on the internet? I have been looking but all the places I found got rather mixed reviews. I do train myself in ares where I feel like I need to improve but I'm getting the impression that this is not enough.
Not sure how off-topic will this be but it is definitely worth a shot.
It depends on what your tastes are for learning. For me, I really enjoy learning about other programming languages and programming paradigms. I find it gives me a broader understanding of programming in general and as an unexpected side effect it has made be a better Java programmer because it has given me an appreciation of the strengths and weaknesses of the Java language.
A lot of this depends upon what you wish to learn.
I agree that learning different languages is actually a good way to here, especially a language that is primarily functional based as it helps provide you a different thought paradigm, so learning Scala or Clojure is actually a good thing for many Java programmers who simply wish to be better programmers (IMO). For instance, I learnt a great deal from http://www.artima.com/shop/programming_in_scala_2ed Even though I am not a great fan of the Scala language, the treatment of programming practices in the book was very informative and I was very happy with the time invested in it. Many of the examples are based upon Scala updates or variations on examples from: http://www.amazon.com/gp/product/0262011530 Structure and Interpretation of Computer Programs.
There is always the art of computer programming: "these books were named among the best twelve physical-science monographs of the century by American Scientist". But, beware, that those books are by a genius for geniuses.
For a list of books on various topics, you can see: http://programming-motherfucker.com/become.html (pardon the domain name please..). I haven't read most of those books, but on a review of the topics and titles, I would suggest most of them are at least decent texts on the given topics they address.
A really great resource I can recommend is the DevOps 2.0 Toolkit: https://leanpub.com/the-devops-2-toolkit This is not a programming book, but demonstrates how to structure and deploy applications to modern container based cloud deployment engines such as Amazon Container Services or Google Cloud Compute Engine. Very good coverage of topics and skills in high demand today and into the medium term future.
Take a look at the TopCoder site https://www.topcoder.com and try some of the challenges and competitions there. Start with the algorithm competitions as they are easier to begin with and have a very low threshold for beginning problems which can be solved in a few lines of code. The problems in the higher divisions can quickly get very tricky, such that only very good programmers and extremely smart people can solve them. TopCoder also has analysis and design competitions, you can take those challenges or review solutions others have provided, which might help teach you some things.