
Ask HN: The most interesting current approaches to teaching programming? - cproctor
Are we trying any genuinely new strategies? Or are we still trying to successfully implement ideas from the 70&#x27;s?
======
AnimalMuppet
Was there something wrong about the approaches of the 70's?

I think we look for something that makes it easier for large numbers of people
to become programmers. And I guess that's OK, for some definition of
"programmer". Teaching people to be professionals still takes a degree, or
basically an apprenticeship, or both, and I don't see that changing. (You
don't see a new approach to teaching chemical engineering dramatically
changing things.)

But perhaps I have misjudged the thinking behind your question...

~~~
walshemj
I think your right up to a point but when people talk about apprentices in IT
terms you really mean Technicians.

Classically apprentices left school at 15 or so did 4 years learning how to
use lathes ect before going on to the more academic day release.

In the IT industry there is no real analog to spending your first year
"filing" and making tea.

~~~
AnimalMuppet
Well, I meant as a programmer specifically, not just IT. In my own experience,
people who are self-taught (myself included) might be good enough to be entry-
level programmers, needing a high level of supervision. If you're going to
learn good judgment rather than just knowledge, though, it really helps to
work with more experienced people for a few years. That's what I meant by
"apprentice", more being mentored rather than a formal apprenticeship.

------
bobbylox
I wrote this article a while ago to point out some games-based approaches:
[http://www.gamasutra.com/blogs/RobLockhart/20130905/199667/G...](http://www.gamasutra.com/blogs/RobLockhart/20130905/199667/Games_That_Teach_Programming_A_Brief_Overview.php)

Since then, even more have cropped up: Code Combat:
[https://codecombat.com/](https://codecombat.com/) Empire of Code:
[http://www.checkio.org/blog/empire-code-space-strategy-
game-...](http://www.checkio.org/blog/empire-code-space-strategy-game-
checkio/) Code Kingdoms: [http://codekingdoms.com/](http://codekingdoms.com/)
Taken Charge: [https://takenchargegame.com/](https://takenchargegame.com/)
ComputerCraftEdu (Minecraft Mod) :
[http://computercraftedu.com/](http://computercraftedu.com/)

------
caffix
One thing I've found concerning is the continued lack of secure coding
curriculum being taught to computer science and software engineering students.

No doubt, this has only contributed to the divide between software engineers
and information security engineers.

------
petervandijck
I'd really like to see some deliberate practice approaches. Kahn's academy
seems close.

For developers, something like laracasts (or other screencasts) is working
well it seems. Not very revolutionary though.

~~~
RedGreenCode
Solving programming puzzles (or competitive programming) is a good basis for a
deliberate practice plan. There are a lot of sites that provide puzzles of
increasing difficulty. So you can work on problems slightly above your current
level, which is one of the tenets of DP.

I wrote a blog post on this topic with more details on a specific process:
[http://www.redgreencode.com/deliberate-practice-for-
software...](http://www.redgreencode.com/deliberate-practice-for-software-
developers/)

Khan Academy is a reasonable way to start learning programming, but like other
learning sites (Codecademy and others) they focus on learning things the first
time, and not as much on getting better. CodingBat
([http://codingbat.com/](http://codingbat.com/)) takes a more drill-oriented
approach, which is more effective for learning the basics well. But there's
not a lot of content there, in comparison with a puzzle site like SPOJ
([http://www.spoj.com/](http://www.spoj.com/)).

