For the next little while, I will be posting about Java development for the web. There will be several different conversations, but my ultimate goal is to write a tutorial on everything I have learned in the last four months. This should include Java and JSP basics, Struts 2, connecting to a database (JDBC, JNDI, Hibernate), building a project with Maven (or ANT WTF?), and a whole lot of other ridiculous things.

The reason I am writing this is because everything currently written on the web—every tutorial and example—is complete trash. I learned PHP, Python, CSS, MySQL, MySQL stored procedures, Oracle SQL (and advanced topics), Javascript and Google Maps Javascript API all from free web tutorials. My knowledge in these topics is not superficial either; PHP 5+ has many OOP features and should not be discounted as a crappy scripting language. Yet, trying to learn Java and all its frameworks is as easy as building a Turing machine out of toothpicks, blindfolded, and on the moon. It is also as fun as herding cats with border collies and kicking walls with toothpicks under your toenails. Yeah, I’m pissed. Needless to say, it is hard learning Java web technologies.
The problem is several fold:
- There are many different ways to use Java (robotics, appliances, web, etc.)This makes it awesome because the world is your playground! However, it also means there are many, many different libraries/frameworks and ways of doing the same thing. The simplest things on the web seem to have many very different approaches.
- Java is used and dominated by CS nerds. Nothing wrong with knowing your craft. Consequently though, the web system and programmers seem to be overly consumed with technical details and logistics. This seems to stifle creativity. The programming community generally don’t know how to dumb-down their explanations and tutorials which makes learning an already difficult system even more difficult. Even frameworks, which are supposed to simplify things, have high learning curves. For example, Struts 2 is awesome, but it took me a long while before I could even figure out how to make a “hello world” work properly. Take a look at this Struts request flow diagram. It makes sense to me now, but it unnecessarily took a lot of time to understand.
- Object-oriented to the extreme
- The community lacks freshness. I’ll be following along with one tutorial and will come across a diagram with a Netscape logo. I then have to question the whole thing because I’m not sure if it is still relevant. Maybe there are newer technologies?
Ultimately what I mean to say is there is so much potential with Java, but it is not accessible by the general web developer. Part of this is due to the nature of being an advanced and full-featured language, but the other part is due to a lack of easy-to-follow documentation. I seek to remedy this with my own tutorials. These will get you up and running quickly. Even if you miss something, you can always update later…but at least you’ve started.
Wish me luck!
P.S. A shoutout to the Head First series on Java development. Your books are actually fun and easy to follow. If only you had one on the web technologies I am trying to learn (Struts, Hibernate, Spring, Maven)!