First off, I grew up in Malaysia (next door neighbor to Thailand). My first time learning programming from a teacher/lecturer was rather horrid (I wish I had someone like you in my class). I have seen most of the challenges were due to the difficulty in visualizing how the codes transform to the end product.
I found Alice to be quite useful to introduce basic (types/conditional) to the first time programmer, but as soon as we transition from Alice to JAVA, many still struggled (dropout rate shot up).
If we can have a real time JAVA/C or any complied language, real time IDE. Student may not need to suffer from the pain of transitioning.
Thanks a bunch! The "transitioning" problem is a real bummer right now, but I'm optimistic that we'll see a lot of things start to change in the next few years as some of the newer IDE projects become more mature.
Regarding IDEs: I agree that we need better tools for Java and C. I think the key to solving this problem is making IDEs that developers can easily extend to meet their own visualizing needs. This is why I'm really excited about the Light Table project: It may not have a ton of features right now, but it gives you the ability to write powerful plugins to cover use cases the IDE developer hadn't thought of.
I'm really interested to know more about your experience learning programming for the first time, and the times after as well. You can shoot me an email if that's what you prefer.
Context: I'm a Malaysian as well, grew up there but moved to Australia for Year 12 education and then uni. Am working in Perth now as a software developer. My only experience with the Malaysian tech industry is one summer 3 years ago that I spent interning at a Malaysian software firm (horrible experience).
Would really love to hear more about the tech scene in Malaysia.
The whole world will learn to program--great! But the
cost to live in America just rises, and programmer/coder
wages will dwindle? It really bothers me when companies
that can afford to hire American programmers still go
overseas. I keep a mental list, and yes--I don't use
anything from MS unless it's free--and it better have a
low learning curve. So a big FY to the cheap outsoursers.
Ok I'll take the bait. Americans have no greater 'right' to code than anyone else. Your argument although heartfelt stinks of privilege.
If the whole world is coding and though that is altering jobs as we know them currently and freeing up lots of people resources, we have a very different much more encompassing problem and opportunity.
These kinds of reports are always interesting to me since I have kids, and I'm trying to think ahead to where to go once they outgrow Scratch. Reading about the gap between the engaging visual curriculum and then dropping down to C for "real coding" makes me a bit worried that something similar will happen with my kids.
In order to avoid that I'm investigating Racket--it's powerful enough that you won't outgrow it like you would with traditional learning languages like BASIC; in fact it's much more powerful than most mainstream languages. But it's still got fantastic support for visualizations and programming with images as values, so I feel like it'd be a good choice for a next step where you wouldn't have to compromise between "serious" and "engaging". The main drawback is that while the htdp.org curriculum is pretty solid for a textbook, it's definitely not as engaging as some of the interactive curriculums like http://learn.code.org or the one shown here. But the potential there is huge.
I think what's most important is that kids get something rewarding out of their work. If they can use their coding skills to make something cool that they want to show people, it will keep them motivated. I think the biggest problem with most curricula is that they have students writing to the console for the first year. The kids are doing "real coding", but the results aren't things that they consider "real programs" (like Microsoft Word, or Flappy Bird).
In the long term, we need to change the way we do programming everywhere, not just how we teach it. In the short term, I think students who can grasp the basics, find programming fun and understand why we use the console won't be held back by it.
I spent part of last year based in Thailand and attended a few technically oriented meetups. Honestly, the quality of knowledge there did seem very low. It's good to see some good teaching going on.
A few years ago I donated a crap-ton of machines to a poor school in a remote part of China in conjunction with a private American NGO. I am going to visit another school with them next week and will see whether there might be scope for something similar there.
Of course, I have no idea once they have a room full of machines whether they can do much with them .. and I suspect they are probably used for games and web access exclusively. Something like you are suggesting sounds like a great use of these kinds of resources.
Just saw your comment, I'm actually going to Chiang Mai in about a week! Send me an email (chris dot uehlinger ที่ gmail dot com) and we can figure something out.
13 comments
[ 2.6 ms ] story [ 45.9 ms ] threadFirst off, I grew up in Malaysia (next door neighbor to Thailand). My first time learning programming from a teacher/lecturer was rather horrid (I wish I had someone like you in my class). I have seen most of the challenges were due to the difficulty in visualizing how the codes transform to the end product.
I found Alice to be quite useful to introduce basic (types/conditional) to the first time programmer, but as soon as we transition from Alice to JAVA, many still struggled (dropout rate shot up).
If we can have a real time JAVA/C or any complied language, real time IDE. Student may not need to suffer from the pain of transitioning.
Regarding IDEs: I agree that we need better tools for Java and C. I think the key to solving this problem is making IDEs that developers can easily extend to meet their own visualizing needs. This is why I'm really excited about the Light Table project: It may not have a ton of features right now, but it gives you the ability to write powerful plugins to cover use cases the IDE developer hadn't thought of.
Context: I'm a Malaysian as well, grew up there but moved to Australia for Year 12 education and then uni. Am working in Perth now as a software developer. My only experience with the Malaysian tech industry is one summer 3 years ago that I spent interning at a Malaysian software firm (horrible experience).
Would really love to hear more about the tech scene in Malaysia.
If the whole world is coding and though that is altering jobs as we know them currently and freeing up lots of people resources, we have a very different much more encompassing problem and opportunity.
Allocate your thinking and concerns there.
In order to avoid that I'm investigating Racket--it's powerful enough that you won't outgrow it like you would with traditional learning languages like BASIC; in fact it's much more powerful than most mainstream languages. But it's still got fantastic support for visualizations and programming with images as values, so I feel like it'd be a good choice for a next step where you wouldn't have to compromise between "serious" and "engaging". The main drawback is that while the htdp.org curriculum is pretty solid for a textbook, it's definitely not as engaging as some of the interactive curriculums like http://learn.code.org or the one shown here. But the potential there is huge.
In the long term, we need to change the way we do programming everywhere, not just how we teach it. In the short term, I think students who can grasp the basics, find programming fun and understand why we use the console won't be held back by it.
A few years ago I donated a crap-ton of machines to a poor school in a remote part of China in conjunction with a private American NGO. I am going to visit another school with them next week and will see whether there might be scope for something similar there.
Of course, I have no idea once they have a room full of machines whether they can do much with them .. and I suspect they are probably used for games and web access exclusively. Something like you are suggesting sounds like a great use of these kinds of resources.