Hacker News new | ask | show | jobs
by theknown99 4511 days ago
The crutial thing for people wanting to learn programming is to get "hooked". Once you're hooked, you'll learn everything there is to know about programming as and when you need it.

What is more important than teaching people to program, is showing them how to teach themselves.

Programming doesn't really have any big concepts that need massive amounts of prior knowledge to understand. It's just 1s and 0s. You can't really compare programming (Building stuff), to quantum mechanics.

I'd say pretty much all kids these days have access to a computer, and to the internet - a perfect environment for self teaching.

Just like 25 years ago when I was teaching myself, there is no barrier to anyone who wants to learn.

1 comments

While I agree with the general idea that getting people enthusiastic is an important part of teaching programming, I think you're still underestimating the complexity of some topics.

The initial realisation that everything is just simple conditionals and loops is very empowering, and will probably lead to a burst of creativity in many people. However, the reality is that these tools are not sufficient for many complex tasks, and left to their own devices, students may lose interest before discovering the alternatives.

Having a teacher there to say "This might be easier if you learn about arrays" is very valuable.

I think we overestimate the difficulty of some things because of the intense proliferation of useful middleware and macros that we live in.

Variables, loops, branches, I/O (input/print). Did I miss anything?

Just because those things are technically sufficient does not make them practically sufficient. Your "proliferation of middleware" (which apparently includes all modern programming languages) isn't just a convenience, it's absolutely essential to developing anything useful.
Not really. You don't need to know about iterators, closures, generators, concurrency, exceptions, etc etc to be able to make useful software. Sure, learn about those things if it looks like you might need them for something, but all of those things are completely optional.

Learning programming at its rawest form, is giving someone a list of assembly code instructions, explaining what they all do, and saying "go build stuff". And it's fairly simple to learn. It can certainly be explained in a day.

Just like painting - give someone a pencil and paper and say "go make something".