Drag-and-Drop "CS" Tutorials: the Emperor's New Code?
theodp writes: Teaching kids computer science is a great movement," writes HS senior David Yue, "however, to overly dilute the magnitude of the difficulty in regards to the subject area of coding and to create the illusion of mastering a 'superpower' (Code.org) is a huge mistake. There are many videos and articles on the Internet these days that have demonstrated positive support towards computer science education. Below these articles, one can find many comments, left mostly by parents and supporters. These people usually express how proud they are that their children have an opportunity to learn computer science or how proud they are that computer science is being integrated at a more substantial level into the education system." But Drag and Drop Doesn't = Coding, argues Yue. "Parents and teachers today who aren't technical need to be aware that the drag and drop code or the candy-coated learning process does not effectively teach children programming but eventually causes a huge amount of shock once they are immersed in real code." Yue's Emperor's-New-Code warning comes days before President Obama — a graduate of Code.org's drag-and-drop Disney Princess coding tutorial — asks Congress for $4-billion-and-change in the upcoming budget to fund his "Computer Science for All" K-12 initiative.
It shouldn't matter how the code itself is created. You can code the same thing in any number of languages in any number of code types.
If the kids don't know what loops are, what case statements are etc, then they'll still suck at "coding" even if you are dumping a bunch of text based functions on their head.
Is too!
Writing blogs doesn't make you a real author either
everybody would do it. Like engineering, like medicine, like pro football, like many other things.
The real alternative is to get the stupid idea that "erryone" should "learn 2 code lololol" out of our miscreant-in-chief's head. Alas, that isn't going to happen - it's now at make-your-unborn-baby-listen-to-classical-music level of cultural delusion.
But other than that, I don't see an actual alternative. I still cringe at the clueless math teacher whom programming class was foisted upon in my high school. $4B will barely cover equipment, it won't cover pulling people who actually know their business into elementary schools and high schools.
I've seen college graduates who don't even know who Knuth is. I've seen self-taught, self-styled rockstars run away like bitches whenever they're tasked with something "hard". Random educators for whom programming isn't their passion or their full time job simply aren't going to produce anything of value here.
One of the reasons that I really dislike drag-and-drop methods of coding and schematic capture for circuits is that you end up locked in to one tool’s peculiar method of entry. If you decide you don’t like that editor, you’re stuck with it for old designs because you can’t always export and import proprietary formats. When writing code, I’m using a portable language, and I have my choice of compilers on different platforms.
PCB layout is one of those corner cases that’s so physically-oriented that some of the steps really need graphical interaction. However, the tools have to export to standard formats that are understood by the PCB manufacturers. As long as you have those formats, you can switch tools with some degree of success.
Mr. Yue should take comfort in knowing that all of those seven-year-old children claiming they know how to "code" can't compete with him in the job market yet due to child labor laws.
The Hour of Code isn't supposed to actually teach Javascript or other "real" languages. Instead, it's designed to give students an idea of how programming works in general and maybe pique the interest of students who might not realize that they'd enjoy programming. If the CS-for-all movement is to happen, then using a "dumbed-down" language with easy rewards is a good decision: most students would be bored to tears and turned off to programming if their program wasn't working because they mistyped a word or forgot a semicolon somewhere. A drag-drop interface is also great because students can easily experiment without having to worry about making syntax mistakes; instead, they focus on the big picture of how to make the robot do what it is they want it to do. After all, nothing is stopping schools from offering "real" programming classes to interested students or bright students like the author himself from learning how to code independently.
So many assertions. So little evidence. Maybe drag and drop helps. Maybe it's worthless. If you're not referencing a study, hush. The plural of "anecdote" is not "evidence".
To be perfectly blunt the entire "drag and drop coding" is something that Unity, Game Maker, and a few other general purpose game making tools do. Sure you can go an edit code, but it often tries to persuade you use some native UI widget like in flash. Speaking of such FLASH is probably the first language that did the drag-and-drop thing, because you can put together entire flash cartoons without any code.
I program by writing in text files too, but that's just important for interoperability with other tools, it's not the definition of coding. Everyone knows that our CPUs don't execute ASCII, right? If it's Turing-complete, then it can be interpreted or compiled (i.e. "decoded") to do anything you want to execute.
First you need to learn the shapes of the letters. Then you learn how to spell words and put them into sentences. You learn stylistic elements and the structure of longer texts. Then you practice, a lot. Then, maybe, you write a book that someone wants to read.
These programming crash courses teach you something that makes it look like you can write full sentences, but in reality you're barely able to read the shapes they put in front of you.
Sorry to disillusion you, but how much actual code do you think is done on a billion dollar budget employing thousands of people to write a few thousand lines of code!
Government projects are more about powerpoint skills and minesweeper than code!
You should meet some of the H1Bs I work with! Man I wish they could drag AND drop! Such dual skilling would be a doubling of productivity!
At some point there was a Lego Mindstorm competition for school children aged around 14 and I was hired to assist them on the final day. Lego developed a drag n drop way of programming, which is supposed to be usable for children. Mind you, Lego actually recommends using 3rd party "real" programming tools as they are better if you can figure out how to use them. However this competition was designed for the GUI approach.
It was a complete disaster. Despite having worked on this project for a month, they were still pretty much clueless. While they had clearly seen the GUI before, their understanding of the result of the input they provided was like it was day one of trying the system. One group managed to make their Lego robot fail the task 3 times at the very same spot and I asked them why they carried on trying after they had seen that it doesn't work and the answer was "we try to get it used to the task and hope it will figure it out eventually". One group also vanished and was caught an hour later. It turned out that they had just joined the competition in order to cut classes and didn't care for it at all. That's always a good starting point.
Also I would have to question the quality of the school teachers. Not in general, but the specific ones showing up for this competition. One in particular annoyed me. He was supposed to be the expert on the school he came from, yet he had no interest in talking about the tasks, theory behind it or anything. Instead he went on with ultra left wing propaganda about how the left wing activists should have the right to use the building they want to use (without paying) and that it's ok to kick out the capitalistic pig who owned it and how wrong the court and police was in saying otherwise. I was like "shut up". Also the case he referred to was one where the owner ended up going personal bankrupt due to getting stuck on the running costs without access to the building. The politicians at city hall decided to give the "young political minds" a building to meet in, but they refused and said they preferred the one they took by force and violence. What that has to do with programming is a good question, but according to that teacher it made perfect sense. Somehow I'm not surprised his pupils failed extremely badly.
I'm not a fan of the modern school system. The learning by doing approach without any theoretical background and the "divide pupils into groups for debates" have failed every time I have seen it in action. You will not learn how to say multiply by talking to 3 other kids who can't multiply either. Go fix the schools first and make the teachers.... actually teach and tell the children what they need to know before trying to add even more stuff they can't learn to a level they can use anyway.
Also regarding learning CS. I learned some languages and stuff and could code stuff I wanted to code. At least that's what I thought, but in reality I had problems diverting from the examples in the books. Once I learned C and focused on what is actually the basics in programming, I suddenly became able to design code unrelated to examples in any of the languages I knew at the time. I now firmly believe that the only way to really learn how to program something is to learn the basics and avoid all the shortcuts people come up with, like drag 'n' drop. People can put the jigsaw together while the teacher is watching, but they don't actually know what they are doing, making the whole task pointless.
> In Flash you can make a cartoon
Yes, just like you can make a cartoon with colored pencils. That's called drawing. That's a left- brain, artistic activity. At my last job we had two people who did that.
Those two people would then send the Flash file over to me, the right-brain guy who did the math-like process of programming (coding) those cartoons to do something useful. I couldn't do their job and they couldn't do mine because the two require fundamentally different ways of thinking. Not just different skills, but almost opposite skills.
As I did the coding, I would code to function interface appropriate to the frameworks each of those Flash objects were embedded in. I would code in the ActionScript language to pass data back amd forth with the larger framework project.
Designing those overall frameworks to hold any needed module and control the interactions between modules required some computer science understanding. The computer science part was language- neutral. A module could be written in any language. The computer science part was mostly about designing systems that are flexible, robust, expandable etc, totally unrelated to any specific language, whereas coding is all about expressing an idea in a particular language.
Coding today has become a morass of files sprayed all over the landscape, taking all the fun of logic and problem solving away from "coding". To wit, when I first took up coding for a hobby, it was BASIC on an Atari interpreter. Easy, fast, fun. Then I went on to C with the Borland compiler for DOS based programs. Still relatively easy, but most of all, it was still fun to sit there, solve problems and make things happen with code. Fast forward to today and Visual Studio, QT, NetBeans, etc., spew out such a tangled mass of interwoven crap that it takes more time to figure out where to put a function or include a library than it does to write the damn code. Not to mention the insane verbosity of the languages (looking at you C++ and Java). I gotta say, it's not fun anymore. I can't blame kids for looking at this and walking away.
Coding is Easy.
Coding in the workforce, with a company guide that specifies language X in coding environ Y, remembering to put in remarks for the guy that has to maintain it that are both useful and not in iambic pentameter, with an object-oriented styleguide for a functional program that was determined by a middle manager who last coded in Basic and thinks "Goto" is bad without ever having understood why (and occasionally why not) and once suggested simply using an un-returned function instead ... is hard.
But yeah - Coding is easy.
Pug
An Invisible Entity of Vast Power whose existence must be taken on faith alone: Liberal Media
Piquing curiosity of kids and developing more well rounded and computer literate populace seems like a good idea. But there's also a risk of a bigger society-wide Dunning-Kruger effect, where we have a society people who think they are much more tech literate than they really are.
Whether that balances out for the better or the worse, I don't know. But I'd rather we didn't focus so much on coding, as the tech skills one needs to survive in the modern world. Understanding public key cryptography. Good security practices. Basic conceptual stuff that can help them exist in a world of technology even if they aren't programmers. Then, the ones who want to go on to a CS career can be given opportunities to learn assembly language, CPU architecture, compilers, algorithms, and so on, to develop a foundation usable for a programming career.
Our educational system dumbs down EVERYTHING, not just coding, and we don't stop at education... we've dumbed down our entire society. Hardly anyone knows how to build anything, and fewer still know how to build their own tools.
I hope that at least the children are getting some sort of eye opening experience that will allow them to realize that there's a bigger better world out there just waiting for them to learn how to make it.
Some of the children will love it, and the children that are naturally inquisitive will want to go beyond what they're being taught. (Yue seems to be a good example of this)
But, isn't it important to remember that most languages out there exist primarily to make programming easier?
I understand where Yue is coming from because I complain all the time about these developers that only learn one language (Java, C#, PHP or some other "easy to learn yet powerful enough to get the job done" language) and claim to be expert developers.
Inquisitive developers tend to learn more languages. Good developers learn a lot of languages and then choose the right one for the job at hand, which could even be some form of drag and drop language; if it gets the job done then why not? Great developers don't hesitate in creating their own DSL if necessary.
Those that do the hiring, and those that are involved in deciding a system's architecture LOVE these new languages and stacks because the developers that know the languages and stacks are plentiful. Although these developers aren't great, they're good enough to get the job done, and plentiful means more competition which drives down wages.
Our educational system is there to prepare us for being wage slaves... nothing more, nothing less. Why would we want to introduce children to things that might lead them to do their own thinking?
You are all just coding wrong, obviously.
Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
Sure, I can go take a class on a foreign language but that doesn't mean I can write great literature in it. You'll know the mechanics of the language but it's a different matter to be able to express yourself so that a native speaker understands you. It's the difference between a button that says "reset" and one that says "overcharged"
I don't think that CS should be introduced until 7th grade. But other Slashdot users have mentioned that this drag and drop stuff is useful for the K-6 students. So hey, maybe it does help. Perhaps the drag and drop teaches some abstract logic skills that will help the students become a better thinker instead of a below average code monkey.
And I say it isn't programming if you're not throwing toggle switches to set the bits.
BTW, I once had a job running a CDC Cyber 170/750 whose boot-up instructions were actually set that way.
Empirically, things like Scratch are great learning tools. I taught my kids with it and then they went on to writing code. But they had all the mechanics worked out along with understanding of things like event dispatch, arrays, conditionals, string parsing, algorithms, the X-Y coordinate systems of the window. SO saying this is just sugar coated fruitloops is nuts.
At the other end of the spectrum with things like Labview many scientists can go a whole career without having to code. it's a fantastic language once you accept it's constraints. Extremely good for both rapid prototyping and embedded instruments. It is the only language I would trust to edit in the middle of an experiment. You won't be writing a word processor or accounting system in it but it's not meant for that. But it's not sugar coated in what is meant for. The results are not a Toy.
Some drink at the fountain of knowledge. Others just gargle.
I see this big push for CS literacy in schools, and it puzzles me why we're talking about spending so much money to teach a skill that most kids aren't going to use in their everyday lives while we're dealing with stuff like the Common Core silliness and teachers/parents are having to pay for basic classroom supplies out of their own pocket. They have money to buy tablets/laptops for kids (and the associated IT support costs), but they don't seem to have the money to make sure that teachers have enough whiteboard markers, copy/printer paper, and other fundamental stuff that every school provided for the classroom 30 years ago.
IMO. time spent teaching to code would be better spent on the 3 Rs, and far more useful to the kids. Intramural programs for teaching how computers interact with and affect society might be a good thing too, but not at the expense of skills that they *need* in order to function in their adult lives.
Please stand clear of the doors, por favor mantenganse alejado de las puertas
What are they going to teach them next? Algebraic topology? Categories? Ramsey theory? Computer Science is a branch of advanced mathematics; with the exception of the exceptional freak, kids do not have the maturity and background to learn it. Learning to code (especially if consists of graphical interfaces or Mickey Mouse languages) is NOT (I repeat NOT) computer science. Learning to use any of the so-called productivity tools (which are more tools that can be used to pretend that work is being done) is also NOT computer science. At best, we are talking computer literacy here - a far, far cry from computer science.
We should design design a coding aptitude test as a pre-requisite for anyone wanting enter the field.
We would pretty soon find that the majority of people is not well equipped to a career in coding and hence it makes little to no sense to spend money across the board on the off-chance that we catch all that might have some potential hidden somewhere.
The code.org-like projecst are a bit like throwing a giant fne-grained fish-net over the oceans of this world just to catch "all the fish" wherever they may hide.
When I was in school, a typing/keyboarding class was a pre-req for the computer classes. It was not at all necessary, I did not _actually_ learn to touch-type until a decade later, and at that point I did it because I decided it was stupid to be looking at the keyboard when I should be looking at the code. But, you know, thank goodness I got to waste that semester on something which was basically useless and which was trivial to learn once I decided I needed it.
Later, the "computer" classes in school had a strong dollop of learning how to use a word processor of spreadsheet. Which may be valuable vocational skills, but they were like a "Math for Living" class when the people forcing everyone to take them thought they were getting "Algebra II".
Even later, it was how to create a webpage. Because HTML is certainly the future and we'll never have WYSIWYG tools to do the heavy lifting to let consumers build webpages easily.
And that's in primary and secondary levels. You can get college-level "Computer Science" degrees having only demonstrated the ability to wire other people's code together. Again, a valuable vocational skill, but _not_ computer science.
I'll give you two opinions about why this happens. First, being able to write code is no more nor less useful than being able to fix plumbing - when it's useful, it's wicked useful, but if that's not your job, you'll probably never develop enough expertise to solve problems you actually see, as opposed to hypothetical classroom problems. Second, the instructors at the primary and secondary level generally don't themselves have enough understanding of the topic to be able to successfully teach it. Which isn't a bad thing, because as I said, it's not a worthwhile thing for most people to develop an understanding of the topic.
Of course, in the end this isn't really much different from many other topics taught in schools. Most people don't ever need to analyze a work of fiction, or calculate the remaining angle in a diagram from the given angles. A big difference is that geometry in 2050 is going to be very similar to geometry in 1750, so you can productively teach the skill based on hundreds of years of doing it, and insofar as it is useful at all, it will continue to be useful. Most of the vocational computer-related stuff they teach today didn't exist 10 or 20 years ago, and much of it won't be useful in 10 or 20 years. The decades-old stuff which is still useful to me as a professional is the esoteric knowledge, not the applied knowledge.
It's hopeless really. The media goes Everyone Can Code! Somebody goes "I wanna be a programmer!" So we get a nifty Disney princess turtle.
Then the first time somebody comes along and says, "I need something that will let me schedule at 10 hospital networks that have 20 hospitals each with 100 different departments that need on call for 4-5 shifts each" it ends in tears with everybody accusing everybody else of being sexist and racist.
For most education topics, we're taught in layers, starting with the simplest and usually most abstract and slowly work inward. We all choose where we want to stop learning the subject once we get to HS/College. The most apparent places where this occurs is in Math and Physics for me. In physics, I first learned gravity pulled things down. Then I learned it generally pulled all things down at equal speeds. Then I learned it was a universal law of attraction between objects. Then I learned there's an equation to compute the speed at which gravity accelerates objects towards the ground. Then I learned there's an equation to calculate the force of gravity between any two objects.
The same is true for CS but many of us started at what I'd say is too technical of a step and this was probably a result of the state of CS at the time I started learning it. CS education should begin with logic and rote instructions, and these things can be taught with a graphical language just fine. Even computations can be taught in this way and indeed that's how we start in math; ie. One apple and two bannanas adds up to how many fruit?
Think globally but act within local variable scope.
at our shop we feed specs and requirements into a program, and after coffee the program gives us a packaged application to install. Nobody writes programs anymore. Our interns don't need any programming knowledge, and don't get any programming experience.
Just like every other 'educational' initiative of the past two decades, kids learning watered down versions of subjects prepares them for absolutely nothing. It would be far better to offer real CS classes to students that actually have an interest and enthusiasm than giving every student something half-assed. Our schools in the U.S., largely thanks to privatization, are so very, very broken. Hoping congress kills Obama's proposal and they come up with something that is actually realistic and useful, because to those with the passion, CS certainly is. For those without it isn't any different than something like car mechanics - many will never learn, and they really don't need to. Dump the money into digital literacy instead (modern home ec, if you will).
The problem (or at least one of them) is that there is a good idea buried under a bad idea.
Trying to make every child into a professional programmer, on the assumption that programming will in the future be the equivalent of unskilled labour today, is just asking for trouble. In 10 or 20 years people will be very angry at having had so many resources - not to mention the children's opportunity costs - sunk into something that will simply lead to bitter disappointment for the majority who cannot realistically become programmers and low wages for the few who can.
However, every child should learn *something* about computer technology because some minimal familiarity will be necessary to function in society, the same as people ought to know what lawyers, bankers, accountants etc. do, not necessarily so they can work in those professions, but to understand why and when their specialities are needed.
Also children should have something intellectually challenging that teaches them problem-solving skills. In a sense, it doesn't matter what that is, just that it requires intellectual effort and development of skill. For a long time people did fine (well, adequately) teaching children Latin or the geometry of Euclid's Elements, without any real expectation that these would be practical skills; the goal was to force them to think. Programming can teach logic and also be highly motivating to children because it's a part of all the technologies that are glamorous and exciting.
Coding doesn't have to only be about editing some text files and running them through a compiler. This isn't the 1970's.
I've built my entire career on C and Linux. So my workflow is about editing text files all day, but my way isn't necessarily the only way or even the best way.
“Common sense is not so common.” — Voltaire
> on one side of he scale and bits and pieces that require just gluing
Some gluing together projects are useful. People did some good stuff with HyperCard and shell scripts. Shell scripts are a great way to glue pieces together.
What has changed is that now almost all software is on the internet, where they are attacked 1,000 times per day by script kiddies with tools that automatically looking for gluey buts. So shell scripts are now called "remote code execution vulnerabilities ". This is a real problem.
In many fields, including electronics, hardware, pyro, etc there are two classifications of materials and technicians: standard and "life safety". Standard equipment is labeled "not for life safety applications ". Sometimes I think software (and programmers) need a similar distinction: "can hack together some code" vs "internet exposed ".
See subject: Giving users more speed, security, reliability & anonymity APK Hosts File Engine 9.0++ SR-4 32/64-bit http://start64.com/index.php?o... from 1 single portable .exe!
-
FREE, not 'souled-out' to advertisers (made almostalladsblocked NOT work).
Does more w/ less efficiently vs. addons (clarityray blockable, redundant + RAM/CPU wasteful & local DNS servers @ home.
Fixes DNS' security issues & stops tracking @ webpage + DNS levels via 1 file you NATIVELY have!
(Firewalls do rest on less used IP address trackers/threats vs. host-domain names).
-
Obtains data vs. threats & ads via 10 reputable security community sites - easily edited by you using my program.
-
SPEEDS YOU UP 2 ways:
Adblocking ALL ads + local RAM cached favorite sites @ TOP of hosts for faster resolution vs. remote DNS (for reliability + speed) vs. other "so-called security 'solutions'" SLOWING YOU!
-
All via what you already have vs. illogically "bolting on browser addons 'MOAR'" (clarityray detected/blockable + usermode slow & increased messagepassing, cpu + ram overheads)
-
MalwareBytes' hpHosts Admin (MalwareBytes employee verified it's source as safe http://forum.hosts-file.net/vi... ) hosts & recommends it -> http://hosts-file.net/?s=Downl...
&
MalwareBytes = BEST antivirus per recent testing http://www.av-test.org/en/news...
&
Safe proven by 57 antivirus programs in a 64-bit model https://www.virustotal.com/en/...
+
32-bit model https://www.virustotal.com/en/...
&
Installer-> http://f.virscan.org/APKHostsF...
-
* "The premise is quite simple: Take something designed by nature & reprogram it to make it work for the body rather than against it..." - Dr. Alice Krippen: "I am legend".
APK
P.S.=> By "yours truly" - "The Lord of Hosts" so-to-speak:
"The image this title brings to mind is a mighty military commander who can at a mere word summon rank upon rank of protective power" -> https://answers.yahoo.com/ques... & THE WORD = hosts!
(Accept NO substitutes)
...apk
drawing is right brained
Why are there so many coder religions about coding style and workflow, and so many coders who flatly refuse or are wholly unable to deal with most legacy code (filling them with profanities and resulting in many diatribes against the perceived "wrongness" of the code they're facing)? You mean to tell me it's because they learned to code via drag-and-drop methods?
1) I can't see how more exposure to CS principles can hinder anyone in the face of such uncertainty and compexity
2) Most professional programmers choke in the face of uncertainty and complexity anyway
More importantly, why isn't it learning to code? Who said that text is how instructions have to be given on how to generate compiled code? And anyway, typing is not really coding. Only putting holes in punch cards is real coding. It's even more effective and has more reuse than text. You can use the same card or reorder cards around if you want to create a new algorithm. Oh, but, the historical coincidence of the widespread typewriters and emergence of electronic controls existing at the same time is what "programming" must be? Well, I learned to program from comics which had lessons and posed challenges. I wrote programs by hand on paper long before ever seeing a computer. Was that "coding"? Because most people around me thought that not writing a program out on paper and checking it before inputting it into a computer created bad habits in programmers. It made them too lazy and impulsive. It produced programs which had too many bugs. Sounds familiar?
Any guest worker system is indistinguishable from indentured servitude.
Wait, do you mean my left or yours?
-Dave
He is right that it is probably a bit late to expect most secondary students to get up to speed because visual programming is just introduction level coding and you still need to progress along the full learning path before you can code with confidence in real-world programming tasks, however I start my kids with MIT Scratch around the age of 5 or 6 so they are programming in C and Javascript by the time they are 10.
The bottom line is that there is no way around the fact that to code well you need to have a very strong grasp of logic and mathematics, and have acquired a large amount of technical knowledge. Many programming tasks come down to replacing the manual operations of entire teams of humans, with code, and those individual humans often can't tell you what everyone else in their team does, therefore to be able to write that code you need people who are smart enough to get their heads around multiple interconnected skill-sets over and above the abstract computer science skills that they need.
When it comes to IT most of the relevant facets of our IQ are significantly influence by our choice of parents, both their DNA and how they raise us (and a school is no substitute for having good parents!). You can't get around that, therefore early years IT training should focus on identifying and nurturing talent more than on the delusion that all people can ever be good enough at coding to bother doing it at all.
In most people, the left hemisphere is analytical and the right hemisphere is creative.
Drag and Drop Doesn't = Coding, argues Yue.
Well if it didn't before, it does now, you thoughtless clod!! Learn your damn operators!
"Parents and teachers today who aren't technical need to be aware that the drag and drop code or the candy-coated learning process does not effectively teach children programming but eventually causes a huge amount of shock once they are immersed in real code."
You don't say...
As did millions of others.
I guess we were devastated, depressed, and had our self esteem destroyed when we found out that not everything was as easy as "hello world!"?
Oh.... wait.... we didn't. We were interested, plowed in, and learned the harder stuff because we were interested.
If mommy and daddy want to protect their precious little snowflakes from the hard stuff by learning the hard stuff at the beginning - like that even makes sense - they need to just have them all go into women's studies or whatever it is boys are supposed to go into these days.
The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
"Teach Yourself Programming in Ten Years" by Peter Norvig (http://norvig.com/21-days.html) is still an excellent discussion on how long it will take to learn programming to a degree that is actually adequate to do professional-level work.
In addition, I expect that most people will never get beyond "fair", even with this amount of training and experience, just as most people will not become much better than "fair" at any other task, unless they have some real talent/potential/gift/deal-with-the-devil/etc. whether it be cooking, mathematics, or playing the harp. That is not to discourage people. "Fair" would be a huge improvements over the skill-level of many of the people that write software today. "Fair" is level on which you can depend on people to get regular stuff right and to know what is beyond their skills ans ask for help.
Of course, "fair" is also the level where the expected salary needs to be very reasonable (say, at least enough for a 4 people family to live in modest comfort off it) in order to make people go though the long process of becoming good at it. In particular the latter is lacking today.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Whats the point of a computer science for all, coding educational program when Obama and his ilk have every intention of importing a bunch of google-bot code morons from India and other low budget holes?
I read your link and now I know exactly what you did.
> gallery_root="../galleries/What I Did/"
You're the guy who put spaces in file names in *nix, in order to make sure that all commands using "for each", *, or find -exec would get messed up. Thanks for that.
Kidding, of course. Actually your post was interesting.
TFA is comlaining because BASIC and LOGO are now much better. Everyone who let turtle graphics ruin their life raise their hand. LOL. TFA is WTF.
But Drag and Drop Doesn't = Coding, argues Yue.
So much for BPMN, where you can actually create a significant amount of useful function just by doing that.
The thing about Mr. Yue's comments, however, is that he is completely missing the mission of all those drag-n-droppey efforts is not to equate cute little draggable blocks and call it coding. It is to get kids interesting.
I mean, for fucks' sake, we don't call kindergarten wooden counting blocks differential equations, do we?
That's a myth.
Our Home School Co-Op group has a lot of kids in it. This semester three of us are teaching an introductory course to computers and programming. We haven't decided yet whether we will end up with scratch or code.org for trying on a computer, but we're starting with introduction to computers, a little history, introduction to software, what a program is. After that we have developed a metaphor using legos to build a 'program'. We plan to start by having them look at a set of lego instructions, and build a simple construct. We may increase complexity, with more or less complexity. Later we'll give them a picture of what we want, and any 'special rules' and ask them to try and reverse engineer the steps to build it, and then try it. We are doing this, because we feel the three biggest parts of programming are observing the big picture, the logical steps to perform a function, and how to develop a sequence of steps (an algorithm) to do that. Later we plan to cut them lose after an intro to code.org or scratch so that they can do some drag and drop and figure out a little bit about what it may be like.
Now I'm not a fan of scratch, but given we only meet once weekly, have less than 5 classes to cover constructs, we felt choosing something like scratch or code.org removes the barrier to entry to some degree of syntax and lets them focus on the flow of building a sequence of steps or events.
We believe next year a follow on course that immerses them in say a Linux OS with python or javascript would be the next step for the class.