Win a copy of Getting started with Java on the Raspberry Pi this week in the Raspberry Pi forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Tim Cooke
  • Jeanne Boyarsky
Sheriffs:
  • Rob Spoor
  • Devaka Cooray
  • Liutauras Vilda
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Tim Moores
  • Mikalai Zaikin
Bartenders:
  • Piet Souris

Advanced java learning material

 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,

I find myself in a bit of a sticky situation.

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.
Thanks,
Peter
 
Marshal
Posts: 5542
326
IntelliJ IDE Python Java Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.

In terms of material, give Seven Languages in Seven Weeks (Pragmatic Programmers) a go. It'll give you a taste in a relatively short space of time.
 
Rancher
Posts: 387
30
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.

You may wish to consider some Coursera courses such as: https://www.coursera.org/course/algs4partI and https://www.coursera.org/course/algs4partII. Those kind of courses allow you get exposure to an Ivy League level of course instruction on fundamental basics of simple to advanced computer algorithms. Or look up some Coursera or Udacity courses on topics like AI, robotics or neural networks.

For meat on the table kind of work in enterprise computing Oracle's JEE7's tutorials are really good https://docs.oracle.com/javaee/7/tutorial/, though you may want to replace some of the UI/JSF stuff in there with study of other UI technology such as Angular and Single Page Applications. I don't have a direct reference for an Angular 2 book, but a search might reveal something for you. Be aware that JEE7 servers are migrating towards hybrid systems such as WildFly Swarm http://wildfly-swarm.io. Similarly, you could study Spring Boot (again search for books on the subject) http://projects.spring.io/spring-boot/, if you prefer an alternative, though similar system to JEE. For software stacks which are not like traditional Java EE type stacks (and hence you might learn more new things from), you could try looking into https://www.lightbend.com/community/projects or http://rubyonrails.org.

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.

You might want to follow Peter Norvig's advice on programming in 21 days.
 
reply
    Bookmark Topic Watch Topic
  • New Topic