Welcome to the 244th edition of The Java(tm) Specialists' Newsletter, sent to you from a very wet Chania, Crete. I hope that you are safe where you are. We've had torrential rains and it even snowed a bit on some of our beaches. Thunderbolt and lightning, very, very frightning me. Galileo ... Whilst I'm writing this, my generator is purring outside. Fortunately I had a premonition that we might need it this week and spent a couple of hours the other day getting it into good shape again. I wonder when our electricity will come on again and what calamity is at the root of this blackout? A fallen tree? A gushing river wiping out a substation? An engineer needing to change a street lamp bulb?
We have revised our "Advanced Topics" course, covering Reflection, Java NIO, Data Structures, Memory Management and several other useful topics for Java experts to master. 2 days of extreme fun and learning. Extreme Java - Advanced Topics.
Since it is the end of the year and you are hopefully enjoying a bit of a break, this newsletter is going to be a bit different. I've worked like a slave these last two months, often until 2am producing Java video tutorials and self-study versions of my two Extreme Java Courses.
But, before I write about these video tutorials, I'd like to tell you about something else that I did these last two months. It might not seem relevant to your life or to Java, but trust me, it very much is. Since the beginning of November, I've run 314km. In November I managed 111km and so far in December, I've gone 203km with one day of running to go. Now those numbers are nothing special if you're a health freak who runs marathons before breakfast. But if you saw how large I am, and knew how lazy, you'd recognize it for the miraculous transformation that it is.
To put this in perspective, when I was a kid, I would usually come last in any run, no matter the distance. This didn't change as I became a teenager, except that I became better at avoiding all forms of physical exercise besides spearfishing. I bunked most "physical education" classes with the excuse that I was writing some important computer program for the school and needed all "non-essential" lessons. I'm not your average guy when it comes to running. I'm way, way, way below average. And yet I managed to find the time in December, besides all the festivities and late nights working, bad weather and thunderstorms, to bust past 200km. So what's your excuse? :-)
I started running 2.5 years ago to lose weight and to improve my general
health. As programmers, we can only function and earn money if we are well enough.
I see a lot of young guys who are horribly overweight and could not
run a mile. They are huffing and puffing up the stairs and I wonder how
long before it's
*** game over *** for them? We need our
health if we want to work effectively as coders.
One of the most inspiring books I've ever read was Scott Adams' How to Fail at Almost Everything and Still Win Big. Adams wrote four words that revolutionized the way that I exercise:
A while ago I bought myself a Garmin Fenix 3 Sports Watch with a separate heart rate monitor belt that measures not just how fast my most important muscle is working, but also stride length, balance, etc. Fascinating stuff. I know the watch seems very expensive, but think about it: It helped a lazy couch potato nerd like me do 200km in one month. Thumbs up for that! What I find most useful is the "recovery advisor" that tells me when I can run again. The trick with Adams' advice is to make sure that this is always less than 24 hours. As your fitness increases, you can burn through more miles and still go again the next day. Nowadays I can knock out 8km and it will tell me I can go again in 12 hours time. If all you want to do is track your mileage, then any smart phone will do. I use Endomondo to keep score of my progress.
Another health issue that programmers need to watch out for is their spine. We sit a lot and need good support. The first company I contracted at was called Software Collage in Cape Town. The boss' attitude was that programmers needed the best chairs he could find. We were spoiled! Great support, high backs; we could sit for hours without getting fatigued. However, later employers weren't as generous and delegated the chair purchasing to their skinny secretary. Their chairs were torture! After enduring it for a few years and getting more and more frustrated, I bought my own high back leather chair. Even though the chair is now almost 16 years old, it is still in excellent shape and my teenage daughter claimed it. I've upgraded to something really special. But first a story...
About 10 years ago I was flying long-haul from Europe to South Africa. I had scored an emergency exit aisle seat, my favourite place to sit. Next to me was a gentleman and across the aisle from me, his wife. I took a deep breath and offered to swap seats with him. Of course he gladly accepted. After he had chatted to his wife for a bit, we started talking. It turned out that they were professors of ergonomics at German unversities. He then told me about this unbelievable chair that he was loaned by a company called Haider Bioswing. It has a mechanism underneath that keeps the spine moving all day long. Even whilst you are sitting down, you move continuously. You can see me bouncing around in some of my tutorials. Sitting still is what gives your spine so much trouble. Whilst he raved about how effective this chair was, he also warned me that the chair was, um, not cheap.
It took me many years to finally take the plunge and order it for myself. A friend almost had a heart attack: "You paid how much for a chair?" Here was my response:
Yeah, the chair is not cheap. But, the build quality is out of this world and I don't think I will ever need to buy another chair. Considering how many chairs I destroyed in my life, it wasn't such a bad deal. Since we sit so much as Java programmers, I again feel this is very relevant.
There is a cheaper alternative that will give you similar advantages to my über-chair - a large inflatable gymnastic ball. Thanks to Marcel Stör for reminding me of this $35 option. I've used both and they are both great, but I do prefer sitting on a chair.
As I mentioned at the beginning of my newsletter, I've spent a lot of time these last two months recording video tutorials. They are some that I have not told you about yet:
I also published a free mini-course on Java NIO and Non-Blocking IO. I recorded it a while ago and the audio is unfortunately not great. However, I was quite surprised when watching it how much I learned :-) It's not easy going, so ideal for experienced Java programmers. Enjoy :-)
Lastly, I also recorded my wildly popular "Extreme Java" courses, both the 2-day "Advanced Topics" and 3-day "Concurrency Performance" courses. Thousands of programmers around the world have done them as in-house courses, which I maintain is the most effective way, pedagogically and financially, to take the classes. With some of my customers, these courses are so popular that they fill them up within 5 minutes of advertising internally.
And now they are also available as self-study for those that want to do that route. I suggest you do them in this order:
The design patterns course was recorded over many months and the quality is not always consistent. Plus it is a bit old by now, so you might want to wait until I launch version 5 of that course early 2017. However, the quality of both of the Extreme Java recordings is excellent. You can see my face in all the recordings, not just the intro and conclusion. I personally find that far more engaging than if some instructor is just reading off a script.
I truly hope this newsletter has inspired you to get into shape both physically and mentally. We often neglect these aspects of our lives, but they are even more important than the latest shiny garbage collector from RedHat.
Please don't forget that we are doing our free monthly webinar "Heinz's Happy Hour" on Thursday the 12th of January 2017. Register here. Last month was a blast. Great questions and discussions. You can get all the recordings of the webinars here.
Would you like to receive our monthly Java newsletter, with lots of interesting tips and tricks that will make you a better Java programmer?