The Julia Java Learning Track

You should follow my friend David Julia, prolific coder and manager at Pivotal Labs. He was kind enough to encourage and provide me with a learning track to Java. It is focussed for beginners. We'll also get some exposure to the SpringBoot framework.

Installing Java & Setup

The Oracle documentation is the first place to reference. There is some comprehensive material and instructions for this.

I was using SublimeText, but for compiling and executing Java needed to work with a different editor. If you have a University email, you can try out IntelliJ IDE for this purpose.

https://www.lynda.com/Development-Tools-tutorials/
Chapter 3 is for IntelliJ, really good.

Also using Dash for documentation. Since my Java version is 1.8 I'm using SE8 documentation for reference.

Introductory Tutorials

CodeAcademy: I usually start with CodeAcademy first since their courses are free introductory level, and focus on doing exercises directly in the browser instead of heavy reading or projects. It gets your hands dirty the fastest way, and gives you more context for a deeper dive. One of the cons is CodeAcademy misses the forest for the trees. There may not be a lot of retention of what you go over and there's no saying you feel any more confident for having finished the course.

Exercism.io: When you are done with CodeAcademy, Exercism is a great platform to start working on more challenging tests. Their exercises are all open-source, which is another great thing for junior developers to get exposure in. It sses gradle for testing. So How to install it and use.

TDD By Example: While not directly related to Java, the book is a seminal work on testing, and something that David and Pivotal take quite seriously. Read up till the Money example.

In addition:

  • Did some exercises on InterviewCake, these tests go up a notch and are based on mock interviews and tests conducted by top tech companies.
  • Since I'm an audio-visual learner, this track would not be complete without watching a few Youtube videos to see how developers were thinking out loud and programming. This is more for contextual learning, put it on 2x speed and covered topics such as setup for IntelliJ IDE, Tests, SpringBoot

Spring Boot

And now we're ready for getting into frameworks. Instead of going over more tutorials, we'll do what all the masters suggest is the best route to learning: Just build something.

Templates for getting started guides:
https://spring.io/guides
https://spring.io/guides/gs/sts/

Official Sprint Boot Documentation:
http://docs.spring.io/spring-boot/docs/1.4.0.RELEASE/reference/htmlsingle/#using-boot-starter-poms

I did want to give a shout-out to this presentation:
http://presentations.spilth.org/spring-boot-for-rails-developers/

For getting started with gradle:
https://spring.io/guides/gs/gradle/
When you start run $gradle, $gradle tasks, $gradle init. you should see your new gradle files, update build.gradle with your code, then $gradle build. be in the root directory
You can also use gradle wrapper to specify gradle version to use

$brew info <package_name>
Had a bit of trouble running the Spring Boot CLI was tricky since there is a Ruby Gem spring that comes with Rails and you have to deal with it. Fix I got:
https://github.com/spring-guides/gs-spring-boot/issues/17

All in all, my apprehensions for the language were misplaced and the learning process for Java and SpringBoot was quite starightforward and enjoyable. I hope you have fun building something in this mature ecosystem.