A Few Words About The Tutorials
It can be really hard to find good programming tutorials in the web. Most just skim the surface of the subject, giving the most obvious examples and use cases and leaving you on your own to figure out the rest. Many barely go past the information available in the JavaDocs.
And, as you surf around looking for information, you see the same copypasta code snippets everywhere. Sometimes they’re the same code fragments as the ones in the JavaDocs “description” sections!
My goal is to provide something better than that. Tutorials that explore a variety of use cases, and that point out useful features as well as potential traps and common mistakes. Tutorials that give you a solid foundation of understanding about subject.
And lots of code examples.
First Principles
As a learner, I’ve always preferred to understand the underlying concepts behind a subject first. I find that armed with some basic knowledge of the first principles it becomes much easier to understand and remember just about all of the techniques that you need to learn in order to actually use whatever it is you are learning.
I try to take this approach with my tutorial articles. I’m careful not to get bogged down in too much theory or useless details, but to give enough background so that the “how to” parts of the article aren’t mysterious or confusing.
Depth of Content
There is a tricky balance to find with any tutorial. The article has to be short enough that the content is easily digestible and useful, but deep enough that it has more value than reading the JavaDocs for the subject. Also, there’s very little value in repeating information that can be easily found in the JavaDocs.
I feel that the real value in my tutorials is the added insights from the experience of someone who has actually used the subject of the article to do real work with it. From someone who has, when necessary, taken the time to look into the source code of the library to see how it really works.
Jekyll tells me that most of my tutorial articles fall between 10 and 15 minutes of reading. So they run a little on the long side. However, I’ve tried to take care to divide each article up logically with clear headings so that the right-hand sidebar has a clear and easily navigable table of contents.
The results, I hope, are articles which are worth reading from top to bottom but that can also be used as a reference for answering specific questions as you are doing your own programming.
Code Examples
As much as possible, I try to include complete, stand-alone code samples that you can copy and paste into an IDE and run without any fiddling about.
My feeling is that it should be easy for you to get some code up and running as easily possible so that you can experiment and test the concepts you are learning. So my code samples are designed to get you started with that.
I also strongly believe that there is such as thing as “objectively better code”. Code which is clean and easy to understand, with well named fields, variables and methods. Code which is written in a consistent manner. As much as possible, I try to make my example code examples of that objectively better code.
In addition, I try always to take the time to point out important points about the examples in the text of the article. To draw your attention to lines of code that you might miss, but are vital to the correct functioning of the example. To explain why a certain approach was taken, or why a particular piece of code is of special significance.