Linked by Howard Fosdick on Fri 13th Apr 2012 20:21 UTC
In the News Six-month-old web site Codecademy claims you can learn programming through its online tutorials. The free modules on JavaScript are now available. The site also allows anyone to post their own programming courses. The site has good funding, but question is: can you really learn programming this way? One blogger enthuses that Codecademy's approach "looks like the future of learning to me," while another slams it saying "Seriously? Wow, bull**** badging and sh**ty pedagogy wins the day in ed-tech investing." What do you think?
Thread beginning with comment 514258
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: Human's brain
by xiaokj on Sun 15th Apr 2012 12:10 UTC in reply to "Human's brain"
Member since:

Otherwise it's like saying khanacademy is of no worth at at :/

Actually, I would seriously question the utility of KhanAcademy itself.

But first things first. There are too many things to talk about, so let me begin with the original article-related stuff.

Computer-related education is in a very annoying spot. It is pretty much unlike any other mathematical discipline. Whereas in other disciplines, knowledge of the simpler material guides your ascent into the deeper material, computer science looks more like two islands of trouble. And what trouble they are.

*Derailment: Looks like the difference between metals and semiconductors and insulators to me right now. Damn Solid State, stop derailing my conversations!*

Let us not cheat ourselves: computer science *is* two bits (pun intended). Learning a programming language is clearly fundamental, and that forms the first island of trouble. On the one hand, programming languages are too easy -- far too easy -- that we can simply teach ourselves. Most languages try too hard to be beginner-friendly, and this is not a blessing, I can assure you.

On the other hand, programming languages are basically impossible to teach. It is not for the lack of trying: beginning lecturers tend to start off with absolute zeal, only to crash and burn right off the bat. They can only seek consolation in the fact that the situation had been thoroughly documented. We know of the double-hump in education (and like the derailment, the band-gap in computer science is particularly wide). We even know that the three trouble points are assignment, pointers & recursion, and concurrency. I refer you to the existing literature for elaboration; they certainly do a much better job than I can.

So, what do most of the universities do in the face of such a discrepancy? They simply give up. There is no point to teach programming languages since the ones who would get it would have already learnt it themselves, and those that do not get it have to learn it themselves anyway. And so much of the university education in computer science focuses on the other island of trouble. That explains why there are the hordes of CS professionals (professors, even, I hear) that cannot code to save themselves.

But we had better progress onto the other island of trouble. The obvious first problem is that a good chunk of this second island is dependent on the mastery of the first island, and in fact, mastery of many different programming languages. But we cannot belabour the chicken-and-egg problem too much; the others are severe. The second problem here is the sheer size of it, and by this I mean the UN-partition-able chunks -- most of the time, in other disciplines, each bit you learn allows you to go further and be more productive. Although it is much frowned upon, you can and may drop out at any point and use all of the stuff you have been taught. Computer science, on the other hand, has huge chunks of things that may only seem to have scholastic interest, but when you learn the whole shebang, it clicks together to give you something really incredibly useful. If you dropped out in the middle of the process, you *will* be bewildered by the huge bit of inapplicable knowledge you learnt at the end.

*Yes, I managed to stow away all the engineering knowledge without mentioning it.*

Oh well. But you could have already known that. It is pretty much obvious on hindsight. But that lessens its truth no bit. I can only hope that you "obviously see" the next bit too. In varsity, they spend a lot of time teaching you "industry best practices". I shall not even begin on the dubiousness of that claim. Of more interest right now would be to steer you to the experimental finding that people just freaking don't learn that way! And like all the beginners, I was both oblivious and over-enthusiastic, and made the exact same mistake. The lesson is this: if you just keep showing people the good stuff, they will go back and continue with the nonsense they are doing. Not only do you have to show the absolute horrors that shaped the curriculum in the first place, you have to really go out and entice them to work with you, produce a model of their own, and then cruelly, conclusively, definitively and, most important of all, non-condescendingly show how their own work is inferior to the prescribed medication. If they are allowed to argue with your prescription, you have already failed. Let's not even consider the herculean task of being non-condescending -- some of it can be so crude, you cannot even start criticising without sounding condescending; and it isn't even your side -- your listener can just arbitrarily decide that your nice words are condescending, and au voir.

* And when that happens, you really have to take Simon Cowell's "someone has to tell them the truth" stance. And to console your certainly broken heart, if you get mistaken, it is most probably not your fault (truth), and if you manage to never get it, then you are certainly doing it wrong. *

