Should Everybody Learn To Code?
theodp writes "In July, the Association for Computing Machinery announced it was partnering with Code.org, with ACM contributing funding and its Director of Public Policy to Code.org in a push to 'ensure that every K-12 student in the US has the opportunity to study computer science.' Interestingly, joining others questioning the conventional Presidential wisdom that everybody-must-get-code is the Communications of the ACM, which asks in its February issue, Should Everybody Learn to Code? By the way, Code.org is bringing its Hour of Code show to the UK in March. The new National Curriculum for England that is to be taught in all primary and secondary schools beginning in September includes a new emphasis on Computer Science curricula, said to have been sparked by a speech given by Google Chairman Eric Schmidt in 2011."
Sure, why not. They'll never use it anyway.
No.
ensure that every K-12 student in the US has the opportunity to study computer science
Yes.
(1) Reading comprehension
(2) Household economics
then Coding.
Everyone thinks that their profession is the most important in the world. But making everyone a programmer is not the most important task.
NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
Yes. but then I think everyone should learn the basics of critical thinking. Fundamentals of programming isn't that different from algebra and geometry, so junior high-schoolers should get a dose. If nothing else, they'll learn that programming isn't rocket science: It's a flexible tool which can be used to do rocket science and make Caturday-related goofiness.
Everything in the Universe sucks: It's the law!
At the very least, everyone needs to understand that their phones don't run on magic. And maybe fewer people would look for source code by opening an exe in Notepad.
Correct. We should start with learning to read/write before we move on to the advanced stuff.
No sig today...
Kids need to be exposed to a wide range of subjects (including programming) that they may later choose to pursue. They don't need to be taught to be experts in every subject, but they do need the basic understanding that will allow them to start learning on their own and to know whether it's something that would interest them or not. That basic understanding will help them make good choices about what classes they take, what they major in, etc.
LOGO isn't all that hard and gives people enough insight into how computers work to cure them of some idea that it's all spooky magic done by scary people.
THIS. I learned VB.net, C++, C# and a little bit of Python in my Mgt Info Systems courseload as electives because it wasn't offered as required at the time (2008) I have checked back and it is, now. I may not 'be' a coder, but in my current position knowing the basics of it helps me describe bug errors in our software testing to the people that can fix it in a manner that they understand better than "I clicked this button in the web app and it didnt' work....". I talk to my kids freely about my job and my 14 yr old son has an interest in Legos and game level design, and I stress the importance of knowing how to program, along with math, art, and basic graphic design elements so that he has some idea of what goes into making a program and interface work, rather than thinking its all magic smoke. I feel that knowing the use of basic Windows applications like Office, Excel, knowing a bit about Macros, and for g*ds sake knowing how to type are almost essential for most any entry level job now. Many of the managers older than me by about 10 years that I know (im 37) wouldnt be able to re-interview for my job as a mid level support tech with their demonstrated lack of knowledge of basic computing.
If it's not broken, let's fix it till it is.
I'm torn on this issue as someone who works in a sales org but has learned how to code/is in a continual process of getting better at it.
On the positive side of things, it's absolutely amazing how much time can be saved by extremely trivial code. For example, I had a client who needed to check something like 800 URL's for a given result on their page. They were chunking out ranges of the URLs to give to a team of people to do the task before we told them to put down the crack pipe and give us 10 minutes. A quick Python script looking for said element on each URL in the list dealt with that task nicely.
On the negative side-- the one thing learning code has taught me is that I'll never be that good at it. I had to bash my brains out on a table for many, many weeks, just to understand basic concepts like lists and arrays, and am only NOW really grasping the concepts of classes/why I should care. My code is sloppy, works well only really when run by me, and my ability to read other code/make modifications is limited to say the least. I stuck with learning code ONLY because I truly enjoyed it, and even then, after about 6-7 years of working at it, remain pretty mediocre.
In short, I'll never be a very good coder. I had to work INSANELY hard to get as good as I am, and I only did so because I genuinely love coding (even if I'll never be a savant with it). Trying to force people to go through that sounds like bad news bears, and I just can't see it working on any level. On the other hand, I get the appeal, because really everyone benefits. I get along great with our engineers because I can genuinely speak with them at a level that is more attuned to what they are thinking, and I can legitimately translate between the two orgs better than they could without me. It should be noted that we also have some rare engineers who can cross over to our world and love them for it.
So in short, I get why people want this to happen. Forcing it however is a recipe for disaster.
...many important concepts useful to logical and critical thought can be learned this way. I guess it's up to the educators to decide the best way to get students to grok these skills. Coding for codings sake? Wrong reason.
If learning to code accomplishes that goal then yes, everyone should learn how to code. On the other hand, those who can survive without coding should not be forced to learn to code.
Time is what keeps everything from happening all at once.
Formal logic: Yes Troubleshooting: Yes Basic computer skills: Yes The fewer people who think computers are magical devil machines and can figure out how to solve technical problems on their own the better, but the vast majority of people will not write programs.
Every opportunity should be available to each student, but we must learn to admit our children have different strengths, weaknesses, and preferences.
Though it seems true any child can grow up to be POTUS, not every child can be an astrophysicist.
Happiness in intelligent people is the rarest thing I know.
Ernest Hemingway
The Association for Computing Machinery wants everyone to code? I wonder what The Association for Fixing Your Car, Association for Small Repairs Around The Home, The Association for Recognizing and Stopping Child Abuse, The Association for Common Courtesy and The Association for Reasonable Adult Relationships would think. All worthy, imo.
Having worked in office environments, the amount of effort office workers could reserve by having access to a decent scripting language is immense; I once saw someone renaming over three thousand files by hand in order to change a date format. The potential drawbacks are also fairly obvious since businesses tend to do a terrible job of managing their IT tools and anarchistic coding is going to make this worse. However, the potential for productivity enhancements is there and it seems like a challenge which can be largely overcome, particularly if the workforce had these skills which were languishing. If this is the reality we should to push for, then some sort of programming experience which can be linked to useful activities seems like it would be worthwhile for many, from the drones in the office to automated farm equipment and CNC operators.
No kidding. It's high time to put the computers away. Put the phones away. There isn't any electronics required to learn reading, writing, and math. We have students who show up to school after 9 and are gone by 2 with a lunch hour in there as well. We have students "graduating early" not because they are exceptional, got straight A's, or anything else that would set them above the rest. No, they took the bare minimum required. That's right, they don't even have to take basic algebra or geometry or anything beyond 8th grade math now. These are the people that are supposed to be so computer savvy. What we have is millions of idiots who won't make it. Even the pole smokers in the red light district will see their wages decrease because of the influx of these morons.
Would coding in visual languages like Scratch qualifies? Everybody should learn how to solve problems and do tasks in a formal way, and see how that solution runs by itself, without their intervention, free will, or common sense. Doing it wriitting text or manipulating diagrams is independent of the core question.
Everyone should be given the opportunity to learn programming. Unfortunately it is not as simply done as teaching math. To learn basic math, you need paper & pencil. To learn basic programming sensibly, you have to have some sort of computer available. We're talking a very big leap in cost here for those who are not so fortunate to be able to dump a few 100 bucks on something as not immediately survival ensuring as education.
Yes, I can hear how many here cry out how I dare to say that education is not worth a few 100 bucks. IMO, it is, but then again, I have a few 100 bucks easily every month to spend on whatever I please. There are people out there who are by no means close to that, and for whom, say, 500 bucks for a computer to teach their kids programming is an investment they simply cannot make.
So yes, I think it should be our responsibility, as a society, to enable kids from these backgrounds to learn programming and offer them the necessary equipment (at their school or at some other place) to study and learn using equipment they need.
I'm by no means in favor of cramming programming down everyone's throat. I've earned a few bucks as a study aid for pupils who were pressed into "computer courses" by their parents who thought that it's "necessary" to make their kids the next programming generation because "computers are the future" (no, really? I thought they're the present...). It just doesn't work. You cannot force people into the mindset necessary for programming. People who do not want to learn it will not learn it. They will not even understand some basic concept, all they will take away from it is that it's some sort of arcane magic that only geeks and other dweebs can possibly grok, and that it's some scary stuff they don't wanna touch beyond what their GUI lets them.
If anything, forcing people into programming will drive them away from computers and raise the next generation of luddites.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
Ah! that's an interesting point..
Do Phones run on magic? To a lot of people they do, do you know how each component interacts with the others? Explain how a battery works and how it provides power to the device to allow two way communication on a global scale. I have an older boss (In his late 80's) He truly believes that little gremlins move images on screen, he can't comprehend the hardware and software interaction involved in the modern PC, so to him it is like magic.
Now we get to the interesting bit, as technology advances more and more people don't understand the base level of "Tech" involved in higher level computing eg, You know how to install a motherboard but few people can troubleshoot/build one as time progresses this will become more and more commonplace.
I'll use an extreme example of what may happen using an example from the warhammer series, It's 43rd millenium technology has advanced to a point where we have learnt far too much that the fundamentals of our technology are unknown, a cult (the mechaninium) has grown up to dominate higher and lower level technology, simple tasks become a religion and rituals evolve involving the simplest of tasks (eg turning on a switch)
How many non-technical people do you know that provide corporal punishment to their computers when they fail to work quickly enough, we know it has no effect but they believe that such actions are useful.
Magic is a dangerous think as it can easily turn into worship.
The question brought to mind a nice quote by Oscar Wilde: "A gentleman need not know Latin, but he should at least have forgotten some". Coding is not for everyone. Neither are history, poetry, chemistry, or Latin for that matter. But it's important enough to be included in a broad curriculum. Show your children everything, and they'll choose the stuff that is of interest to them.
If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
Most people will never need to look at any amount of code in their lives, even people who spend every day working on a computer don't need to understand the code behind the software they're using. What needs to be taught are much broader computing skills. During my time in IT, not once did I wish anyone knew how to code, but every day I wished they'd take courses on general usage. What I mean by that is they come out of school knowing how to access the software they expect to need for their profession and an understanding of how they should be able to use it, but no idea what to do when that software fails or falls short of their needs. I watched a company spend two years trying to make their accounting software run their entire business, hiring one expert after another, being told the entire time by said experts the software simply isn't ideal for their needs but refusing to look at anything else because it was what they knew. Switching wouldn't have been difficult, certainly easier than spending years trying to jury-rig software into another purpose, but they knew so little of anything else they refused to consider it.
This was a small business with less than half a dozen people needing access to this software, not some giant corporation where a switch would cost millions, and they continued to spend more on updating their software than many alternatives would have cost. Their stated reason for not switching was that they didn't want to learn different software. Most of us understand it doesn't take very long to adapt to new software if you put the effort in, the only people I've ever been unable to teach are those that refuse to try to learn. But people come out of school thinking they just spent all that time learning how to use a few things and it'll take just as long to learn anything new, it's a problem that might not sound so bad but it truly handicaps the workforce.
Don't teach kids how to code, teach them how to use different types of software, teach them how different things on a computer interact, explain the importance of updating software and drivers. Keep the option to learn to code available, but don't make people think it's some necessary skill to use a computer, that's going to make anyone who doesn't take to it feel even less secure in their computer skills.
While its nice to know what coding is, as it helps make the magic box do things, it wont enrich most of the public to know how to do so.
Hate to break it, but 99% of the public really don't care how most things work, they just want it to work when its turned on. Knowing how an appliance ( yes, that is what a computer is to most ) works doesn't really make it work any better.
---- Booth was a patriot ----
No, its not a skill required, for most jobs. Math, you use in daily life so its a bad comparison. Besides who said you have to LIKE something to do it?
---- Booth was a patriot ----
no
next question?
Assorted stuff I do sometimes: Lemuria.org
"The question brought to mind a nice quote by Oscar Wilde: "A gentleman need not know Latin, but he should at least have forgotten some"."
Absolutly right and, probably, in the same sense as Wilde tried to transmit.
Should everybody learn to code? Absolutly not.
Should everybody learn to think rationaly, not to be fooled by appearances, find the nut of a problem and then be able to decompose it into action items, set a path of action to solve them and finally check the intended result with the obtained one? I think so.
And it happens tom that learn to code can be a fantastic tool, probably the best, to achieve that goal.
I am a financial analyst. Knowing how to program allows me to automate boring things and generate analysis that would otherwise be impossible. It also means I am constantly creating tools that threaten the employment of coworkers who do not know how to program.
When you know programming, you spend most of your time improving the 1st and even 2nd derivative of the productivity function of a given task. When enough people like that are available for a given field, why would employers bother with people who are not capable of that level of productivity?
Sdelat' Ameriku velikoy Snova!
So everyone probably should get at least some exposure to it. Some of them will probably like it and go on to be programmers. But I think it's more important to focus on applying the knowledge you've picked up in school to solving problems the students haven't encountered before. School learning seems to be increasingly just memorization and teaching to tests, and a lot of people that I meet don't seem to be particularly good at synthesizing solutions to problems they haven't seen before. There seems to be an aversion to experimentation, even when the experiment would not be terribly expensive to run. I prefer a hands-on approach where we poke at a problem, try a few things, keep the stuff that seems to work well and throw out the stuff that didn't.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
And it's a lot more fun than MS vs Linux, Java vs .NET, Nvidia vs AMD, or even vi vs emacs. Sorry "gcc or llvm", your grudge match will have to settle for a 3 AM slot on a low budget, obscure science light cable TV channel.
The big language demolition derby is still hot and furious, like the annual playoffs of old sports that still excite fans, if you can see past all the smoking wrecks like Modula and the entire team of modular programming cluttering the arena. If only the Perl 6 team could sort out their engine troubles and get their car into the arena, replace that sputtering Perl 5 vehicle and challenge that JavaScript/CSS/HTML/AJAX monstrousity that was cobbled together from a dozen different brands of automobiles, and that C++ bug that still works after being run over and rolled over and which just got a fresh set of wheels. OOP sponsors must be wondering which teams are still proud to bear their logos. And where's Haskell? Oh yes, loudly honking their horns from atop the safety of their functional programming pedestal while the LISP car circles round and round as if they expect a ramp to appear at any moment. Python? Dancing around the LAMP pole with PHP's go-kart. In one of the darker corners of the arena are the excruciatingly slow horse drawn wagons of the Fortran and Cobol teams, just trying to hold their ground. Follow the oil slick to find C. Java is struggling to move under the crushing weight of their massive armor, spare parts, and the huge gas tanks needed to feed their too thirsty engine. The kids would still love those Logo toy cars they used to hand out last century.
If coding is so universal, what language should everyone learn? We're nowhere near sorting that out. Shouldn't we be able to settle and standardize on the essential elements of a programming language? As it is, it's like arguments over mathematical notation. Multiplication works the same whether the symbol used is x or * or a dot or nothing at all because it's the default operation. But it's not so easy to tell what is trivial and what is important in programming languages.
Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
(1) is not specific to coding, and for (2) it is simply not true. For a few tasks coding is being automated, for the rest it depends largely on lots of human being doing all the hard stuff. But I think neither address the original question anyway. The original question is whether everybody should learn some coding, and not whether everybody should do professional coding. I think asking everyone do at least a bit of coding is a good idea, because it is (1) an exciting experience, (2) eye-opening to understand that programming involving thinking in all details, and (3) a good weapon for anyone in the works to know what is automation all about.
In my day we walked barefoot in the snow to get to school. Five miles - uphill both ways!
How old are you? Seriously, I'm an old fart and I love to make fun of people younger than me who say "why in my day". Did you have such a vastly better education than what's offered today, or do you just fancy yourself part of some elite? If the former, how do you know what's taught today? Do you at least have kids in high school?
Surely people should also understand how to repair the cars they drive every day. It's not that hard, they just need to learn how to use basic hand tools and diagnostic tools, and then everything is is a simple step by step process. Sure there are tip and techniques that mechanics develop over time as they have more experience, but hey, anyone fresh out of a 12 week "Become an auto mechanic" boot camp can rebuild an engine.
And for that matter, everyone should become a plumber, electrician, HVAC engineer, etc. If you don't know how to build and repair the technology you use every day, how can you hope to survive?
I know, there once was a time when some basic mechanical knowledge was needed, but nowadays one can expect to go years (or decades) without ever opening the hood of their car -- my wife hasn't looked under the hood to her car, ever, after 10+ years of car ownership -- she used to take it in for oil changes every 5000 miles, but her new car tells her when it needs an oil change (every 10,000 miles) -- so just like computers, people can treat them as a "black box" without knowing anything about how to build or repair them.
Explain how a battery works
Something about electrolytes which plants crave. So a phone must be a plant. If I bury it in the backyard I can grow a phone tree! Press 1 now.
FWIW, I remember this brilliant (to me) math professor who taught me abstract algebra back in the '80s. She carried around Rubik's cube key chain, and would solve it in moments while explaining the group theory behind it. She was in awe of us in CS, and that programming stuff we did--it was just beyond her. The modern cultural cadres in charge tell us that diversity is A Good Thing, to be sought as an end in itself. So why do we all have to be programmers? I'm glad Bohr and Einstein didn't bother with this shit. Or Cézanne and Picasso.
Some as a pro .MID to .OBJ - and it'll be extra two weeks of training.)
Some as a hobby / interesting thing to know
Many just enough to know when you're being tweaked by a HW or SW salesperson
(So does this include USB3? Yup. iEEE1394? Sure. Full LRF support? Absolutely!)
(We have to have the pro package - this one doesn't do
"Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
It's one of the easiest jobs to get provided you're competent.
If you're not "too old", live in the right part of the country, and can put some stuff on your resume that has nothing to do with basic competence or skills, but is currently trendy.
yes but you can say that about every field. Chances are kids who are interested in computers will seek it out on your own, same reason they dont teach you how to fix a car, become a sous chef, or how to diagnose a disease. It is too specialized that most of the people have ZERO use for. History is considered general knowledge and you should know that in fact WWII indeed came after WWI. Chemistry wasnt mandatory nor poetry although they were a small subset of the general science and english, and even then chemsitry and poetry was only the basics. Coding isnt a basic, general computing which was part of a course.
They would be much better off having a mandatory course like parenting
Becoming a serious programmer means changing the way you think. Quite frankly, we need to have people who don't think like a programmer.
Making everyone learn how to code would be like sending everyone to law school.
Play Command HQ online
Coding is about to be obsolete. There are no mysteries anymore, and it is being automated.
They said manufacturing was going to be "automated" too, but in politicalspeak "automated" means sent to cheap labor countries.
I do have kids in school. The school places decently in national rankings, and I'm often alarmed by the quality of the kids' instruction. I think the GP is somewhat on the mark. For example, I've seen the kids taught to develop powerpoint presentations, where the emphasis was on the visual aspects of the presentation, rather than on the soundness or validity of their arguments. I've seen this even at the highschool level.
I don't have a good sense as to whether it's better or worse than when I went to school, because I'm not viewing both from the same perspective. But I do see a big gap between the education my kids are getting, and the education I wish they have.
Perhaps my expectations regarding kids' teachability are unrealistic (e.g., that they have longer attention spans and more interest than they really do). But I am sad that my employment situation hasn't allowed me the time to home-school them. I know they're capable of far more than is being asked of them.
Though for me Logic 101 was a lot better for my thinking than learning to code.
All judges and anyone working in the Patent Office should be required to have taken the equivalent of a college minor in computer science. (Not IT, but real CS). Just the core courses.
Learning HOW to think is more important than learning WHAT to think.
there are so many hours in the school day.
Look at the world: real problems are war, famine, violence, lack of love
this has nothing to do with coding
I think that rather then take hours out of the k12 curriculum for coding, we should take hours out for psychology.
maybe if children learned more about them selves and others, ti would help with the big problems
just total BS
however, if you can post some data to back up your posistion - and not just anecdotal candidate couldn't understand C indirect pointer stuff - I will gladly apologize
sure, maybe 60% of the population can't become good coders, but they can learn enough to , say use Perl to filter stuff, or at least understand that coding is not magic
When computer-based automation and robotics starts taking away 50%+ of the common jobs in the industry, you can bet learning how to code, will be immensely valuable.
Do we have the capital funds at the government level to re-school and re-skill everyone who is 40+, locked into a career path and now out of work, with nothing available in their own industry sector?
We're ignoring a very large and looming issue that is about to hit us in 10 years or less. Someone will need to be around, understand and be conversantly expert in the technologies powering that automation (think cloud, drones, home automation, self-driving vehicles, facial recognition, algorithms, etc.).
At the end of the day, coding is just a form of applied math. Sure, not 100%, but relational database is just relational algebra, UI programming is geometry and other stuff like matrices, functional programming is...well, yanno. And so on and so forth.
You probably can squeeze in some programming in math courses so people understand the basics. Not everyone should be expected to become a master programmer, or even a code monkey, but people should know the very basics, just as how they taught me the basics of how to bake a cake or whats the difference between the basic forms of investments in school.
Well coding, is the prime example where things that are not specific engouh, either fail totally or are COMPLETLY INSECURE (Pretty Happy Parsing errors)
You don't need to learn to code, you just need to learn how to describe something, that it can be reproduced within a certain margin of error. This is the description of a specification.
And you might say "reproducable yes, but does it work ?"
Not if the working condition is not specified.
If you can describe somehting acurate, THEN YOU CAN program!
Hint:
Good practice for writting "good"(see upper description) specifications:
- one page introduction make it 1/4 of a page
- List interfaces
- List operating conditions
- List operating requirements
- List ordering/delivery conditions
- List storage conditions
- List mounting unmounting possibilites and conditions (yes this includes tools and tool sizes)
- do the D-FMEA as easy as dancing YMCA !
based on this list collection of data you need to provide, if the data isn't 100% acurate and you know that, take an educated guess, (calculate, use your engineering skills, use previous data set a trigger level of acceptable conditions)
And it happens tom that learn to code can be a fantastic tool, probably the best, to achieve that goal.
Some of the worst logic and most fragmented display of problem solving I have ever seen in my life was produced by people who knew how to code so I disagree, learning to code does nothing by itself.
Coding is training for the mind. It's not strictly necessary for everyone, but it is broadly beneficial to everyone. What it teaches is the practical use of simple abstraction. Like learning music, it's good for you, even if you never get paid.
"We receive as friendly that which agrees with, we resist with dislike that which opposes us" - Faraday
Should everybody learn to drive?
Should everybody learn to fish?
Should everybody learn to use an abacus?
Should everybody learn to make fire with 2 sticks?
Should everybody learn how to skin a rabbit with their bare hands?
The answer is no, and so is the answer to this question. In fact, this article is a perfect example of Betteridges law of headlines which, iirc, was covered here on slashdot a few months ago.
If you gave me a choice between a printer and a giraffe with explosive diarrhoea, i'll get my ladder and my raincoat
I believe the primary purpose of public education is to ensure the functioning of a democracy by having citizens who can make informed decisions about how they are governed. Job training, personal improvement, etc, are incredibly important, but secondary benefits that arise from that main goal.
If citizens are going to have informed opinions, debates, and votes on issues of government that increasing involve technology, it is important there there be an understanding of technology. When so much of how society is regulated and monitored is mediated by code, and so much of our interactions with each other and government is mediated by code, it becomes imperative to know something about how code works.
This doesn't mean everyone needs to have a deep or masterful understanding of how to code. What is important, is some understanding of how computers deal with problem solving and information processing, from simple procedural programming, to networks, and varying kinds of abstraction. There are lots of great simple visual programming systems and other tools which provide a view into this. Being able to actually write working code in a particular language is less important than an understanding of how code is written. Just as we read literature and history to understand society and politics, and it does not mean we will all be expected to be writers or politicians, students should be exposed to software design and have an opportunity to do some small amount of it hands on, even though they will not all become programmers.
So lets get the goals right, and build curricula that move us toward those goals.
before you do algebra, you need to learn to multiply, and before that you need to learn to add and subtract.
certain higher levels of abstract thinking require prior training in order to be of good use.
getting a good grounding in the basics gives one better preparation to wield the forces of code.
for the earlier grades —when they're still learning to add and subtract, and count their ABCs.. up to grade two and three, you cant even really assume that kind of stuff yet — kids grow slow, just like plants, and you cant just stuff it into them like cabbages — give them time to develop basic skills like recognising the 26 letters of the alphabet before giving them the ASCII code 65, 66, and 67 — give them the simplest introductions of a subject area gives them a better ability to start a good core understanding which will help them for a lifetime.
a lot of what you learn in programming is not the requisite clear training in thought — but the semantics of a language, and the APIs which it is calling.. things which continuously change — distracting from the main thing — learning how to think clearly and logically.
stripping all the semantics and APIs away — and just left with the six rudiments of logic to contemplate — the motions and interactions of the king and queen — how the rook and bishop move along vectors; how how the knights intersect in circles, and how variables advance and pawn chains interact — these are the kind of things that get children to think in abstract arrays and logical collisions. i would start Chess in Schools in grade 2, and every year the classes play each other.. with as much reward given as they do for other sports activities.
train the national mind.. train the human mind.
once they got chess down for a couple years — programming,
starting in grade 7 and 8 should be a piece of cake.
2cents from toronto island
john penner
well, that explains why the project is always behind schedule and over budget...
Bullshit. Kids have no way of recognising that aptitude in themselves. How could they? I find that people who haven't been introduced to computer programming previously have no idea what it entails.
Also, I'd like to point out that programming in school is mostly about structuring your thoughts logically and a feel for how computers work, not professional coding etiquette.
You know, there is a difference between trolling and pointing out the flaws in your reasoning. Just saying.
Everyone should be taught Logic. Code may be a handy way to teach it. But there are many ways to teach logic. If code isn't the best then it shouldn't be used.
To a certain rudimentary level, i shoul be subject in the school.
Like everything which is subject in a school, it can not be more than an opportunity to learn it and get interested in it.
I am fine if the from the 95% which understand the world less than me 50% understand this fact.
Someone has to program the automation and that automation will have limits, and someone will have to program a better version. Anyway, someone needs to be able to describe a problem for a computer to automatically program it, and at that point, that is the new programming.
The balls and sticks of sportsing are unused for me and grammar irrelevant. Don't start me with quadrivium although liking music.
I was good at math in High School. I got a 5 on the Calculus AP test. But I never did understand that whole 'f(x)' thing. Why not just put 'y='. I basically gave up trying to wrap my head around why someone would ever write 'the f of x'. Then one day in University in my Introduction to Computer Science class the professor shorthanded a function declaration on the white board as 'f(x)', and years of middle and high school math all of a sudden made a whole lot more sense. I think that many students would be able to grasp the concepts of variables in math class sooner if they had a chance to use them in a couple of simple programs first. Plus they would enjoy a little bit of programming a lot more than pre-algebra.
It is just like requiring everybody to play a musical instrument. Coding needs insight, talent and dedication. It is far more than hacking out lines of code in some language. It includes data-structure architecture and design, algorithm design and analysis, interface architecture and design, performance analysis, security, user interfacing, reliability, ...
Unless a person has reasonable skill in all of these, the produced code will suck badly and be of negative overall worth. We need far less and far better coders, not more of them, or this whole house of cards will come crashing down.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Alternate headline: "Should an article posing this question be posted to Slashdot every month?"
Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
"How many non-technical people do you know that provide corporal punishment to their computers when they fail to work quickly enough, we know it has no effect but they believe that such actions are useful."
I do find that at least a daily use of a "three finger salute" is mandatory for most windows users.
09 F9 11 02 9D 74 E3 5B - D8 41 56 C5 63 56 88 C0 45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
Actually, this is not more important that coding. It is critical, and good code is critical as well. If you cannot do both well, forget it.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
First we need to ensure that everyone is competent in analytical reasoning and the ability to communicate clearly and accurately in human language.
same reason they dont teach you how to fix a car, become a sous chef, or how to diagnose a disease. It is too specialized that most of the people have ZERO use for.
...
They would be much better off having a mandatory course like parenting
On the contrary, I think some basic knowledge of car mechanics, cooking, health, and I agree, parenting, is extremely helpful for a broad segment of the population. I'd even add to that list. I also believe every person should learn at at least an introductory level an instrument, a second language, a sport, and basic finance. Kids are busy, and knowledge of programming is beneficial, but may not be beneficial enough to require. In programming, or any of these other disciplines, there's no need to achieve expert level competence to personally benefit.
Learn to manage money, or it will manage you.
"We receive as friendly that which agrees with, we resist with dislike that which opposes us" - Faraday
"learning to code does nothing by itself."
Of course not. That's why I presented (at least so I thought I did) programing as a tool to an end.
I've seen the kids taught to develop powerpoint presentations, where the emphasis was on the visual aspects of the presentation, rather than on the soundness or validity of their arguments.
And that emphasis is incorrect because...?
No sig today...
Correct. We should start with learning to read/write before we move on to the advanced stuff.
So we should make every student learn at the pace of the dumbest kid in the class?
I am lucky enough to homeschool. I do it primarily for the reason you would like to homeschool. In theory, public education should be able to offer a better education than homeschooling. Unfortunately, our public education system is so broken on every level, from parent to president. Most kids leave high school with what I would consider about a 7th grade education. Even colleges are spitting out graduates with only an 8th or 9th grade education.
A good point. When I took geometry in HS I didn't like it and resisted learning it. It all seemed like just a bunch of arbitrary axioms that one memorized in order to solve puzzles, to my way of thinking. Later on in my education I ran across Euclid's Elements, and the way he put those axioms together into a logical system was a thing of beauty and elegance that I understood intuitively. Same content, but I only had the aptitude to understand it one way, but not the other.
"We receive as friendly that which agrees with, we resist with dislike that which opposes us" - Faraday
> At the very least, everyone needs to understand that their phones don't
> run on magic. And maybe fewer people would look for source code by opening
> an exe in Notepad.
And now for the "Obligatory Car Analogy". Does every driver really need to understand the Carmot Cycle http://en.wikipedia.org/wiki/C... which is the basic theory underlying heat engines, including cars? Answer *NO*. Except for engine designers, most people only need to know how to *USE* their car...
* If it's a manual transmission, don't push the engine RPM past the red line on the tachometer
* If the "engine light" comes on, pull over to the side of the road and stop as soon as safely possible
* etc, etc.
Similarly, people need to know how to *USE* computers for their jobs, and at home. Just as everybody has "safe driving" pounded into their head, "safe computing" should also be taught.
Learn the basics of spreadsheets, word processors, email, etc. Scripting languages, spreadsheet macros, etc are nice. But VBA and Visual Basic and C++ for everybody is not necessary, nor possible.
I'm not repeating myself
I'm an X window user; I'm an ex-Windows user
Saying that "everybody should learn to code" is like saying "everybody should learn to change the oil in a car".
As much as I would like that to be true, it never will be, and anyone who actually looks at this critically will see that both of these tautologies are stupid.
Now, opportunity is a whole other ball game. Yes most definitely, everyone should be given the OPPORTUNITY to learn to code just like everyone should be given the OPPORTUNITY to learn about auto mechanics. That doesn't mean it should be required of anyone. I can't change the oil in my car and honestly I don't care, I pay someone else to do that. Just like my auto mechanic likely does not know how to write code, he pays someone like me to do that for him.
Reuse Reduce Recycle
Along about 3rd grade, most schools offer musical instruction for a semester or a year.
The kids come home one day carrying a flute or a trumpet or a drum kit,
and they go to band practice once or twice a week and learn to make some noise\b\b\b\b\bmusic.
Some have no interest and no aptitude and drop it pretty quickly.
Some have some interest and aptitude and stay with it until they find other interests.
Some go on to become musicians.
I'd offer programming instruction on the same basis.
But I'd put it off until age 12 to 14 (when the capacity for abstract thought develops).
For example, I've seen the kids taught to develop powerpoint presentations, where the emphasis was on the visual aspects of the presentation, rather than on the soundness or validity of their arguments.
You realize, of course, that this is also a valid skill in addition to having sound arguments or good information. The presentation of the information itself is something that is a valuable skill, and that includes how to insert various graphical features into a powerpoint presentation (or.. better.. some presentation software that doesn't bias toward powerpoint or keynote specifically) as well as when to use those features, and what to avoid.
It's really easy to become enamored with all the various features and wipes and whatnot and be distracted from the presentation itself by all the visual fluff. A good presentation segment will include that stuff and why to avoid it as well.
Can you be Even More Awesome?!
Is there some kind of global investment in hemmorroids that we are all unaware of ?
What is the point of this ?
Plant a garden people.
http://abstractionphysics.net/...
That's what they said ten years ago about today. It's nowhere near that point. Even with AI on par with a human brain, it won't reach that point. You want to know why? Because people state requirements incorrectly. A great programmer or project manager learns to annoy the client with seemingly repetitious questions trying to understand exactly what the requester means by "I want the program to file my tax return". I hope we never get to the point where the computer gets to decide what the computer gets to decide, because that way lies the madness of a holographic Dr. Moriarty capable of defeating Lt. Commander Data.
Few jobs require math beyond basic arithmetic. saying "Math" is like saying "Computers".
Does Dice Holdings take orders directly from Zuckerberg these days?
Should they be forced to spend time glued to a screen? Nah, probably not, they'll do enough of that on their own.
Should programming's fundamental principles of logic, crucial thinking and problem solving be deeply ingrained? Absolutely. But programming is just one of many teaching tools available.
If the learning process happen to strike oil with a child's interest and aptitude for programming, then by all means encourage it, but don't force anyone into a nonessential activity they don't enjoy.
It wasn't censored, except by me.
If it's not broken, let's fix it till it is.
Keep dreaming. When automation hits that point, the number of programmers needed will actually be reduced due to advances in technology.
Most people will be out of work at that point.
---- Booth was a patriot ----
That is the math i was speaking of.
---- Booth was a patriot ----
Obligatory XKCD
Yes, absolutely, let's take the "mystique" out of coding.
Right now, I have software (written in Forth - because it's the ultimate language for DSL, I found), deployed for 6.000 patients that we use everyday, to churn out patient's prescriptions. In our public health system, patients get their free medicines for diabetes, hypertension, depression, hypothyroidism, asthma, etc (whatever is the "continuous" medicines the municipality pays for). They have a legal right to get them renovated. Doctors used to go crazy with renovating them by hand. It's no fun when you care for, say, 900 people with hypertension. Of course, this is not the U.S. (it's Brazil).
Why did I write in in Forth? Because it was so fast to write a mini-DSL. I could not even believe it. I got that for *free*, in Forth - I got a free "readline", a free parser, strings whatever size they come (Forth strings are better and safer than C's), a database for free, etc. Concatenative stack-oriented programming is very restrictive. If your stack is wrong, the Forth compilers will bork right back at you. Since you' re doing concatenative programming, it's basically like a functional programming paradigm: you fit Lego blocks of code on other Lego blocks. Since you must do a lot of stack-testing, unit testing is immediate and obligatory, instead of a "practice" or "discipline" that you must incorporate to your workflow. If your stack ain't right, you break things now, so you know pretty soon if your code is ok or not. And keeping track of the stack might become burdensome, so you automatically start refactoring code (everybody's heard of Leo Brodie's refactoring masterpiece Thinking Forth, right?). You keep it simple. Basically, everything I read about how awesome Forth is, is true. As a matter of fact, I first got turned on to Forth when I saw a guy who'd written his very own CAD software (which blew my mind). When I asked him what language he'd written it in, he said: "Forth, because you can go from very low level (in his case - graphic primitives directly on the screen - no OpenGL, etc.) to a very abstract high level (Forth words that concatenate in a DSL)". I understand now that it wasn't so much that he was a genius (although he did have a degree from MIT...), but that he got the tools he needed (after all, you can get projective geometry "recipes" from a book).
Initially, the software was in C (C and Forth can be deployed to any old trashy piece of hardware around, right? - this might actually be relevant, if you're financially constrained - which I don't expect anyone form a rich country to really understand), but then pointer indirection, parsing, data structures, file I/O in C, etc., just bored me out of my mind. Obviously, I understand people feel smart when they can write C-oid code with pointers to pointers but I found that to be stupid. This has to do with the fact that I met better languages (Common Lisp, for instance), before I met C, so I stand largely nonplused whenever I see someone claiming to perform advanced magic in, say, Java. Really? Java is a broken Smalltalk semantics with a C-oid syntax.
Having no strings attached (meaning: no managers breathing down my neck, me being a physician), I decided to scratch the C code and just go all Forth (because I actually think that Forth, Smalltalk, ML(s) and Lisp(s) are the best languages out there). I used win32forth because it's public-domain, but the price for Forth compilers are very cheap (and just go look at the benchmarks...) and I might change to a proprietary Forth (better documentation would be the reason, and support). The code is ANS-Forth, 99% (and the part that isn't is easily changed) - by which I mean "portable".
Although we're already deploying it in Real Life, I keep perfecting it (addicted to Forth). Right now, I',m fiddling with the Forth black magic - turn the compiler on, or off, etc. Stuff you really can't do in C/C++/Java without a huge amount of tools. Only in Lisp. But Forth is kinda of easier than Lisp, actually, I foun
Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
I disagree wholeheartedly that learning to code is too specialized. We're in a transitional period right now where people specializing in computers are the ones writing code, but once society commits to the information economy fully, we'll start to see domain experts writing code for their domain rather than computer experts having to learn the domain (or collaborating with domain experts) to write the code.
It's analogous to basic literacy. There was a time when specialists in various professions would seek out someone literate to do their reading and writing for them. Now, it's an expected skill for everyone to have. We're in that period for computer literacy. Eventually, everyone will be expected to write enough code to solve the problems they specialize in. There will always be computer specialists...the people who build the tools that everyone uses or people who's jobs require a higher standard of code. But we have that exact same situation today...journalists, writers, lawyers and many other professions are expected to have a higher level of proficiency with reading and writing.
It's imperative that people understand this. We're entering a period where more and more people aren't able to offer any greater utility than machines, be they robots or simple software. First it was basic arithmetic where computers exceeded humans. Over time, we've added the bulk of our assembly line work. Even advanced tasks like playing chess are now best performed by computers. Google and others proving that human drivers will eventually be replaced. We'll soon realize that almost every job that doesn't involve some degree of creativity is on that list. Learning to code will be the primary defense against being replaced in your work by a machine.
rather than on the soundness or validity of their arguments.
A presentation in the form of a formal deductive argument would be awful dull, don't you think?
I don't know of any elementary or secondary school that teaches sentential logic anyway. What makes you think a class in basic computer applications is the right place to integrate that subject?
Required reading for internet skeptics
Why is it relevant? You already know the answer.
If it's not broken, let's fix it till it is.
I'd welcome more general instruction in programming, to give a better understanding of _procedure_ and of ordered sets. The idea that complex sets of tasks can be broken down to practical modules, to relatively small sets of less complex decisions, is one that is often lost in modern math and science and even history or language lessons. With that kind of grounding, later lessons in interrupt handling, prioritization, resource management, and error handling all have a foundation that can explain and demystify very complex problems in household planning, economics, and even political debate.
It's very powerful material, and at the core of modern technology. It deserves early attention in education.
You really need to be more specific. There are way too many people that lump basic arithmetic in with advanced calculus.
Our society gets more and more influenced by computing. Many decisions in society and economy require at least a basic understanding of what computers are.
I believe that everybody should have at least a basic understanding of what computers are, and teaching how to program is a great way of doing so.
Obviously you should use sensible languages like old BASIC dialects (with line numbers) or maybe some assembler, maybe also LOGO. More modern languages like C or Java aren't as well suited at teaching computing. Again the point is not to turn them into software developers.
In fact you could even teach programming without a computer. There are "paper computers" out there which are like board games. There are even books like "Computer Science Unplugged" which show educational activities you can do to teach computer science to childrens.
When teaching algebra, include a coding unit that shows the relationship between the two. This should cover the flow controls and functions. Teach first order logic as well. It will make sharpen their analytic skills and make them better citizens.
Who's going to teach it though? Over the years the teaching profession has been eroded to mediocrity, with low entry standards and BS union ideological wars
I bet he doesn't know the answer. Your particular religious convictions on the matter are not well-known.
To the anonymous coward: this is typically a Jewish thing. There's a description here: http://www.jewfaq.org/name.htm. Basically, when you write "God" in some permanent form on something, you aren't supposed to ever let it be defaced or erased, so if you want to write something down that you aren't keeping forever you should use a euphemism like "the lord" or "G-d". Forum posts aren't permanent, but if any slashdot user hits print then it becomes permanent, so they wrote "g*d" to prevent their words from being eventually made permanent and defaced without their knowledge. It's kind of like how some people, particularly older people, in the US want to burn a flag as a sort of ritual purification if it accidentally touches the ground (although the flag thing actually arises from a misunderstanding).
If that's *not* why BrokenSoldier did it, then I'm one more person who didn't "already know the answer".
I cannot for the life of me understand the reason(s) behind the cris de coeur that we should be teaching all school children / all unemployed / as many as possible computer programming. It's as strange as trying to teach everyone differential/integral calculus with the knowledge that it will provide a foundation for many STEM jobs, or demanding that everyone learn Greek and Latin because it will open doors to a classically styled education. Despite the merits of each, each is time-consuming and specialized enough that in most cases, it won't be worth the time. Seriously: knowing the history of mathematics will be far more useful to most people than learning Weierstrass substitution (assuming, falsely, that everyone could learn Weierstrass substitution).
Rather than regurgitate the already well-articulated objections of others (read through 3+ rated comments), I'd like to offer that the only useful way I can imagine computer programming being incorporated into a K-12 curriculum is by showing how it can be used to trivially automate useful work and arrive at results in other domains, but I'd again say that the time needed to do so could be better applied to other things.
Does the industry simply want to drive down wages that badly? There must be some recognition on their part that they'll never turn software creation into a dime-a-dozen job--at least not on the scale they'd like.
Oh, and for the last time: computer programming != computer science, irrespective of what interest groups have told you. I know because I've done (some of) both.
Absolutely Not.
If you cannot read and comprehend and unable to do mathematics. Then you will not be coding. These two subjects alone are the basis for learning all the rest of the knowledge that us humans have acquired.
If you are required to learn coding, then you should also learn to Sew and Cook as well, or some other useful skill. These skills are more important than learning to code, in order to survive in this world.
Regards
Slashdotgirl
The more I know, the less I know
Computers are everywhere. Being able to effectively talk to them is important, and powerful.
This goes back to that oft reproduced cartoon, of an office cube with a sign on it "Go away, or I will replace you with a small shell script." Particularly as robotics takes off, basic programming skills become more and more powerful.
Should I learn ballet? And gravely insult many cultured souls and minds? I rest my case.
I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
You must be fun at parties.
CLI paste? paste.pr0.tips!
Teach the little tikes how to learn, how to communicate and how to build good relationships with others.
Go well
With computing being more and more ubiquitious, coding would be a good complement/replacement for will-never-be used higher-level calculus.
I too get annoyed at virtuosos trying to play the violin without the proper Fortran running through their head.
I think you underestimate just how much I just dont care.
Brainy is the new sexy.
No, we need to go back to separating out the dumbest kids and putting them in rooms with other kids who learn at the same pace.
No sig today...
Also learn how to fix cars, how to cook, how to run a big company, how to extract plutonium, how to design buildings, how to fly a 747..
What nonsense is this, oh wait, it's being promoted by someone who has a background in coding and got filthy rich with doing it..
let's get back to the real basics, they already need to learn too much junk in schools even though most of it they would learn already in real life outside school..
I think you missed my point. I'm not against them learning to use Powerpoint. I'm saying, they're being taught to use Powerpoint, but up through their senior year, I've seen *no* grading done on the quality of their presentation's logic. In any paper or presentation whatsoever.
I don't think everyone should learn to code.
For one thing, it would probably lead to an increase in the number of grossly incompetent coders out there.
For another, its debatable whether or not its even a relevant skill for the majority of people.
I would assume that that's because it's not an important part of the assessment. You should be able to ask any of your kid's teachers for the rubric. You may find it both surprising and helpful.
Required reading for internet skeptics
"At last I went to the artisans, for I was conscious that I knew nothing at all, as I may say, and I was sure that they knew many fine things; and in this I was not mistaken, for they did know many things of which I was ignorant, and in this they certainly were wiser than I was. But I observed that even the good artisans fell into the same error as the poets; because they were good workmen they thought that they also knew all sorts of high matters, and this defect in them overshadowed their wisdom..."
I would count that under "Home economics" - how to do a budget, how to save, how to manage money, how to do your taxes (even if you still can't do them, at least you'll have the tools and know what to expect and need).
Just like I would count "basic mathematics" as a skill that is reinforced through Home Ec. as well. If there's anything people need to do more of is to realize when things are a deal, how to adjust recipes and all that, which can be done using just basic arithmetic. With emphasis on how to do rough estimates on taxes and such mentally so you're not constantly reaching for the calculator.
The ACM said "ensure that every K-12 student in the US has the opportunity to study computer science". That isn't the same thing as "everybody learn to code" as the headline says; it's making sure that schools offer classes in computing so students can take them if they wish.
But I would take it further and say that everybody, or at least most people, should learn the basics of coding. Writing computer programs teaches important lessons about logical thought: the importance of including all the necessary steps and including them in the correct order, and of not including steps that don't belong. Students used to learn that kind of thinking from proof geometry, but coding is a better tool because the computer itself provides fast and non-judgmental feedback, and because the actual skill of coding is more likely to be useful to the student.
I think that there is little value in teaching students to code as opposed to learning math, or logic, or a foreign language, all of which have been mistakenly substituted for by coding or programming classes at various levels. When I was in College 45 years ago I got away with not have to learn another modern spoken language because I was taking programming courses, learning FORTRAN. Now, that did get me some useful skill, I made a living for a time off that.
Looking back on it, I regret not having to learn some French or German, for example, but I regard High School Geometry, learning Euclid, and a later course on Symbolic Math and Logic to be far more valuable. I am not arguing that some exposure be given to a programming language but as an extra, and I would advocate teaching python as opposed to java. Stay away from strongly typed declarative languages for this.
A course in Critical Thinking and rhetoric or general semantics would be for more valuable. But I am sure that marketers and politicians would oppose that. It is possible that people whose first exposure to programming language was BASIC or Java could transfer those to other languages, but think of the number of people turned off by that.
I'm no huge fan of powerpoint presentations, but clearly aesthetics are more important in learning how to use a tool to present your message in a visual manner than the logic or rationality of the message. It's almost as silly as teaching algebra in art class, just because ratios, perspectives and pleasing geometries have a mathematical basis.
Now, why debating, logic, critical thinking, and the scientific method aren't taught to at least a basic level is a good question. It just has nothing to do with powerpoint, or marketing in general. Which is a pity.
Sure I'm paranoid, but am I paranoid enough?
Because the presentation is likely to contain as much useful information as your post?
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
No. Learning to code is necessary for only a small part of the population, although I bet most on Slashdot have tried a bit of coding.
I don't think there is any subject important enough that I would recommend everyone learn it. Although on the other hand, it is easy to come up with arguments why this subject and that subject is useful.
Unfortunately, the education system is not designed to be ideal environment for learning, far from it. http://www.johntaylorgatto.com...
The key problem is teaching subjects kids are not interested in at the time it is taught. Very few kids have the option of learning things in school in the order they want. Gobs of time is wasted trying to shove down information kids are not motivated to learn.
Object Oriented Programming was meant to provide recipes. Some factory turned out the code to do that task. The problen is that you sill have to learn where the method fits in your universe. It is like asking where to recipes come from in the first place? So we are past the urge to start from scratch every time we solve a problem and now get to use templates or other abstractions to help us, but we still have to understand them and that can be as hard as gong back and using the language primatives.
I say that you still have to know where recipes come from from and to extend the analogy with cooking you have to know what the ingredients are and what they do and if methods are like ingredients, that can be almost as hard as starting fresh. First because OOP often fails on poor documentation and if your only fix from that is to read the source, the logic for you is turned entirely on its head. You see the objects first and the bewildering set of methods the dev has chosen to define, which are often not complete or orthogonal, so practically it can be next to impossible to use a package effectively. Real life is not as simple as you suggest because people are lazy and stupid, the Universal Human Condition, by "stupid" I mean unaware, so some very intelligent people can be stupid, in fact very intelligent people are often more stupid than people of average intelligence. That shows up when you look at their code and it doen't really help that they have used OOP unless they have mastered orthagonally, which many have not. I know that code patterns are supposed to address this lack, but there is no way to enforce it except by proving programs have symmetry.
They should teach all kids some nasty language x86-assembly. 99% of them will have forgotten all of it by the time they become adults, but they will never forget how frustrating it is to perform simple operations on a machine. As a result, far less people will complain about computers and coders, especially that annoying boss of yours who constantly repeats "just get it done".
Learning to cook would be a much more valuable life-skill.
YES. Some simple language like HTML will do,
Casteism
When you go to the car mechanic to get your car fixed, you've got some idea of what it will cost. It may bot be a good one, but its an estimate that you've got in your head. Maybe a $300 part and two hours labor at $100/hour or whatever insane rate they charge, so $400 to $600.
Today's world is becoming more and more with someone working with a programmer.
It may be as programmer themselves (and anyone who been on the searching for a good applicant side of an interview knows its hard to find good programmers) - we need more programmers more than we need another person working at Mc Donald's. Certainly, not everyone can be a professional programmer, but I'm sure there's a lot falling through the cracks of society never realizing that they want to be a professional programmer (or for that matter, can).
It may also be someone hiring someone to do a job. A small business person hiring someone to write a front end to a database for a CRM, or website, or whatever. Look on eLance some time and glance at the estimates that people have - "I want a Facebook clone in 2 weeks for $500." Try not to laugh too hard. They are out there asking for such absurdities. Thats almost like going to the mechanic and expecting that part to cost $0.50 and the person to work at $5/h... um, no.
By having an idea of what can be done, and an inkling of an idea we get clients and managers that aren't going to want *everything* done today. Well, they will still want it, but when you tell them the actual price and timeline, they'll maybe not think that we're trying to rip them off (while we sit back and click on webcomics and write our own Facebook clone all day... or at least thats what they think we do).
There's also the aspect of people becoming a bit more literate in computing itself. They'll hopefully have an idea of what a computer can and can't do. No, cookies aren't stealing your information - the key logger that you installed with that game you downloaded is. The cloud is not affected by the weather. So on and so forth...
Looking at the number of people who have interactions with computers today compared to 20 years ago, I suspect that more people work with computers in one way shape or form than their own oven... unless its a microwave oven, with an embedded... oh yea. Computer literacy and basic ability to write a program is almost as important as regular literacy and being able to write an essay. It doesn't mean everyone will do it every day, but its becoming basic life skills in today's world.
No, everybody should not learn to code. Instead, all coders should learn to dance. That will be more productive. Also, it will teach the coders to STFU about everybody else learning to code.
Production coding is something that is not practical to half do, otherwise you'll create more problems than you solve. Amateur coders often write difficult-to-maintain code, creating longer-term headaches. If it's a small personal project, that's fine. But if it grows into a production-dependent application, then it's best to make sure it's engineered with maintenance in mind. Otherwise, staff will be married to a big tangled ball of twine.
Table-ized A.I.
We've been in the automobile age for over half a century, and how many people can do basic maintenance and simple repairs on their cars, let alone make one?
Before that hardly anyone made their own horseshoes.
Computer literacy doesn't involve programming any more than normal literacy involves knowing how to make paper and ink.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."