4 ms·
What's the point in hiding the fundamentals of OOP, rather than starting with them very quickly? You can't get very far before you're calling methods on the str
by g00gler 10y ago
What's the point in hiding the fundamentals of OOP, rather than starting with them very quickly? You can't get very far before you're calling methods on the strings you're printing.
I'm genuinely curious, I sat through an intro to programming & follow-up course in PHP and that line of thinking seemed to confuse the students. They weren't sure of what a function was even though they were using functions! The professor never got around to explaining OO or any fundamentals.
- hackits 10y agoI believe it is to teach the fundamentals of the CPU, Machine code before the student has any knowledge of the abstraction's that currently exist. Then after the fundamentals have been established introduce the abstractions and different approaches to improve productivity.
- no_wizard 10y agoThe reverse is to give people a way to build things. Even simple things. This lights up the brains response every time you get the computer to, as my old lab partner in my first CS class put it 'to do a thing! Automatically!'. My first real python program made me gush with endorphins. I feel like if I didn't start off on Python first (and, for whats it worth, still heavily use today) I wouldn't have been NEARLY as interested in the mechanics behind it (specifically the C libraries) or generally the things python lets you take advantage of (like manually managing memory. I still have horrid memories learning C and dealing with pointers.) It drove my curiosity to understand all the under the hood aspects. If I started with Java, I wouldn't have had these wow like moments writing fairly large (at the time, anyway) programs that actually functioned. Like my first simple RSS reader. Or the first time I discovered I could automate my Macs tasks quite easily. I was HUNGRY for power after that. and i knew, at least, more power, for all python was worth, would likely come from other languages being in the mix. So I learned Java, and C, and opened my eyes to the power of many other languages (I still insist Perl is better at string processing than any other language. Show me that its not! /rant) I think there is a lot of value is in learning the fundamentals with Python or another interpreted / high-level language first.
- hackits 10y agoI agree with your view point. Although why are you in the CS class? If you're only interested in just getting the job done the fastest? From a practicality stand point of view using bash, batch files, nodejs, python is going to be faster second to none, I'm not discussing that. The point is using a low level language you have to consider about decoding the jpg, memory allocation or possible streaming issues. Optimal buffer size and command prompt parameters to parse from the command line to resize the image. All tangibly relate to other fields in the curriculum and when you get a job the field.
- no_wizard 10y agoIt's not about getting the job done. It's more about opening ones eyes to the potentials of computer science. Learning Python open the doors to other kings. Not to mention many of the things you are mentioning here are power user features of python as well.
- omn1 10y agoIt's not about hiding OOP, it's about being overwhelmed with too many new concepts at the same time. Put yourself in the shoes of a beginner: the runtime, the IDE, the language keywords,... everything is new to them. Once you know your way around simple functions you can start adding another layer of abstraction. But slowly. Maybe Ruby would be an easier start for OOP than Java.
- jlarocco 10y agoJust my opinion, but it seems that starting off all at once with the language runtime, "Hello World", an IDE, and language keywords will cause more confusion than a few extra lines of code. Java was the first language used when I was in school, and nobody had a problem with the "Hello World" boilerplate. The professor took about 2 minutes explaining it, told us we'd cover it later in the course (and we did), and then we jumped into the main function. A bad teacher can teach any language poorly. EDIT: Now that I think about it, the class was something like, "Data Structures in Java," and the main focus of the class was introducing data structures, with Java tacked on because it was popular at the time (right around y2k) and it made grading easier to have everything in the same language. After that, I don't recall there being any classes explicitly about learning particular language. There was an "Advanced Java" class, but it was an elective showing how to create GUIs and a (brief) intro to things like Java Server Pages.
- munificent 10y ago> What's the point in hiding the fundamentals of OOP, rather than starting with them very quickly? Fewer concepts to learn. I've worked with people who have been programming professionally for decades and still don't use OOP well. OOP is hard. With a novice user, you want to get them making a computer do cool stuff as soon as possible with as few concepts as possible. Everything else runs the risk of scaring them away forever.