How Silicon Valley Pushed Coding Into American Classrooms
theodp writes: Noting that Apple CEO Tim Cook's advice for President Trump at last week's White House gathering of the Tech Titans was that "coding should be a requirement in every public school," the New York Times examines How Silicon Valley Pushed Coding Into American Classrooms (Warning: source may be paywalled). "The Apple chief's education mandate was just the latest tech company push for coding courses in schools," writes Natasha Singer. "But even without Mr. Trump's support, Silicon Valley is already advancing that agenda -- thanks largely to the marketing prowess of Code.org, an industry-backed nonprofit group." Singer continues: "In a few short years, Code.org has raised more than $60 million from Microsoft, Facebook, Google and Salesforce, along with individual tech executives and foundations. It has helped to persuade two dozen states to change their education policies and laws, Mr. Hadi Partovi, co-founder of Code.org, said, while creating free introductory coding lessons, called Hour of Code, which more than 100 million students worldwide have tried. Along the way, Code.org has emerged as a new prototype for Silicon Valley education reform: a social-media-savvy entity that pushes for education policy changes, develops curriculums, offers online coding lessons and trains teachers -- touching nearly every facet of the education supply chain. The rise of Code.org coincides with a larger tech-industry push to remake American primary and secondary schools with computers and learning apps, a market estimated to reach $21 billion by 2020." Singer also mentions Apple's work to spread computer science in schools. The company launched a free app last year called Swift Playgrounds to teach basic coding in Swift, as well as a yearlong curriculum for high schools and community colleges to teach app design in Swift.
I feel the same way, but about physically dangerous and boring jobs! Bring equality into truck driving, coal mining, oil rig working, merchant marine, stevedores, etc...
I teach IT/Computing to 4-11-year-olds and code.org is a fantastic, free and invaluable resource. The activities I use (Course 1-3) build up familiarity with block-based coding, which can lead into Scratch for the old children and into secondary/high school. The kids really enjoy the activities and the activities have a nice steady learning curve so 90% of the time they can get on without me having to stop the whole class to explain something. So everyone learns at their own pace and the brighter ones can get further in and really be challenged without having to be held up to wait for others to catch up. Since it is so visual, it even caters to the poor readers and poor English language skills and gives them a rare lesson where they're on a par with the others.
Everything I've used so far has been free which is also a boon when my IT budget is basically zero thanks to cuts in school budget. Any time you see 'education' attached to software you usually have to pay through the nose for something that is buggy, teaching outdated skills or technology, and that invariably runs only on XP and has a critical install disc that someone has lost.
For the age range I'm looking at, it's teaching the right kind of problem solving skills that can be picked up when they move onto Python or whatever textual language their secondary school decides to use.
So despite whatever misgivings you have about the motives of Silicon Valley in providing this resource, it's hard to argue that as an educational resource it is anything less than excellent.
How about changing the ridiculous calculus notations and standardizing on ANY of the existing languages of computation. Even a short BASIC program is better than the 100 different notations a mathematician might use, because programming languages remove ambiguity. "This for sure computes it."
I had a laugh awhile back watching a mathematician on youtube... "..we are running out of letters... lets see.... ok lets use zeta.. oh, wait... already using that one"
"His name was James Damore."
There doesn't need to be a huge amount of time spent on this. not everyone needs to become a programmer.
But there needs to be enough exposure to demystify the field. Students should come out of school with a basic understanding of the different fields available.
at this point the number of people who are never going to do any trivial programming (spreadsheet formulas and setting things to happen in sequence count) is getting smaller and smaller, so expose everyone to the ideas early. Then let them figure what they want to do from there. Don't force them to keep studying it once they have the basic idea of what can be done and that computers are not magic.
David Lang
Wondering if the site was built by people learning in the project classes. It ask me my language every new page load, the previously chosen language is not selected, and sometimes, after select the language, it redirects to a 404 page.
I remember in middle school Spanish was a requirement to graduate and go to high school. Yet most people that took that class left without knowing anything they didn't already know. And also most of the Latin American kids failed the class. Even when they could have full conversations in Spanish or a dialect of. But us fair skinned people could barely say "hi my name is Apple"
Cobal was written to use english grammer and math forumlas, it's horrible to program in
I wish there were more intelligent, capable women interested in tech-sector careers, programmers or otherwise. In my experience (18 years now) I've encountered maybe 3-4 women that considered their job in tech to be a career. The rest? Just a job to pay the bills.
Do not fear.
Programming is still a skill set that requires the fitting mindset. You have to want to program to do it right. And nobody has any use for people doing it wrong. Not today, and even less so in the future when "it compiles, ship is" is no longer going to cut it due to competition.
How many people learn stuff today in school that they will never ever use again? I, for example, had to learn French and business administration. Never used either in a professional setting because neither is anything that interests me. I had to learn it because it was part of the curriculum and all it really did for me was to take away valuable time I could have used to learn something I actually need.
What will forcing pupils to learn "coding" really mean to the professional programming world? Nothing. Nothing at all. Those that are interested in it will learn it. They would have learned it anyway. Those that are not will not. They will somehow squeeze by, just like i did in French and BA, with rote learning, memorizing patterns, learning to the test, cribbing from those that do understand that shit and if everything fails cheating. They will eventually get a "passing" grade and immediately forget everything they learned about it, and with a hint of (bad) luck loathe it enough that you couldn't pay them to ever touch anything resembling coding again.
Why does everyone think that forcing kids to learn something means anything? Think back to your school days. There certainly were some subjects you had exactly zero interest in. Well? What did forcing you to learn that shit accomplish? Do you remember anything, and if, enough to actually go into a profession that requires you to know anything about it?
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
Equality != equal numbers.
I am absolutely with you if you want to give everyone, independent of their race, gender, upbringing, social situation, financial situation or any other inequality you could find, literally EVERYONE the same chance to learn a subject. I want everyone to have absolute equal chance to learn, to study, to master a field and to apply for a job. And I want to see people who reject students or applicants based on race, gender... ANY kind of reason. EXCEPT professional qualification.
But, and this is the caveat here, at the same time I do now want to see anyone being accepted based on race, gender... or any kind of reason EXCEPT professional qualification! I want a person that wishes to work with or for me to be the best person for this job. As far as I am concerned this can be a green-yellow fifth-gender (turned eigth-gender) polka dotted alien from planet Zrbit. I care for the qualification of an applicant. Not his/her/their/insertpronounhere race, gender, upbringing, selfidentification or whatever else is a way to pigeon-hole people today.
TL;DR variant: Equal opportunity for everyone - yes. Quotas - no.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
And I want to see people punished who reject students or applicants based on race, gender... ANY kind of reason. EXCEPT professional qualification.
Sorry. It's time for a coffee break, it seems.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
Seriously, as someone who's been doing the IT thing for 20 years and actually likes teaching new people the ins and outs of the job -- where else are you going to get your newbies from? I've seen so many people say teaching development and IT is a waste of time because all the work is going offshore, and it crowds out existing workers, and the kids won't learn anything anyway. I remember and use a tiny fraction of what I was taught in school; not everything has to have an immediate ROI and it helps to have at least a small amount of knowledge about a broad range of topics. If nothing else, you're not helpless when it comes to what's actually going on inside the magic box. There's so much abstraction already, both in software and IT -- it's hard to differentiate "coding" from snapping pre-built libraries and frameworks together. Why not spend a little time in the classroom, show simple examples that illustrate how to make a computer do what you want, and maybe a few students will be interested in it?
Saying we shouldn't teach coding in school is like saying we shouldn't teach at least a basic course of biology or chemistry because no one who isn't a biologist or chemist will ever use it. I already have enough problems with software developers and "architects" who have absolutely no idea how their software runs, or can't get their head around capacity issues that would be easily understood if they just understood first principles.
Try visiting Romania, Israel, or South Korea and you'll see something very different. Then go home and wonder what your country is doing to put talented women off pursuing a career in technology.
I am TheRaven on Soylent News
And that's what you don't get.
Knave thinks how he is, and he thinks that things are everywhere the way they are with him. BA is something you can cram. You can rote learn BA (and law) without really missing much or not "getting" it. It would actually make much more sense to force people to do this. But who's stupid enough to devalue their own degree, right?
Business administration is something you can do by the book and get by on it. Programming is unfortunately something you have to understand to do it right.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
Yeah, yer right, learning in school is just for getting precisely the right things you'll need for your eventual job. How closed minded can you possibly be? First, you won't just have one job, you'll have several...if you are lucky. Being so single dimensional mean that when your chosen career path finds it way into the sewer, you'll be following it there.
I started out wanting to an electrical engineer because it sounded good. That lasted a year and a half and found myself in business because it seemed like I could not fail at that. I then found computer science, graduated, and went to work at a controls company in the machine tool industry doing flying cutoffs, feed-to-stops, even did a toilet paper winder, that was weird. Machine controls are mostly engineering, very little computer science in there, and I loved it...until I got bored and went back to school for an MS in CS. Got that but then saw they had these PhDs, so I decided I wanted that. In the meantime, I parlayed by engineering and CS into being self-employed which was convenient because then my CS dept. couldn't threaten me with loss of financial aid. Eventually, I found my way to a philosophy dept. and became a logician with a strong math background. Now I use logic, math, CS, and engineering for research in high assurance FPGAs.
The funny part is, I never felt like I chose anything. Every move was because I was thrown into the deep end and had to learn in order to kick the can down the road. And I could do it because I had a solid educational foundation that taught me how to think for myself in a new area. You, on the other hand, will fall flat on your face with your attitude.
"If you don't specialize, you're finished."
Respectfully disagree -- I'm of the opinion that IT and software generalists are going to be the only people companies will actually keep on full-time once the latest wave plays out:
- The cloud, SDN and SDStorage are forcing a lot of the infrastructure specialist jobs up a few levels. For companies that actually do have hardware on site, it's going to be increasingly software-defined and virtual, so there will be less specialization needed. All the CCNPs and EMC storage gods who've built a career around knowing absolutely everything about a hardware ecosystem are in for a big change.
- Frameworks and other "coding crutches" including SaaS and PaaS cloud services are making it much easier for low-skilled developers to cobble together something that works. Couple that with the "planet scale" of the cloud (uh huh, sure...) and code that just works is going to be preferable to code that's super-efficient. (Embedded/IoT stuff is the exception here.)
- If you do specialize, expect to live a nomadic lifestyle, moving from contract to contract every 3-6 months. I can't tell you how many emails I get from recruiters desperately trying to find a contractor with an exotic skill set to work all over the country. This is fine as long as you're single and can live out of a suitcase for years on end - I know tons of nomad consultants who make multiples of what I make in this lifestyle.
If you want to remain an on-shore FTE for a company, you're going to need to know a little about everything, constantly learn new stuff that's a rehash of old stuff, and be flexible. I have a feeling the days of a single-product specialist in IT are coming to a close. I understand that large companies pigeon-hole IT positions, but you want to avoid that as much as possible. Look at how many Exchange gurus have been replace by Office 365. Or how many data center positions have been reduced by companies moving to IaaS solutions. Just the other day, I talked to an old colleague who knows so much about System Center Config Manager that he might have written parts of it. He's one of the nomads I'm talking about, making good money, but even he's saying how companies aren't willing to hire people for more than a few months now even if they're geniuses.
Ok. Different angle. Think of a subject at school that you had no interest in. Now imagine you could only land a job where this subject exactly is what you need. Do you think you could pull it off with what you "learned" at school? Or didn't you really learn anything at all about it and just did what you had to do to get a passing grade and forget everything about it as fast as you possibly can?
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
All the 'general' things you listed don't sound like something that a company would pay top dollar for, though. In fact they sound like things specifically targeted at 'cheaper' workers. So maybe you can pass as a generalist, but you won't be making an awesome living off of it.
Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
Think back to your school days. There certainly were some subjects you had exactly zero interest in. Well? What did forcing you to learn that shit accomplish?
In fact, there are many many things in school that kids don't want to learn but are nevertheless valuable for them to have learned.
Do you remember anything, and if, enough to actually go into a profession that requires you to know anything about it?
That's your flaw right there. Coding is a knowledge set that has some value to know even if you don't go into a profession that requires coding. It teaches a way of logically understanding how a problem is broken down into a process, and how processes run. (And it also gives students some familiarity with what's inside the stuff that they will interact with every day of their lives, so that they understand it's code, it's not some sort of magic.)
Education is not simply job training.
http://www.geoffreylandis.com
Teaching code to kids makes as much sense as teaching them law. Good coding requires a comprehension of several fundamentals. You can't jump over these basics. What you first need to develop in kids is critical thinking and problem solving skills. Marry that with an understanding of logic and basic concepts like variables, arrays and loops, and maybe by the time kids get to high school they have the fundamentals to write functional software. Sure, if a kid wants to jump in on this earlier, super, but thinking coding is an elementary (not an advanced) skill is the mistake here.
Ok. Different angle. Think of a subject at school that you had no interest in. Now imagine you could only land a job where this subject exactly is what you need. Do you think you could pull it off with what you "learned" at school?
Well every one likes to tell me how math is absolutely critical to being a programmer and you can't survive in the field without it. Yet I dropped out of high school primarily because I suck at math and I've now been a programmer for 20 years. I'm a programmer that can choose my jobs too.
Hell, I even spent 5 years building a metrics system that ended up being the catalyst for turning that company around (they accepted all the absurd excuses from the developers/admins until we were able to present them with actual facts that showed the product was a POS).
The key isn't to know it all (which is what I hated about school as it was all memory based), it's to know where to find what you need when you need it.
In 20 years I've barely needed to know more than basic math and in the rare cases that I did, the equations were given as part of the requirements. I'll never create the next great algorithm, but so what? I couldn't care less about big O and the like as it is irrelevant to the type of work that I do and the work I do is what I enjoy and make a damn good living doing.
Then go home and wonder what your country is doing to put talented women off pursuing a career in technology.
Giving them opportunities in other areas that decrease the pool of applicants the few specific segments that women thrive in if other avenues are closed to them? That's how it has mostly worked historically practically everywhere.
Ezekiel 23:20
Isn't it near Intely?
Ezekiel 23:20
Do not fear.
Programming is still a skill set that requires the fitting mindset. You have to want to program to do it right. And nobody has any use for people doing it wrong. Not today, and even less so in the future when "it compiles, ship is" is no longer going to cut it due to competition.
Umm... Have you seen the world we work in today?
There was a time decades ago where quality actually meant something time be damned. Now it's not what you produce, but how fast you do it. "You can fix it in the next rev" is the mantra of management these days (of course new stuff always takes precedence over the backlog...).
The programming field has also long been full of developers that don't have the "fitting mindset". That happened in the boom leading up to the turn of the century. Everyone saw "easy" money and jumped into it even though they have no passion for it. These are the "everyday" programmers that can turn detailed requirements into code, but they can't go off script at all or recognize when there is a problem with the requirements. They are the ones that just code the answer to the problem with no interest in if the question is correct or how it will change over time. They are the reasons the good programmers have mountains of unmaintainable code that we have to figure out how to maintain.
If you've had a successful career in CS, then chances are you're probably decent at math and it's possible you just had bad teachers. But if you pay attention to what you do and how much of it is manipulating numbers, and realize that math is the study of manipulating numbers, then you start to realize how important math is to your every day life.
Yes, it's true that very rarely do I ever have to pull out calc (it does happen, but not frequently) to do my job, but algebra is used daily and trig comes up probably monthly. And you may not think "x/2 = 5, solve for x" doesn't really count as math, but I've tutored introduction to algebra to people in their 20s and 30s, and for the life of them, they couldn't understand it.
Many areas of CS require very little math. You need math for 3D graphics, and physical process simulation, but
many, many people work in business process programming, embedded device programming, etc. that require very little.
Many programmers spend their entire career without using calculus, trig, or linear algebra even a single time.
I have heard that "you need advanced math to understand big-O", but that is nonsense. Big-O requires addition, multiplication, exponentiation, and logarithms. Kids learn all of those by 5th grade.
There was a time decades ago where quality actually meant something time be damned.
No there wasn't. There is zero evidence that code quality was better decades ago. In many ways it was worse, because of crappy or nonexistent libraries, a lack of memory protection, and poor static and dynamic analysis tools.
Anyone who had to work with Fortran spaghetti code from the 1980s would laugh at the notion that code quality is worse today.
I disagree to an extent.
Better tech education employees will create a more versatile office work force. I agree with your conclusion that actual programming jobs won't be stolen by grade school educated coders, however; there are plenty of tasks that can be streamlined through the use of programming in the office. Traditionally these have been too small and low priority to dedicate a coder to it, but when more people have access to entry level skills in this area? It will have an impact.
Of course, amateur-level coders using MS-access equivalent tools is a terrifying concept BUT as ugly as it may be it will still represent an increase in efficiency.
Mod me down with all of your hatred and your journey towards the dark side will be complete!
You needn't care about big O. Unless you deal with large databases. Everything else you can simply throw more CPU power at.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
In fact, there are many many things in school that kids don't want to learn but are nevertheless valuable for them to have learned.
What? How to bullshit the teacher into letting you off the hook even though you're lazy? You can learn that in the military too.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
The problem with code is that you can only fake it so far. In the end, you'll at the very least have to know how to connect the things you copy/pasted from the net in a way that does what it should.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
And it will mean total job security for the foreseeable future!
--your IT security department
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
I think it's more that there was way less code quantity decades ago. It's one thing to debug some poorly written thing that's a few thousand lines in a single threaded console app, when it's a hundred thousand lines in a multi-threaded GUI or client-server app, that's when life gets difficult.
As our problems gets harder, the need for code quality goes up. You can write the crappiest thing in your "classic" environment and still debug it, but when you're looking at that same thing with all kinds of multi-thread, multi-server things going on it becomes a flipping nightmare.
--Your local liquor store.
I've supported employee developed "solutions".
Mod me down with all of your hatred and your journey towards the dark side will be complete!
No there wasn't. There is zero evidence that code quality was better decades ago. In many ways it was worse, because of crappy or nonexistent libraries, a lack of memory protection, and poor static and dynamic analysis tools.
Anyone who had to work with Fortran spaghetti code from the 1980s would laugh at the notion that code quality is worse today.
As someone who has worked with COBOL code from the 80s, I agree. And COBOL was supposed to be readable.
Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
I agree with you. I took a completely stupid number of math courses for my degree and I've used almost none of that as a developer. It's a way of "weeding out" people who can't do logic, but it's not a very useful way because you can still be logical and bad at ##$% calculus proofs (derivatives and integration). I powered through it but there has been no point in my professional life where that had any application whatsoever.
I will say math classes like Probability and Graph theory totally have a point for engineers, but advanced Calculus? Not so much.
If you've had a successful career in CS, then chances are you're probably decent at math and it's possible you just had bad teachers.
You got me. You know more about what I do on a daily basis than I do...
but I've tutored introduction to algebra to people in their 20s and 30s, and for the life of them, they couldn't understand it.
And I am one of those people. Can't do it. Just doesn't make any sense. Even basic math that requires more than fingers and toes requires effort for me.
I'm glad math is so easy for you, but it's not for me. Yet I still excel at my job just fine.
Most of them soluble in alcohol?
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
there are other ways to teach logical thinking (Math anyone? Or just a good 'ole logic course).
But this was never about learning to think. It's always been about dropping wages. Me? I don't let my kid anywhere near code. She's in medicine and doesn't need or want it. Why medicine? It's the only middle class career path left. My bro's in a dead end job working shit hours. He's got a guy in his 20s with a CS degree there because he can't find a job. You want my kid to write code? Bring back the jobs and stop giving them to H1-Bs. Bring the Jobs and us parents will bring the kids. Until then shove off. We ain't buying any.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
There was a time decades ago where quality actually meant something time be damned.
No there wasn't. There is zero evidence that code quality was better decades ago.
My reference to quality was about the overall product, not the code building it. And yes my "time be damned" was a bit hyperbolic, but it was much more true than it is now.
I've watched it change through my 20 years. Used to plans and release cycles were long enough that if a major architecture change was needed, you could work it into the schedule. It also gave time to put actual thought and planning into how the new features would interact together. It certainly wasn't a a nirvana of perfect code or products, but it had some significant advantages over what we have today.
Now we push this asinine "Agile" idea where we should release changes on a near constant basis (or at least that's what management believes it is about). The promise is that we can quickly change directions or even throw it all away and start over. The reality, however, is that poorly thought out (due to being in a rush to "market") architectural decisions made in the beginning to support the original idea turn into a nightmare a year down the road when you are continuing to tack on the new ideas that were never considered. Not to mention that all along to that point the "we really need to fix/change this" stuff that makes up Tech Debt gets ignored and left out. Finally somewhere between 1 and 2 years you get to the point where every new feature just becomes a hack and the whole system needs to be scrapped and rewritten, but as that can't be done in a couple of sprints it just keeps getting kicked down the road.
I'm sure there are the exceptions out there that don't work that way, but that's the reality for the vast majority of companies that have made it passed the startup phase of life.
It used to be that code could be written and then you'd get a call 5-10 years later and your response is "holy shit! That process is still running??" because it just did it's job quietly and accurately. I think my personal record was 11 years for some PL/1 code on Stratus.
Today that doesn't happen very often. It's true that part of that comes down to complexity and dependencies, but the key part is the lack of foresight in designs and requirements these days. I often get chided by my managers about over engineering, but when it gets to Prod my stuff just works with minimal support. They like that part.
How Silicon Valley Pushed Coding Into American Classrooms
Brilliant title. Silicon Valley which is located in the state of California in the United States of America manages to get coding into American Classrooms. Mind blown.
We'll make great pets
You have to want to program to do it right.
WRONG. You have to be committed to making the software be able to do what you need it to do. That's the problem with young programmers these days. You think with the appropriate set of tools and academic reading you should be able to build the best tree house in the universe even when you've never built one before. Yeah...
We'll make great pets
I've been saying this for years: make Computer Science (theoretical math, logic, basic linguistics) a mandatory subject in K12 education alongside (applied) math, science, etc. Also, yank pre-calculus and calculus (save it for physics majors in college, offer it as a math elective in high school) and offer statistics for students advanced enough to get that far. Statistical illiteracy is one of the main drivers behind our fake news problem.
Brian Krebs agrees with me, citing this as Why So Many Top Hackers Hail from Russia:
Use my userscript to add story images to Slashdot. There's no going back.
"How Silicon Valley Pushed Coding Into American Classrooms"
Does it have anything to do with the 'news stories' they paid the editors to run in publications like this?
You don't to need take advanced math courses to understand ordering and pigeonholing, nor were those things taught in any math class that I took.
Instead, math classes focus on teaching things like how to integrate the cosecant of the reciprocal of X cubed. Probability that will be useful in your professional life as a coder: 0%.
Back in the 1980s and 1990s it was more or less normal to have programming lesions in school. It was only in the 1990s when companies shipped computers without BASIC Interpreters, and marketing claimed that you could productively use computers without being able to program. Learning how to use Office 95 was enough.
Now they complain about the lost generation of people having been trained only to be dumb consumers.
Push all the coding you want. Won't magically make more American students capable of becoming good coders...Can't teach smart.
And how many really smart kids don't get in to coding because they've never been exposed to it and therefore don't realize it's something they would enjoy / be good at?
IMHO one of the things elementary and secondary education should seek to do is give students a broad exposure to many different subjects so that they can find where their skills and interests lie.
I wish I were as sure of anything as some people are of everything
Cheaters will cheat. Doesn't mean that teaching is worthless because cheaters exist. Some folks taught themselves but most of us learned to read, write and compute in a classroom. Those of us who liked it, got good at it and those initial lessons were invaluable.
For me, taking a Fortran class way back when introduced me to syllogisms. Even though Fortran was an incredibly stilted language, it did teach the basics of logical thinking - a key skill that applies way beyond computers.
Few people know how to think coherently on their own. You may have just 'picked it up' but a lot of us benefited from being taught how to think logically.
The best programmers have a basic skillset that is not present in the vast majority of elementary school children. It is learned through other coursework that sets a solid foundation. What they will create through these programs is a vast army of people with a knowledge of being able to program, that can't program to the level needed for quality robust applications.
Far better would be to teach the basics needed to become a good programmer. Logic, breaking large problems into smaller tractable problems, taking generic problem statements and being able to execute them as specific to an environment. The ability to take a set of steps to accomplish a task that doesn't work and identify the problem. All of these can be taught in a more appropriate way based on the frame of reference that young children have. They can be complex later, but start smaller, like given a step stool, a ladder, a dad and a ball that is on top of a roof, tell dad exactly how to retrieve the ball. Then ask what assumptions they made while creating their instructions. It's an identifiable problem and has a realizable solution. Also, teach them the skills of recognizing incomplete or contradictory instructions and to ask questions to resolve absent information or resolve contradictory information. And teach an alternate human language (like Spanish, German, Russian,French, Chinese, Japanese, etc.) to get that embedded ability to think with a different vocabulary.
After they have the base skills then introduce some formal logic (these objects bounce, a ball is one of these objects, do all balls bounce?), and then introduce them to programming. You can't force people to become good programmers, and I still say anyone can program, do you want millions of bad programmers? It is contrary to the goal of having good programs. And I haven't even touched on the marginal quality code is often riddled with security issues. In this day and age you need to teach good versus bad programming techniques early in any curriculum. Teach logic and problem solving, and problem specifying, teach how to recognize defective requirements, teach a second or third human language, then think about teaching programming. Programmers versus coders.
- Tjp
I am in wallow with my inner money grubbing capitalistic pig. ... Oink!
I'm a software engineer with a MS in CompSci. I don't think programming should be required in K12 programs. I'd be happy with schools having survey of computation type class which imparts a high level understanding of how networking, computers, handheld devices, gaming systems, web technology, etc work. Include a small unit with basic programming in it, sure. One should not be clueless about how technology works in our world, but most people don't and won't ever write code. Of course, programming should be around as an elective for anyone so inclined.
IMO, the push behind this effort by the big tech companies is because of the difficulty hiring good programmers/software engineers and because they can't hire enough women or minorities because few women and minorities enter this field. The thought behind this first is that not enough people go into computer science programs in college (or STEM more broadly) because they weren't exposed enough to it. "If we could only get more kids to think programming is fun, then more of them would pursue it as a career and we'd have a bigger/better talent pool to recruit from" is the corporate thought. Same thing with diversity: "If only more girls or more people of minority group X studied CS/STEM, we'd be able to have our company's diversity match the diversity of the general population." This though then leads to "lets make kids take programming classes in school so they will be exposed to programming.
I'm all for giving people opportunity and there is much room for improvement in that area. But I think we do a disservice to individual people when we push someone to do or not do something because a group is over or under represented somewhere (saying to a girl, go into field X because the population is 51% women therefore the population of graduates in field X should be 51% women). Give people opportunity and then let them make their own choices.
The hard sciences, math, writing and music classes did more for me.
I'm thinking the same. It seems the best computer people have excellent reading/writing/math/organizing/managing/whatever skills. In fact the best of these start companies or create new things rest of the masses follow. It bugs me to read all these Silicon Valley types push coding as if it is the most important where these same people became successful because they had the "hard stuff" skills. And I suspect many started coding when they were working on on their startups.
mfwright@batnet.com
Which ever way it happens, fine. Change english, change maths formulas, create a uniform base coding language, even change the alphabet to Q W E R T Y but do real stuff don't waffle bullshit to fill corporate coffers. Create a working body involving government and universities, with limited input from corporate players (they will lie, cheat and steal for advantage so inherently will be obstructive rather than constructive) and have at it. The current bullshit is just crap, each lying corporate player trying to force their coding language into schools and force out competitors, it is just psychopathically sick and socially destructive.
Chaos - everything, everywhere, everywhen
Yes, those that want to learn will benefit from those classes. But they are also the ones that would eventually end up in this venue anyway. We're no longer talking about an esoteric skill set that you will only be exposed to if you happen to have some sort of extraordinary access to it, as it was back when I was young and where you needed to have some adult in your life that considered computers important enough to expose you to them at an early age. Computers are everywhere, every kid has one (in one form or another) and it's far from something that might be part of a job today, pretty much any job you could imagine deals with computers in one way or another.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
And isn't this what made America great? The duds slave away in corporate mills, the best and brightest turn to a self employed business harvesting those duds.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
If you don't want to build a tree house, you will not even be able to do that. You'll deliver something that will kill your child because you deem it "good enough" if it stays up in the tree by itself if you don't give a shit about it.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
If you don't want to build a tree house, you will not even be able to do that. You'll deliver something that will kill your child because you deem it "good enough" if it stays up in the tree by itself if you don't give a shit about it.
Nice, but not very constructive. In my experience those who are aware of what I said test each piece of the treehouse as they go along to validate their assumptions. Whether it be software or building something in the physical world, I have always been able to create something that is structurally sound. Assuming that you can do this without any sort of verification or experience is asking for what you described.
We'll make great pets