Advertisement

Negative programmer reaction of the Code.org Video

Started by March 01, 2013 04:38 AM
75 comments, last by cr88192 11 years, 8 months ago

I'm all with getting more people into computer science and using it to get people to think more logically...
But I also think that computer science is not for everyone. Programming isn't something everyone can grasp - I've met people, perfectly normal and otherwise competent, who could not wrap their heads around the flow of a program, despite several attempts (from me and others) to explain.

Would the same be true if those same people had encountered BASIC or LOGO in primary school, like many of us did?

Trying to explain Pythagorean theorem to someone who didn't go to high school is also pretty hard, but that doesn't mean we should teach children math... in fact, the opposite!

I don't see what's wrong with expanding people's minds, especially the minds of young children. In high school, there were plenty of the "oh, I just can't get it" types in my computing class, who won't go on to make a career out of programming, but they still all managed to turn in something for the QBASIC assignment, even if it's just a series of print and if statements that form a questionnaire. Those people had their mind expanded a little bit, and then lost a skill (like how most people forget how to solve a quadratic equation, but appreciate that such a thing exists, and know how to split a bill using a calculator), while a few people in the class were given the opportunity to grow and make a career for themselves.

Most people in your math class aren't going to become mathematicians, most people in the music class won't become musicians, nor in history, historians, nor in English, writers, nor in drama, actors, etc, etc.

