dhayden wrote: |
---|
From what I see, 90% of the assignments that given in classes these days are teaching students to do things that the standard library already does. Look at all the questions about linked lists, finding the min/max/average values, classes to implement strings or dynamic arrays, queues, stacks, etc. Isn't teaching memory management just another example of this? Maybe it's a good idea to teach this stuff so people understand the issues and what the library is doing. |
A craftsman should definitely know his trade inside and out. It is embarrassing to listen:
Q: "How did you do foo?"
A: "I did press this button."
Q: "Why?"
A: "It was there and I was told that pressing it gets foo done."
However, I don't think that classes reinvent wheel infinitely for the purpose of teaching a language. No, the main goal seems to be to make the student
think. One could do that with any language, even pseudo. A real language has the convenience (for the teacher) that it can enforce some syntax. Furthermore, renewing assignments appears like
fixing what ain't broken; extra work for the teacher. It is surprisingly easy to be stuck in bad practises, particularly when they appear to "work".
In short, those classes do not really teach the language, they use some facilities of some languages in order to teach something programming-related.
Should one always use a chainsaw without turning it on simply because one might one day run out of fuel and learning to saw with powerless chainsaw is difficult, particularly in acute need?
No. Use the smart pointers. You have to know them in order to use them well. That is not a bad habit; it is a different habit than what
MiiNiPaa's homework requires.