3 ms·
Self-taught-programmer here. I've done a lot of pondering about how to teach programming because I tried to learn several times myself, both on my own and in c
by aboodman 15y ago
Self-taught-programmer here.
I've done a lot of pondering about how to teach programming because I tried to learn several times myself, both on my own and in classes.
I bounced off each time, until finally sticking. I always wonder what made it different that last time, and if it applies to others.
===
Have you considered starting with something with less conceptual overhead than java-in-a-shell? There's so much you need to understand before you can even get to writing code that way. You need to learn how to start and navigate a shell on your computer (different on each type, and depends on your system configuration). You need to learn about paths, and java versions, and sdks, and what 'compiling' even means, and the concept of source code vs a binary.
This doesn't seem like much to people in the field, but I remember it being really intimidating.
In contrast, I really love codecademy.org:
http://www.codecademy.com/ http://www.codecademy.com/
You're writing code within seconds. You can access it on any computer and it always works the same way. Which is to say, it works like any other web site. You start seeing things happen right away, and you don't need to understand all the infrastructure initially.
===
I feel like getting people to that first high where they see their code generate output is really important. If you can get them quickly to feeling a little bit of that power that comes from software, that starts the fire, and they'll have more motivation to figure out terminals and paths and verisons and OSes and everything else.
- teach 15y agoI agree. I don't get to choose whether or not I teach Java; that's determined by the state. However, in my class, we write our first working program on the first day of coding. We install the JDK, do a basic DOS primer, type in our first program (in Notepad), and compile and run it on the command line in a single 90-minute period, like the 3rd day of class. Getting to the "bang" as quickly as possible is HUGELY important.
- sethg 15y agoDo the students move on to using an IDE? I realize that Eclipse or Visual Studio comes with a lot of overhead and you can easily spend a whole semester getting bogged down in all the options, but I would think that an editor with syntax highlighting and parenthesis matching would make a big difference.
- teach 15y agoYes, I only make them do the first ten assignments in Notepad and a command-line compiler. Then we switch to JCreator, which is a pretty unremarkable IDE, but it does have syntax highlighting and a few other niceties that make it a much more efficient code editor.
- algorithms 15y agoI think the online classes with ready-to-go coding insie the browser are something to be really excited about. They lower the barrier into programming by so many levels...
- teach 15y agoI agree. I LOVE the python-in-javascript REPLs, but so far NONE of them have console i/o. (Python's raw_input command isn't implemented, for example.) And that makes these a non-starter for my courses unless I completely rewrite all my assignments. And that's a HUGE time investment for an uncertain payoff.