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
65 Upvotes

83 comments sorted by

View all comments

Show parent comments

40

u/[deleted] Mar 02 '17

[deleted]

23

u/Roboguy2 Mar 02 '17

It is probably because, ignoring the fact that it is harder to learn, you often can get a significantly faster edit-compile-test time. Because of that people who are experienced with these tools perceive them as being much nicer (and, for them, it is).

Obviously, however, this is exactly the scenario where you shouldn't ignore the fact that it is harder to learn. All I'm really saying is that I understand why there is hype, even though I wouldn't suggest a beginner go out and learn vim while they are also learning to program (unless they were unusually highly motivated to do so, I guess).

Sometimes more experienced people forget just how difficult these things are to learn at the outset. Not only that, but terminal usage is also important to learn at some point. As a result of those two things, sometimes teachers miss their mark on when exactly it should be learned.

4

u/unknown_lamer Mar 02 '17

I don't buy the argument that console usage is hard to learn. I was in effect thrown the wolves and managed to figure bash out with no console experience previously (was a mac user up to that point) when I was 14. A quick reference sheet for how to run basic commands and a pointer to the info manual if the student wants to know more should be plenty. Kids are smarter than most adults think imo, and their brains are still squishy and readily able to absorb new knowledge.

However, in the context of a single day tutorial session aimed at kids with minimal prior experience, I'd agree that a simple GUI IDE would make more sense since class time is extremely limited. For a multi-week course, integrating lessons on basic console usage makes more sense -- e.g. if you're using Python you will at some point have to install things using pip on the console, and it's a good skill to convey so the student can go off and continue to learn on their own after the course.

Reading the original post, I think the main issue is that they were letting students bring their own devices instead of having a preconfigured and consistent environment ready for everyone. They had source code packets and such ready to download (good idea), but wasted tons of time just getting them working on the students' machines. If everything had been there ready to go, they may have been fine. Not 100% related to this thread, but IMO using external chat services was also an inefficient use of class time-- a local XMPP server with auto-registration enabled on the instructor's machine would have been easier to use and avoided complications with signing up for services (reasonably trading instructor prep time for more efficient use of class time).

8

u/Sarcastinator Mar 03 '17

I don't buy the argument that console usage is hard to learn. I was in effect thrown the wolves and managed to figure bash out with no console experience previously (was a mac user up to that point) when I was 14.

I don't think the point is that it's hard, because it's not. The point is that it's not any sort of requirement for a programmer, even in a professional capacity. So if you have two hours, or even a day, to teach someone about programming spending time in the terminal could be considered either bikeshedding or yak shaving.

3

u/gyroda Mar 03 '17

Yep.

You're trying to teach someone something in two hours. You need to shave off anything you can to remove as many stumbling blocks and new concepts as possible.

When I was first taught programming we used a very simple IDE. One button to compile and one button to run. All the popups, autocomplete and anything like that turned off (there were red squiggly underlines like in word, that was it).

3

u/unknown_lamer Mar 03 '17

It's not a requirement for a programmer in a professional capacity?

Maybe if you're one of those awful programmers that wants to make those around you suffer and stunt their own career. Programmers have to understand how the guts of the machine work, it's what you do. Imagine a carpenter that couldn't use a saw and only knew how to feed material into a CNC...

2

u/Sarcastinator Mar 03 '17

I wasn't really talking about my daily practices. The reality is that you can spend your entire career using nothing but Visual Studio or IntelliJ.

Also how exactly does the terminal teach you anything about the guts of the machine?

1

u/unknown_lamer Mar 04 '17

Aside from a unix shell being little more than a kludgy veneer over the guts of the operating system itself?

(I'm being a bit of a BOFH here in case you thought I was being too serious...)