It’s a question that’s been bugging me now and then.When I heard that Jon Skeet, a Stackoverflow core member, book writer and educator, as such the perfect authoritative source to answer this question, was going to give an AMA on March the 29th over at Hashnode, I jumped right in:
Is Stackoveflow creating hordes of copy and paste programmers, hindering truefull education or is it the other way around, that is complementing education?
JS:I expect it’s a mixture, and that it’s always been a mixture. I hope those who do just copy and paste right now eventually see that it’s only a short-term benefit compared with the longer-term benefit of learning how things work. (Having said that, sometimes, if it’s just “what command line argument do I need to do X” copy/paste is very effective, I’ve found.)
I don’t think the availability of Stack Overflow has made things significantly worse here — people who are focused on “just get the job done” have always been able to find shortcuts without investing the time in learning more, I suspect. It’s also important not to demonize people with that approach; we may think they’re not doing themselves any favours, but it doesn’t mean they’re evil or should be treated badly. This is a failing in myself — I suspect I’ve been too harsh with those who don’t appear to want to learn, in the past. I hope to improve in the future.
Given the opportunity I fired a round of another two questions about book writing and the case of MOOC’s, which I think have value to share:
When writing a book as in your C# in Depth, how do you strike the balance between recycling old material and covering the language’s newest features? For example do you leave out stuff that was done in a particular way under an older C# version since under a newer version alternative ways of going about the same thing have been introduced?
JS:I’m currently writing the 4th edition, and I’m nearly at the end of writing about C# 2… which I’ve done from scratch, mostly. I’m condensing C# 2, 3 and 4 into one chapter per version, which means cutting out a lot of the detail, unfortunately. (Fortunately the 4th edition comes with an ebook of the 3rd edition, so you can look there for more details.)
As an example of this, I’ve barely mentioned anonymous methods — I’ll go into all the detail of captured variables etc when I cover lambda expressions, because that’s what I expect the vast majority of C# developers to use these days.
Is a book these days, where there’s competition by other mediums at large, like video lectures/mooc’s, still considered a viable option? Have you considered using those newest mediums for teaching ?
JS:I’ve recorded various Pluralsight videos, and some of my conference talks are online too. I think it’s important that there are lots of different media available for teaching, because people learn in different ways.
Personally I find reading (whether online or — less often these days — in book form) more useful than videos for most things, but I know it varies.
I do think there’s a lot of benefit in a structured approach to learning when you’re a relative beginner in a topic, instead of learning piecemeal. I’d expect a good online course to do that in the same way that a book does, but there’s less benefit in watching lots of different, uncoordinated videos, each on one different language feature, for example… each video may assume a different amount of knowledge beforehand, use different metaphors etc. With a structured, ordered approach you can build from one topic onto another.
The full AMA transcript with many interesting questions by other developers can be found here