So You Want to Learn Java?
So You Want to Learn Java?

May 1th, 2016 technical, semi-technical

Java is a great software development language. Used by millions of people daily, it's incredibly popular being the the primary language of businesses, Android software development and Minecraft. Java has excellent tool support, offering integrated debugging and many many libraries that can solve many many problems.

I personally feel that you should learn Java: it teaches you the logic required to write software and the new standard in software development. Java is an Object Oriented language to the core, you learn how to use and manipulate computer logic along with all associated properties in nice packages called "objects".

Go forth and write games and apps and even a website or two.

But when your small-ish games and apps turn into big-ish games and apps you notice that you run into problems. You find duplicated logic in many places, such that one small change turns into two small changes and perhaps you'll mess one up or forget another. You find your objects aren't acting the way you thought they would.

This is the fork in the road. This is where you need to mature your thinking. When you're using Java, this is where you'll find many of the answers you're looking for in Design Patterns. And this is where you need to STOP.

Stop now? Why stop? I've written wonderful games and apps, spent countless hours honing my Object Hierarchies and am intimately familiar with the entire stack of Java tools.

You need to stop now because you've just graduated Java. Java was created over 20 years ago and rose in popularity with the success of Object Oriented Programming (OOP). OOP simplifies life my mixing your program along with it's properties but that only takes you so far. Design Patterns are a complicated way to overcome the limitations of OOP.

This is why you need to stop. You need to stop because you're about to add even more code to a program to overcome OOP's primary design principals. You need to stop before your thinking solidifies into thinking this is the only way forward. This is where you need to stop with Java.

...and by Java, I also mean you need to stop:

  • Java Script
  • C++
  • C
  • Objective C
  • Python
  • Pascal
  • C#
  • PHP

Fundamentally, they're all the same. "Oh but they look so different". Nope, they're not.


Really, they only have minor syntactic differences because they're from the same thought-line. And that is why you need to stop and learn something different. Now that you have a basic understand of logic and how programs work can you level up to languages that enhance your power rather than slow you down.

This is where you need to take a look at something completely different, take a look at:

  • Clojure
  • Haskel
  • F#

After working with Java for a while, these technologies will appear alien to you. So remember how Java looks to you NOW before it becomes second nature. Java is not the pinnacle of programming, Java does not have all the answers and just because it's in Java doesn't mean it's right.

© Copyright 2016 by Functional SC . All rights reserved.