Hacker News new | ask | show | jobs
by jchan 4870 days ago
It seems to me like a lot of the "required coding class" idea is based on a misguided desire to increase the competitiveness of our country internationally. Learning to program is good, yes, but to be honest, what goal are you trying to achieve? The article suggests that the goal might be to allow people to enter the job market more quickly.

The fact is that "programming" in and of itself is just grunt work. Forcing an entire generation to learn how to put strings together to do stuff won't help any of them when they go to a job interview and see a hundred other interviewees with the exact same proficiency for copying snippets from websites.

Problem solving is the much more important thing here, and that is already focused on in high school (remember word problems?). Programming allows students to explore problem solving more interactively, yes, but requiring schools to teach programming won't help in the long run any more than emphasizing a more comprehensive and intuitive approach to solving problems - I'm sure there'll be enough of those by the time these guys graduate to last forever. :)

3 comments

Having a labor pool that is universally more productive with computers would be a good thing even if we don't end up being relatively more competitive against other countries. And programming is probably a better vehicle for teaching important problem solving skills than a lot of the math and science classes that the average high school grad doesn't end up needing for their career.
"Universally more productive with computers" does not mean "know how to program a computer." Should kids be learning how to use and run a spreadsheet and type without hunting-and-pecking? Yes. Should they know how to compute big O to be productive? No.
Big-O isn't programming, but basic programming knowledge like how to use scripting for everyday tasks does lead to increased productivity with computers.
Are you suggesting that year-long programming class should be writing i/o scripts all day? Why not just teach kids Excel and be done with it?

This sort of reminds me of someone that I was working with at my last job. I told her to fill out a .csv file so that there were no blanks, but she didn't realize that navigating a spreadsheet with a mouse is a terrible idea. I told her to leave the mouse alone and use the ctr-arrow keys instead, but she didn't listen so the data got messed up.

Okay, so that is bad for her if her goal in life was to become some master data person, but you know what she was a total genius at? Photoshop. I consider this a computer skill, but it isn't programming, but most importantly, it is something she became good at because that is where her passion and goals lie.

I have a question: surely you read the articles online about programmers failing fizzbuzz and generally not being able to program at all. This is the result of students who went to school and paid for said school to learn how to program. What do you think will happen when we force every single person in the USA to program? I would say the world would suffer a serious net loss.

As for what goal you're trying to accomplish - I think it would be worthwhile just to see what sort of software people start writing when the expected level of programming knowledge starts increasing. With text editors, for instance, we already know there is a spectrum of possible solutions, some of which are easy to learn but not very productive, and some of which take a long time to learn but are very efficient (Emacs). What happens when millions more people have enough knowledge to use Emacs effectively? Or what would happen to spreadsheets if most people knew enough to make their own one-off calculating programs? I don't think they'd go away, but they might look different. I will be very interested to see where this goes.

But yes, you're certainly right that problem solving is the most important thing to teach. I think your idea of a comprehensive problem-solving approach is interesting - it sounds like you want to make that a theme across several classes. One of them could be programming, but perhaps other sorts of engineering could use it too.

I think I learn something pretty different doing programming problems than doing "word problems" in algebra. Also, don't you remember word problems that were terribly written? Programming problems (if test scripts are given) are rigorously defined by nature. I wish I had learned to program in high school.