7 ms·
Everybody does not need to learn to code.
- mathattack 13y agoOf course not. And everyone doesn't need to learn how to drive. Or speak Spanish. Or cook for themselves. Or balance credits and debits. But people who can do any of the above proficiently have many doors and options open to them that others don't. And those who can do it at least a little bit can at least have some awareness for when they hire someone to do it for them.
- bobbbinsIII 13y agomost people can learn to drive, learn another language and learn to cook. a much smaller number of people can learn to code competently.
- angersock 13y agoWe should at least give them a shot and a nudge in the right direction, hey?
- rjtavares 13y agoA much smaller number of people can learn to drive like a professional driver, speak another language fluently, or be a restaurant chef. Coding isn't isn't really different from those other activities: you should learn the basics, because it will help your life, and leave the complex stuff to professionals.
- walid 13y agoTrust me, I don't cook competently, but I live alone and can get food done when needed. We don't all have to be professionals at something but we need to understand it especially when our lives depend on it. Take medicine for example, I'm also not a doctor but that didn't stop my school from forcing me to learn biology (which I loved btw) and I think we should all know things about the world when we deal with them on a daily basis. I also didn't major in electronics but I still know better than showering and cleaning the innards on the hair dryer with water while it is plugged in. It is the mentality of imperative knowledge that should be considered when talking about teaching programming. Not the idea that all people should know how to compile Linux.
- mathattack 13y agoYou caught my spirit perfectly. A little biology knowledge can help interacting with a doctor. It's silly to assume people should know how to compile their operating system, but an appreciation and understanding for how data is aggregated and manipulated is useful.
- whathre9 13y agoOnly a small number of people might be coding competently currently, but that doesn't mean only a small number CAN. There is nothing special about programming; like learning a language, it is very possible to become competent, and anybody who is not mentally delayed can do so - it just takes effort. If you can code competently well done, but don't think yourself special.
- bobbbinsIII 13y agocoding competently requires intelligence and attention to detail. you need to be smart not just "not mentally delayed".
- mathattack 13y agoNot everyone needs to code competently. Just like not everyone needs to speak Spanish competently. (Or can learn other languages competently) But... Learning a little Spanish can increase one's appreciation for Spanish culture. Even attempting to learn some programming can make one much more effective when they hire or direct a programmer, or engage in discussions about online privacy, or ask someone to help analyze a problem.
- aim-120 13y agoExactly. http://www.codinghorror.com/blog/2004/09/skill-disparities-in-programming.html http://www.codinghorror.com/blog/2004/09/skill-disparities-i...
- bobbbinsIII 13y agosomewhat strange that this was downvoted. some people are obviously incapable of facing up to reality.
- gus_massa 13y agoYou just forget reading and writing. A few centuries ago most of the people couldn't read and write, and it was not clear that it was a good idea to extend that knowledge to everyone. "But people who can do any of the above proficiently have many doors and options open to them that others don't. And those who can do it at least a little bit can at least have some awareness for when they hire someone to do it for them."
- npalli 13y agoWell atleast the guy training others in the opening picture needs to :-). He is mixing cases in javascript (defined TXT and doing txt.toLowerCase()). Perhaps an HTML dude who is doing javascript.
- warmwaffles 13y agoglad I wasn't the only one who spotted this.
- nlh 13y agoHeh - I spotted the same thing and immediately assumed, perhaps naively, that he was pointing to an example of something that was a mistake ;)
- da02 13y agoThere's also the use of document.writeln. I'm no JS expert, but... I thought that was a big NO-NO.
- cruise02 13y agodocument.writeln is generally frowned upon in production code since there are better ways to manipulate a page using the DOM. I still see it used occasionally for debugging (although even that usage is disappearing, as most browsers have some form of debug console available) and in tutorials and books for beginners. Here's a Stack Overflow post that outlines some of its pros and cons. http://stackoverflow.com/q/802854/1288 http://stackoverflow.com/q/802854/1288
- geekbri 13y agoI used to work for the company that started this initiative. It's all just marketing fluff. A friend of mine who was there during the entirety of this initiative said that out of the 30 ish people who were forced to do this only 1 took it seriously. He also felt it was a severe waste of the engineers time.
- kailuowang 13y agoIMO, one of the main benefits of everybody learning a bit computer language is so that they can understand better how computers think, which is quite different from people. In an age when people are starting to interact with computer more than with other people, it's certainly valuable. I don't worry too much about novices building shitty things, because debugging crappy code takes way too much energy then learning the language, from my knowledge, nobody enjoys that unless they get paid. And IMO corporations hiring crappy programmers is a problem that has nothing with everybody learning to code.
- michaelwww 13y agoI think you make an important point here. People should understand basic math and basic programming, if only to protect themselves from charlatans. If more people understood basic financial math we wouldn't have as severe a credit crisis as we had recently. People would have understood the risk in all those crazy loan offers (no income - no money down - no problem!) Congruently, when companies of the future say "trust our computers, they're artificially intelligent" people are going to have a little knowledge to base that trust on.
- danso 13y agoThis is one of the better essays arguing against "learn to code" because it actually acknowledges that there are real benefits to learning coding that don't relate to working in an IT job, just as there are real benefits to learning to write that don't relate to being a published author. But I disagree with the notion that, as the OP states, that learning to code is futile because "most who “learn to code” will end up learning anything that sticks." One of the most common niche phone apps I've seen used day-to-day, among my peers, are apps used to calculate tips from a bill. Even though the math needed to do so is trivial: it's literally a concept mastered by fourth or fifth grade. Yet these tip-calculating apps are popular. Obviously, math is not something that "sticks" in a practical way with most non-STEM people...yet, why do we bother spending roughly one-third of the K-12 curriculum teaching and testing it? Well, from my layperson's viewpoint, I'd argue that while many people lose the ability to do math, they at least understand that it exists. They may not be able to multiply 0.15 or even 0.20 against a whole-dollar amount in under 30 seconds, but they at least get the concept of percentage of a whole, and, if there are multiple diners, the concept of division and order of operations (you want to divide the bill after adding the tip). Would they understand this without any education in math? I'm just a layperson but I'm guessing that such a concept could be totally foreign to someone who has never learned division. At the very least, if such a person were given a malicious app that incorrectly calculated the tip (on the order of 2 to 3x, in favor of the server), that person would have no idea that they were being fleeced. So I think that it's too early to give up on coding just yet...there's a middle ground between baking out a skeleton Rails app and having done enough code to understand logic and computational thinking for the rest of your life.
- bluedino 13y ago>> They may not be able to multiply 0.15 or even 0.20 against a whole-dollar amount in under 30 seconds I don't know how you would even need 30 seconds to do this. Lets say our bill is $62.50. Finding 20% of that is simply multiplying that by 0.20, which is also just multiplying by 2 and moving the decimal point over on stinking place. 2 * 62.50 = $125.00 ~ 12.50 It's that simple. I don't even think about it. Maybe people just see '20%' and that scares them. Maybe that's where the problem lies. Your average non-coding person might spend all day trying to figure out how to sort a list of names but it would come naturally to a C+ programmer like myself, and come even faster and in a much better algorithm/implementation to someone who's a good programmer.
- freyr 13y agoEvery student should have, at least, exposure to coding and the opportunity to learn it. This has not been the case in my lifetime. In middle school, a special instructor was brought in to teach programming to the GATE kids. She decided she could only handle one student. So out of the entire class, only one kid was exposed to programming in school When it was time to enter high school, there were two public schools in the area. One had an AP Computer Science class, but the student body was notorious for its high rates of drug abuse. My parents stuck me in the other, which offered no programming classes at all. In college, I applied to be a CS major, but I was required to choose a second major since CS was impacted. The school admitted me into my second choice of major. Despite pleading my case with the CS department and arguing with the provost after I enrolled, I was unable to switch into the CS major or take CS classes. I don't mean to whine. I'm sure I had it a lot better than many self-taught programmers. And maybe if I fought harder, I would have gotten in. But the education system did me no favors in learning CS. And when I see politicians and Silicon Valley billionaire executives lamenting the lack of skilled programmers in the U.S. while doing nothing effective to fix the problem, I have to roll my eyes.
- the_watcher 13y agoExposure and opportunity are the keys. Not everyone should learn to code, but everyone should be exposed to programming and given the chance to pursue it. Replace the year I spent learning cursive with a programming intro.
- gee_totes 13y agoI'm the opposite. Judging from my whiteboard handwriting, I wish I spent more time learning cursive.
- throwit1979 13y agoSorry, I don't intend to cast aspersions on your upbringing, but why does class availability matter at all to this discussion? Myself, and everyone in the small group of middle school kids at my school who were interested, learned programming from books. Our school was extraordinarily poor, so the whole notion of CS classes was laughable.
- samatman 13y agoDisagree. Everyone needs to learn to code. I was taught long division as a child. Didn't like it; who does? Nor do I use it. But... When I was 15, I finally got a chance to study programming. One of the first things our professor showed us, was how to do string-based long division, with a computer. The enlightenment was profound. Why was I doing this, when everyone else was learning to symbolically find quadratic roots on paper? Why do we teach algorithms for years, and never, ever teach Algorithms if you don't specifically ask? Why is Al-Khawarizmi's legacy in education Al-gebra, and not Al-gorithms, which are actually named after him?
- samatman 13y agoLet me elaborate. Anyone who has participated in the math education of a child, or remembers being one, has heard the compliant "But I'm just going to use a calculator! Why do I have to learn this!" Currently, the answer is "if you want to get into college / learn more advanced things, you have to learn to do this, all by hand." The answer should be "Well, if you want to get into college, you're going to have to learn how to program that calculator yourself. So you need to understand how to do what it does, or you can't tell it what to do". The difference is huge.
- deleted 13y ago[deleted]
- ethanbond 13y agoBoth answers are either incorrect or inapplicable to a large portion of the population. The real answer has always been that you need to learn intuitively what "division" actually means, and we have no clue how to teach that, but doing it by hand seems better than the alternatives. I'm not sure if teachers just choose not to phrase it this way or they don't know either (in which case the real reason is because they were told not to allow calculators). But calculations are easy. Intuition is hard. Until we have better ways to teach intuition, I'm afraid we'll have to keep trying to let kids build it via forcing a slow-down of the thought process by having them do it by hand. A better example would be integrals and antiderivatives. One can certainly learn how to "find the integral" just by using antiderivatives. One could learn how it applies to the real world, as well. "A ball is moving at 30m/s for 10 seconds, what distance did it travel?" Increment the exponent, divide the coefficient, plug in X. But then kids approach, say, revolutions of solids. Suddenly, due to the way they're taught, they think that there are different formulae for rotating about the x and y axes. If they're taught how to construct the Riemann summation from scratch, see the relationship between that and integrals, and see the relationship between a curve and its revolution, I think that's when they start to get the idea of what an integral (not an antiderivative) really is. It's the difference between saying: I want to find the volume of y = x^2 rotated about the x axis. I have the function and I know I need to multiply it by the formula for a circle and then integrate it. vs I want to find the volume of something. I can describe each point on the cross section. Each item in the summation can be described as circular. I can describe all of these circular sections at once by adding them all together. The integral is that sum. I can find that integral by finding the antiderivative of the original description. Which seems more "true?" Which is more difficult to teach? If kids always used calculators to pursue question 1, they'd never arrive at the problems that would let them arrive at question 2.
- zeckalpha 13y agoThe ability to program is the literacy of the millennium. One thousand years ago "Everybody [did] not need to learn to read", yet today, many countries have a near 100% literacy rate. However, I don't think we need to force today's programming languages upon people. Let's invent the printing press of programming languages, making the cost of learning to program much easier. (IFTTT is working on this.)
- cgore 13y agoThe best example of this are spreadsheets. There are plenty of people who don't think they can program and don't think they have any need to program, but will write some really insane things in Excel. They just don't realize what they are doing is programming, poorly. The great advantage of computers isn't "better TVs", it is that they are "compute-ers", and anybody who has an office job has a real use for one.
- cruise02 13y agoView the article on one page. http://www.slate.com/articles/technology/future_tense/2013/08/everybody_does_not_need_to_learn_to_code.single.html http://www.slate.com/articles/technology/future_tense/2013/0...
- tbirdz 13y agoPerhaps learning to code shouldn't be required for the general populace, but maybe it should be in higher education, perhaps just for a scientific degree?
- garg 13y agoProgramming is problem solving. Fine, don't learn how to code, but how about learning how to solve problems? And learning how to code is certainly something that can assist in learning how to problem solve.
- fournm 13y agoI'm more in favor of everyone learning CS theory (primarily logic really and anything else would just be icing on the cake), which would be a more transferable and honestly useful skill. As it is, the most states try to bake learning how to write formal logic proofs into geometry and they do it fairly poorly.
- agumonkey 13y agoMaybe not domain[1] specific languages, but recursive logic is cleansing for the mind. [1] if by 'learning to code' they mean 'call a few ad-hoc libraries to process and format strings into <foo> concrete syntax' then I'd say it's domain specific and it's useless outside the current trend.
- jliechti1 13y agoFrom a practical standpoint, I really wish everyone was taught enough programming to know how to automate basic manipulation of text data. I see way too many people editing long lists of data by hand, when there are much better ways to go about it (even Excel works great for this kind of stuff). Just knowing this setup below can let you do some really power automation of manual tasks and can save you a lot of time. Example template in Python: import csv with open('mydata.csv', 'r') as csvfile: reader = csv.reader(csvfile, delimiter=',', quotechar='"') for row in reader: # Data manipulation here
- wry 13y agoI agree, basic scripting and automation would be more useful to the general population. Rather than just learning to code, I think that many people people could benefit from learning how to use technology first, include some theory and logic courses that lead into CS.
- Jach 13y agoI have more or less the same viewpoint. There are big gains if everyone understood how much time code loops can save, and if they started to see the areas of their lives where a manual task could be cast into an automatic task without much work. But this suggests a different way of teaching intro programming, one that is more tool-based than concept-based, a way that's about searching for the existence of a tool and then finding and reading its documentation or examples so that one can use it in a simple, encapsulating control program. If you don't know about the existence of imagemagick, are you going to think you can loop through all the images in a folder and resize them, or extract a subimage from them, or something else, without having to write a ton of code? Maybe not, but you might search for a command line program to do the hard part and discover the tool, or it might have been part of an intro programming course focused on "look at all the neat things general computers can do to save you time if you have this problem". Same thing with Python's csv module, which someone who has used Python for over a year in a CS class may not have even known was there all along. There are lots of powerful one-liners and small code chunks that deserve a lot of respect since they can save so much time.
- Dogamondo 13y ago"Everyone should learn how to change a tire". That was what was lamented when I was a kid, so we learned it in boy scouts. Let's take it a step further... "Everyone should learn how to change a cam-belt", "Everyone should learn how to perform a basic car service"..."Everyone should know how to rebuild an engine". How far do you want to take it? I agree with the OP, moreso nowadays that we move more to consumption based computing devices. To continue my analogy of the motor car to coding, to me both are really on a 'need to know basis' in the modern landscape. You don't really need nor may be able to easily learn the intricacies of how your car works these days as they're a lot more sophisticated than the vehicles of yore and they're also lot more reliable when it comes to their intended purpose. Does operating your iPad need anywhere near the learned skill of running programs on the C64 of yore?
- walid 13y agoThe thing is you are taking the learning metaphor a step further every sentence. You do need to learn the basics of maintaining a car if you own one. You might need to know about changing tires and also making sure the radiator has enough water in it. These are basic things and equally apply to computers. Not because you need to build a car or compile a computer program but because without basic education you don't know how to properly manage the computer like you do your car. Can you also imagine how much less bad computer laws will exist if lawmakers knew a little bit more about computers rather than rely on trial and error to get things right?
- jusben1369 13y agoLet me ask, earnestly, why is learning to code better or more important than: - Studying medicine at school so you can avoid engaging with the expensive medical system for all but the most critical issues? - Studying law so that you understand how to read contracts and understand legislation? Mathematics and language are the building blocks of programming. We study those. Going further upstream into the outputs of those disciplines (medicine, law, computer science) to pick compulsory topics doesn't strike me as making much sense. Also, how do we reconcile this with the emphasis on design whereby the concept of the underlying nuts and bolts should be abstracted away from the end user? (two very separate questions I know)
- Volscio 13y agoI would figure a lot of what you pay a lawyer for is not making sure you understand the contract but a) to save time and b) to have someone who's in the profession and knows the legal quirks, loopholes, and procedures. I would figure a lot of what you pay a doctor for is not to mend every problem you have with your body to but to ensure that it's done timely, safely, and with the least amount of risk/damage/scarring/whatever as possible. Yeah you could probably do your own surgery but why? Learning to code is hardly as serious an undertaking and yet it teaches you how to think about solving a problem, estimating time to solve that problem, and reducing the amount of time needed to create the solution to that problem. It teaches general problem-solving skills and at the very least can lead to recreational uses (building small games or family web sites). I think problem-solving is probably one of the most important skills one needs in his toolbox to succeed in life and so why wouldn't it be taught as early as children can comprehend it?
- jusben1369 13y agoHey Volscio thanks for that. I agree that problem solving is great skill to have. Philosophy long filled that role but has fallen a little out of favor. I studied it (minor) at University and many of the lecturers pointed out (mostly in a hope to keep us engaged and motivated) that some of the world's best philosophers make a small fortune on the side with paid engagements for large corporations. Corporations literally give them problems that they cannot solve in terms of the market and philosophers solve them. While somewhat skeptical at first I was ultimately very impressed with how philosophy taught a disciplined approach to problem solving
- FunnyDuck 13y agoAgain a pompous article trying to make an elite of the coders with an academic degree vs the self-taught crowd. Many excellent programmers I know are self-taught and due to their passion for working with code, they are much better than their 'full of degrees, certifications and diplomas' counterparts.
- daja 13y agoA lot of school kids don't even have basic math or writing skills. I see the geek appeal of everyone learning to code, but it's really not practical. There are far greater concerns. I think a personal living class should be required. Kids don't know anything about opening a bank account, loans, renting an apartment, etc.
- codegeek 13y ago"does not need" can be applied to pretty much everything. But the point is not that. The point about learning to code is simple: It is definitely one of the important drivers of the next few decades. 100 years ago, most people could not read/write in many parts of the world. Today, thats not the case. Why ? Because reading/writing is an important part of how we live our lives today. Same with computers. Yes you don't need to learn how to code and still know how to use a computer. But that is today. Who knows 20 years down the road, coding (at least some kind of hacking) will be part of what we do on a daily basis ? Food for thought!! Learning to program also teaches you a thing or two about problem solving and critical thinking. I have a 5 month old daughter. Guess what I will get her to play with as soon as she is old enough to start hitting the keyboard ? Yep, it will be programming.
- crazygringo 13y agoNobody needs to learn how to code, any more than they need to learn contract law, or organic chemistry, or welding, or music composition. People talk about code "literacy" as though it's the 21st century equivalent to reading and writing, but this is crazy -- even as a programmer, I don't interact with any of my devices via code. Being a programmer doesn't help me troubleshoot Windows or get my printer working. I don't configure my apps on my iPhone using code; I use their preferences screens. I don't have databases I need to query using SQL, anywhere outside of my job. Programming is a profession, period. It's not a generally useful skill like riding a bike is. It can be useful to teach in schools, but only in the same way high school chemistry is -- not so the general population learns it, but just so the students who might want to choose it as a career, have enough of an initial taste of it to realize that.
- mistercow 13y ago>Being a programmer doesn't help me troubleshoot Windows or get my printer working. I think that is partly an artifact of closed source OSes. When I used OS X, I almost never fixed a problem with programming (other than a problem like "I don't have a program to do this"). Having switched to Ubuntu, I actually have found programming to be a useful way to work around problems. Sometimes there's a "right" way that involves digging through documentation to find some random option, and an easy way that involves writing a shell script. >It's not a generally useful skill like riding a bike is. I totally disagree. It's not as useful as riding a bike, but it's certainly useful even when not used professionally. I recently was working out a recipe for a "one food to rule them all" inspired by soylent, and I wrote a program to calculate the ingredient proportions. It had nothing to do with professional programming, and it was incredibly useful.
- jjtheblunt 13y agoThe title is crap English, but common: ignorance of De Morgan's laws means the universal quantifier "everybody", in its position relative to "not", means no one should learn to code. (Engineer with a Germanic Linguistics minor pet peeve.) The proper wording for what the retarded author intended (it's Slate, after all) is "Perhaps not everybody needs to learn to code" or similar, but the not needs to negate the universal quantification. Because negation is not commutative with quantifiers, what the title says is not the same.
- qu4z-2 13y agoTechnically it doesn't mean "No-one should learn to code", it means "No-one needs to learn to code."
- kyllo 13y agoI would say that not everyone needs to learn to develop software. Software development is a sufficiently difficult and complex job, that is best left to trained experts who do it full-time. But everyone should learn how to use their computer effectively. Everyone would be better off if they were a "power user." And in the current state of computing, the complexity of computer architecture is not yet sufficiently encapsulated as to render it unnecessary to attain basic competency in some programming language in order to achieve that. In other words, in order to leverage your computer's full power, you need to learn some scripting language and be comfortable operating your computer from a shell (be it bash, cmd, powershell, whatever). Most people don't seem to have a clue how many degrees of computer literacy there are. The assumption seems to be, that you are either "computer illiterate" (which means you are an old person who hunts-and-pecks at the keyboard, double-clicks everything, and can at most use "the Googles" to do a search), or you're a "normal person" who can touch type and operate a GUI and maybe do basic formulas in MS Excel, or you're a "geek" who can read and write any type of programming code, build me a website, fix my internet connection, disassemble and repair my computer hardware, etc etc and you probably slid out of the womb knowing how to do that stuff. Yet somehow, you are still only making a modest hourly wage working at the Genius Bar or the Geek Squad. Where most people really should be is somewhere in between the "normal person," GUI-only level, and the imaginary super-geek, computer whiz level.
- jmilloy 13y agoThe logical fallacy here is arguing a general statement using a specific/narrow instances of it: "learn to code" is a very broad statement, and the differing opinions seem to stem from choosing (different) specific meanings. When someone says "everyone needs to learn to code", they probably don't mean that everyone needs to become an expert. It's the same when we say "everyone needs to learn math" or "everyone needs to learn how to write." On the other hand, when people say that "no, everyone does not need to learn to code", they tend to compare learning to code with software development, graduate level physics, etc.
- walid 13y agoTotally agree. Programming should be in the school curriculum just like any other subject. Not everyone is going to be a coder, doctor, engineer or lawyer but we all need to know some (not extensively though) basics of each profession.