3 ms·
Definitely, a great read, addressing the mammoth in the room > When teaching programming, we should let people make these mistakes, and then show them the tool
by redbell 3y ago
Definitely, a great read, addressing the mammoth in the room
> When teaching programming, we should let people make these mistakes, and then show them the tools to correct them.
This was one of my pain points when I was in college studying CS. It was killing me to have the teacher just dictate that programming lecture without showing what problems it solves and/or how difficult our lives would be if we don’t get it right. I still recall that interfaces lecture where the teacher keep telling us to declare some sort of class with some methods but without implementation!! Any class could then benefit from this! How/Why?! I wasn’t able to get this interface thing until I graduated and worked on a personal C# project with WPF where I designed it with a basic architecture of plugins/addons that got loaded at runtime, those plugins should all have some common functions that can be called by the host app, only and only then, I fully understood interfaces and how/why/when to use them. At that point, I wished I can go back to college, explain this concept to students and get back!
I believe the reason why college teachers struggle to explain such concepts in a better way is their lack of experience in the field.
- calini 3y agoI've been doing only imperative programming in middle school (Turbo Pascal, yay), and when I started to get more curious about programming and started looking into Java, classes vs objects vs interfaces gave me headaches for weeks. It was only when I picked up a couple of online courses like CS50 from Harvard and CS106 from Stanford (quite outtdated now) that things started to make more sense. Sometimes those things take time and looking at them from different perspectives, and even different programming languages/paradigms. E.g. I started to appreciate the use of interfaces more when I started using Go, going from Java, where they're implemented implicitly, that I realised they're actually really useful and not just a nuisance.
- bgribble 3y agoPlug for one of the best algorithm textbooks, Skiena's "The Algorithm Design Manual". It clearly motivates algorithms with specific problems that needed them and how a good algorithm improves over a naive approach in real-worldish situations. Highly recommended.