[Tutor] Pair 'o dimes wuz: Volunteer teacher

Leam Hall leamhall at gmail.com
Sat Jul 23 20:53:07 EDT 2022



On 7/23/22 18:25, Alan Gauld wrote:
> 
> On 23/07/2022 20:24, Leam Hall wrote:
>>
>>> 	Of course -- my view is that, if one is going to focus on OOP, one
>>> should precede it with an introduction to a language-neutral OOAD textbook.
>> I disagree on the "OOAD first" opinion, though. Programming is about exploration,
> 
> Its one view. But not a universal one and certainly not what the
> founding fathers thought.
> 
> And defiitely not what the originators of "software enginering" thought.
> To them
> programming was akin to bricklaying. The final part of the process after
> you had
> analyzed the system and designed the solution. Then you got your
> materials and
> followed the design. And, agile theories not withstanding, it's still
> how many large
> organisations view things.
> 
>> Those OOAD tomes are someone else's opinion on how we should do things,
> 
> That's true, albeit based on a lot of data driven science rather than
> the gut-feel
> and "personal experience" theory that drives much of modern software
> development.
> 
> But especially OOP is a style of programming that needs understanding of
> the
> principles before programming constructs like classes etc make sense. OOP
> came about before classes as we know them. Classes were borrowed from
> Simula as a convenient mechanism for building OOP systems.
> 
>> until we have a handle on what we're actually able to do then there's no |
>> frame of reference for the OODA to stick to.
> 
> I'd turn that around and say without the OOAD frame of reference you
> can't make sense of OOP constructs. Sadly many students today are not
> taught OOP but only taught how to build classes, as if classes were OOP.
> 
> Then they call themselves OOP programmers but in reality build procedural
> programs using quasi abstract-data- types implemented as classes. And many
> never do understand the difference between programming with objects and
> building genuinely object-oriented programs.
> 

About the only truly universal things are hydrogen and paperwork, most everything else is contextual.

I'd be surprised that the founding fathers couldn't code in anything before they came up with OOP. It seems odd to design a building before you know how bricks or electrical systems work. The building architects and civil engineers I know really do have a handle on the nuts and bolts of things, and then they spend years as underlings before they ever get to be lead designer.

Design isn't code, it won't run on the computer. It is a nice skill to have, and large organizations often spend a considerable time on design. And they spend a lot of resources on failed projects and no-longer-useful designs. Does anyone not have at least one experience where the designers cooked up something that wouldn't work?

I feel one of Python's strengths is that it can do OOP, as well as other styles of programming. That lets people create actual working "stuff", and then evaluate how to improve the system as new environmental data and requirements come in. What people call themselves, and what paradigms they use is irrelevant; working code wins.


-- 
Automation Engineer        (reuel.net/resume)
Scribe: The Domici War     (domiciwar.net)
General Ne'er-do-well      (github.com/LeamHall)


More information about the Tutor mailing list