7 ms·
Reading, Writing, Arithmetic, and Lately, Coding
- lifeisstillgood 12y agoWe've said it before. We will say it again: Programming is the new literacy for the 21st Century. Charlemagne was the first and only illiterate Holy Roman Emperor. This current generation of business and political leaders are the only generation that can remain software illiterate. No, We wont expect Fortune 500 leaders to do production coding but we don't expect the Managing Editor of a newspaper to write articles either - but they must be literate as well as everything else expected.
- dave_sullivan 12y agoAgreed. People think of the application of software and automation to every facet of our lives as an industry (tech) when really it is a new industrial revolution. We're undergoing a major shift in how people will work in the future. "I'm not good with computers" will be the 21st century equivalent of "I can't read good"
- lostcolony 12y agoOr, "I'm not good with computers" will be the 21st equivalent of "I'm not good at math". Meaning LOADS of employed people will be saying it. The real benefit of programming for non-programmers is being able to break large problems into small, solvable ones, and logically assemble those small solutions into various larger ones (even outside of the original problem; code reuse, as it were). This is a skill you can learn a myriad of ways, but computing is perhaps the first time we've had a mechanism by which you can directly practice it in a non-contrived, endlessly extensible manner.
- thesimpsons1022 12y agocan you explain why? i think as we progress most things will "just work" and coding will become easier and more fluid meaning even less people need to know how to code.
- lifeisstillgood 12y agoNah... not at all. We are moving away somewhat from the "need to understand the underlying machine architecture" of 80's coding, but most things will not "just work" and they will not just work for various hard to understand reasons (the encrypted wifi link to the UAV might be affecting the rendering on the CV library...) - and everything will get further away from someone who cannot use a keyboard. THink perhaps less "new literacy" and maybe "new car driving". But I feel literacy is more the thing.
- thelastpizza 12y agoDisagree. What we call coding today will have virtually nothing in common with what they call coding, if they do at all, at the end of the 21st century. Just look at tools like Parse or Visual Studio Code Search. The future is going to be very, very different from the present.
- johnnygleeson 12y agoAgree with the premise but the article lost me at " that might someday lead to.... instant riches."
- mantrax5 12y agoUltimately it all comes to cybernetics. Understanding how systems work, understanding how to change systems, and how to design new systems. Not about programming itself. We were designing systems for millennia before computers existed. All the basic algorithms we use in programming today were invented before computers. Computers just happen to make systems a lot more reliable, performant and scalable (if designed right), since computers have evolved to complement us (i.e. we're bad at what computers are good at and vice versa). I don't think programming is the new literacy, I think understanding the common principles that tie system behavior together has always been the highest form of skill for any human to possess. As for turning a system design into code, if you know how to design the system on a higher level, you can always delegate the "boring" act of coding itself. I'm a programmer, but I understand that the act of programming by itself, even though I find it enjoyable, isn't that interesting on its own. It's only interesting in terms of how the program I'm writing connects to a system where the real world and real people are involved. All programs, with no exception, either interface directly with people, or interface with other programs that do interface with people. Currently we conflate programming with the act of designing systems (algorithms, design patterns etc.), but I expect sooner or later system design and programming will split into separate "trades". Would it be a resurgence of cybernetics, or a brand new branch of science, I don't know. But it'll happen. And it'll be good, because many programmers use computers as their golden hammer of system design, and it's hardly the only component of a good system.
- graycat 12y agoYou have unusually good insight. > Not about programming itself. Basically correct. So, the grades 1-8 or so work in 'computer science' will be of questionable value. E.g., my wife had no background in computing at all. I taught her programming at the level of if-then-else, do-while, allocate-free, call-return, try-catch, plus quite a lot in about a week. Then I gave her a lecture on 'rule-based', 'expert system', 'artificial intelligence' (AI) programming, and right away she wrote a nice, first program. I gave her a second lecture, and right away she wrote the best, early AI program I and my research group ever saw. No biggie. For 'computer science' in grades 1-8, looks like mostly a waste of time. > All the basic algorithms we use in programming today were invented before computers. Not really. E.g., there are books with collections of algorithms by, say, Knuth, Sedgewick, and others, and more on, say, error correcting codes and how transactions work in relational database, that really are "basic" but were invented just for the world of computing and digital communications.
- dasmithii 12y agoAs essential as computational literacy has become, I feel a bit uneasy here. Take mathematics for instance. What students learn in school is important, yes, but it causes a hatred toward math in general. In a typical high school, 90% of kids dread Algebra, Geometry, and PreCalc. These classes are miserable to them, and consequentially, they associate mathematics with their aversion from imposed education. Because of this, the wonderful world of numbers is reduced to mere repetition. For those who appreciate the beauty in mathematics, this must be depressing. I'm afraid that CS may have a similar downfall if we mandate programming curricula. Maybe a more subtle approach is necessary.
- maxerickson 12y agoThere should be a nonacademic track in math education, starting around 8,9, or 10th grade. It would focus on things like demystifying probability and balancing check books and other things that sort of fall under numeracy. I realize lots of people will like to complain that those aren't topics for school, but the current program in the U.S. is anyway watering down the academic track. People that have not yet seen any beauty in math would get much more value from practical lessons designed to mostly be engaging than they get from suffering through abstract math that is mostly designed to be foundational.
- jaredsohn 12y agoMy high school had such classes; is this not standard?
- derwiki 12y agoI can't tell if you're seriously asking. But yes, tons of schools (in the US) are sub par, especially once you're one hour removed from a major city. From what I hear from cousins in West Virginia, it's actively getting worse.
- jaredsohn 12y agoWhether schools are subpar is a separate question. I am saying that if you were in my high school and weren't expecting to go to college, there were courses designed for you across all disciplines to teach you practical life skills. However, I do think the school still required students to struggle through at least some of the standard curriculum.
- bsaul 12y agoAs a sidenote, France happend to have exactly this teaching programs in elementary schools in the 80s. We had a language called "LOGO" running on thomson mo5. Instructions where "move the tortoise 20 front", then "rotate tortoise 90°", etc, and we would do pretty graphics on the screen and be happy. Or at least that's how i remember it. A friend of mine who's now an history researcher told me recently how that thing disgusted him from computers for 20 years.
- wallflower 12y ago> A friend of mine who's now an history researcher told me how that thing digusted him from computers for 20 years. Can you please elaborate? Was it the infantilism? Or something else? Does your friend pursue coding now? Logo and other "beginner" languages are more about introductions to using computers to create, not about teaching programming.
- xmonkee 12y agoCan be a couple of things 1. It intimidated him. Happened to some friends of mine. 2. He realized history is better than writing procedural code . Should have learnt haskell
- fredgrott 12y agono opposite..lookup learning theory.. MIT, etc LOGO was crated as part of the new learning theory explorations at MIT and else where during the 1980s.. But in your friend defense Logo was designed for kids at a certain mental age...obviously your friend was beyond that age when exposed to LOGO
- graycat 12y agoEasy enough, but the bottlenecks remain: (1) What real world problem to solve. (2) For a challenging problem, how the heck to solve it. (3) How to cut through by far consistently the worst writing anywhere in civilization -- documentation in computing. E.g., I'm still mud wrestling trying to figure out why: (A) In program A, serialize an instance of a class. The result of the serialization is a byte array. (2) To check, in program A, deserialize the byte array and observe that do get the original instance back. (C) In program A, printout the byte array as hex. Transmit the byte array to program B. In program B, print out the byte array in hex and observe that it is just the same as it was in program A. (D) Deserialize the byte array in program B and observe that the operation ends with and exceptional condition. Why? Documentation clear as mud. Just for my basic work, I have about two cubic feet of books, nearly all badly written, and 5000+ Web pages of documentation illustrating much of the worst mistakes in technical writing. The bad documentation is by far the worst bottleneck. The whole thing, the industry and the science, needs to take Technical Writing 101. First lesson: A word used with a meaning not in a standard dictionary is a 'term', and never but never ever, not even once, use a term without a prior clear definition with motivation and likely examples. And, for such definitions, sure, use hyperlinks. (5) Organization and management of computing projects involving teams larger that, say, half a dozen people. (6) Computer system construction, installation, configuration, backup and recovery, monitoring, management, and administration. (7) Security.
- imjustsaying 12y agoAbout 10 years ago, I took a Computer Science AB AP class my sophomore year in high school. It was all in Java. Man, that was head-slammingly difficult for an intro course. The prereqs said only a knowledge of Algebra was required. But it took a lot of time to get used to. The only kids who did well were the ones who had already been programming for a couple years. I didn't even know how to do command-line prompts in windows. I remembered a few things back when I had to use MSDOS to fire up games, but that was about it. That all being said, I sincerely believe everyone should learn how to program. And I furthermore sincerely believe the public school system should stay as far away as possible from trying to impose a model for a one-size-fits-none way to do so.