I don't understand.
We've spent thousands of years, using 99.9% of able-bodied people for farming, hunting or some other food-gathering activities. Only selected few could afford to NOT work in farming.
Even America, just 200 years ago had 90% of its population working as farmers.
Why such a desperate trend to make everyone grow their own food again? Sure, the food industry is not always honest,not always as good as your own home-grown food, but still - it allowed us to do something else with our lives, and pushed our societies an order of magnitude ahead.
As much as people should APPRECIATE farming, I don't think that everyone should do it. We produce enough food as it is.
We should teach kids how to code however, not because we need more programmers(which we do,but I digress) - but because it's the easiest way to introduce kids to logical, technical-like thinking. That way we can have more mathematicians, physicists, astronomers, engineers - people who we can afford to keep alive(almost literally) because they do not need to grown their own food anymore! They can sit at their desks for the whole day, thinking how to make the world better, instead of looking at how the crops grow.
I would say - why not give kids both? Is it too much to ask? Show them how vegetables are grown, how animals are cared for and how are they slaughtered, but at the same time, yes, please teach them how to code.
I run a small farm, and I've been a professional programmer for about 12 years. I agree with what you say - kids should definitely have the opportunity to learn both. Of my two pursuits above, farming is much newer to me and I've found an amazing amount of skill transfer from the world of programming to the world of farming. Granted, my sheep don't understand when I yell at them in haskell, but the approaches to problem solving, whole-system thinking, and consideration of edge cases I think are enormously beneficial in almost any profession.
I do think that today's kids would benefit not only from knowing a thing or two about how to raise some food (very different from actual "farming") and also from having much more contact with the natural world.
I also think that many kids would benefit from learning the "art" side of programming - the stuff that's fun and interesting, like solving puzzles, appreciation of the hard-to-define idea of elegance, reverse engineering, etc. Nothing else I've learned to do has had quite the impact on my ability to consider many angles in a situation and reason a way to get from one state to another, and at least for me it's been a fun process to learn it all.
My real complaint when anybody says "Everybody should have to learn X," is that I think it should be "Everybody should have a chance to learn X." Coding was the best path for me to learn to think about complex, abstract things and apply that thinking to the real world (including farming). For others, it may not be so.
> Granted, my sheep don't understand when I yell at them in haskell
From my own experience, try Assembly or Ook, they're both more geared towards mammals. Haskell is for communicating with machinery, that's your mistake right there ;)
On another note, what I found when working land is that time flies by, you can zone out just as easily ploughing a chunk of land as you can while writing code. And it's inspiring. Another thing that it shows you is how much wildlife there is on an otherwise visually empty piece of land.
I don't have a farm but I have a quarter acre of land in london on which I spend a fair amount of time growing vegetables (there are actually 5 of us). We don't have any grass to give you an idea.
The skills are definitely transferrable , particularly time and planning skills. Mathematics and engineering skills are almost vital for success as well.
However the most important things it gives me are peace, tranquility and space to think. I can go for a wander and come back with a fully modelled system and some potatoes :)
All skills gained are valuable in an uncertain future.
Why such a desperate trend to make everyone grow their own food again?
Look at me exercising a form of conspicuous consumption (the time of a highly educated profeasional) that my class and culture peers think are praiseworthy. Let me say everyone should indulge in my hobby. Let's look down on those who don't together.
Actually some of us do it as a context switch and a tie to our roots.
Some of us, myself included consider it to be a valuable skill in an unstable world and some insurance against the fuckwits we have to trust in society.
"Why such a desperate trend to make everyone grow their own food again? "
Because most of them have no idea just how grim the life of a subsistence peasant farmer really is, and how that differs from the lucky few who get to sell boutique "organic" produce to rich people.
"Because most of them have no idea just how grim the life of a subsistence peasant farmer is"
You could say the same about oil rig workers or coal miners and they are going to use both coal and oil when they grow up. Should we teach kids how to do these professions too? Where should we stop? There's many "grim" professions, things that need to be done in life, yet school kids are usually shown none of them. So what?
Agricultural produce is a strongly limiting factor on how good human life can be - the most important process we run. To give kids a rudimentary insight into the mechanics and economy of it is - to me - clearly a more important lesson than understanding an oil rig.
I don't disagree - but energy, mining, and forestry are also fundamental parts of the economy (with transportation, construction, and manufacturing on the level just above those), and if we're talking about giving kids a rudimentary insight of the mechanics and economy of this big system in which we all live, I don't see any reason to stop at agriculture.
They don't. As I mentioned earlier - high-yield industry scale farming might be evil, dishonest or capitalistic. Doesn't matter - it is what allowed us to not be farmers. Few hundred hears ago you had to be a farmer to survive - today you don't have to, because there is enough food for everyone on the market. IF you can find another job, that is. But if you find a different thing to do, then you don't have to be a farmer, you will be able to buy food.
High-yield farming also isn't any of those things. There's a difference between outcomes and practice (or indeed, general American administrative incompetence).
This - I think a lot of the organic-eating SWPL crowd / upper middle class have a very idealized notion of "life on a farm" and growing your own food. I worked on a farm for six months as a kid and what I learned was that it was exhausting, back breaking work, and hours sweating in the sun all day.
Subsistence farmers in developing countries often have quite happy lives. I've lived in PNG, and the biggest thing they lack is health care, but that's getting better all the time.
Farmers in developed western countries probably have it worse. Supermarkets have driven prices down to ridiculous levels, so the profit of, for example, dairy farmers is very low. There are reasons the suicide rates in rural areas is high.
The flip side is, farmers in developed western countries have the option of selling their land to agribusiness and sending their children off to do something less godawful.
Economists tell us the "developing countries" will never actually develop until rich countries stop subsidizing their agriculture. Those folks in developing countries are stuck.
> Why such a desperate trend to make everyone grow their own food again?
Because people forgot in a hanfdul of years (that's what it is, compared to the span of human history) what was slowly learned over the course of centuries and millennia. And the result? That kids nowadays almost think that foods magically pops out from the shelf at the supermarket.
Specialization (in the sense that nobody does everything, everyone does his small part) is definitely good, unless you forget what everything is about and depend on others too much.
Nobody expect people to go back to farming, but at least to know how is done. You never know.
Why does it matter where stuff comes from? I haven't the foggiest idea where my wood flooring came from, where my windows came from, or where my TV came from, nor my water, electricity, or the waste disposal guys who pick up my garbage.
Yet for some reason it matters where my food comes from? Really, why?
I don't think it matters to the point you may be thinking. Global collapse where everyone has to grow their own food but as a programmer one of the natural instincts is to be curios and I would imagine you could be somewhat curious to understand where your food comes from. You may also not care at all which is OK.
My wife just the last few years started to grow some food in our backyard and at one point we had chickens, granted our family would not survive on the small crop we gathered or the few eggs we got but seeing our kids (and ourselves) learn what it takes to grow a tomato or a carrot is priceless. Seeing our kids wake up in the morning and take the time to check on the seed they planted or go out to the yard and get their own lettuce and cilantro for their sandwich is priceless. Have our kids see the chicks we bought into full grown chickens and learn where the eggs come is priceless.
We don't expect our kids to become farmers, heck we don't expect us to become a full farming family but it has been great to share moments as a family and learn in the process. It is ok for us to go out to a restaurant once in a while and for a moment not care where the food came from or where our leftovers will end up at.
Take it this way. While playing a computer game, my non-technical friends don't know how the game was written, how the buttons were designed, how the server is handling all those multiple players, or how the protocol handles all the communication.
They don't try to see behind the scenes and so they just appreciate the game and nothing more.
As a software engineer with whatever limited knowledge I have about those things, I'm able to appreciate the game at even more levels. When I see a perfectly flowing graphic I wonder how the coding was done and how much effort the developers put in for creating it or how did they even come up with such a use case.
Or take the case of movies. Once you start understanding about the planning that goes behind the scenes and how such a great movie was made, you start to appreciate it even more. Whey did they keep the camera there ? Wow, they could have changed the lighting to this corner....
Same with life. The more you understand, the better you appreciate it.
The more you understand, the more you realize that most people aren't very good at what they do. Not that they are bad at what they do, either. It just takes the magic away.
You might want to keep an eye on the slowly collapsing US electrical grid. The number of annual major blackouts has skyrocketed over the last 20 years.
No intelligent person thinks food magically pops onto shelves. It is not necessary to play farmer in order to know where food comes from. Do you know how make your own steel? Neither do I. I'm not worried about it.
"You never know". But guess what - the apocalypse is not coming. It didn't come in the 20s, 30s, 40s...you get the picture. There's never an apocalypse coming. And even if there were - you probably won't live through it. And if you do...then the better question is why didn't you stop it in the first place?
Farming today has to be a large scale, highly studied and high-yielding enterprise. There's lots of room for improvement, but very little benefit to it on a microscopic scale (put seeds in ground, water, hope they grow).
Actually apocalypse did come-- in the last century there was mass starvation in Russia, China, Ukraine, Ethiopia, North Korea and more....literally tens of millions of people starved to death within living memory. Plus, large scale factory farming is not necessarily the economically optimal way to farm. We can't know because the US and other governments MASSIVELY subsidize factory farming...the market is extraordinarily distorted. Even further, there are questionable regulatory burdens foisted on small farming operations.
Lots of civilisations have collapsed throughout all of history. Millions of people have starved to death as a result. What makes you think we're somehow immune?
You remind me of a story: Inner city school starts a garden. At some point, a teacher pulls a carrot (or whatever) out of the ground, washes it off and eats it. School kid who observed this starts wigging out: Did you see what he just did?! He pulled something out of the DIRT and ATE it!! Ewww!
I will add that it causes big problems when decision makers have no clue where stuff comes from, what the world's limits are, etc.
"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." In that sense: learn to farm. And to Code.
I don't believe computer programing is a good way to teach logical thinking. Sociology, Philosophy and Literature are better alternatives.
Coding only makes you better micro managers, "thinking of efficient ways to make idiots do things you like".
Also teaching agriculture or other physical goods producing craftsmanship to kids would make them better at real world challenges. Modern society seems to be run by digital arts but it's just an illusion of how we live.
"Sociology, Philosophy and Literature are better alternatives."
Yes,but not for kids. You won't teach any of these subjects to kids, even if they are better for logical thinking.
But if you show them an interesting way to start programming,they will see a very clear connection between what is being said and what happens = logic. Then it can be extended later in life, but this article specifically targets kids.
And I have the exact opposite view to yours - I think there is not enough logic in our lives. Our society might be addicted to digital works, but it does not mean they understand how it all works.
No. We make kids at school read countless books, and trying to convey to them the meaning that's inside these books. Most kids don't care though, because I really don't think that you can read some of mature works at the age of 14 and understand the deep philosophical context inside them, even if your teacher serves it to you on a silver plate. It's not to say that kids are stupid - far from it.
My point is, that literally throwing literature and philosophical dilemmas at kids it not going to achieve much. Sure, we've been doing it for millenia - but it does not automatically make it right.
> I don't believe computer programing is a good way to teach logical thinking. Sociology, Philosophy and Literature are better alternatives
That makes no sense. I've taken literature, I've read hundreds of books on my own. Most of them are full of illogical things. At best they are OK to teach morals, not logic.
Philosophy is closer.
Computer programming is pretty much pure logic and problem solving.
The only better way to teach logic is to teach logic.
> teaching agriculture or other physical goods producing craftsmanship to kids would make them better at real world challenges
Computers and code are real world, and they solve real world challenges.
In which heuristic algorithm did you learn about the fundamental attribution error, hindsight bias, or confirmation bias?
Programming doesn't teach you cognitive biases. You don't become more aware of yourself by programming. You learn more about human logic by reading "Thinking, fast and slow" than by programming for your entire life.
I'm not sure why people think programming us the pinnacle of problem solving. Just about any trade involves just as much logical thinking and problem solving.
I'm talking about what are commonly called the skilled trades [0]. Some of the most analytical thinkers I know were trained in a trade. Masons and cabinet makers that have an intuitive understanding of geometry and trigonometry that most people just don't grasp. I learned most of my problem solving skills from my father who was trained as an industrial electrician. Spend a day on a job site and you'll hear the same things you hear programmers bitching about. Most people complain about the engineers and architects not understanding how the real world works just like programmers always bitch about software architects.
It's a real shame that most people seem to look down on the trades as somehow being inferior to white collar work. This is what Mike Rowe has been preaching about for the past 4 or 5 years. Just listen to his TED talk [1].
>Car salesmen are sitting and solving logical problems?
If they aren't then they will be unsuccessful as car salesmen. Apart from "how can I sell more cars?" there is "what is the optimal number of cars I can fit in my showroom?", "how shall I present my most profitable deal to its most likely demographic?", "which aspects of my communication skills can be improved?"...the list is endless. Point being there are logical challenges to be solved everywhere.
> That makes no sense. I've taken literature, I've read hundreds of books on my own. Most of them are full of illogical things. At best they are OK to teach morals, not logic.
Not trying to be snarky, but what level literature classes did you take?
I was an English major for a few semesters and I found that there were a league of differences between an introductory course which was little better than reading something on my own (plus a professor's gospel, which we were asked to support or comment but never refute) -- and an upper-level course, which was more centered around research: diving inside of a text and an author, plumbing for patterns and arguments much like one would dive into JavaDocs.
Yes, but we're not talking about encouraging people to become an English major, we're talking about introducing people to these subjects. Do you think people would learn more logical thought doing a year of coding or a year of reading?
Teaching kids to make them better understand what's going around them?
"Say Kitty move right, Kitty move left and do this about 5 times." is not about logic. This logic, that you can teach with programming is only mathematical logic. "If a > b and a is negative then b should be negative". Real world logic does not work like that. There is not only 1's and 0's, blacks or whites. There are also shades of gray and reds, purples, blues. Some fractions, doubles.
Everyday you make many decisions. Some are easy yay/nay decisions, some are hard decisions like "what to wear today" or "Voting that candidate or this?" or "Should I ask her out, but what if it's too soon?". Many things affect them; Human interactions, weather conditions, light conditions, feelings... So many unknowns. Maybe just some luck? Murhpy laws?
We can not or have not yet deducted them into pure mathematical logic.
So giving kids programming as logical thinking aid would help, but maybe in a wrong way. It would teach them an illusionary version of logical thinking where everything is 1 or 0.
"This thing #{X} that I am inexperienced at is much harder than this thing #{Y} I spent years doing because I am experienced at #{Y} and have some idea how to do it and thus it feels comfortable.
Why, I am going to go so far as to talk down everybody who still does #{Y}, partly because I'm somewhat burnt out on it, and partly because my comparative experience makes me feel like it's easy compared to #{X}."
Where:-
* X, Y are very broad fields in which there is a whole range of tasks which span from the very simple to the insanely difficult,
* X, Y both revolutionised the world at different points in human history, X before Y.
Programmers' world is populated with very abstract concepts that they use to reason and draw conclusions. I think this post discuss the applicability of this reasoning outside of the virtual sphere.
So assigning farming to #{X}, programming to #{Y} and then reasoning over X and Y without considering the reality of farming and programming is surely not the proper way to address this problem.
In other words, I disagree and I think this post is interesting.
My point is that the OP and his father are making value judgments - firstly the title, secondly:-
"Growing food is far more challenging, requires an order of magnitude more knowledge and continuous learning and dedication."
Problems I have with this:-
* First and foremost, this is a pissing match. A better way of putting this might have been 'I found this more challenging, etc.' instead of some sweeping divisive comparison.
* It's meaningless - programming and farming are massive fields, what exactly are we comparing? Farming carrots in my allotment vs. a modern industrial farm. Hello world in qbasic vs. the linux kernel. Etc. etc. etc...
What's frustrating is that there are some really interesting points about, as you say, the real world applications of things, abstractness of programming, etc., but it's hidden below this unnecessary grumpy attack stuff.
Of course there's the just very grumpy:-
"Why are programmers granted such high status and wealth in our society for living in a self-created self-indulgant intellectual world of constant escapism"
Well, SpaceX did escape the atmosphere using some self-created self-indulgent intellectualisms ;-)
I've been involved in farming for most of my life and now, as an adult, have my own operation. I also program professionally. With considerable experience in both, I still think farming is the more challenging of the two and believe that farming does require more problem solving over a wide range of disciplines.
When the whole learn to code push came to my attention, I also wondered if farming would be a better option for achieving the claimed goals.
farming does require more problem solving over a wide range of disciplines
Does it make sense to compare the two that way? Farming is a an activity that has problems to be solved, programming is a method of solving problems - including farming related ones. Sure, farming has more and more diverse problems to be solved compared to pure programming problems (i.e., CS), but almost every programmer solves problems in other domains, and those are almost infinite.
That is a great question. I guess it depends if the purpose is to learn how to solve problems, or how to use a tool that can solve a certain class of problems.
If it is the latter, I do wonder why single out coding? Coming with a programmer bias, I often feel like I could do a lot more useful automations in my life if I had more electronic and mechanical skills. There are many disciplines that seem just as useful that students would gain a lot from being exposed to, not just coding.
Sure, but we're programmers, so we advocate coding! That doesn't detract from EEs advocating for electronic skills or farmers advocating for agriculture skills. We don't all need to push everything.
X indeed revolutionised the world. Y just made porn delivery and commerce better. It's not even clear at this point if it had any effect (besides negative) to the global intellectual climate.
Ok, this is a real low for HN. Are you actually saying that the only thing computing has done for the world is better porn delivery and better commerce? Wow. Do you have any idea how we managed to decode our genome so fast? Any idea that every science labs including maths have computers to test their hypothesis and solve their equations at such a huge scale and speed no human being could possibly dream to match? How about communication? How about almost anything you use today to make your life easier has a computer chip in it? How about making the bulk of human knowledge available to anyone with an internet connection even in remote poor areas of the world where adults can barely read such as Peru where I lived for years? I could go on but I think you get the idea.
>Ok, this is a real low for HN. Are you actually saying that the only thing computing has done for the world is better porn delivery and better commerce? Wow. Do you have any idea how we managed to decode our genome so fast? Any idea that every science labs including maths have computers to test their hypothesis and solve their equations at such a huge scale and speed no human being could possibly dream to match? How about communication? How about almost anything you use today to make your life easier has a computer chip in it?
Making my life slightly easier is not that important -- and hardly what I'd call a world changing event in the scale of agricultural revolution or even the industrial revolution.
I understand that as CS people we like to sing our own praises, but just like once you have electric ovens, getting a microwave is not that big of progress (if it's not a throwback to a worse method of heating), similarly, once you have global trade routes, ships, trains, cars, snail mail, telegraphs and telephones, having computerised version of communication is not that much of a step forward.
The world is not that different, including everyday life, from 40 years ago, when computers were mostly unknown outside of large companies. We just play more videogames, watch more cat videos, and exchange more (than zero) BS instant messages and mails. Quantitative is not qualitative difference.
As for the use of computers in science: again, quantitative is not qualitative difference. The most involved and mind-boggling discoveries were done before computers, from evolution, to relativity, to quantum mechanics, to the DNA. We are now better at number crunching (such as decoding the genome), that doesn't mean we produce science of equal impact.
So you're saying that computers and computer science didn't revolutionize the world? They just made people's lives "slightly easier"?
What about free instant communication with people who live halfway around the world?
What about massive knowledge bases like Wikipedia that never existed on this scale in the past?
What about search engines that make every piece of knowledge available to humanity instantly available to you?
What about having access to all of that in a small device in your pocket?
I really don't know if you're trolling or you're just being obtuse. If the only benefit you've been able to get from all this wonderful technology is watching porn and cat videos, then that says more about you than it does about the technology.
>I really don't know if you're trolling or you're just being obtuse.
So, people "not getting it" are either obtuse or trolls? I'm over thirty -- not some teenager making internet pranks. As such, I don't troll. I say what I believe. Can you fathom that people can have different standards about what it takes to call something "world-changing"?
Take a Buddhist monk as an extreme example of a different viewpoint. He wouldn't raise an eyebrow for trivial stuff like "instant communication" over the intertubes. Especially knowing the triviality of the majority of such communication. Heck, such a figure would be even unperturbed about normal communication (speaking), preferring meditating silence instead.
Now, I'm not a Buddhist monk. But I'm not a starry-eye millennial optimist either, nor I consider any and every technological advance "progress" in the full sense of the word.
For example, you say:
>What about free instant communication with people who live halfway around the world? What about massive knowledge bases like Wikipedia that never existed on this scale in the past? What about search engines that make every piece of knowledge available to humanity instantly available to you? What about having access to all of that in a small device in your pocket?
Yes, what about all those things? Any real effect on my everyday life?
E.g Has the instant availability of "every piece of knowledge available to humanity" to us made as any more clever? For some, it even made us stupider:
Even before "instant availability of everything", e.g even when availability was a problem itself, people knew that it wasn't about the availability but about the distinction. To put it in a little more archaic terms, that the important thing was wisdom, not information.
You're over thirty? I'm over fifty. And I have seen huge change in my every day life due to advances in communication. I still remember the first time I used email (summer of 82) and the first time I had a "chat" with a friend of mine who had moved to Germany (in 1986). Perhaps things have not changed significantly for you since you became aware of technology, but they certainly have for me and for countless of other people.
I've upvoted your posts, but claiming that computers did nothing more than improve delivery of porn and commerce is borderline trolling, particularly on HN. While I can agree that computing is often overpraised, there's still more to it than porn and commerce (e.g. being an indispensable tool in reaching other planets).
The last clause of your response doesn't make sense so maybe you're not responding to me, but just in case you were serious:
Snide yes, but BS no. The industrial revolution did nothing
to the quality of life compared to cooking food and scaring wild animals away. The point is that it takes more and more work to make meaningful progress. The low fruit has been picked. Minimizing the impact of computation is what is BS since there is almost no aspect of life and the economy that hasn't been greatly impacted by it.
> that doesn't mean we produce science of equal impact
Of course we do, we make amazing science at such a huge rate most people can't even keep up with it anymore. If you believe computing has only little and only "quantitative" impact on science and communication than there is little I can do for you, computing has completely revolutionized every single science field. But sure, keep thinking it's just cat videos and porn. Maybe we should just go farming instead...
>Of course we do, we make amazing science at such a huge rate most people can't even keep up with it anymore. If you believe computing has only little and only "quantitative" impact on science and communication than there is little I can do for you, computing has completely revolutionized every single science field. But sure, keep thinking it's just cat videos and porn. Maybe we should just go farming instead...
The condescending tone is because you believe you are talking to some child or something?
People have differing opinions, and what you believe as the "objective truth" is not some kind of gospel.
As a matter of fact, the very issue of current science having much less impact nowadays has been stated before on HN, with very valid explanations and analysis behind it.
One reason, for example, is that the more important stuff in most scientific fields are the lower hanging fruits, and early scientists got most of them. It's a case of diminishing returns.
Say whatever you want, but any current discovery is not of the caliber of Maxwell's equations, the discovery of DNA or evolution, Einstein's theory of relatively, et al.
It's marginal, incremental work, not evolutionary. And people "can't even keep up with it anymore" just because it's so vast and concerns minutiae, not because it's so groundbreaking.
I understand you very well. I also agree with you. But at this point in human history, this is just a lost debate. Better minds have fought this but lost!
Does being able to land on other celestial bodies and examine them up close not count as world-changing for you? Or do you think we could pretty much just do space exploration without computers?
I don't think we should encourage anyone to do anything. We should discourage them.
Let me explain...
I take my example from this traditional practice of Rabbis: never accept a convert until they have been turned away twice before. Make them make 3 attempts to show their determination. Why? Because Judaism is hard. If they're not committed, they'll either give up or do just enough to satisify the minimum requirements, wasting everyone's time.
Same thing with programming. Building real applications that deliver sustainable value over time is hard. It pretty much takes all that you've got and can take years to reach excellence.
Every time I see another way to learn how to be a programmer (now that there's money in the game, they seem to be popping up everywhere), I have two immediate reactions: 1. How cool is that. I wish I had that years ago. 2. No! We had enough bad programmers who are doing it for all the wrong reasons.
I believe the most important difference between an excellent programmer and everyone else is not intelligence, education, emotional state, or work ethic (although all of these help). The most important thing is a burning desire to build.
Someone with this burning desire won't not need to be encouraged. You won't be able to stop them. Someone without it would be better off doing something else.
We don't need more programmers. (Only IT execs who akin programmers to envelope stuffers think that.) We need more excellent programmers.
The best way to get more excellent programmers? Discourage everyone so that only the most determined can make it.
Our industry, our craft, and most of all, are code repositories would be much better off.
We're talking about kids here, and I feel like you've turned this discussion into a personal rant against people who want to cash in on the popularity of programming without really putting in the effort. Discouraging kids is a terrible, terrible idea. If my daughter shows even the smallest interest in programming, I will encourage the heck out of that interest. Same goes for anything worthwhile she shows an interest in.
Reminds of what Seinfeld would tell kids who told him they wanted to be comedians. He would say 'No you don't, you'll never make it.' If they could take the criticism and go at it regardless, then maybe they could do what it takes to make it (the hard grueling path of being a standup comedian). Analogous to the startup world.
I agree with this sentiment. Learning how to cook teaches you how to appreciate food, and helps you think differently about how food is prepared and even consumed.
Learning how to code, even if you don't become a professional programmer, will help you appreciate the software you use. It may also help you think differently about life, become better at problem solving (debugging IRL!), or at minimum, get frustrated at all the software you use on a day-to-day basis, because you know you would have designed it better. ;-)
Am I the only one who reads this as selfish, juvenile elitism?
Here's how I see it: Programming is a relatively young discipline. It's not really that hard, we just make it artificially difficult with bad tools, and artificially exclusive with various first world and Anglo-centric measures. We desperately need fresh perspectives. Most of what is built is rebuilt, constantly, with new bugs. As a profession, we tend to lack insight. We need more eyes, particularly fresh eyes, not 'experienced', elitist code-Rabbis.
Ugh. You couldn't be more wrong. We expect everyone to have a basic education about "how the world works". For example, there are increased calls to have the basics of personal finance be something that is taught in schools because the world is getting more complicated with respect to personal finance, and this is uncontroversial - knowing basic personal finance is a good thing. To use a well-known quote, "software is eating the world." Why is knowing how to code somehow different?
The other side of the coin is that children who aren't exposed to programming will never know how it feels to build software.
And it goes further. People without an education or experience in software development or engineering aren't able to come up with good ideas about what to build because they aren't able to grasp the possibilities of what technology enables.
That feeling you're talking about in regards to building stuff is not something that you're born with, but rather something that grows on you by building stuff.
So no, I don't agree with you. We shouldn't force anybody to do anything of course, but the responsibility of a good educational system is to open up horizons, which means encouraging children to explore as much as possible.
Are you implying that the drive and burning desire described by edw is something women are incapable of feeling towards programming? Or that they need extra hand holding and encouragement to be able to succeed in this field?
No, not at all. I'm saying that the elistist attitude described by edw is what got the field in the situation that it is in. Dismissing these new initiatives is, in effect, saying that the status quo is acceptable.
Graphic design went through this a while back: "Woe! Our industry is flooded with people who've no aptitude." Desktop publishing resulted in a metric crapton of nasty designs for a while. But subsequently we've seen a Cambrian explosion of great looking stuff. The same thing is happening with video production right now. YouTube is overfilled with stuff no one wants to watch but already we're seeing innovative stuff come out as people with access to previously unavailable tools learn how to use them effectively.
For a while this probably means that our code repos might be filled with nasty stuff, but I'm convinced we'll be better off for it in the long run.
You're underestimating the value of basic coding skills to non-programmers. It's a little like saying programmers should never learn how to improve their social skills, because they'll never be have the determination to reach Bill Clinton's level of charisma.
I am decidedly not a programmer. I don't know what an object is. I haven't learned the first bit of CS. My code would probably make you want to gouge your eyes out. And yet, it's saved/earned companies millions of dollars.
Or, we could do things that encourage this burning desire, perhaps?
It certainly seems possible to teach in a way that kindles a life long love of programming, rather than leaving things to blind caprice - most groups just don't even seem to realise this might be a good idea.
In competitive environments, low-tech occupations tend to lose as a group.
Take any mass farming. Tea collectors, for example, I believe they're paid so little they are in constant poverty. Why are they paid that way? They collect all the tea people around the world drink. Paying them the increase of the cost of a tea bag by 1 cent will make them comparatively rich. Why isn't it done? They have no bargaining power. Anyone can collect tea badly enough, this is true for most agricultural labour. It is physically hard but you can teach it in half an our. So they can always be easily replaced either with local population or with some illegal immigrants.
In the developed world, a lot of people just pass documents around and make phone calls. It's the sophistication of zooplankton and physically much less demanding than agricultural jobs, but you can't quite teach it to anyone in the world in half an hour - you need locals for this (they connect to other people and need to fit culturally) and they need some even very basic skills. So they get paid with actual money you can buy things with.
Take coders. Training a coder is not easy and it even requires some aptitude. Thus, even mediocre coders can often command their rules to their employers. And great coders are true citizens of the world, employable anywhere on their terms.
So, to make farming cool we have to make it high-tech.
Another problem is that farming doesn't seem very profitable even on the large / capital scale, because the barrier to entry is so low.
> Another problem is that farming doesn't seem very profitable even on the large / capital scale, because the barrier to entry is so low.
For what it is worth, I make considerably more money per hour farming than I do programming, and I get paid quite well to be a programmer.
With farming, however, the barrier to entry is actually quite high. That barrier being access to capital. It is the massive debt any normal person has to take on to even think about farming that cripples most.
Programmers are quite lucky that you only need one reasonably affordable tool, which almost everyone already owns, and you are eligible to enter the market.
This just goes to show you have very little knowledge of how farming is done in the US. Here farming is very high tech, in fact they have some of the most advanced land navigation and machinery there is!
Also your argument is based on harvesting of a product, only one aspect of farming, that is manly produced in third world countries.
Most here don't appreciate how hard it is (especially if you're inexperienced)
Do people still grow beans using a cotton in a cup? Do they still teach that at schools? That's basically the 'hello world' of farming
Of course, depends on what you are doing, type of plants, inside a greenhouse or in an open field, the scale of it etc. Not to mention raising animals. That's very hard as well
It's unsurprising that it's getting ever more 'industry like'. You take a lot of people and specialize in only a few crops, so you can have profits that work out. Machines are expensive, fertilizer, soil analysis, etc, etc
And then there's a climate issue, too much rain, too cold, too warm and you miss the mark.
You are absolutely correct. I grew up on a farm and I'm now building FarmLogs because of how tough farming can be. Maybe introducing better technology into the farm can blend both programming and farming.
The big point is actually that currently we (as in, the whole world) have far more farmers than we need (especially in the developing countries) and less coders than we need. And in the future, automation and coders will ensure that we will need even less farmers.
How much population do we really need to tend all global arable land using modern methods machinery? Currently in developed countries it's somewhere near 2%, depending on the local crops used; in time it may be 1% as more and more things can now be done by machines. Countries such as India and China currently have hundreds of millions of farmers; but the same result can be produced by half or less people with farming methods currently used in USA/EU. Right now a lot of modern grain farm work consists of driving equipment around all your fields - and self-driving tractors will eliminate even that remainder "manual" work.
Driving the equipment around is the fun part, but not the real work that goes into the business. Farming is actually quite challenging.
A recent problem I remember having on my farm: Soil is full of wet lumps of clay, unsuitable for planting, cultivators are not breaking them up and you have a few day window to fix the problem before it gets too late into the season to plant the crop. What do you do?
I actually agree that the point is to attract more programmers into the industry, but the consequences of that seem dangerous. What happens when we have too many programmers? Should coding classes be dropped from the system?
Honestly, that sounds to me like "Oh, god. What would happen if everyone could drive?" Er, people would have more individual choice. But we would still need buses and stuff anyway. (And you will always have some non-drivers.)
Coding was taught in school in my day and we didn't all turn out to be programmers, so I think that is obvious.
However, the previous poster suggested that there is no need for more professional farmers, so there is no need to teach farming. By extension, he seems to be saying that when we have enough programmers in industry, there will be no need to teach programming anymore.
And pushing people into an industry does come with dangers. When I was a student we were pushed into teaching. Today, I have friends who went with that push and are still on the job hunt many years later because so many others did the same.
My dad grew up on a farm. He decided the military was easier. He got to sleep an hour later and, when no one was shooting at you, the work wasn't hard. I am an environmental studies major. I think it is still important to understand our relationship to the land, regardless of how you pay the bills. A lot of people really don't these days. And I think it does cause problems.
If you have a smartphone, you have (potentially) a programming platform. We can't simply give everyone on the planet a few acres of farmland to get to grips with the challenges of farming.
I dunno. There are vast patches of ocean that are going pretty much unused right now.
(Yes, I know that's still science-fiction, but is it really that much more of a stretch than the AI/robot/automation "software will eat the world" firm-belief that you see daily on HN?)
I'm currently an A Level student in the UK that's been hacking on software and hardware projects for the last 6-7 years. I decided to go to the June RHoK event in Southampton and worked on a new project called WaterMe with 4 others that takes open satellite imagery from NASA and outputs an index of water content and foliage and more in the area over time from a user friendly interface. Also making available the data for researchers and hackers for other awesome projects.
After the Hackathon we were accepted into a humanitarian incubator called GWOB (Geeks Without Bounds) which has put our team in contact with many spectacular personalities and guidance which has intorduced me into areas of mapping, open data, funding, advertising, additional technologies and even quad-copters/balloons/flying-machines.
We are still developing the product (now closed source) and are hoping to look for investment in the near future to run the product at scale to provide for farmers, researchers and anyone interested in things such as drought and glaciers amongst others.
Needless to say this has one of the best experiences of my life so far and is way more rewarding than any freelance work I've done as just make money jobs.
...NOT!!! I know you Americans tend to see having a basic little vegetable garden as "black magic", but it's really something one can learn in under a week and based on this knowledge grow things to the point that one can actually produce enough for sale and maybe run a small business! But's you can't learn programming well enough to actually get any benefit out of it, let alone actually make a living from this alone, in a week! Yeah, I pick my food from the supermarket just like you, but I spent enough of my childhood at a farm know that things are really easy (at least if don't try running your little garden as a real business and get enough profit to cover marketing, distribution etc. - then shit gets really complicated), basically high-school biology is more than enough and everything can be found in any book or googled in minutes and you have tools that come with all the needed instructions and seed, herbicedes etc.
It all boils to this funny observation: plants can grow by themselves, you just need to guide things a bit to get the desired outcome! otoh, computers don't program themselves, code doesn't write itself - you have to do it, and this is why it's hard and also fun and rewarding (for a comparison, starting to learn how to farm by writing the genetic code of the organism's you'll be farming - ok, it's and orders of magnitude exaggeration, but it's still the closest way farming could be alike to coding).
Since I've been trying to deconstruct "programmer" into "systems analyst" and "coder" in other comments, I might as well continue in that vein here, but with a slightly different tack:
Farming is a lot more like "software engineering" than "programming". You can't pause a farm. It's an "engine" that you have to keep running, no matter what calamity occurs (weather, breakdowns, etc.)
indeed, but if your goal is not running it for profit but just producing tasty organic veggies from a hobby garden, then things mostly just work if you're in a temperate area with predictable climate. Just keep watering it and it will grow to the point of producing stuff, even if you totally mess up everything else. Software, on the other hand, rarely "just works"... nature and the "experience of evolution" are not on your side in the programming field...
This article presents a nuanced point, and I agree with it.
My response to this quote by Steve Burgess (not the author):
"Why are programmers granted such high status and wealth in our society for living in a self-created self-indulgant intellectual world of constant escapism- and yet farmers are regarded with such distain when they operate on the most important boundary between society and the biosphere?"
Farmers have historically played with the fears of mankind and have lobbying power that rivals big tobacco in many countries.
"More moneyz for the farmers or everyone will starve to death."
They also tend to use somewhat stereotypical stuff depicting themselves as heroes that feed the homeland which just rubs me the wrong way.
Add the "leave this farmland empty and make more money than actually farming on it" government handout abuse (+ all sorts of economic meddling that makes very little sense) and you pretty much get the mixture of why I don't grant farmers a high status by default.
Big industry farming is also fairly disgusting. I'm not really an animal rights type of guy and more of the "whatever humans eat animals such is life" kind of school but what is happening in industry farming makes me pretty sick.
[I'm obviously aggregating over all farmers here but by and large I wouldn't start out assuming a farmer was noble]
Edit: that's obviously way off topic. My answer to the OP would be...teach kids to enjoy learning and exploring and not some specific craft. The rest will follow automatically.
Programming as a craft works well because it tends to force you to learn and explore as a side effect (same for anything scientific really)
"Why are [...] farmers are regarded with such distain [...]?"
They are? I haven't seen people feel that way, so I'm kind of surprised to read this. Some references to evidence that supports this claim might be useful.
Funny they should mention this, when I first went to college I majored in Horticulture, the idea being that I would one day be an organic farmer.
Turns out that's a lousy way of learning the trade. They'll teach you a little bit of the hands-on stuff, but pretty soon it's all plant physiology. If you really wanted to learn, you had to go out and farm, not learn how the Krebs cycle works.
So, after having worked as a farmhand for a few other farmers, I dropped out, tried share-farming for a while. Worked well, other than the fact that the drought in Texas was breaking records, which wasn't good if you're growing vegetables, not to mention the high-temps and a lack of a greenhouse. In 6 months I was pretty much done for.
Still, I learned a lot, so much so that I figured I was probably smart enough to major in something more intellectually stimulating, so I went with engineering, found out I like programming a lot, and eventually settled in Computer Science.
Long story short, I think he's onto something, farming isn't just physically demanding, it requires thought, especially if you don't want to use nasty chemicals. I may not be the best coder in the bunch, but I've found I can figure it out a little faster than classmates who brag that they learned their first language when they were in grade school. I learned my first language, C, when I was 21.
Yeah I too went to ag school and then got into coding.
It's pretty hard to be a farmer coming out of ag school unless your family has a farm already for you to run since the entry costs are so high. I still produce a lot of my own food via a family farm, but god I'm glad it's not my main job. I make a mistake when coding and things can be bad, but usually they are OK especially if you have revision control and a good workflow.
I make a mistake farming and things die and I have nothing to eat or sell. Then there are just random inexplicable things that screw you over. Yes, this happens in IT, see what happened with Cloudflare this week, but imagine if that lasted for months, even years, and you could never switch providers- that's how badly weather can screw you over.
I worked in academia IT for a bit and took archaeology classes for fun. It's no surprise that ancient farmer's bones have markers like pitting that indicate periods of severe malnutrition.
What will the problems of the next generation be, and how do we prepare them for that? On the face of it the next few generations face huge issues. The only thing we know for certain is that the way we live now is totally unsustainable in the long run, and that new solutions will need to be found to old and unglamorous problems. More localised food production might be one way to help them through what looks like a turbulent few decades, by building in resilience to political and economic shocks.
Is it still valuable to teach kids to code, in the same way that it might have been in the 1980s? I think so, and for the same reasons why growing your own food might also be a good idea. It makes you more independent and more resilient, and reduces your dependency upon increasingly centralised systems which are vulnerable to failure or being co-opted by parties who don't care about your interests. As time goes by code makes up the fundamental infrastructure of life, so who writes and controls that code, and what their priorities are, becomes a critical question.
"The only thing we know for certain is that the way we live now is totally unsustainable in the long run"
We "know" this how, exactly? Malthus was saying the same thing in 1798. Paul Ehrlich was saying the same thing in 1968.
They were both dead wrong.
"The battle to feed all of humanity is over. In the 1970's and 1980's hundreds of millions of people will starve to death in spite of any crash programs embarked upon now."
"Hundreds of millions of people will soon perish in smog disasters in New York and Los Angeles...the oceans will die of DDT poisoning by 1979...the U.S. life expectancy will drop to 42 years by 1980 due to cancer epidemics."
What we are doing currently is unsustainable. A lot of our farms are propped up by oil-based fertilizer, which is kind of a bigger problem than our transportation systems being so dependent on oil. We will need to do things differently because oil is a finite resource. (That doesn't mean I agree with doomsayers. Change is a constant. <shrug>)
Malthus was exactly right, but he couldn't anticipate the coming industrial revolution and the explosion of energy availability through fossil fuels. There may be an equivalent revolution looming, but I can see no sign of it. For all purposes, Malthus could be right 200 years late.
Most people seem to stick to "the system has worked for 350 years, so it must be able to go on indefinitely".
Yes, I know of this one and it's precisely the sort of wishful thinking I was mentioning, particularly the sheer disregard of energy related problems (obviously, everything will be easy for ever if finding energy and getting rid of waste heat has some magical solution). You should study some posts from this for a contradictory POV:
"Waste heat" is not a problem for the foreseeable future, by the way.
The mean insolation arriving at the surface of the earth is ~1000 w/m2. The Earth has a surface area of about 5.1×10^8 km^2 or 5.1x10^14 m^2, so the incoming energy from the sun amounts to about 5x10^17 watts.
World electrical power output is only about 2 terawatts = 2x10^12 watts, or 1/250,000 of the heat received from the sun.
Clearly it's going to be a long time before we have to worry about "waste heat" on a global level.
Yes, I've read this several years ago, but you didn't read my links. Because my link use actual arithmetic, while McCarthy only says that those who don't use arithmetic are condemned to fail, then happily proceed with vague numbers and absolutely ZERO actual data.
They use the assumption that population and energy use per capita will continue to grow exponentially, when it's clear that it doesn't. That may be "arithmetic" of a sort, but GIGO, you know.
Essentially every developed country is below replacement level (the United States is an exception, but only due to high immigration).
Find out why that is and then you can discuss the issue without, as McCarthy said, talking nonsense.
I did use actual arithmetic in the waste heat calculation, which I notice that you did not dispute.
It's unsustainable in the sense that behind almost everything we do or eat is a lot of fossil fuel. That's a finite resource which will not always exist.
>> Why are programmers granted such high status and wealth in our society for living in a self-created self-indulgent intellectual world of constant escapism
We know the specifics of the answer to this, I'd like to answer this in a general sort of way -
in Alvin Toffer's 'Third wave' way of looking at the world, the integrators in a division-of-labour system are its rulers. Programmers give you tools to integrate.
Remember, the key themes of the the second wave are :
"The Second Wave Society is industrial and based on mass production, mass distribution, mass consumption, mass education, mass media, mass recreation, mass entertainment, and weapons of mass destruction. You combine those things with standardization, centralization, concentration, and synchronization, and you wind up with a style of organization we call bureaucracy."
So you see , programmers are actually bureaucracy-engineers, creating the process and flow and channels for the industries of the world to play together
> The programming part is nothing more than a hammer to a builder or a scalpel to a surgeon.
We need to remember that not all "tools" are equal. "Tools" like math, science, and philosophy provide leverage for future understanding/interacting with the world. The "tool" of farming provides the ability grow food efficiently. Important but not the same thing. The idea behind code.org and the like is that, hey, maybe programming is more foundational than it is just a trade for programmers to sit in cubicles and do all day.
If you want to argue that programming and farming belong on the same plane, you need to argue that farming provides as much leverage as coding for general life tasks, or else why this leverage doesn't matter. Implying that programming is somehow a morally corrupt activity because of its "escapism" and links to advertising and high frequency trading feels a bit inadequate to me.
I think what most people are missing is that it's not about creating more programmers as much as it is about teaching people how to think analytically. When you're programming you try to solve a high level problem using low level techniques. The actual programming is the part where you find a solution for the high level problem with your low level tools.
So again, it is not just about writing code. It is about how to approach problems and finding viable solutions, no matter what the form of the problem is. It could as well be: "How can I speed up the harvesting on my farm?". Knowing programming helps us in many more situations than just writing code.
I agree with your point. But to riff off dschiptsov's comment, how do you define "programming" (as opposed to, say, "coding"), and how does knowing programming help you answer questions like "How can I speed up harvesting on my farm?"
I would call the ability to understand and solve those kinds of problems analysis, not programming. It used to be the case that "systems analyst" and "programmer" were two different job titles; at this point, they've largely merged, but I still see them as two different skill sets. (And then there's "software engineer" which is a whole other can of worms.)
That's a fair question, so I'll try to explain how I see it. Problem analysis as you mentioning it, to me, seems like the theoretical form of programming. So here I see "coding", or programming, as an easy way to practice problem analysis in a real context, and not just by going through a text book like we do with math in school.
And I agree with you regarding programmers and system analysts. There are so many titles and job descriptions nowadays that try to look fancier than the other just to make it easier arguing for a higher salary. Even if what they do is basically the same. Here in Sweden, there is a long running "joke"-ish alternative title for a cleaner, and that is "hygiene technician". One sounds fancier than the other, but it really isn't.
Regarding how speeding up the harvesting would be done, I have no idea since I am not at all familiar with how a farm works. The point I was trying to make is that if you have knowledge about the domain of farming, AND you know how to program (or if you are good at problem analysis, which I think you are if you can program), then I'm sure that it would be easier to think of something than if you weren't.
Does it make sense or am I just rambling like a crazy person? :D
That's a reasonable answer, and yes, it makes sense.
You could say analysis is a theoretical form of programming, or correspondingly, that programming is an applied form of analysis -- specifically, applied on computers.
I guess my main reservation is that if kids' first exposure to analysis is through programming, there's a risk of skewing their perception towards looking for solutions that use computers. ("When all you have is a hammer, everything looks like a nail.")
In my experience, I've seen problems that have been approached like: We're doing X too slowly, and it's costing us; what kind of computerized tool can we build to let us do X more quickly? And after the tool has been built, it introduces a new set of processes with its own set of burdens, and X is not really done significantly more quickly. My conclusion is that you often need to step back and re-examine what people are actually doing (and why), and what they actually want to accomplish (and why.)
(And a significant obstacle with that is that people develop habits, and they get comfortable with them, and don't want to change them -- so, without knowing the details of the problem, the first step in "How can I speed up harvesting?" would probably be to have some willingness and flexibility to try out variations in your methods of harvesting.)
If we can find ways of teaching kids to program that build their problem-solving skills while also not clouding their heads with the idea that computers are necessarily part of the best solution, I'm all for it.
I divide my days into coding and planting seeds+farming, and i like very much both tasks. My opinion is that there is a bandwidth for everything, but kids should follow their passions and do what they love best.
When i'll be a parent i'll teach them this because it's lovely, and that ! oh but this skill is amazing also ! There is bandwidth for most everything but above all your kids will copy you and see what you love and probably get inspired to follow their own path.
So teach them to do what they love and love what they do ! and teach them to feel happy above all. But teach them by being that example yourself !
> Programming is simply a tool, a way to abstract a problem and enable it to be solved or solved more efficiently. […] The programming part is nothing more than a hammer to a builder or a scalpel to a surgeon.
That sounds like a massive understatement of the actual power of electronic computers. They are the universal mental tool. The tool that can do any sufficiently specified cognitive task. There is no such physical tool yet (though we could hope for Drexlerian nanotechnology).
Programming is the way we control this tool. I do not know of any greater power.
The bit teaching kids to farm seems like a straw man regarding what is most important to learn. Learning to farm and learning to code are not mutually exclusive, and may even require overlapping skills (manipulating an environment with a given set of constraints to yield the most favorable results).
Yet, the OP's conclusion presents a stronger argument for learning to code than learning to farm: "What code.org promotes is teaching kids how to look at problems, analyse them and present them in a way that captures what they are trying to solve. It promotes teaching kids how to use a new tool that can assist them to devise solutions to whatever problems they desire. Most importantly it promotes teaching them a tool that they can use to express and communicate this."
This seems like an even stronger endorsement for learning to code than anything even in the code.org video.
I think the real underlying sentiment in this post is to not learn to code for the wrong reasons, but kids don't care about future rewards like "vats of riches, shiny things and scantily clad women." They gravitate to things that are fun and that capture their attention in the here and now. Making a sprite spin in a circle in Scratch was all it took to get my 4 year old nephew's eyes to light up. He can decide one day whether he'd rather code for altruism or profit (again, not that they are mutually exclusive).
Every once in a while I still recite this one poem shared with me back when I was quite impressionable; it's a fascinating comparison between farming and coding.
For the record, I agree that our interaction with this biosphere (and hopefully, Mars soon) vastly outweighs the significance of github. No offense intended to github, just perspective.
Part of it:
Writing turns our deepest loam
Planting roses with the words
From indigenous tangle
Visitors, though, not landlords
I'm surprised by the article really. For decades geeks have been mocked and ridiculed in society and the media. Fast forward to this last decade the wider world understands geeks and the geeks' work has made lives better (in some ways) for a lot of people. And now they are the criminals?
There isn't a god-like status, the internet and blogs are built by nerds so yes they will have their praise there, much as you will see farmers being praised in Africa where i'm from. Geeks aren't even called geeks because 1. they are far apart 2. no one even understands what we do in the first place. We all almost know each other because there's so few of us
Of course we need farmers, we need doctors, ventriloquists: we need all sorts of trades but when you find a different calling don't make yourself feel better by ridiculing other people's careers.
Or maybe, just maybe, because tech is the hype where you are and in your media you feel other trades are being neglected. Whether that's true or not for WHERE YOU LIVE i don't know. I do understand your frustration with the code.org campaign though, which makes it seem like kids won't get identity documents because they can't code (lol). But for the rest of the world outside the valley? We actually need more coders.
"There are developers all across this planet that are absolutely incredible at what they do, serious geniuses and masters of the craft yet still barely earn enough to survive."
Wouldn't it be a good idea to press for kids to be taught better business skills, then?
I'm quite serious about this - the businesses I ran as a kid / teen were amongst my most important formative experiences.
Yeah, coding (especially bad coding) is easy, and requires almost no knowledge, whereas programming is a completely different discipline, which requires a lot (really a lot) of knowledge, especially programming of systems.
Programming begins with understanding of how computers work, what is an architecture, an instruction set, size of registers, etc. Look at that MIT Scheme source. They have macroses - 32bit word - well, use few bits as a tag, and rest as a value. 64 bit word - this for a tag part, this for value. This is an example of programming.
When people "program" VMs - it is just coding. Piling up stuff without understanding. VMs were marketed for those who don't want to understand or even think. Ask those "programmers" to describe the behavior of the system in which their code supposed to work - I dunno, lol, JVM is the best VM, you know.
Programming is about understanding how your data are represented, what are the access patterns, when memory is allocated, are there any mutations? concurrent access? how conflicts were resolved, if any, etc. It is about realizing that there is an OS, which manages your memory, switches contexts, does I/O, manages your stupid threads, and has another thousand processes running at the same time, sharing the same resources. Then, perhaps, programmer will think more about the data and access patterns, which is the essence of programming.
It almost doesn't matter which language to use. Good programming has been done in C (nginx, Plan9, lisp kernels) and Lisp (Open Genera - the whole OS) etc. You can program using ideas form FP in assembly or C - there is no problem with that.
The questions coders never asking is like why on earch a web-site must be represented as a huge hierarchy of objects inside a stupid VM, while it is bunch of files and some templating? Why to do simple map/reduce jobs we need hundreds megabytes of jars and gigabytes of memory, while the same task could be implemented more efficiently even in shell scripts?
The answers, unfortunately, has nothing to do with programming. It is about making money by coders and managers.
Congratulations! You have turned a discussion of the relative merits of learning a critical and historic human discipline in to a rant against virtual machines (illogical, I might add: they are great tools for managing complexity) and the structure of programming organizations.
I think the real takeaway from this is good programmers code, great programmers solve problems. Writing computer code is the means to the end, not the end itself. So we need to learn something else to go along with it. It could be farming. It could be business or finance. It could be sports and fitness. Preferably different people will fall into different categories.
The analogy isn't perfect, but think of learning to code in the classical education trivium. The grammar stage consists of learning languages and syntax and what different types of programs you can build. The logic stage is using that information to build working software. The rhetoric stage is learning what types of programs to build.
The problem with "great programmers solve problems" is that great programmers are often reluctant to solve problems that don't involve programming.
Farming is interesting because you need to make use of all of the tools at your disposal (including programming, electronics, mechanics, etc.) to solve the problems of the farm – of which there are many!
Students often have difficulty seeing the forest for the trees. The purpose of teaching coding may be to teach analytical skills, but the students will only see coding. Very few will know how to take those lessons and apply it to, say, a mechanical machine to automate their life.
Great people solve problems – the tool they use doesn't matter. I do think learning to farm would go a long way to instil that in students.
> but it is far far more important that all human beings >learn to interact with the natural environment and >understand the basics of food, water and shelter.”
This part is my biggest take away from the post. that learn to interact with the natural environment and figure out how to create(nay, refactor/engineer/discover a better word here??) food/water/shelter from it is a hard,important and makes for a more interesting* educational goal than solving math problems or puzzles.
*-- I said interesting, but i would bet that it's probably better in terms of creating a (net total) productive society(x years of education later)
Disclaimer: I hadn't heard of code.org before now and i live in India.
I'm surprised by the anti-intellectualism in that post. The idea that "Growing food is far more challenging, requires an order of magnitude more knowledge and continuous learning and dedication" is totally false.
Growing food is "hard", but it's something most novices could easily do with only a little bit of preparation. It's very easy to grow food if you have access to outdoor space:
1. Buy seeds from hardware store
2. Plant seeds according to directions
3. Water seeds occasionally if there is a lack of rain
4. Wait a few months to harvest
Plants and animals grew themselves for millions of years before farmers showed up.
I still don't understand why people are so reluctant to teach kids code. Most of the argument I had read by now can be reduced to "not all people can be a programmer".
While I am agree that programming as a career is not for everybody, be able to code is a valuable advantage in a lot of areas such as marketing, sales, physics, biology, chemistry, art, etc.
I wonder if the same controversy was in place when people start recommending to teach math in schools, just because Math is not for everybody.
I think they're missing the point of the "learn to code" message. It's not to become extremely wealthy or have a higher status in life. Sure, having computer skills and finding a job is a nice benefit of learning to code, but the idea of learning to code comes from the fact that so much of the world now is built around code. Sites, communities, apps, etc are all built on code. Knowing how to code gives the ability to create and participate in the world.
Encourage -- allow and enable -- kids to participate in the real world around them, whether that's farming, or computer work, or whatever else.
Shoving kids into artificial situations does everyone a disservice.
P.S. Keep them safe, by all means -- reasonably safe, not to the point of disabling learning. But don't keep them ignorant, or perhaps worse, mis-informed.
"The programming part is nothing more than a hammer to a builder or a scalpel to a surgeon. Yes, you need to know how to use it, but the skill involves knowing what to do with it."
Oh but that is soooo wrong. By now it is an undisputed fact that robots are better at surgery than surgeons. Sure, surgeons are still in the loop, as of now... But by now software is already: controlling the machines extracting the material, controlling the milling machines, controlling the entire logistics infrastructure, controlling the robotic arm which shall hold the scalpel, add precision to the surgeon's movements, provide robotic arms with levels of freedom which no human hand shall ever made, etc.
In addition to that software is also about data transmission for when surgeons need to perform remote surgery, about finding correlation between blood samples results and actual illness, finding tumors in scans, X-rays, etc.
That ultra-reductive scalpel/surgeon is totally off. Soon the computer software shall be precisely the skilled expert.
And of course one could go to great length explaining how software revolutionized farming too.
But to me the less people understand anything about software, the more of a technopriests I'm going to be in tomorrow's world so I'm all for it ; )
Why such a desperate trend to make everyone grow their own food again? Sure, the food industry is not always honest,not always as good as your own home-grown food, but still - it allowed us to do something else with our lives, and pushed our societies an order of magnitude ahead.
As much as people should APPRECIATE farming, I don't think that everyone should do it. We produce enough food as it is. We should teach kids how to code however, not because we need more programmers(which we do,but I digress) - but because it's the easiest way to introduce kids to logical, technical-like thinking. That way we can have more mathematicians, physicists, astronomers, engineers - people who we can afford to keep alive(almost literally) because they do not need to grown their own food anymore! They can sit at their desks for the whole day, thinking how to make the world better, instead of looking at how the crops grow.
I would say - why not give kids both? Is it too much to ask? Show them how vegetables are grown, how animals are cared for and how are they slaughtered, but at the same time, yes, please teach them how to code.