Learning To Code: Are We Having Fun Yet? 226
theodp writes "Nate West has a nice essay on the importance of whimsy in learning to program. "It wasn't until I was writing Ruby that I found learning to program to be fun," recalls West. "What's funny is it really doesn't take much effort to be more enjoyable than the C++ examples from earlier...just getting to write gets.chomp and puts over cout > made all the difference. Ruby examples kept me engaged just long enough that I could find Why's Poignant Guide to Ruby." So, does the future of introductory computer programming books and MOOCs lie in professional, business-like presentations, or does a less-polished production with some genuine goofy enthusiasm help the programming medicine go down?"
Ugh, I hated Why's Guide... (Score:4, Interesting)
Seriously? I hated Why's Guide... it was stupid. I'm sorry. Just get to the point. I'd rather have a BNF with some sample code, without the fluff. Lua's documentation was the best I've seen (for introduction to a programming language). Go's is pretty good too.
interesting that a newbie is telling the world how (Score:5, Interesting)
The author has a point, maybe. I did notice that he was ten years old in the nineties and learned to program after college, meaning he has maybe five years of experience. He may be missing the REASON you name it "XMLReader", not "SusieQ" or whatever he said. If he ever has to grok a medium sized project full of classes with "whimsical" names he may wish for clear, intuitive names.
My predecessor at work was whimsical - every script or class has a variable named "bob", which sometimes is important, sometimes does nothing. Occasionally, he forgot what he was using bob for in a particular function and tried to have it represent two different things. One of our tasks is to slowly replace all of his whimsical code with proper code that is reliable and self documenting
It's all about fun (Score:3, Interesting)
When I hire a programmer, my first goal is to find out how much fun they have coding. Without that, I don't hire them.
LPMUD! (Score:4, Interesting)
The most fun I've seen people have while learning to program was back in the 90s, when people
learned to program for LPMUDs [wikipedia.org].
It takes about half a second for someone to understand object oriented programming with inheritance
if they create a key, or a door, or a special sword, or...
And they had so much fun programming. They never wanted to stop.
I wish someone could create a similar 3d MMORPG (with physics) to keep up with the times...
Make stuff happen (Score:4, Interesting)
Re:It's all about keeping interest (Score:3, Interesting)
I agree that everyone learns in different ways, I've certainly never been great under the classic schooling system but have always been way above the average when it comes to self directed learning in my own time but I'm not convinced this making learning fun thing works.
If we're talking about producing high calibre software developers then you don't need to do anything, the passion for the topic alone will keep them going and they wont find any of it boring enough to put them off and wont need special gimmicks to keep them interested. You can't force people into a profession they're not interested in and expect good results.
If however we're talking about programming just because we feel it's a skill people should know then I'm still not convinced it's right to force it on them even if we can try and make it interesting. I had to do English Literature at school and despite doing well I really could not give a flying fuck about it, it was the single most dull and pointless subject I've ever had to do and I miss not a single thing from largely forgetting everything about it after my exams. Spending a couple of weeks "evaluating" a poem about fucking daffodils or whatever and determining "what he really meant" was an utterly senseless amount of idiocy. He meant what he fucking wrote and any other interpretation you put on it or hidden meanings you decide to "find" in it given the fact he's dead is merely arbitrary and pointless and an exercise in making shit up, and if you didn't happen to make the same shit up that the teacher made up then you were "wrong". Really, it was a waste of my time making me do that subject when I could instead have done something else that was actually productive for my future and learnt something that mattered to me with all those hours of lessons instead.
I never ever found maths fun, I always found it difficult at school, but despite it not being "fun" and despite me struggling with it and having teachers tell me I wasn't cut out for it I still persevered and eventually got a 1st class honours degree in the subject simply for the fact that even though I never found it fun because I found it difficult originally, and even though I found it hard, I did find it genuinely interesting.
So sure the guy in the summary may have found Ruby a bit more fun, but honestly if he's not got the interest to learn the parts of development that made C++ boring for him his programming abilities are never going to get past the point of any relevance. Either you like the subject enough to push through the hard sometimes even boring bits or you don't. Some things can be taught to some people in a way they view as slightly less boring but everyone's different so everyone's going to encounter bits they deem boring but that's just the way it is. Chances are if you manage to make teaching of a subject fun for everyone who takes it then all you've done is eliminate the difficult, but essential bits to become competent in the subject in question.
Learning isn't easy, MOOCs make it more available but they can't necessarily make a topic more accessible beyond a minimum amount of intelligence, will and effort required to work through and understand the materials. There's always going to have to be some base level of interest and willpower required to get through the course successfully, that is, until we get to the point where we can write knowledge directly into people's brains, Matrix style.
Re:interesting that a newbie is telling the world (Score:5, Interesting)
When I was an undergrad with a part time job helping out in a graduate chemistry lab, there was a suite of utilities written in FORTRAN. People depended heavily on this suite to calculate all manner of things related to their crystallography research.
The problem was, it was mostly written during one of those years where Lord of the Rings and the Hobbit were massively popular again, and people were learning to program with hunt-the-wumpus teletype programs. The original author "amused" himself by naming pretty much anything he could after some fantasy concept. CASTLE, FRODO, DRAGON, and so on. Okay, so to map out van der Waals surface strength, you ran CASTLE. Many things have quirky codenames, you get used to it. But all the variables followed suit. Now it was a bit more obscure to maintain the program or trace the logic.
Worst of all, the comments. In FORTRAN, columns 1 to 72 were for your program, and anything after 73 was a comment. The author wrote an "epic" of his own, all word-wrapped in the column space from 73 to 132 (the width of common teletype paper and long Hollerith punch cards). What a waste of his time, you might think. But it was also a huge impediment to maintenance; you see, people in the lab LIKED his story (for a while), so they had to figure out how to patch the logic without breaking the flow of the story. It took years before someone stripped all the prose and got the rest of the lab to follow the maintainable fork instead o the prosaic one.
Re:It's all about keeping interest (Score:5, Interesting)
I think as kids grow up they may find other ways to gain attention and have other desires besides attention. But what I hope to instill in them at a young age is that people will like you if you can show them you are smart as opposed to showing them you can, I don't know, do something that gets you sent to the principals office.
Re:It's all about keeping interest (Score:4, Interesting)
It's funny what you say about literature. I had a professor in college talking about what B F Skinner meant in a class and a student said, "You're wrong!" He said, "What makes you think I'm wrong?" And the student said, "Because I called B F Skinner and asked him the answers to all these questions."
To his credit the professor (who was actually a really cool guy) said, "Can I have a copy of your paper so I can teach the rest of the class?"