7 ms·
We should teach all our kids to code
- apexauk 15y agoThis is an issue I'm very passionate about, and I'm sure many others are too. I'd love to hear other's thoughts on how we educate the next generation and the best way to teach coding in 2012.
- bwarp 15y agoI wouldn't bother. Why? It takes a certain mindset to write code. Not everyone has it or is interested in it. My children couldn't care less about it and that's up to them. They'd rather be digging holes in the garden and covering things in paint. I'm not here to indoctrinate them with my own interests but to nurture their interests. Education is fundamentally flawed on the basis that it mandates knowledge on political whim and percieved societal need rather than nurturing and developing interest. Consequentially society is filled with people doing what they are bad at and hate.
- 4ad 15y agoIndoctrination? What? It takes a certain talent to write or play music, or paint, or do science. We encourage kids to try all these things, most won't pursuit them, some will. The kids choose without coercion. How many parents encourage kids to learn how to code compared to the number of parents that encourage their children to do the above mentioned things? It is the children who decide what they want to do, it's about offering them a broader spectrum of things to choose from.
- mechanical_fish 15y agoI don't farm or paint on a professional basis. I don't even do so as a hobby; although I constantly threaten to take up gardening, it seems to be one of those hobbies that hasn't stuck yet. And yet I'm glad that, when I was a kid, people encouraged me to plant things and paint things. Just because learning to code is societally approved doesn't mean that kids shouldn't be encouraged to practice it for fun. Trust me, if the kids decide they hate it they'll figure out how to avoid it as much as they can in the future. They're good at that. Mind you, your attitude that you shouldn't expect your kids to take after you is a healthy one, and I don't want to discourage it. But don't take it too far. It's good that people are trying to figure out better ways to teach kids about programming.
- drbawb 15y agoThere's a difference between forcing them to write code, and making the learning materials they need to write code readily available. It's very possible that I may not be a programmer today if my best friend's dad hadn't pulled out an old Apple ][gs and had us hack away at it for an afternoon. We found a demo floppy that had a BASIC programming tutorial on it, and from there I got hooked.
- miahi 15y agoWe had programming classes in high school in Romania, teaching Pascal or C. They don't really work. Some students don't understand programming. Others don't care. Only 20% of a class can actually program very simple programs by themselves. Only one or two can really understand what is going on. And sometimes they just want to do something else.
- deleted 15y ago[deleted]
- xyzzyz 15y agoMath classes are no different. Only a handful of students will solve a math problem by themselves, others will just wait for teacher to show them what to do, and then repeat the procedure with hardly any understanding what is going on. The exams consist of problems that were already solved in classroom, it's enough to memorize the procedures and apply them to tasks on exams.
- 4ad 15y agoI'm Romanian, not everyone takes programming classes, very few do, only those enlisted in Mathematics-Informatics (in Romania curriculum varies greatly depending on what profile did you chose). Indeed it has many problems. The first problem is that the Mathematics-Informatics profile in high school is considered elite, and every parent sends its children there. The effect is that the class will have the best, most intelligent students, but not necessarily the students interested in the curriculum. Neither the children or the parents know anything about the curriculum, all they know is that all the smart kids go there. I've been in this class in one of the top-5 colleges, nation-wide. Some poll in the final year yielded 80% of the students hating both math and programming. Most preferred literature. Because of the inherent bias in Romanian education, the highest graded students will always be the ones who like liberal arts, and not the ones with a mathematical background and because of the way enlistment to high school works, these will be the ones that end in this class. I mentioned I was in one of the top 5 classes nationwide to illustrate the second problem. Even though I was in one of the best classes, professors that taught programming were execrable, both in their talent as educators and in their talent as programmers. Incompetent is a word that's too mild to describe them. Reasons are easy to guess, high school teachers are paid poorly and anyone with any talent in CompSci will find a better job elsewhere. It's funny that the only two skilled professors that taught programming were two guys that did something completely different and only taught at high school because they enjoyed teaching and working with young students. The third problem is that the curriculum is very abstract, way too abstract and far from reality, and very old, nothing feels like today, students are still required to write DOS applications with a DOS editor.
- jburgos 15y agoI agree that it takes a certain mindset to understand how to read/write code. However, simply offering it as an option in k-12 education doesn't seem like too bad an idea, so long as it is a child's choice to experience programming for themselves. Of course, the courses would definitely need to be interesting to grab a child's attention. I know I would have loved programming in my younger years, just didn't have too much access at the time. That's at least my two cents :-)
- abstractbill 15y agoIt takes a certain mindset to write code. Not everyone has it or is interested in it. It takes a certain mindset to make a living as an author, and my kids might not have that. But I'm damned if I'll let them grow up not knowing how to read and write.
- aiscott 15y agoA-fricken-men. I have an allergic reaction every time I come across one of these posts about "how do I teach my kid to code." The whole sentiment strikes me as extremely myopic. I'm all for providing exposure to a variety of things in school and at home, coding included, but we need to let our children be themselves. Give them exposure, let them taste what the world has to offer, but don't compel them to be the über-coder that you wanted to be.
- SilasX 15y agoThis is something I don't quite understand. Yes, it takes a certain mindset to write code: mainly, you have to be able to convert a fuzzy process into precisely defined steps that generalizes over a range of possible inputs. Is it something that most people really can't do? If so, that scares the hell out of me. And not because they can't write computer programs, either. My concern is, how sloppy is their thinking in general? How easily do they fall for circular arguments, or succumb to "lost purposes", where what they do no longer has any connection to their goals?
- DanBC 15y agoRaspberry PI, installed with an editor and some programming environment, with links to (or local versions of) some good reference and good teaching system (maybe better versions of Learn Python the hard way?) and, finally, a paper notebook and pen. Include group work and gentle supervision.
- deleted 15y ago[deleted]
- deleted 15y ago[deleted]
- cabacon 15y agoI recently watched Randy Pausch's "Last Lecture" (http://www.cmu.edu/randyslecture/ http://www.cmu.edu/randyslecture/) where he promoted Alice (http://www.alice.org/ http://www.alice.org/) as a tool for teaching kids to code. I downloaded it and played with it, and it looked pretty good. Like logo, it makes programming more fun by giving you immediate visual feedback. Like the "If this, then that" thing the article liked, it promotes the idea that programming is a lot like storytelling; the entities do what you say they do, nothing more, nothing less. I found in it the potential for excitement that I found when I recently looked at the demo programmer live coding at http://iquilezles.org/live/index.htm http://iquilezles.org/live/index.htm The live OpenGL editor he uses for immediate feedback made me figure out how to get an OpenGL triangle rendered on my laptop right quick. I can imagine that having storytelling control over 3d characters could do the same for kids.
- chillyconker 15y agoJust a couple of observations from a (mostly) computer-illiterate person: The people who learnt to program computers in the 70s and 80s weren't taught at school by teachers, they taught themselves (maybe with help from friends). The OSes of the 1980s were much simpler than MacOS/Linux/Windows. In particular most of them had a standard BASIC built in which was very easy to start using. One could just turn the computer on and immediately type in a program.
- kiba 15y agoThe people who learnt to program computers in the 70s and 80s weren't taught at school by teachers, they taught themselves (maybe with help from friends). It's still the truth these days. Of course, we don't have basic installed by default anymore. Instead, I have a desire to make video games and it took me several tries over my childhood until I started to program seriously at age 15.
- hippee-lee 15y ago> The people who learnt to program computers in the 70's and 80's ... I agree, but that kind of programming is very different from the type of programming that will be useful to non programmer kids when they grow up. There is also google, stack overflow and a waltz of easily accessible information on how to do X in language Y that was not online then. I am drawing a distinction between coding and programming. Let me explain - When I graduated from college in 1999 the career office was very assertive that I should use and describe my ability with the MS Office productivity suite. When and how it had become an important enough to include on my resume doesn't matter, it was an important skill to have for the types of jobs I was going to be applying for. So programming and programmers will always have to dive deep and be able to develop complex systems. I am using the word coding in the same context as what I started with: I worked in a laboratory and collected lots of scientific data. I learned how to automate the tedious parts of manipulating, formatting and emailing out the results to save my time and reduce the errors I made doing it manually. To me, this was a self taught journey to learning to code with vba and even back in the first half of the Aughts there were decent places to figure things our for VBA. I think in the future, kids or prospective employees in general that are not programmers, being able to put "can write JavaScript and VBA to automate repetitive tasks" will not be required. But, the candidates who can will have a marketable skill that sets them apart from their peers even though they are both trying to get a job in Supply Chain or Regulatory Affairs. And these days, JavaScript is very easy to get started with, fire up a modern browser, open up the console and type in your program on any web page. It's been a while since I worked with VBA but I assume it is discussed on stack overflow.
- mrcharles 15y agoI'm not having children, but I have two nephews and a niece, and when they are old enough to read and use a computer without breaking them, I'm giving them each a netbook preinstalled with ubuntu, various programming tools, and some kind of video chat software so that they have access to me to ask questions at any time. I want them all to know this kind of thing, regardless of anything else. Plus it will make me the coolest uncle ever.
- joelhooks 15y agoIn my experience delivering Ubuntu boxes to elementary aged children, they are generally unimpressed. This isn't to say you will have a similar experience. I am interested in how to pull it off, so let us know when the time comes.
- GFKjunior 15y agoYou should look into the Fedora Sugar on a Stick distro. http://spins.fedoraproject.org/soas/ http://spins.fedoraproject.org/soas/ It has tons of great interactive python programming tools and projects, plus all the hours are logged and you can review how much time the kids spent on each project.
- rorrr 15y agoI remember when we got our first computer, my dad won't let me play any games for more than a few minutes a day, but I could play the games I wrote myself as much as I wanted. That was a brilliant idea - it gave me the taste of the good games, which was a huge motivation. It did take a while to create an actual playable game (back then we didn't have easy to use graphics libraries like Processing), but then it all became easier after. Most of my friends with computers at that time spent 5-6 hours a day playing games instead of learning.
- drbawb 15y agoThis seems like an excellent technique. Although I think it'd be much harder today. In my childhood I'd be easily entertained by a text adventure or a pretty simple sprite based game. Now a days your kid would have to create the next Call of Duty. Perhaps a strategy that would make more sense in today's world is to get them the Valve Hammer Editor (or equivalent SDK) and instead have them make levels for their favorite game engine.
- LeafStorm 15y agoWhile that would be cool, it's not programming.
- Lambdanaut 15y agoYou'd be surprised. I got started in programming by making Warcraft 3 maps. The trigger editor is a visual programming language in itself. I've made everything from simple RPGs to genetic algorithms that evolve micro strategy in AIs using the Warcraft 3 Map Editor alone.
- RodgerTheGreat 15y agoLast summer I taught introductory programming courses for middle-schoolers, and one of the first things we did was play Zork for about half an hour, as a class. Then I started showing them how to make their own text-based adventure game with rooms, a basic inventory and simple puzzles. All of my students were having a blast with Zork, and they seemed to find making text adventure games highly rewarding. I think you underestimate the imagination of today's kids.
- simonbrown 15y ago> try telling that to anyone who has tried to hire developers in the past three years. Sure, much great talent is out there – but the supply and demand balance is off the scale. Really? Computer science has the highest unemployment rate of all degrees in the UK. http://www.bbc.co.uk/news/10477551 http://www.bbc.co.uk/news/10477551
- apexauk 15y agoYes, really. That's an interesting link, thanks. But to be honest, I don't find the stat surprising. I spent a term studying CS at Surrey in 2004 - I couldn't immediately find the 2004 rankings but it ranked 8th for CS in 2008: http://www.thecompleteuniversityguide.co.uk/league-tables/rankings?s=Computer+Science&y=2008 http://www.thecompleteuniversityguide.co.uk/league-tables/ra... That first term consisted of multiple choice exams in C and HTML, where one of the questions didn't have a correct answer. In short, I sadly don't think that any lines can be drawn between 17% unemployment of CS graduates and a supply of great available talent. Speaking as someone who's processed 200+ applications and hired 7 engineers in London the past 2 years, sharing stories with my colleagues at other companies - great talent is very hard to find.
- sliverstorm 15y agoGiven those data points, the logical conclusion is that the article means the supply and demand balance of talented computer scientists is off the scale, and that the reason the field has the highest unemployment is because it is saturated with individuals lacking sufficient talent. It seems kind of cold, hearing myself say this, but before concluding the article is 'wrong', I'm inclined to explore possible alternative interpretations.
- dragonsky 15y agoI'm sorry, but here in Australia and I assume from what I hear it is the same in the US, teachers are struggling to have kids leave primary school being able to write a complete sentence and add a row of numbers. They are already being expected to impart to the kids sex education, anti bulling education, physical education, sun safe education, how to not eat too much crap and get fat education and many other things that in a normal society would be the responsibility of parents but the government now seems to believe should be imparted by the formal education system. There are many things wrong with the modern education system, and I don't think many of them are going to be solved by imposing the requirement to teach programming on teachers who in many cases struggle themselves to even turn on a computer let alone be able to make it do what they want in any meaningful way.
- moocow01 15y agoI'd agree that there is a huge disconnect between a bunch of us saying 'yes coding is a great skill - lets put it in the classroom' and the reality of the current state of education. There is a lot of sentiment about how coding is the new literacy... its not. Literacy is literacy. Math is math. You need to be quite good at both to then be able to program well.
- mkr-hn 15y agoI was introduced to QBASIC when I was little. I found (and still find) programming tedious and unfulfilling, but it did prepare me for when I needed to know basic HTML to publish a static blog a few years later. The early stuff probably wasn't essential since I would have picked it up to make basic websites and blogs later, but it might have helped a little.
- Scybert 15y agoI'm on the very low end of the intelligence scale here in the United States. I'm afraid that teaching more people to code will endanger my coding job. I'm against this idea, and will vote accordingly in elections.
- rue 15y agoThere's a huge and important distinction between “we should try to teach all kids to code” and “all kids should be able to code”, and it tends to get lost in the discussion. Programming just isn't for everyone (and that's OK), but everyone should give it a try to find out.
- rpwilcox 15y agoAgreed - we teach math in schools not to make everyone top talented Mathematicians, but to teach a skill that might be useful in life. Teaching programming in schools would probably get the same result was teaching math: courses that normal people promptly forget a year after school. Because, really, how often have you factored a polynomial? But still, you got a little taste of Math in school. Maybe you liked it, maybe you barely made it through math. Same thing would happen with mandatory programing classes. Thinking the talent crunch will be solved by teaching CS as part of mandatory education is probably wishful thinking.
- DanBC 15y agoThere's a couple of points about modern programming systems. BASIC was interpreted, and not object orientated. You'd have a book, and that book would contain every keyword, with a description of what it did, and some example code. So you'd buy magazines or a book, you'd type out the programs in those books, you'd debug what you'd typed, you'd modify what you'd done, and then you'd start creating new programs. You'd write a little program, and then realise that you needed to do X; so you'd read the book and find the instruction for X, and you'd grok the example and write it in your program and debug. Where is that workflow, that learning journey, recreated today? Perhaps with the "learn X the hard way" series? Also, most people here are either technically brilliant or at least proficient. Now imagine the general population. These are people who just don't know how to plug in a printer. (In the days when computers had parallel ports and serial ports you could not plug the printer into the wrong port. You just had to look at the cable, and look at the computer, and try to mash the connector into all the ports. It would only fit one, and it would only fit one way. Yet I was seen as some kind of genius, by more than one person, because I could plug a printer in.) Or these are people who will not, seemingly cannot, read and act upon a short simple error message. I love to think that maybe a bit of programming / coding teaching could change that, but I'm not sure it will. Finally: > Learning to code is learning to use logic and reason, and express your intent in a consistent, understandable, repeatable way. Author uses "coding" and "programming" in weird ways. Normally programming is the design process, with pseudo-code and flowcharts and jackson structured programming charts and etc, while coding is just taking that and writing it in some language. Maybe I'm showing my age and the words are now used in a different manner, but it threw me for a while.
- slowpoke 15y ago>Normally programming is the design process, with pseudo-code and flowcharts and jackson structured programming charts and etc, while coding is just taking that and writing it in some language. That sounds more like software engineering to me. Most people do indeed use the words 'programming' and 'coding' interchangeably.
- jbattle 15y agoI have a 10 year old son who seems a natural to take an interest in programming. I tried starting him with a Basic interpreter cause that's how I started, and he struggled to stay interested - largely due to the non-graphical nature of the output. The next thing we tried was Kodu from Microsoft (http://research.microsoft.com/en-us/projects/kodu/ http://research.microsoft.com/en-us/projects/kodu/). He found that enjoyable - very visually appealing and you can get something basic but interesting running quickly. Getting something moderately complex became hard however due to the limited palette of design tools. The next step was Scratch (http://scratch.mit.edu/ http://scratch.mit.edu/) which is a step down in eye candy but a step up in control. You get a lot more flexibility but it is still very approachable. Everything is visual as well, which makes it really easy to see what's happening. Scratch allows variables and lists, control flow structures, etc and thus gets into "real" programming. However, Scratch has some big limitations, especially around instantiating new 'objects' at runtime. I think the next logical step forward is Stencyl (http://www.stencyl.com http://www.stencyl.com) though there's some additional layers of abstraction that are causing a little consternation. I keep trying to push Python and Java, but for my son at least, not being able to start with something visual is a big drag. Maybe next year.
- neilparikh 15y agoI just tried out Processing [0] right now, and it seems like you get a lot of control in it, and it looks pretty good on the eye candy side too. You could try that out. [0] - http://processing.org/ http://processing.org/
- narrator 15y agoI've taught several basic programming classes. The ability to code differs wildly. Like sketch art, some people can't draw to save their life, while others do it effortlessly. Having a programming class as an elective would be good, but it shouldn't be forced on people who have no ability for it at all. Not everyone can be great at everything.
- Volpe 15y agoNot sure I buy that arguement. You wouldn't accept that if we said: Well not everyone has a "natural ability" to read, so we'll only teach the people that are show some "talent". (Quotes because I don't actually believe those things exist, you can be taught everything, and be good at everything).
- moocow01 15y agoI don't think he's saying some people literally can not program one line of code. As with everything there are degrees of aptitude based upon ones interest, personality type and cognition. This is true with every skill in life - most people show degrees of aptitude in different areas. (As a note, Ive always struggled with being good at reading since I was a kid... Im really damn slow and have a hard time concentrating)
- Volpe 15y agoSo are you agreeing with not teaching reading to people (such as yourself) who struggle with reading, because they don't show an interest/aptitude? If that's the case, which subjects are the "essentials" that should be 'required' and which ones are 'elective'? I'm not sure I think coding is up there with reading, or arithmetic... But it's probably more important than some currently required subjects.
- moocow01 15y agoEssentials are foundational subjects that have the highest probability of preparing a student to become more productive and useful to society. So your question about required versus elective courses centers around 1) what society collectively decides is useful and 2) what a student at a certain level can practically grasp and grow from. I think we'd both agree reading is an essential by this definition but truthfully socially and communally controlled influences make these decisions (thing like the economy, elections, and enrollment) not you or me. The problem with discussing this on a forum on HN is that we're all biased. We all think programming is incredibly important to society because its incredibly important in our lives personally. If you go onto any forum where everyone has a collective interest, they'll all say subject A should absolutely be taught in school because of X, Y and Z. Truth be told on a macro scale every skilled field is battling for the attention of capable students to eventually join their ranks. I think what many on HN are missing is that if your going to introduce programming (especially as a core subject) into formal education, you'll need to sacrifice other subjects to make room with the way education budgets work. Of course everyone is going to say something like oh well you should cut down on art, music, social studies etc but its not a helpful perspective unless expressed in a truly diverse forum.
- dfischer 15y agoWe're trying really hard to educate the next wave of talent... a lot of open-source community effort in the Ruby community. http://www.kidsruby.com http://www.kidsruby.com
- Kambria 15y agoCoding today is a waste of time. Everything has already been coded.
- andolanra 15y agoSo we want them to learn problem-solving (i.e. "given tools, solve problem" for any set of tools and any problem.) Given the experiences I've had trying to teach things to programmers, I'd like them to learn problem-solving, as well. Most programmers have a small tool-box of solutions (i.e. languages, libraries, platforms, &c) and the bad ones (i.e. most of them) run DFS over that tool-box until the problem appears to go away, and start quaking in terror if you give them new tools or radically different problems. Programming is a kind of problem-solving. Learning it makes you better at solving the kinds of problems it solves. I have seen no evidence for the assertion that the kind of discrete-approximation problem-solving style inherent in most programming necessarily makes you better at solving problems in the general case.
- dools 15y agoCoding is easy and can be learned in a matter of months by anyone with a basic understanding of computers. I'd rather teach my children things that get them out of the house exercising and learning to be friendly, well adjusted humans.
- billpatrianakos 15y agoSo the title is misleading. Really, he's saying we should teach our kids to think like programmers, not to actually teach them code which is a far better idea. In all honesty, people have an aversion to code like they have an aversion to anything math related besides simple arithmetic. I also disagree with his slight criticism of Codeacademy as being a place where people simply learn syntax. I was 10 years old when I wanted to know how we pages were made. I learned the HTML, then as I grew older learned the syntax. I only learned what I wanted to get something done. Eventually, through learning simple syntax I gradually began to understand the logic and theory behind programming. Of course I got much deeper into it during CS classes in college. My point is, people get turned off by code. Teach them how to print 'Hello World!' and you eventually teach them the underlying principles of programming in a sneaky way. It's like wrapping medicine in a piece of cheese so your dog will swallow it. If the dog knows its there he'll likely spit it out. The title got me angry at first. I don't think we should be teaching children any specialized skill they don't have an interest in. My father is a pilot and tried to make me like flying because of the same kind of "this is good for you" thinking but it didn't work out. Also, as far as everyone using computers but only a few programming them, I think that's fine. It's more important that people get a broad overview of how hardware and software works and thats all. Does everyone need to know how to rebuild an engine to drive a car? No. Knowing how to check fluid levels, change a tire, and filter your oil will suffice. Maybe I took it wrong but we don't need to teach our kids to code. There are a lot of ways to teach critical thinking skills (which is what he's getting at). Critical Thinking was a first year college course I was required to take. They should be teaching that course far far earlier here in the States. I was in AP classes all the way through school and even the Advanced Placement kids weren't offered a course even close to critical thinking.
- drcube 15y agoSo you don't think kids should be taught to read if they don't have an interest in it? What about math? Computing is a basic skill on the same level as math and literacy. It's only getting more important. You don't have to be an aspiring author for reading and writing to be relevant to your life. And you don't have to be an aspiring software engineer for basic computation and programming ability to be important in today's digital, networked world.
- theDaveB 15y agoMe and my son (aged 15) are trying to develop our first iPad app but he is not interested in the programming side at all. He is happy drawing out stuff on paper for the levels etc... So am not forcing the programming no him, if he has no interest. I just want him to have the experience of getting a app on the app store and knowing he was part of it. We are using the Corona SDK (in case anyone is interested). Dave
- code_pockets 15y agoThe year was 1986, and I was on my first Disney World trip. After a couple of days of traveling up and down Florida visiting the various theme parks, my parents decided to stop at a local electronics shop. Now, back at home we didn't have many fancy electronics stores, so this huge emporium of transistors was pretty amazing for all of us. My mother hinted that they were going to buy us a Nintendo (NES), and I was ecstatic. I had never heard of such thing, but seeing Super Mario Bros. on the display machine was pretty mind blowing for an eight year old. But, my oldest brother (who was a bigger nerd than me) did not want the NES. Crap. I was furious, and really disappointed. Instead, he wanted some stupid computer. It was big, bulky, ugly (light brown with black function keys!), and required a huge monitor to be of any use. It also required a disk drive (a 1541 model). Yes, my brother wanted a Commodore C64. So, my parents decided against the NES (oh the humanity!), and purchased the C64 with a 13-inch (I think) color monitor, a 1541 disk drive, and a color dot matrix Okidata printer. They must have spent like a million dollars. An amazing feat, because we were barely middle class. After learning how to turn it on, writing to the diskette, printing demo images, playing Ultima, I started to code some BASIC. Nobody taught me, I just picked the manual and started coding. My first programs were something along the line of: 10 PRINT "HELLO" 20 GOTO 10 30 END Now, for an 8 year old kid who was teaching himself how to use the damn thing it was pretty awesome to pull such simple programs. Then at age 9 I bought my first "computer", a Tandy PC-7 at the local Radio Shack (after saving my lunch money for months). Now, as a hacker/programmer/software engineer/whatchamacallit I look back at those days and appreciate what my parents and brother did. Such experience has led me to teach my nine year old niece how to "program" in HTML. She enjoys it very much, and even asked me to put Ubuntu on her desktop. My daughter will also learn how to code, even though I don't expect her to follow in my footsteps. tl;dr: Teach your kids how to code. They might go on to become hackers themselves.
- georgieporgie 15y agoI think the author has not met enough variety of people. Yes, all schools should have a fantastic Computer Science department. And it should be more than CS, it should be "doing fun stuff with computers". However, there is a very large segment of the population who cannot program. I've got a friend who's quite smart. She's charming and extremely capable at her job. I discovered that she has absolutely no ability to think in three dimensions. She cannot follow even a very simple series of motions. She parked her car near a post, came out, got confused, and destroyed the whole side of her car because she couldn't work out the spatial problem to get out. I've known people who simply cannot grasp calculus. They're interesting people who offer value in the world. Calculus is a fundamental and wonderful thing to know, but that doesn't mean everyone can or should learn it. I love programming, but I respect the variety of humanity enough to understand that it should not be mandatory.
- deleted 15y ago[deleted]
- yelsgib 15y agoYou have no idea whether the author has "met enough variety of people." You have no idea if people are innately able to program, learn calculus, or "think in three dimensions" (btw - driving is a 2d problem). I don't. You don't. No one does. We do not have a framework for discussing the fundamental (genetic) basis of human intelligence. We do not understand even its most basic components. Some people seem to have "good memories" or be "fast at computation" but that's about all we can actually, honestly, meaningfully say. Culture is so ridiculously complicated and so powerful that it's impossible to impossible to distinguish between what is innate and what is imprinted. The fact that basically no one is able to predict the intellectual abilities of future humans is an indication of this (e.g. what would a mathematician from the 19th century say about the "fundamental" mathematical abilities of his fellow humans?). The point of the article is that coding is in some sense a core/intrinsic skill. That anything you do is actually deeply tied to coding in the sense that "something you do" (technology, in the general sense) is equivalent to "algorithm." Weaving is coding. Playing a game is coding. Building a house is coding. Painting a picture is coding. Proving a theorem is coding (Curry-Howard Isomorphism). Sure, they're different, more intuitive, weird types of coding, but the fact that you can't see that they -are- coding implies a limitation on your ability to abstract the concept of "coding" sufficiently. The fact is that coding is a deeply human activity, and that by understanding coding we are really understanding ourselves and the fundamental means by which we -collectively- understand reality. The fact is that we need some shared understanding of ourselves, of our logical facilities, of the basis of our ability to produce and thrive and know how to interact with the universe. Without a shared framework, communication is useless/impossible.
- DanBC 15y agoA few people have mentioned simple computers and BASIC. They may be interested in these links. (http://hackaday.com/2012/01/23/maximite-harkens-back-to-the-days-of-basic/ http://hackaday.com/2012/01/23/maximite-harkens-back-to-the-...) (http://geoffg.net/maximite.html http://geoffg.net/maximite.html) > The Maximite is a small and versatile computer running a full featured BASIC interpreter with 128K of working memory. It will work with a standard VGA monitor and PC compatible keyboard and because the Maximite has its own built in SD memory card and BASIC language you need nothing more to start writing and running BASIC programs. The Maximite also has also 20 input/output lines which can be independently configured as analog inputs, digital inputs or digital outputs. You can measure voltage, frequencies, detect switch closure, etc and respond by turning on lights, closing relays, etc - all under control of your BASIC program. The design and the firmware including the BASIC interpreter is free to download and use.
- rayhano 15y agoWay back when, the BBC funded a programme that gave schools BBC Micro Computers and even had TV shows supporting the education and awareness... we should be embarrassed that TV today is more about the objectification of women and the whim of producers who have saturated the topics available for quality programming.