Hacker News new | ask | show | jobs
by ghaven 4514 days ago
> You can learn all you need to know in a day to get "hooked".

So what? That's not the point, of course you can become strongly interested in something in a short space of time. The problem is you really can't learn to code in that time.

> Then just variations on that theme, lookup other functions etc.

This statement is so broad as to be meaningless. Would you say you know quantum mechanics just because someone wrote down a few axioms for you and the rest is 'just' busywork and maths?

> At school, you're going to be in a class where 50% couldn't care less about programming, and the rest will just slow you down. Self teaching is much better.

If the self teaching environment is available and good, of course it is. However, there's nothing special about computing here, and one reason we have schools in the first place is that the environment is not always otherwise available.

1 comments

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.

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".