Why do so many tutorials teach useless things instead of real world examples?
Well, why would you ever need to write a Dog
class with a bark()
method?
Apart from dog-related applications where this might actually be useful, a lot of tutorials contain seemingly useless things. In a job, you likely are not writing Dog
or Car
or Animal
classes. Instead, you're writing things related to your specific business use-case.
You're probably saying "But, I want to be job ready!" So, why learn these useless things instead of real, production applications?
Production applications have many layers of complexity - testing, logging, very large classes, etc. And they aren't built this way because someone just knew how to write it.
Production applications are built based on years of experience, trial and error, domain knowledge, fixing strange bugs, customer needs, and so much more. You might be asking - "I want a real job, so how do i learn these things?"
Short answer: You will eventually. Take it one step at a time.
We'll talk about Tutorial Hell in the next article, and how to escape it.
**Tutorials use very basic examples to introduce you to concepts in an easy way. Start with easy stuff, understand the concepts, and only after understanding the fundamentals should you begin working on **
As a beginner, it is 1000x more important to learn all of the foundational skills very well before progressing into "real" applications. For example:
- if you're building a web app or REST API with Spring or Java EE, you must learn Object Oriented Programming (OOP), as well as other foundational knowledge like HTTP. No matter what you're building, you must understand the foundations of the Java language.
- if you're building a game, you're most likely going to be implementing OOP to it's fullest.
- if you're using Java to build mobile apps, create chat or other networking programs, power Internet of Things devices, or anything of that sort, you'll get nowhere without knowing the core Java language, and basic programming concepts.
Maybe you just want to jump into complicated stuff to create a nice programming portfolio, and show off your skills to employers. It's almost impossible to build anything real without first learning the building blocks. If you try to build a brick house without knowing how to lay bricks, you may end up building a house, but it won't be build properly. The fundamentals are always necessary, and by starting slow, you'll eventually have the core knowledge needed to build anything.