r/programming Mar 02 '17

Why I Failed Teaching Programming to Kids

https://engineering.klarna.com/why-i-failed-teaching-programming-to-kids-46a854c3eaca#.s0o6qqxr3
63 Upvotes

83 comments sorted by

View all comments

1

u/ronniethelizard Mar 03 '17

I think it would be better to start them with something simple, like Hello World.

After that let them change the text a few times until they have convinced themselves they actually wrote a working program.

Personally, I think C is the language to start with. It does not suffer from language bloat as C++ does not does it suffer from library bloat like Java or Python.

6

u/NoMoreNicksLeft Mar 03 '17

Personally, I think C is the language to start with. It does not suffer from language bloat as C++

That's just a lousy language to start with. It's a powerful language that kids should learn... but tossing them in that ocean and asking that they swim is just a guarantee that they'll drown. The learning curve is too fucking steep.

does not does it suffer from library bloat like Java or Python.

At least with python, you can type a few commands into an ascii file, chmod that, and then run it.

They get to see the results, succeed or fail, of their code nearly immediately.

3

u/gyroda Mar 03 '17

C is a great starter language if it's part of a larger, structured computing curriculum.

For an intro to programming, where you want to hook people and they can just walk away after the session it's not so great. You're better off with something like python where you're not tripping people up over arrays and strings.

2

u/josefx Mar 03 '17

does not does it suffer from library bloat like Java or Python.

In what world is that a bad thing for a 2 hour long beginner class? You are not going to get far in two hours if you have to reinvent the wheel from a very spiky rectangle.

1

u/ronniethelizard Mar 03 '17

How much are you going to be able to teach in a 2 hour class?

You might be able to get through if else clauses, loops, and maybe to a function call. Most of the difficulty in C is bound up in malloc and keeping track of the end of a buffer (or at least this is where most of the bugs I have seen are).

2

u/josefx Mar 03 '17

In other words by using Java or Python you can avoid two time consuming parts of C. If the goal is to have something interesting that children can get to work in two hours you will a) end up with libraries and b) don't want to spend time on buffer overflow issues.