My deepest regret is believing lies about OOP, during my education.
1. It is the best way to model a software, easier to think about objects and relationships: no it is not.
2. It increases reusability: I have seen people invwnting base classes to justify.

Are there any lies you regret believing that you believed during your education?

  • 4
    I think schools are just used to simple OOP applications without real world experience I guess
  • 10
    In fairness, that was once a commonly held view, and views of "best practice" change often in the software development field.

    The most important thing, IMHO, is to familiarise yourself with as wide a basis of paradigms as possible (OO, procedural, functional, imperative, reactive, etc.) and then pick the best one for any given situation.
  • 5
    I dont even think real world experience is flawless as it should be. People are locked in to some programming languages, paradigms, way of working etc because changinng ways is expensive and we are doing it for profit.

    I wish I was as critical to my field as I am now.
  • 3
    @AlmondSauce I am not a guy normally blames instructors my failures but I wish they thought me how to be critical against ideas instead of absorbing them as ultimate truth.

    I did not learn algorithms and data structures. I learnt C. I did not learn OOP paradigm, I learnt Java.
  • 1
    @alexbrooklyn OOP at my school is pretty much just namespaces and structs. You're then told about all of these cool things you can do with it, like have an a fox, cat, and dog, and have them inherit from an animal class. Now what cool things can you do with this knowledge? Well good luck getting our teachers with, and I quote, "more than 20 years experience in the industry" to tell us.
  • 3
    Oop is good but oo based functional is the absolute best
  • 1
    That's the good shit.
  • 1
    Teachers have it backwards...
    It usaully goes:
    This is OOP. This is an example of OOP. Here is a problem you should use OOP to solve.
    While in reality:
    Here is a Problem. You can code fast, or good, but solve ASAP. OOP? ok! lets go!
  • 0
    The smalltalk people would disagree with you 😉.

    In all seriousness, OOP, just like all popular programming methodologies, requires intelligent understanding to be applied well, and the human tendency is to blindly slave away at whatever doctrine has captured the fancy of the elite. Rejecting poor practice far too often includes rejecting the ideas behind them, often without careful evaluation. (This is a problem in all areas of the human experience, not just programming.)

    Good education requires understanding. When teachers don't understand, we get a generation (or so) of people who keep doing things without understanding, and then are unable to defend a system's merits when the questions begin arising.

    All programming systems have advantages and disadvantages. Blanket rejection is almost always silly, unless a particular domain is known to be a terrible fit for any particular methodology (which is quite rare).
  • 0
    If you’re going to say point 1 and 2 - could you explain why you believe this and what alternatives one should consider? “No it is not” without elaboration doesn’t contribute much.

    For me the biggest problem I’ve had when i started programming was structuring my code. OOP/patterns really helped me organize things coherently and paint a large picture. I used to be overwhelmed with assignments until I took an architecture course and it helped me break things down.

    Doing labs when working with 4-5 students, it helps immensely to have 1 person model software and then delegate who works on what. It takes some time on the beginning but as our code got larger near the end of the semester, it saved our asses VS other teams who had no structure/model and only 1 person could work in the codebase.
  • 1
    @AlmondSauce as far as I’m concerned, software engineering/development is such a fast moving field. Even if the concepts you learned back then don’t see application, I don’t think it necessarily mean they’re useless - it’s the thinking process that matters and once you get that down, it can be applied all over.
  • 0
    It's not the best, it's the 'good enough' solution for a majority of programmers. Objects and procedures are how most programmers think

    And of course, keep in mind, most programmers aren't all that great.

    It's just what us average plebs find easiest.
Add Comment