Also, our schools suck at teaching any kind of logical thinking at all (at least where I'm from), so even simple boolean logic taught in computing is pretty important IMO.

Almost a year ago Jeff Atwood gave compelling arguments of why not to learn to code.
Our school offered optional coding classes, which I took and I think was nice. I don't think it needs to be integrated into the standard line of classes though.

Whilst I don't necessarily think everyone should learn to code, I don't really follow the argument in that blog. I wouldn't suggest a Mayor needs to learn to code, but I also wouldn't complain if he did. So what if it isn't relevant to his job? By that logic, a programmer shouldn't be allowed to learn to play a music instrument in their spare time.

The logic that it shouldn't be taught in schools because you don't need it in most jobs is even worse, by that reasoning, he's argued away the need for many if not most subjects in school.

I think the analogy to learning an instrument works well. Not everyone needs to do it - but (at least in the UK), music is a subject taught to everyone for certain ages. The problem with an optional class is that people might not ever realise they might like it, or the option will clash with other options. So having music lessons gives people the chance. And it's no different to any other subject - art, drama, history, geography, foreign languages - whilst these aren't as core as maths and English, they are still subjects taught to all children in many countries for at least some ages.

It's also about trying to do away with privilege and give children a more equal chance. Many programmers including myself learned to program in our own time at an early age, but we also had the privilege of parents who bought us a computer. Those who don't have that miss out - and if one wonders where the huge gender inequality in programming comes from, I'd blame the toys typically marketed at girls versus boys. (Similarly with instruments, children who have a parent who can teach them, or pay for lessons, as well as for the instrument, have a huge advantage.)

(In the UK, I believe IT is now a common subject, though I don't know how much time is given to learning programming, if any.)

I think that specialisation is fine later on, especially at University level. Indeed, there I find it odd that the US expects people to do a range of subjects. So no one should ever be taught programming at any age at school, but University students doing computer science should have to also do completely irrelevant subjects - that makes no sense to me.

If I can make another comparison, learning to program is kind of like learning to write novels. You can write understandable code or paragraphs, but whether you can achieve something with that in the end (be it a well functioning program, or an engaging and interesting book) is another set of understanding entirely. And just like programming, I don't believe that everyone can write novels.

But (at least in the UK), we do still teach children creative writing, to give them the chance to write stories - all the way from early in primary school, through to English lessons in secondary school.

http://erebusrpg.sourceforge.net/ - Erebus, Open Source RPG for Windows/Linux/Android
http://conquests.sourceforge.net/ - Conquests, Open Source Civ-like Game for Windows/Linux

Advertisement

I don't think learning to program is the equivalent to learning a natural spoken language. Sure, programming languages have syntax, spelling and sort of grammar rules, but there's far more to learning programming than just learning how to write valid code. In fact, most of my education in getting a CS degree was langauge-agnostic - only in classes that were named "Java ###" or "C++ ###" did we focus on language specifics. (that is to say, there's more to 'programming' than just knowing a programming language)

I chose to relate the 2 out of personal experience, as I am tri-lingual, with Thai and Japanese being my 2nd and 3rd.
There is a lot more to language than just learning the words. It is exactly like learning the keywords to a language, but without grammar your words won’t be interpreted by anyone. A lexer.
Learning grammar is exactly the same as learning syntax—in fact the the thing that defines a language’s syntax is called its “grammar”.

Now you may be able to execute valid sentences, but that still doesn’t mean they are correct or do what you want.
“Come”, “dog”, “horse”, and “mother” are all pronounced the same way in Thai except for the tone, thus you are quite likely to tell your girlfriend she has a nice dog, speaking about her mother.
A very valid executable sentence, but you are still a novice sentence programmer.


Not only that but spoken languages vary in difficulty just as programming languages do.
Thai has very basic grammar and very few words (rather than inventing new words, existing words are combined whenever possible, so instead of “traffic” you have “car-stuck”). It is like learning BASIC or LOGO.

Then there is Japanese, which like C++ only takes 4 years to be decent enough to generally speak your idea, though your code may not be very pretty.
Like C++, around 8 years to learn the nuances and not only speak your mind but with a touch of elegance.
And, like C++, a lifetime to learn every single in-and-out, including all the Kanji, deprecated words such as ???? (Google Translate won’t help you here), etc.


Indeed, there is a near 100% match between learning programming languages and spoken languages. And just as everyone can speak a spoken language fluently, I can guarantee that everyone could be fluent in at least 1 programming language if our lives revolved around that as much as it revolves around spoken language.
That will never be the case, but you have to agree. If we communicated via code, learned from teachers via code, etc. everyone would be a coder except the handicapped.
It is not above anyone’s ability. They just don’t get exposed to it enough.

That level of extreme exposure is over-the-top and unnecessary, but it illustrates my point.
Kids are sponges. The only thing they can’t learn is what you decide not to teach them.


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

you are doing it entirely wrong, as they aren't necessarily being interested in computer programming, just the high level problem solving game-ish things.

So you actually mean that they are doing it right?

Programming is a means to an end - it has no greater purpose than to enable high-level problem solving.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Indeed, there is a near 100% match between learning programming languages and spoken languages.

I'm not really going to argue that, but like I said, and what I probably should've pointed out is my main point - there's more (far more in my opinion) to programming than knowing a programming language.

But (at least in the UK), we do still teach children creative writing, to give them the chance to write stories

Is that mandatory? I know at least in some schools in the US they have such optional classes, and some things like creative writing are touched upon in general English classes. But yeah, I agree with you, I'm all for exposing more children to programming - I just don't think its a good idea to expect to have all of them become good at it, or take a liking to it.

There's an interesting article that touches on some of the idea that everyone should learn programming here: http://scientopia.org/blogs/goodmath/2012/10/05/everyone-should-program-or-programming-is-hard-both/

Would the same be true if those same people had encountered BASIC or LOGO in primary school, like many of us did?

Honestly, I don't know. But then, wouldn't that be the same argument for any subject area? What if instead of BASIC or LOGO you instead had equivalent exposure to music theory and music composing?

Here's the thing - I see this quickly turning into a genetics vs upbringing argument. Is everyone the same blank slate when they're born, and thus everyone is capable of learning anything that they're exposed to? (as Spiro puts its "kids are sponges") Or is there some sort of genetic predetermination of what we're good at, and what we're drawn to find interesting?

I'm very much under the opinion that its about a 50/50 mix of those two, and thus, while I'm all for more people learning programming and more programming classes in highschools and the equivalent, I don't expect that everyone should know and learn it, or be able to comprehend it.

I'm not so sure. Coding is essentially just learning how to communicate with an entity that only understands the most basic commands. Perhaps it isn't analagous to learning a language so much as it is learning to communicate differently.

I used to think some people just couldn't understand coding, but the more I think about it the more I feel they just aren't compelled to do it, not that it's impossible for them. If you look at the things you learn from coding that aren't necessarily coding, having a populace that in general understood how to code would have a huge impact. Look at how your knowledge of coding carries through the rest of your life and the way you think about things outside of it.

Even bad coding (read: non-performant/messy coding) still teaches you how to break down statements/commands into their atomic parts and better understand everything.

Look at even the insight you can get from Hello World; the simple task of communicating to something that you want it/them to say, "Hello World." To a normal person it seems easy, just ask them/it to say "Hello World." Coding it reveals all the assumptions one might take for granted. It's almost philosophical in a lot of ways:

-How do I know I am supposed to do something at all?

-How do I know you are giving me data?

-How do I actually get that data?

-How do I store that data until I do something with it?

-How do I know what you want me to do with that data?

-How do I know when to stop doing things with that data?

These are all things that have to be pretty explicit in code, but someone takes totally for granted because we typically communicate with intelligent things.

Advertisement
There is no point in trying to get everyone to be C++ experts, but I think it's an excellent idea to teach kids a bit more about how a computer works, including simple programming.

With the car analogy, It's really helpful for your driving if you have at least a basic knowledge of how a car works, and some basic physics.
Same thing with computers, the most versatile tool ever invented, that everyone uses.

Honestly, I don't know. But then, wouldn't that be the same argument for any subject area? What if instead of BASIC or LOGO you instead had equivalent exposure to music theory and music composing?

You do. Or at least, learning to play an instrument was mandatory for me in my typical government primary school (it's even a meme for it). In secondary school it was mandatory to learn to read and write musical compositions too...

Also mandatory were writing stories, painting pictures, sculpting, technical drawing, doing math, playing sport, learning nutrition and fitness, performing plays, singing, researching in the library, constructing scientific experiments, speaking another language, history, commerce, geography, biology, sewing, cooking, wood and metal work, and office computer usage -- all at a very basic level, with further study being optional -- despite the fact that most of us suck at most of these things now. It's called a "well rounded education".

Does the US not cover all these bases already?

Coding is one thing, but if you look at many threads on Gamedev, you'll see that most coders can't solve medicore programming problems.

I'm not saying they inherently unable to solve problems, but they can't anyway.

I think I'm able to solve medicore problems, but I have been creating things (thus solving problems) all of my life, because that interested me and my family encouraged me. I guess many wannabe programmers are actually interested in the end product, but not really in the creation part.

With the car analogy, It's really helpful for your driving if you have at least a basic knowledge of how a car works, and some basic physics.
Same thing with computers, the most versatile tool ever invented, that everyone uses.

Not really. If you have to know how a product works internally to be able to successfully operate it, then there has been a failure in product design and it will not be successful to the mass market. Consumer products need to be black boxes for the vast majority of people using them. None of the non-programmers I know would benefit in any way from knowing the basics of how to write code as far as general computer use goes.

I agree that every student in the US should be required to take a programming course however. My reasoning it just a little different. If you expose all students to some form of programming, it will click for a certain percentage of them. They will get it, and enjoy feeding the computer instructions. Those kids will then be more likely to consider a computer science or engineering education further which we desperately need in this country.

This topic is closed to new replies.

Advertisement