Programming is a good hobby. I don’t see anything wrong with everyone learning the basics of programming. I think it will help make people into creators rather than just consumers. It’s a completely different mentality.
Learning to code forces you to learn how to solve problems. If you take a coding class even if your intentions is just to acquire a skill to show off rather than becoming a programmer that class still forces you to think algorithmicly.
It is obvious to me how being a skilled reader, a skilled writer, and at least high school level math are fundamental to performing the job of a politician.
It is obvious to me you never heard of Italian politicians… or any other high-level, white-collar job, for that matter. Just part of the reason why my country is on its way to disaster, slowly but surely…
I work in the electrical business, and am a self taught hobbyist ‘programmer’. I have created a few websites, handy programs for my job, etc. Under qualified job candidates is a universal problem across all business. You would think someone attempting to work in the electrical business would know what Ohm’s Law is, or at least has heard about it. This is simply not true.
I would not discourage anybody from learning anything, especially programming. Programming has helped me think about my job in different ways, and more logically also.
People are not attempting to find programming jobs for the pay. Quite frankly the only reason I do not change my career to programming is the entry level pay is less than half what I make now. I simply cannot afford it!
And your suggestion that someone not learn coding is elitist in my opinion. This is the U.S., anybody can learn anything they want to learn if they only apply themselves. There are so many resources to learn programming on your own, I personally think it’s one of the easiest things to learn.
This is a collection of sophisms except on one point: you’re right that software is solving problems, but you can’t reduce it to that only. Before anything else the aim is to create a product to sell (very few companies live on only solving problems, most live by selling products). In the process of creating a feature for a product, problems arise that need to be solved and some code to be writen.
All the rest are more sophisms (a synonym for BS)… for example: Bloomberg woudn’t benetis from coding??? Apply this to other fields than coding, for example reading and you get: reading is not useful/beneficial to anyone because some great people didn’t know how to read but were damn successful!
You say that learning to code is synonym of two week bootcamp. You should compare apples with apples: learning to code mean spending years at university and doing at least one training. You’re generalizing on something marginal such as finding a job after having done a 2 week bootcamp.
You missed the obvious: what people learn is not how to code using a language, it is learning how computers work, from databases to Unix and object oriented paradigms to name a few. Newbies that have learnt all this
background necessary to software development will necessarily do better than ones who didn’t, all other things being equal.
^ learning how to fix plumbing issues, while anecdotal …is a valuable skill…
Inspiring a generation of independent, critical thinking, problem solvers to rise above the consumer-centric, button-pushing masses… Is one reason I encourage anyone interested to learn code.
Isn’t the ability to think logically a prerequisite to being able to successfully code/program. Actually, isn’t logic needed for any job? If there is a concern that youths aren’t learning how to think logically, how about modifying elementary, middle, and high school curriculum to include logic classes? I’m not so sure just learning to code is the answer.
Just saw this after being linked to a tweet. Good article. I think the main problem is that everyone thinks that learning to code is just learning how to write some isolated program in some high level programming language. But any professional knows that software is so much more than that.
You’re right to say that coding isn’t an essential skill like reading, writing, math, etc. Yet, I still believe that programming needs to be taught better and be more available. Music, art, biology, chemistry, physics are all required to be taught in school, but none of them are essential. Also, everything points to the world needing more skilled software developers (emphasis on skilled). Software engineering also holds a more special place in my mind than other engineering disciplines (not saying that other engineers are less important). Software has a major social impact. It affects the way we communicate and live our lives. There’s also unlimited potential to software. We are essentially building our own world with software. For the other engineering disciples, you can build a bridge but a bridge can only be built so well and it can only have so much of an impact. You can design a pair of headphones it’s only a convenient way of listening to things well without others hearing. You can create a cool computer, but it’s all the software above it that makes it useful.
I’m not sure how software should be taught better. But I’m pretty sure it could be. Maybe the basic high level concepts should be taught in high school/college. Like how programs are compiled to machine code which is ran on a processor. Or how TCP and IP protocols are used to send data across an internetwork in a standardized way. I don’t necessarily think that a student even needs to start learning software by learning how to code in a high level language.
Maybe the computer science disciple needs to be split up in colleges. In most cases, there’s just one degree: computer science. Computer science is becoming too all-encompassing in a world where software is becoming extremely complex and important. Maybe there could be one specific degree of computer science that’s focused on theory where math and algorithms and theoretical applications (machine learning) are important. Another specific degree could be focused on systems where compilers, kernels, networking, databases, distributed systems are important. And there might be other topics/degrees that I’m missing. I don’t think anyone can or should be responsible for having an in-depth knowledge of all areas.
In conclusion (TL;DR), I think the public’s belief that everyone should learn to code is naive and that you bring up good points to why not everyone should learn. But it brings up an interesting question of how software should be taught.
I think it’s a good idea for everyone to learn to code as it helps one in all aspects of life. Your basics in general becomes logical everywhere.
BUT…Do it with humility, gratitude, kindness & Respect!!! Know where you can help…know where you cannot & bow down of situation
I have seen people who tried to learn coding, but just moved on from language to language as it was apparently not for them , read lot of Wikipedia, they are in good post (as in programmers working under them, for them), think they know more than they actually do, poke their nose in matters they think they have understanding for, blaming open packets for bugs (??? I have know idea (-) ), and just make life hard for others…
LIES Coding is awesome
So this article is news again…
And already a response
I just discovered this post, but man is it ever needed, and such a good point, and well-articulated!
ACM represents itself as the foremost computing society, and promotes coding education in all school grades! Ack! It might expand the market for us, but note that most of the leaders and candidates for official positions are academics.
I’ve taught programming, I love teaching it, but some of those “kids” should not be coding. I’ve also met a bunch of people where I work, even in IT, that said they didn’t want to, could not do it. Few “gamers” code, one told me he didn’t have the patience. Gotta debug that guy!
Teachers themselves do not understand what they will be teaching kids in the future:
We should be teaching open minds and research skills. People of the future will pick things up as they need them.
Gamers don’t have the patience. Some programmers should NOT be.
That’s what I thought when I saw their push for this.
True that ACM is driven almost always by academics. Ouch! Good marketing ploy for academics!
Hi. I think that the point of learning to code is like the hype of “Design Thinking”. It is an archetype for very important skills like solving problems and the hability of self taught, research and to find the right solutions.
I am one of these persons who once thought that should learn to code, but in the essence I want to learn solve problems like a programmer.
Maybe by learning to code, we learn a little bit about this “Code Thinking”.
I agree with this.
I worked as a programmer in the 1990s. Prior to that I programmed as a hobby, and afterward I continued to program as a hobby. My day job now is to work as a plumber.
This is a long thread with hundreds of replies. I didn’t read all of them — I don’t necessarily expect people to read mine either — there is a lot of redundancy in here.
I think that the world is full of people who do sloppy thinking and fail to understand the world around them. Mathematics, statistics, programming, etc., are all ways to understand the world around you.
One problem people have is the failure to understand that growth may be (usually is) exponential, but rather to assume that growth is always linear. Also, many people have a really bad understanding of magnitude; you don’t have to do exact calculation a lot of time, but just knowing the general range of your numbers (within one order of magnitude) is crucial. A good book is: “The Logic of Failure” (Dietrich Dörner). This book describes a game in which the player is given foreign-aid money and is charged with the task of improving a fictional African country. Pretty much every player fails badly. They improve food production (drilling wells to irrigate fields) and health-care (buying medicine) linearly, but population grows exponentially, so pretty soon they have famine and plague. The situation previously was unpleasant, but at least it was sustainable. After the “help” has been applied however, there is catastrophic failure and the entire population is dead. BTW: the reason why primitive people sacrifice virgins is to prevent them from having children. To say that they are superstitious idiots who worship a “volcano god” is not really true. They are flattening out the population growth curve to correspond with the resource growth curve. Human sacrifice is unpleasant (the virgins scream a lot when getting thrown into the volcano), but it results in a sustainable system. Those primitive people have been successful for several thousands of years. Our civilization has been around for a few hundred years, and it is not successful by any method of measurement — too many unhappy people! — apocalyptic ruin of the environment!
Sometimes the way that a problem is phrased indicates the obvious solution. For example:
1.) “There is not enough petroleum for the number of people on the planet.”
2.) “There are too many people for the amount of petroleum on the planet.”
For a while I worked as a cage-cashier at a casino, and I also played poker semi-professionally. The trick to making money at poker is to play against rich idiots. People watch poker tournaments on television and they believe that bluffing wildly is the path to success. They aren’t considering the fact that the television edits out the boring hands and shows the exciting hands that involve wild bluffing. Also, the strategy used in tournaments is not the same as the strategy used in cash games; there is a lot more wild bluffing in tournaments because the size of the blinds goes up in a tournament so patiently waiting for good cards will result in getting “blinded out.” Watching celebrities (William Shatner) play televised poker tournaments is also foolish because the celebrities aren’t playing with their own money.
In general, watching television will make a person dumber rather than smarter. Any activity, including digging a ditch with a pick and shovel, is better for the brain than watching television.
From my perch in the casino cage I could see the roulette wheel. Everybody is doing it wrong! Players bet multiple numbers in an effort to “hedge their bets.” This is stupid! You are betting against yourself. Only one of your numbers can hit, in which case the other numbers you bet on are guaranteed losses. A degree in math isn’t necessary to realize that the term “guaranteed loss” has a bad sound to it. This can easily be realized by assuming the extreme case in which you bet on every number on the wheel. One number will win and the rest will lose, so it is a wash. Of course, there are also the 0 and 00 niches on the wheel which cause all of the numbers that you bet on to lose, so you are on the road to ruin. In many cases a seemingly complicated problem can be easily solved by just assuming the two extreme cases which are easy to solve, and realizing that the actual case is bracketed somewhere in between. If both extremes are a guaranteed loss, then you are definitely on the road to ruin — over-thinking the game and developing a complicated strategy will, at best, slightly slow down your descent into bankruptcy — the most intelligent thing you can do in many games is to just go home and take a nap.
When I do play roulette I just make a single bet of all the money in my pocket on one number — I have never won — at least I get it over with quickly though, and someday my lucky number will hit which will be a pretty happy day for me.
There are myriad other examples of sloppy thinking, all of which can be overcome with a basic understanding of mathematical concepts. There are several books written on the subject of how to think and avoid gross blunders — I have read most of them — pretty much everything written on the subject would benefit pretty much everybody, as gross blunders are pretty common.
In regard to plumbing, I am amazed at how helpless people are. They see a puddle in their yard, so they realize that something is leaking, so they call a plumber. Even if you aren’t a plumber, it should be obvious that the first thing that the plumber is going to do is dig a hole and find whatever is leaking. Why pay somebody big bucks to dig a hole? Buy a shovel and dig the hole yourself, or at least hire some illegal aliens to dig the hole for you (the plumber actually does hire illegal aliens; he doesn’t typically do the pick-and-shovel work himself). Find out what is down there. After the hole is dug, you may need to hire a plumber to fix the leak. If it is PVC though, you can fix it yourself — there are a limited number of kinds of PVC fittings sold, so just looking over the selection on the shelf at the hardware store should be adequate information for figuring out how to spot-fix the leak. In some cases you will need to hire a plumber, but at least you will know why you are hiring him and have a general idea of what you are paying for.
One plumber I have worked for would go on a job to rooter a drain. Then he would tell the customer that he can’t cut through the clog, and the drain pipe has possibly collapsed. He didn’t have the cutting blade attached, which is why it wouldn’t cut through the clog. He would tell the customer that he knows a guy who can camera the drain for only $150, which is about half of what camera work normally costs. The camera guy would tell the customer that the drain has collapsed and has to be replaced. The customer would fail to consider it significant that the same guy who did the camera work is later seen on the track-hoe doing the excavation. The truth is that clay drain pipes don’t collapse — our civilization will collapse first — alien archeologists will find those pipes hundreds of years in the future uncollapsed (although likely full of tree roots). The customer was inside the house watching television. I asked the excavation guy what would happen if the customer walked outside and saw that the drain pipe he had just exposed was not collapsed. He then smashed it with the bucket and said with a wink: “It is collapsed, just like the camera showed!” Him and that plumber have been working together for about 20 years — they are a team — the $150 camera work was a loss-leader for the $5000 drain replacement.
Yogi Berra famously said: “You can observe a lot just by watching.”
The customer’s failure to watch the excavation is another example of sloppy thinking.
And, btw, why does the Windows OS suck so bad? Microsoft has been in the OS business for decades, and they still aren’t any good at it. This is like hiring a plumber who tells you that he has a 90% success rate at installing water pipes, but in the other 10% of the time the pipes burst and flood the house, but he is not financially responsible for the cost of damage caused by his incompetence. The world sucks because people are too tolerant of incompetence.
I think it is a good thing for that mayor, or any other manager, to learn how to program. In my experience, non-programmers make the mistake of assuming that a program has to be kept forever. They think that paying for a program to be written is like buying a truck. If a truck doesn’t work then it should be fixed, but buying another truck indicates that the money paid for the first truck was totally wasted. This isn’t true of programs. If a program is inadequate, it should generally be rewritten. The knowledge obtained in writing the first program can be used in writing the second program — the second program can be written with 1/4 the effort and be 4 times as good. Programming is all about knowledge, not labor.
The difference between skilled work and unskilled work is that you can make exponential improvements in the former, but only linear improvements in the latter.
Finding new petroleum reserves accelerated for a while, but then it turned around and began to decelerate — population growth continues to accelerate — do the math and/or write a computer program to simulate what will happen!
Apprentice-level pay in plumbing is about $20/hr. Journeyman pay is about $40/hr. This is just for people who work at an hourly wage for someone else and don’t take on the responsibility of owning their own business.
I would expect the pay level for electricians to be roughly comparable.
Owners of plumbing businesses can make serious money. Replacing a drain (as described in my previous post) may be worth $5000 (it varies on the length and other factors, such as how rich the customer appears to be). This is typically accomplished in 2 or 3 days. The 1st day is just sales, doing the camera work, etc… The actual work is usually one day, but may extend into a second for a large job (which would typically be more than $5000). The only equipment needed is a track-hoe to dig the trench (or a pair of illegal aliens with shovels if the trench is shallow). The pipe and fittings cost a few dollars. The job is almost entirely profit.
Jobs like this are done pretty routinely — this is a small job — a big job such as a flood mitigation could be worth $40,000 (this mostly involves replacing the damaged drywall, which is pretty easy and doesn’t require any expensive equipment).
If the building flooded some time ago, there might be mold in the walls. This requires special procedures because mold is a health hazard — now watch the price go up!
The OP used plumbers as an example of dummies who are incapable of learning how to program and have to settle for a job that involves gluing pipes together.
Presumably he considers electricians to be dummies whose math extends no further than Ohm’s Law and have to settle for a job that involves pushing wire through conduit.
If he is so smart, perhaps he can tell us about how he makes more money than plumbers or electricians do.
Programming is mostly something that I do for fun in my free time.
Realistically, I don’t do plumbing for fun in my free time (although I know people who do, one of whom was my father, and another being my boss of the drain-pipe job described above — both do plumbing upgrades at their homes that aren’t strictly necessary).
Also, programming the boss’s project at a job is not nearly as much fun as programming your own project in your free time, in which you get to make all the design decisions yourself.
Here is a song about programming at a job: https://www.youtube.com/watch?v=v4Wy7gRGgeA
I think an Hour of Code during Computer Science Week is a good starting point to have fun, discover what you can do with computers…
I don’t agree with coding being elevated to compulsory, just as much as I didn’t like seeing my friends who really don’t enjoy doing math, science, art or English having to do them in school.
However, I feel grateful for the movement that has made coding accessible to more people. Let me share what that vision has resulted in & what I’ve been able to create thanks to it it’s kind of strange that this is old enough that someone sort of from the next generation can comment XD
A drag-and-drop language for iPad
I get what your saying here, but for the most part I completely disagree with you. I think everyone should at least know to write some basic python or java in relation to what they do for a profession. I’m a computational chemist and I had to teach myself everything I know about coding. While the subject I work in and go to school for obviously involves knowing how to code, all my other bio/chem friends that know how to write some python/Fortran (us physicists still use this POS ) greatly benefit from it on a a day to basis, despite the fact that they do not work in a field that requires “knowing how to code” . Whether it be interpolating population ecology data with scipy, solving differential equations using python’s math libraries, extracting amino acid sequences from 10 million line PDB files, or computationally calculating the IR spec for a chemical reaction, knowing how to code can benefit ANYONE that goes into the classical science fields. I just used science examples because, well, I’m a scientist, but I’m sure someone in econ or psych could have done the same with their fields.