IMHO, OO in this context is a smokescreen. OO languages are still procedural, and fundamentally, it's all about algorithms and data structures. OO is just a different way of laying things out. Adds complication.
Although 'if it's getting too hard, add a layer of abstraction' is a good principle, I believe you need to learn how computers actually work before you can start usefully layering abstractions on top of them. If you don't have a model in your head of what you're actually causing to happen in the guts of the thing, you're lost.
Read The Art of Computer Programming by Donald Knuth. Your abilities will end up in a whole different ballpark to the guys who started out learning Java.
Edit: Guys who are learning to write software always think it's about 'learning the language', because that's what hits you first. It's not. It's about developing the skill of building complex formal logic systems that operate in a predictable and efficient way. The language you use... just doesn't matter, really, and while you're learning, the closer you are to the metal, the better. Either learn the assembly language of a popular processor architecture (ARM or x86), or learn C.
kiwibiker is full of love, an disrespect.
- mikey
Bookmarks