News for hackers. Stuff that matters.
Re:Teach our kids to code by pointyhat on Monday September 12, 2011 @10:19AM (#2987367)
No no no no please no. Don't teach them to code. Teach them to think first.

If you give someone a hammer without telling them how to use it, they are going to hit some fingers and get frustrated.

I think we should teach children to understand mathematics at an algorithmic level and let them see that programming is a tool/hammer for executing those algorithms. Unfortunately current educators tend to concentrate on the pure mechanical aspects of mathematics such as arithmetic and punching numbers into off-the-shelf formulae which is the real problem.

Personally, they should just throw in valid use cases that map to reality like calculating GCDs or Newton's method and let them knock up the programs in TI-BASIC on their standard issue TI-84's.

That's enough for school, even to A-level.

Footnote: For reference I was brought up at school in the UK on LOGO, BBC BASIC (6502 and ARM), LEGO Dacta and TI BASIC. Life was good for me, but I know that my peers found it frustrating when they just wanted to solve a problem and go home.

Re:Teach our kids to code by _corbett on Monday September 12, 2011 @11:24AM (#2987597)
I completely disagree with this, programming is a fundamental skill in a variety of careers and can be used as a tool to teach how to think.

It isn't an either-or proposition, incorporating programming exercises into any science oriented class can not only be illustrative, it like any sort of hands on lab does teach students to think like a scientist and helps to create a more realistic microcosm of how science is actually done these days, with programming forming a bridge between theory and experiment and heavily relied on in analysis.

Re:Teach our kids to code by dpkendal on Monday September 12, 2011 @02:44PM (#2988385)
"We want to establish the idea that a computer language is not just a way of getting a computer to perform operations but rather that it is a novel formal medium for expressing ideas about methodology."

Programming: it's not just a skill. It's a way of life.

http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-7.html#...

Re:Teach our kids to code by pointyhat on Monday September 12, 2011 @03:49PM (#2988634)
Whilst I like SICP and have studied it thoroughly, it's a way of life if you choose it to be. Most don't.
Re:Teach our kids to code by pointyhat on Monday September 12, 2011 @11:43AM (#2987698)
It's fundamental in possibly less than 5% of careers. Don't inflate it to something it isn't.
Re:Teach our kids to code by mibbit on Monday September 12, 2011 @12:45PM (#2987921)
List 10 distinct careers where programming is a fundamental skill.
Re:Teach our kids to code by dpritchett on Monday September 12, 2011 @01:11PM (#2988033)
Pretty much anywhere people use Excel. Any job where people use spreadsheets and their output is quantified and measured against their peers is ripe for automation by enterprising individuals. Why not be the fastest, most accurate analyst on your team?

From pg: "To get rich you need to get yourself in a situation with two things, measurement and leverage. You need to be in a position where your performance can be measured, or there is no way to get paid more by doing more. And you have to have leverage, in the sense that the decisions you make have a big effect."

And also from Zed Shaw: "Programming as a profession is only moderately interesting. It can be a good job, but you could make about the same money and be happier running a fast food joint. You're much better off using code as your secret weapon in another profession.

People who can code in the world of technology companies are a dime a dozen and get no respect. People who can code in biology, medicine, government, sociology, physics, history, and mathematics are respected and can do amazing things to advance those disciplines."

[1] http://www.paulgraham.com/wealth.html

[2] http://learnpythonthehardway.org/book/advice.html

Re:Teach our kids to code by pointyhat on Monday September 12, 2011 @02:49PM (#2988406)
Reminder: pg and zed are not deities. They have an opinion.
Re:Teach our kids to code by DarkShikari on Monday September 12, 2011 @02:35PM (#2988354)
Any software development career, of course.

IT careers; even sysadmins need to write scripts to manage systems.

Any career in the sciences; basically any scientist, even a pure experimentalist, ends up needing to write simulations in MATLAB at the very least.

Any engineering career: computer-modelling complex systems, whether chemical or mechanical or whatnot, requires programming skills.

Anyone in applied mathematics, like operations research.

Anyone in quantitative finance.

I'm pretty sure this covers way more than merely 10 "distinct careers", and there's plenty I missed.

Re:Teach our kids to code by brlewis on Monday September 12, 2011 @11:25AM (#2987599)
Letting a kid hit some fingers and get frustrated can be the best way to prepare him/her to care about listening to an explanation of how to use a hammer. I think the reason I enjoyed SICP so much at MIT was because of my teenage experience banging my head against the limitations of BASIC.
Re:Teach our kids to code by troels on Monday September 12, 2011 @01:45PM (#2988161)
Not just for kids either. I realised at some point that one of the best way to learn things is to try, give up and then come back later and try again. By some magical means, the timespan in between will always make it tremendously more intuitive the second time I came around.
Re:Teach our kids to code by rohit89 on Monday September 12, 2011 @11:16AM (#2987564)
I agree. I hated maths in school where you had to plug numbers into formulae. I could never remember them correctly. This stuff should be made interesting so that kids with their natural curiosity will figure out how to do it.

I truly started appreciating maths after I experienced cases where you could code an elegant solution based on math in about 5 lines as opposed to trying to solve it your own way and end up having 30+ lines of code and your program still buggy.

Re:Teach our kids to code by panic on Monday September 12, 2011 @01:32PM (#2988112)
I think we should teach children to understand mathematics at an algorithmic level and let them see that programming is a tool/hammer for executing those algorithms.

Computers are useful for doing math, but for most kids, and even most adults, that's one of least interesting things they can do.

A program isn't just a hammer. It can be a paintbrush, a tape recorder, a story, a symphony, or a lab assistant. And a program is more than any of these things -- a real-life paintbrush can't change the size of its bristles, and you have to draw every stroke by hand. On a computer, everything's just code. You can run your "paintbrush" routine billions of times, vary its parameters using your voice, or earthquake data, or a physics simulation, or anything you can imagine.

As a programmer, maybe I'm biased, but I can't imagine any job beyond the most menial where the ability to program wouldn't make me more productive.

Re:Teach our kids to code by pointyhat on Monday September 12, 2011 @02:31PM (#2988342)
It sounds like you're suggesting that we should replace our children's life with sterile simulations of reality?

I'm a programmer but I value physical experience far more than anything a machine can portray.

The programming bit allows me to remove the menial tasks and solve the menial problems so I can enjoy my real attachment to this world.

Re:Teach our kids to code by mibbit on Monday September 12, 2011 @10:38AM (#2987437)
Agree. Kids need to learn logical thought processes and problem solving. They don't need to know how to 'program'.

How do we even know 'programming' will be a relevant skill in 30 years time?

Buy every kid of 3 a tub of Lego bricks (Not a 'set'). That would go a long way to getting them thinking, problem solving, and building stuff.

And don't get me started on the "There aren't enough females in programming" BS rolleyes

FWIW, I would happily sign against this petition. I do not think teaching kids to 'program' at school so early is worthwhile. Programming is an extremely niche career, and anyone who is interested in it can easily learn.

You're likely to bore 90% because they're not interested in learning programming, and the other 10% will have learnt it all at home years ago and will also be bored.

</rant>

Re:Teach our kids to code by _corbett on Monday September 12, 2011 @11:34AM (#2987642)
There aren't enough good programmers. Period. In fact there also aren't enough programmers, period.
Re:Teach our kids to code by mibbit on Monday September 12, 2011 @12:34PM (#2987872)
Perhaps if more programmers were working on a solution to cancer, instead of a social webapp to allow people to share photos of their dogs...

Not to mention the number of programmers who waste their time creating new languages and frameworks. Then they spend years rewriting everything in node.js or whatever the fashion of the day is.

I'd say there's more than enough programmers.

Re:Teach our kids to code by saturn on Monday September 12, 2011 @01:49PM (#2988178)
> who waste their time creating new languages and frameworks

Well that's just laughable, and says more about yourself than any of these allegedly offending third parties. There has been tremendous progress in both frameworks and languages over the last decade. If you can't see that then, well, I don't really know what else to say, other than to perhaps get off your lawn.

Re:Teach our kids to code by mibbit on Monday September 12, 2011 @02:46PM (#2988394)
> There has been tremendous progress in both frameworks and languages over the last decade. If you can't see that then, well, I don't really know what else to say, other than to perhaps get off your lawn.

If that's true, can programmers today do things they couldn't do 10 years ago? Can they program faster than they could 10 years ago due to all these innovations in languages and frameworks? I'd say no on both counts.

Re:Teach our kids to code by saturn on Tuesday September 13, 2011 @04:48AM (#2990558)
> I'd say no on both counts.

Well, you're entitled to your opinion I suppose, but I don't know any professional programmer who would even come close to agreeing with you.

Re:Teach our kids to code by pointyhat on Tuesday September 13, 2011 @07:17AM (#2990905)
What about me? :) I agree with him.

So you're suggesting that the time to market of an ASP.Net MVC, NHibernate, Autofac, Razor, SQL Server application is going to be lower than a classic asp and SQL server application?

Re:Teach our kids to code by saturn on Tuesday September 13, 2011 @11:39AM (#2991925)
I thought you were a sockpuppet ..

I wouldn't know anything about the stack you describe. Seems to me the barriers there are all Enterprise related; framework innovation isn't the bottleneck. Big business software - perhaps that's something that hasn't improved much, if at all.

But this is a startups related site, in case you hadn't noticed. Web programmer here. Web frameworks have improved immeasurably. If you tried to tell a web programmer that nothing has improved since 2001 you would just be laughed at, and rightly so.

It's not just about the web though. Look at the new functional languages. Look at the message queues, the image libraries, computer vision, sound .. bloody everything. Tell me, is h264 better than mpg videos from 2001?

Step outside your bubble man. In fact, leave your bubble, it sounds pretty depressing in there. This is a very exciting time to be a programmer.

Re:Teach our kids to code by pointyhat on Tuesday September 13, 2011 @03:57PM (#2993247)
Hardly. I like it here.

And as for startups, I worked for one once. It's a big business now.

I build software which happens to reside on the web, not "web sites" or "web applications". Sometimes we have desktop applications deployed because they require real-time data. Sometimes we integrate with massive systems with millions of users. We don't use functional languages (they do not suit our workload and don't scale to our recruitment requirements), we use message queues (NServiceBus, zeromq), we use image libraries (GDI, reportlab), we use all the funky nosql stuff (Mongo), we use ORMs (NHibernate), we don't use computer vision or sound because we don't need it in our space.

Big, exciting things happen where I am.

It's the bubble you are in that I'd hate to be in. The superficial one which appears to be based on pushing social crap, novelty iPhone applications and glorified todo lists on the world.

My problem is that we did ALL OF THIS in 2001. The process hasn't changed, but the tools have and the time to market is the same.

Re:Teach our kids to code by pointyhat on Monday September 12, 2011 @02:38PM (#2988361)
But 99.9% of these innovations don't help the world. They help a small subset of a small subset of a small subset of problems from a small subset of a small subset of a small subset of society.

Compare to if someone worked out how to stop Neurofibromatosis dead in its tracks for example (a condition my youngest daughter has), they'd give 1 in 3000 people a better chance.

People get a Jesus complex because they build a tool that a vocal minority uses.

Re:Teach our kids to code by saturn on Tuesday September 13, 2011 @04:25AM (#2990506)
Even if we accept your claim that only 1 in 1000 inventions help the world, which I think is pessimistic, that's still progress. What would you rather people do? Not invent?

A programmer writing a new framework might not directly help cure Neurofibromatosis but they might make it slightly easier for another programmer, which is then inspired to work on his program, which saves a medical researcher a few minutes and gives him the time he needs to have his breakthrough. Or maybe a better search result gave him what he needs. Technology is cumulative. Criticising people because they're not working on your favoured project is pretty lame.

Re:Teach our kids to code by pointyhat on Tuesday September 13, 2011 @07:11AM (#2990890)
I agree with your sentiment but I see the other side of it. Technology is cumulative but noise slows down decision making and fragments knowledge.

The world does not need 200 programming languages, 1000 javascript frameworks, 500 different web servers and 20-odd social platforms which exist only to boost the ego of the originator who can market their idea better than othersr. It needs some concise, un-fancy-looking tools that are fit for purpose and can be used as a common ground for communicating ideas. There is so much fragmentation it's unbelievable.

Everyone thinks they can do better, yet no-one delivers any real efficiency improvement.

TBH going back in time, I can still deliver the same output as node.js with classic ASP/Jscript from 1998 arguably with less code and time spent.

Back on the subject of med research; they tend to still use Perl, bits of sticky tape and TI89/92 calculators a lot apparently (word of mouth from a friend who works in tissue sample analysis).

Re:Teach our kids to code by saturn on Tuesday September 13, 2011 @12:12PM (#2992080)
> The world does not need 200 programming languages, 1000 javascript frameworks, 500 different web servers and 20-odd social platforms

But .. that is the way we find the way forward. It's like evolution. We may not need 500 different web servers but .. that's a lot of different ideas, a lot of variation, and in the long run, a lot of innovation. Eventually the "best" way is chosen and we go to the next generation.

I actually think the proliferation of programming languages and frameworks, especially open source, is one of the purest meritocracies you can find. They live or die by their quality, innovation, new features. And the whole community is dragged forward. What you are advocating is basically central planning. Did you realise that?

> I can still deliver the same output as node.js with classic ASP/Jscript from 1998 arguably with less code and time spent.

LOL. Dude. No way.

Something you said earlier was instructive as to the mistake you are making with this line of thought. You said that "programmers can't do anything more today than they could in 2001" - or something similar. Or that other guy said it and you agreed, whatever.

Look, that's literally true. In fact it's literally true to say that any programmer can do anything as long as they use a turing complete language. This has been true since the days of ENIAC.

What has advanced, massively, is the knowledge of the best ways of doing things. Design. Efficiency. Elegance, maintainability, scalability. That is what has mainly improved. Knowledge. The laws of the universe have not changed, everyone agrees with that, but we have worked out, a little more, what works and what doesn't.

And I'm afraid your ASP/Jscript falls into the latter category. I'm sure you could mimic some tiny subset of node.js using that toolset. But it would be a hideous mess of spaghetti code. Unless, of course, you used the knowledge you gained over the last 10 years to basically reimplement node.js in ASP, presumably gaining express pre-approved VIP entry to Hell in the process. So things have advanced, haven't they?

Re:Teach our kids to code by pointyhat on Tuesday September 13, 2011 @02:46PM (#2992855)
Tell me two characteristics or features of node.js that cannot be built (in an old-fashioned circa 2001 way) with either ASP/JScript, Perl/mod_perl or PHP 4?

I'm not interested in "scalability" as that's moot - hardware is cheap.

Re:Teach our kids to code by pointyhat on Monday September 12, 2011 @01:01PM (#2987995)
Give this man a medal. This is exactly the problem with this planet.
Re:Teach our kids to code by pointyhat on Monday September 12, 2011 @11:41AM (#2987688)
Personally, I think there are plenty of good programmers.

Unfortunately there are a lot of problems which people like to solve over and over again...

Re:Teach our kids to code by _corbett on Monday September 12, 2011 @12:37PM (#2987886)
you should see some of the code that smart, hardworking and logical people end up writing in the sciences because they are 10 years behind in programming education and experience. then the next generation of PhD students rolls in and rinse, repeat.