All that, and I still cannot start on the topic at hand. I have to tell you about how the curriculum is actually mainly mistake driven, and how this is actually important outside of academia. Quite a lot of tertiary education is about the details, the boring stuff and the core modules that I am nowhere near sorry about. Any respectable work-related training has to have that! Walter Lewin noted that it is basically impossible to get an engineering-related education in MIT without watching the Tacoma Narrows bridge. All of these disasters are part of the curriculum, and they are downright boring in many cases. But if you are certified, and if something awful happens due to your negligence, then you can be rightly sued. You won't be able to deny that you are aware of such-and-such a problem's possibility. That is the real reason why, even though you may well be more capable at DIY than the person you hire, the government still mandates that certification be provided. Law basically needs that to work properly.

Now, how many self-taught programmers would have the requisite spectra of knowledge about all these annoying issues? Is it even likely at all, given how boring they can be? Even without that, by just not being certified, they are already a liability to the company, not the other way around. So there: A point to criticise self-taught programmers with no discrimination at all. And before you snipe be for snobbery, mind you I am self-taught myself, and my profession is as in physics, not computer science.

Finally, I can start on the fundamental problems I see in KhanAcademy and Codecademy. Just like how the proliferation of choices is always better for the consumer, I support their existence. I merely want to point out to the people that think that all knowledge can be presented in that manner that it is not just a bad idea. It is more devious than a delusion from my PoV.

Look, just the easiest thing I can complain about such schemes is what they pride themselves upon: their extremely fast feedback loop. Do this, see that, learn. I have yet to see any respectable education system that seeks to go this way -- indeed, a large part of the education system is to try to slow down the feedback loop. As you progress further into any deep field, the amount of information you have to simultaneously manipulate gets bigger and you have to absorb them slower. Nature certainly gives long term consequences. A fast feedback loop encourages not just ADHD, but an active dislike of proper understanding, and in fact an absolute disregard of edge cases, subtleties. The scheme is tends to also link with rote learning! And for goodness, edge cases *is* the single biggest driver of the CS curriculum, if you will.

I'm only on my first argument against *academies and I'm already out of characters. If you want more, ask me for more. Till next time.

Reply Parent Score: 2

RE[2]: Human's brain
by Kochise on Sun 15th Apr 2012 16:42 in reply to "RE: Human's brain"
Kochise Member since:

Hmmm, let's try to check your theory ! Read this from the very beginning :

If you actually are able to code some sample code at the end of the show, then online tutors for self-teaching are of some kind of usefulness.

BTW, thanks for you long and constructed answer, I didn't expected so much.


Reply Parent Score: 2

RE[3]: Human's brain
by xiaokj on Sun 15th Apr 2012 19:17 in reply to "RE[2]: Human's brain"
xiaokj Member since:

That is a good resource -- I have already begun a bit on that, but I decided I'd rather finish with SICP.

But that is missing the point -- I point out that it is certainly useful for students to have yet another resource, but ultimately I don't think it is a force for greatness.

Maybe I can put it this way better: Things like Khan Academy pulls up the poorest section of the community by giving them lessons at all. However, it is not going to help teach the really difficult topics because it would entail long discussions of complex topics, something that they have rightly avoided. In that sense, it may even hinder the slightly better section from actually learning more.

Bertrand Russell had even stuff to say about lectures, let alone video lectures. I think video lectures of the Lewin style is a lot more useful than Khan Academy style lectures. But he has a point -- books are still the premier route to disperse knowledge in a complete and comprehensive manner. Working out examples, asking tutors and hard work just cannot be replaced.

Similarly, that is not to say that I am against lectures. I have first hand experience in the massive difference between great lecturing and horrendous smothering in affecting productive learning.

So, more to the point, that I can learn something from such stuff does not imply much about its suitability. And as I have already said, how is it going to be suitable for disseminating engineering concepts properly? Sure, if you just reproduce books on-line, that is going to work, but seriously? In fact, I think that engineering concepts is something that lectures can do a lot better than books, to the contrary of what Russell thought.

Khan Academy is something I can specifically gripe on and on about. But I'll bash it too much. Trust me in that I really can show a lot more about how it is lacking from the educational standpoint. Frankly, I'm pretty scared of the hordes that think that it is doing a good job. They don't even know how bad it is.

Reply Parent Score: 2