3 ms·
The basics of chess can be taught in 1 hour but learning to be an expert takes many years. I see OOP in the same way. Most software today is written in an obje
by MarkMc 9y ago
The basics of chess can be taught in 1 hour but learning to be an expert takes many years. I see OOP in the same way.
Most software today is written in an object oriented language, and for large software systems the quality of your object oriented design has a huge impact on how much it costs to maintain and improve over time. I've been writing software for 20 years and I've never had to implement hash table or search algorithm, but almost every day I'm thinking about my software design using object oriented principles. Personally I think a 6-week course is too short.
- Goladus 9y agoThere's really no amount of classroom learning that will replace 20 years of experience with object-oriented systems. If you're going to put an inexperienced recent graduate in charge of design for your large software system, you deserve what you get. Ideal coupling of data to code is an arbitrarily complex, context-sensitive problem and each individual company might take a different approach. At best, that is the sort of topic best covered in an advanced class for students specifically interested in problems associated with a large codebase. It's not a good fit for introductory-to-intermediate "learn how to program" instruction. We could debate the importance of teaching search algorithms, too. But it's a different issue. Search algorithms are a solved problem[1]. Algorithms like that, in addition to being mental exercises, programming practice, and preparation for a career in academic research, are usually used to demonstrate complexity analysis and space/time tradeoffs. The space/time tradeoff is a problem you will face in nearly every environment no matter what language or technology you use. [1] As far as we know... there might still be research on searching algorithms but for the purposes of the vast majority of software engineers, sorting functions aren't something they'll ever need to implement.