Dont get me wrong, i like the idea and its good to have more people who understand programming. On the other hand it will also yield alot of low quality programmers, because the higher quality learn to code out of their own interest anyway. So in the end i am not convinced that its a good thing to have even more Rails programmers working for 15$ an hour.
Yes programming is a valuable skill, but i dont agree it needs to be more of a universal skill to people like carpentry or plumbering for example. The people that need it for their job will have to learn it, the people that are passionate about it will learn it, all others will probably never learn it because it requires a ton of work and they end up on the low end, and we really have enough of bad programmers.
Very few people would argue that by teaching everyone to write, the job of being a professional writer is degraded. What we are saying is that coding is a form of literacy now. We are not advocating that everyone become a professional programmer; and similarly, teaching people to write is not advocating that everyone become a professional writer.
In many jobs knowledge of computational thinking will be important.
I think the objective you're aiming towards would be better served by attempting to raise the bar on mathematical thinking and reasoning. Programming can have a part to play in that, but I'd argue that you'd get much more benefit for equal cost simply by performing studies on which forms of mathematical teaching actually taught students mathematics.
Programming on the other hand is a niche skill which you absolutely do not need to know or master in this world. Maths, Physics, Chemistry and languages are skills that are much more important in terms of a general skill-set to master daily life than programming is.
Programming is for people that pursue a career in the IT industry or science. Is it a nice skill to have ? Sure, just like carpentry or mechanical engineering.
What colour is the sky in your world? That's the most backward thinking I've encountered in a long time.
Getting more kids exposed to code can only increase the number of good, competent programmers. If it increases the number of mediocre programmers as well so what?
The world is increasingly run on high technology software and hardware platforms, some understanding of this should be useful to everyone, and helping more people towards real understanding and skill in the field is a good thing, not a bad one.
In the first DotCom boom every John Doe who could write some HTML got a job as a programmer and everyone studied IT in that time to make the big bucks. With the current shortage in the US i bet the scenario is likely going in the same direction and in a few years they end up like all the unemployed lawyers today.
Of course its not bad to expose kids to programming, but i argue that its not very useful because you need years of experience to make anything useful and that point is only reached by people that have the passion for it anyway.
Managers will continue to have to get better at what they do -- hiring good talent. If you need to hire enterprise sales people, and you picked up a high school kids because they sold clothes at Banana Republic senior year, you deserve what you get. So why would anyone fill an enterprise Rails engineer role with someone just because they took a high school Rails course?
If anything, a basic understanding of what programming is will help elevate the awareness of how complex it is to those managers. Programming is so much more than a craft.
Every programmer knows that feeling of being asked a tech support question. These things obviously have nothing to do with what programmers are great at. More importantly, being good at tech support says nothing about programming. But to most people, it's just "computer stuff."
Designers aren't asked to come paint a house. Accountants aren't asked for stock tips. Someday, programmers won't be asked antivirus questions anymore.
Designers aren't asked to come paint a house. Accountants aren't asked for stock tips. Someday, programmers won't be asked antivirus questions anymore.
Those are bad analogies. Like it or not, antivirus software is significantly more closely related to programming than, say, house painting is to design. Better analogies would have been, "Surgeons aren't asked questions about dermatology. Divorce lawyers aren't asked questions about tax law." Except, that's not true, is it? People do ask surgeons questions about their skin lesions, because, "Hey, a doctor's a doctor, right?" People do ask divorce lawyers tax law questions because "Hey, law is law, right?" And people will continue to ask programmers about anti-virus software because, hey, computers are computers, right?
The idea isn't just to teach syntax or a specific language, but rather to teach students how to think and give them an intro to what programming is and let them decide if it's worth pursuing as a career or major in college.
Kids first need to learn logic, math and english at a certain baseline... every good programmer is probably quite good at all 3 of those foundational things - those skills are the enablers for unlocking programming in a basic capacity. The problem is that the average highschooler is struggling immensely to get to that basic baseline at the time of graduation. Additionally with the very real budget and over-capacity problems, when new core curriculum is proposed the first predicament is what is going to have to get axed in its place. Somebody is going to have to pick something to say goodbye to that is actually truly core learning. Yes Im sure we all have our favorites of what we think is non-essential core curriclulum but in reality our opinions don't count and to be a realist they probably shouldn't - only the opinions of the district, administrators, teachers and parents count in any real way. Additionally, when you put programming up against any part of the core curriculum (geometry, algebra, literature, etc etc) - most will axe programming - I probably would as well.
Programming is a great way to help teach logic.
Also, if taught well, it can be really fun for students and help reengage them with school. We've been teaching a number of low-income students already, and they have learned a lot and really enjoyed it.
We always ask after a couple classes how they enjoy learning to code compared to their other classes, and most students just laugh because they think it's not even a comparison.
I dont have all the details on the program in that the TC post is down but I think if you pitch it as "a curriculum to learn programming" you are going to to run into some very tough and potentially unmovable adversaries (ex. state governments).
This is what is called a "False Dilemma"
I'm not so sure about this. Programming is one of the only skills I can think of that free you from having to find a "job". If the market is crap you can make something yourself. You don't have that option if you're, say, a SAP administrator because it takes a fairly large organization to have that.
You're ignoring carpentry, sewing, knitting, smithing, machining, writing, cooking and a host of other non-STEM related skills.
I'm the only member of my immediate family that doesn't work in one of the "trades", and oddly enough I'm the only one that doesn't work for myself.
http://www.codinghorror.com/blog/2012/05/please-dont-learn-t...
i think its a great idea, but i told her the same i tell everyone:
"you need to have a good reason, or a problem you want to solve, otherwise you're wasting your time"
and now that i think about it, it's not really different from any other study out there. you ask the people why they learn it and they tell you because someone told them they'll get a job. and what you have is hundreds of thousands of masters and ph.d good for nothings, which are nothing more than factory workhorses. some professor or company gives them a task and they do exactly that.
"… most people can’t learn to program: between 30% and 60% of every university computer science department’s intake fail the first programming course."
And that's just to pass a class, and these are people who chose to go to school and major in computer science. And that says little about future success writing real-world code, which some people can't seem to pull off even after getting a degree.
As far as I can tell, programming is part aptitude and part learned skill, and not everyone has any real aptitude for it. This doesn't mean they're stupid: they may be absolutely brilliant at something else. That thing just happens not to be programming.
But I see no harm in letting anyone who wants to learn to program try, and in giving them as much support as possible. At worst it's another failed experiment, but if the upside is inspiring a few more people to become great at this I'm all for it.
This. Becoming a software developer takes an enormous amount of tenacity and patience, and willingness to dive into things you'd rather not dive into.
Someone following a pre-baked tutorial is probably not confronted with arcane showstoppers which require elaborate workarounds or debugging lower levels of logic. I have seen quite some people start a programming tutorial and wishing to become a 'coder', but then hit some brick wall the moment they had to leave the path that was set out for them. Not knowing how to proceed, they eventually shrug and give up, possibly sooner than later. This tendency to give up early is less likely if you arrive to programming from the bottom-up, for example, via electronics engineering. I suspect this has something to do with the expectation that hardware should behave deterministic.
Not every kid is interested in programming. Schools would do better if they could do a little more to nurture the abilities and interests of their students rather than try to fit them into a one-for-all standard curriculum.
We're not insisting that everyone should write code for a living just like high school music classes aren't insisting everyone be a musician.
However, just like music, programming is an enormous part of our world and getting exposed to it in high school is really important.
I'm a high school computer science teacher. I've personally taught (face-to-face) the basics of programming to more than 2,000 students over the past fifteen years. Quite a few of those have been "low income".
Letting kids struggle and being able to support them when they get stuck is key to deep learning.
Kudos, and ping me if I can be of help.
Even when people are just getting started, there are lots of ways to get stuck.
I've spent some of the most agonizing hours unclusterfucking big bowls of pasta code with meatballs and all kinds of other shit all sprinkled with cheddar cheese. Then I had to hold their hands so that they wouldn't make such a stupid mistake again, and again and again. Then i left and you know what? These people still work there. This is exactly what this kind of thing encourages. It encourages coders, not software engineers/developers and it ends up hurting the industry more than helping it. Yes, you'll have some high school kids who'll like coding. They'll graduate from school and will be sucked into their first programming job right out of HIGH SCHOOL writing shitty code, making way more than their friends and making someone's life miserable. Then a small fraction of those kids will get better (some much better) and maybe get formal education, while the majority will remain damn coders. The industry allows this and it only gets worse. Look, we're not professionals by any formal definition of an engineering profession, but at least we can try to get there some freaking day. But it's incredibly hard to do when you have so much "noise" entering the work-force. Don't get me wrong, i think programming IS essential and I DO believe it should be taught, but i just don't see how this benefits anyone at this point in time.
If we make CS education accessible earlier, you could imagine that more people would actually be more prepared to enter the field.
> Don't get me wrong, i think programming IS essential and I DO believe it should be taught, but i just don't see how this benefits anyone at this point in time.
A few immediate benefits: Giving job opportunities to students who would have never had them before. Allowing students to complement their other subjects with knowledge of programming. Demystifying the use of computers. Creating their own projects.
Those seem like benefits to lots of people at this time.
If taught well, kids will understand that coding is an art and requires a lot of practice and thought. We are not claiming you can get a job right out of high school, but merely that they should get exposed in high school and have a basis for continued study.
If every kid learning to code increases the number who choose to continue to study it in college, there will be more qualified coders. Companies will be able to selectively hire good ones, and people will understand that they need to actually practice and get good at it to get a good job.
Programming is arguably one of the best ways to derive pleasure and seeing meaning in the learning process. You create, you design, you implement, you learn from others and in the end - most importantly - you have something working (and to show off), together with the thrill of knowing that this existed _because_, and solely because, you made it happen.
It gives one a purpose. So in order to bring things that're only in your imagination into reality, you learn to code better, and learn about what you're trying to code (say, history, or science, or Tarot decks if you're into that).
Instilling this sense of purpose to our young is a very lofty goal. In our current context, programming seems to achieve this goal in a far more time-efficient and rewarding way.
> So in order to bring things that're only in your imagination into reality, you learn to code better, and learn about what you're trying to code (say, history, or science, or Tarot decks if you're into that).
I think this is one of the most powerful aspects of learning to code for students. They can create something that is important to them. They can build something that complements their learning in other areas.
... and if this comes to schools... they can directly apply things they learn in school.
"All teachers of programming find that their results display a 'double hump'. It is as if there are two populations: those who can, and those who cannot, each with its own independent bell curve."
http://www.eis.mdx.ac.uk/research/PhDArea/saeed/
http://www.codinghorror.com/blog/2006/07/separating-programm...
You should download Google Chrome so you can get started!"
Just a warning from a high-school teacher: this is a non-starter in a lot of schools. High-school IT departments have a lot on their hands keeping kids on approved sites, and (for historical reasons, as I understand it) IE is one of the easier browsers to deploy in such a way.
I know you probably don't want to develop for IE, but if you want to hit the market at large, you'll have to. I can probably get my IT department to put Chrome on for an approved list of students, but not every school will be willing to do that.
That there is putting a finger on a huge cultural hurdle. Not just for the adoption of this problem bu maybe to adaption to the modern world. The rule of thumb is that teachers need to be 5+ years more advanced than their students.
A teacher that finds the material hard is a very different role.
Teach kids math, teach kids to write, and let those who care to find their way to coding. The schools are doing badly enough on math, reading, and writing that this is the area that requires concentration.