What Is Coding?
I did a fireside chat at Google NYC yesterday and was asked a great question by one of the engineers in the room. He wanted to get at what exactly are we teaching when we teach coding to kids and why is it important.
I responded that coding is just instructing a machine what we want it to do. Anytime you are instructing a machine what to do, you are coding. That could be writing python code, that could be setting the alarm on your phone.
The point of teaching kids to code is that machines are becoming an ever more important part of our lives and an ever more important part of society and the economy.
Those who are good at instructing machines will have an easier time navigating the life that is in our future.
That’s why we should teach kids to code.
Comments (Archived):
Good answer.
learning to drive a car can now be seen to have been an early form of coding. it might be a good analogy to use to encourage kids to control the advanced machines of today and the even more advanced machines of tomorrow. Slogan: ‘Be at the wheel of control’.
Yes an early form of high level coding with no need for most users to understand the low level mechanical/software coding of breaking, steering and propulsion systems in order to execute full control over that embedded expertise.Similarly high level black-box algorithmic coding controls provided to end users may well empower them with control over that nested algorithmic expertise.Sure Facebook users have only the black-box controls that Facebook choses to make available to them but in the long run emerging cyber-culture customer expectations will start to place demands on Facebook to compete on those available black-box end user controls.
“Learning coding makes it easier for you to tell computers what to do.”That’s a much more satisfying explanation than Steve Jobs’s “Everybody in this country should learn to program a computer, because it teaches you how to think.”There are lots of ways to learn how to think, many of them predating electronics. But when you need computers to do your bidding…
Jobs not wrong, just not very empathetic.
I think that, by far, the most important skill we can teach children is how to listen to others and be empathetic. STEM instruction is the antithesis to this, and emphasizing it to the extent we do is a great disservice to society.Isn’t is appalling that for all the technological advances in the last 150 years, people still treat others as badly as they ever have?
Why are they mutually exclusive?
They aren’t, but school budgets and kids time are finite.
Not sure that they are. But if you’re A/B testing societal optimization, it would be hard to use the data to suggest that we should emphasize communicating with machines over learning to understand people. It’s clear that we now value STEM much more highly than Liberal Arts.Have our solutions to personal and group conflict, inequality, racism, sexism, healthcare, education, immigration and the environment been improved by the incredible advances in technology? We can’t even have a humane dialog about them to even begin to start to solve them.Technology is a powerful tool used by (or against) dumb humans. Mostly we’re living in a Star Trek world with monkey brains. It’s pretty clear that the balance is out of whack and we’d do much better focusing on how to level-up our human capacities rather than our mechanical relationships.If you were in a board meeting for the US and looking at the KPI’s, data & trends in child poverty rate or healthcare spending v. outcomes relative to the rest of the world, etc I dare say you wouldn’t be telling them to go for even more STEM vs. human compassion. You’d be telling the CEO to pivot cause what they are building are vanity metrics, not real solutions to people’s problems.
I kind of agree with this. And the truth is if you “follow the money” you will see why STEM is at the top of the pile.Fred for example has been married to the same woman since college. He is not familiar with the entire world of divorce and crappy relationships although he obviously knows people who are divorced. As such it’s like someone who doesn’t have kids trying to understand kids. If you understand all the problems that people have in relationships (and it’s a huge problem) you realize that there should be some education in high school and college in relationship communications.STEM also doesn’t solve the “third world” in our country which is poverty and people born into poverty as well as men having babies and leaving the house, crime, drugs all of that shit. Which has nothing to do with racism, inequality or sexism.What we spend our time on in this country? Worrying about and thinking about (things like) the small percentage of people that want to be transgender (as only one example) which is totally dwarfed by much larger issues which impact tons of people.
They are mutually exclusive things to teach: one is driven by logic, the other is emotion. One is instructing a machine; the other is reading people.One person can have both, but its hard to see how you can work on both at the same time.
That’s like saying that a person can’t learn Spanish and Math during the same semester.
.They can learn math IN Spanish during the same semester, no?JLMwww.themusingsofthebigredca…
In fact, learning math in your second language, particular in elementary school years, creates greater intellectual capability. Director of our kids school had studies piled to the sky to prove it.
Not really – its like saying you can’t learn to weld on a sales call.
Unfortunately…2011: IBM Watson is “akin to a human autistic savant”.April 2015: Qualcomm presents ‘Robots must care’ at the Imagination festival on cutting-edge technologies in NY (I was there).However, there’s a big fat flaw in legacy Logic, Probability & Statistics and Psychology methods which means that machine functionality (including the A/B testing @reggiedog:disqus refers to) and its ability to “feel” are mutually exclusive.Don’t be sidetracked by what sentiment analysis and text mining for emotions claim is possible.It’s to do with the limitations of mathematics when it comes to modeling values (qualities, language, culture) rather than modeling quantities (price, how many clicks, LTV rates etc.).So… some people will have to invent and code the new solutions…Or we can forget about machine empathy towards us. They’ll be our “pure quant optimizing” bosses, e.g. the Hitachi robot example.
I agree with you, I don’t think that they are. Left brain and right brain meant to work well together. An individual only strong in one is considered (and rightly so) out of balance.
.Stay on topic. That’s a different issue for a different day. << Don’t mean that to be perceived as offensive as it seems but then why the Hell not?There is a lot to raising kids. Not just their education.I doubt I could possibly disagree more with you on the issue of this being the “antithesis to this” and that it is a “disservice to society.” Just can’t see that.Educated minds are receptive to more different things.I cannot get to the idea that the advance of technology has had any discernible impact on how we treat others. Seems a little far fetched.JLMwww.themusingsofthebigredca…
Ask anyone if they treat other people well, the answer is typically yes. So who are these people who are treating others poorly.
.Well, of course, me for one. That goes without saying.At least, I know who I am.JLMwww.themusingsofthebigredca…
Makes two of us. Gotta know who you are.
I once asked BKS Iyengar what misconceptions are there about life. His answer Too much Empathy is harmful
Don’t know of BKS Iyengar at all but I agree that “to much empathy is harmful” (assumes “to much” can be defined).Empathy can retard getting things done by allowing people to push the limits and take advantage of a weakness in the person with the empathy.I had this recently with a contractor that I was working with. My wife just wanted the job done she didn’t care what the contractors problems were with his employees. I on the other hand (and this was rare not sure why I felt this way as I am normally not like this baseline) was very empathetic of his people problems. Why? Because he was experiencing with the job what I used to call “wheel of fuckups” in a business that I owned some time ago. A situation where your employees are just constantly making mistakes with one particular account and you just can’t seem to get things right. So I had PTSD on that and was very empathetic figuring if he had shitty people there was little that could be done. In the end the empathy definitely caused problems. This is only one example I can come up with others.
Ouch! The wording of that hurts my ears. Imagine the repurcussions to someone taking that the wrong way, as opposed to saying something more specific, like “some personality types are too harsh, and some are too soft”. May he rest in peace regardless of how clunky that comes across.
“the most important skill we can teach children is how to listen to others and be empathetic”I thing everyone agrees with that !The problem being that those are deeply embed biologically-encoded algorithms that are organically entangled with the poor distribution of wealth, power, education, control need for wide spread visceral security, making it a near impossible chicken or egg problem.STEM is a far simpler challenge that just may be able to put a dent in that first order problem of poorly distributed wealth, power, education, control as a prerequisite to recoding general levels of social empathy.
this comment was the inspiration for my post todayhttp://avc.com/2015/09/fun-…
I think this Marc Andreessen quote is quite apt here:The spread of computers and the Internet will put jobs in two categories. People who tell computers what to do, and people who are told by computers what to do.
I use that all the time. It is great
For fun… here’s Marc Andressen’s adage in a cartoon.@hymanroth:disqus @pointsnfigures:disqus
every time i use my laptop or android i feel i’m being told what to do, and it’s not a good feeling.
thats brilliant – i steal
It’s actually a reworking of old aphorism I first heard as a child:There are two kinds of jobs in the world: one involves moving objects on the earth’s surface, and the other involves telling people to move them. So study hard and get the second kind of job.
But you can now be replaced by a computer that tells people, who have been replaced by automated movers, what to move 🙂
http://www.popsci.com/hitac…
The fly in that ointment ?The propensity of people to not do what their told 🙂
One of the teachers I read says we can’t be free until we understand “the machine-man”- the ways in which we ourselves are machines; programmed through evolution by the limbic brain to react before thinking in certain pre-defined patterns. I believe the closer we work with machines, the earlier we realize how tightly programmed we are, and the more we realize that, the better time we’ll have nagivating through life. Machines teach us how machine-like and un-free we actually are, opening up new ways of understanding the nature of being human… if we’re open to inquiring, that is.
AARGHH!!! NO!!! The idea of “Man is a machine” is the discredited work of Julien offray de la Mettrie.Resist ideas around “machines teach us how machine-like and un-free we are”. MACHINES HAVE NO FREE WILL & AREN’T AS INTELLIGENT AS WE ARE. WE HAVE FREE WILL & ARE INFINITELY INTELLIGENT.We also need to be aware of this: “The good news is that, because computers cannot and will not “understand” us the way we understand each other, they will not be able to take over the world and enslave us (at least not for a while). The bad news is that, because computers cannot come to us and meet us in our world, we must continue to adjust our world and bring ourselves to them. We will define and regiment our lives, including our social lives and our perceptions of our selves, in ways that are conducive to what a computer can “understand.” Their dumbness will become ours.”The stupidity of computers —- https://nplusonemag.com/iss…Please also read Daniel Kahneman, 2002 Nobel in Economics: “System 1 is fast, intuitive and emotional. System 2 is slower, more deliberative, and more logical. It is to do with orderly computations, rules and reasoning.Although System 2 believes itself to be where the action is, the automatic System 1 is the hero of the book. I describe System 1 as effortlessly originating impressions and feelings that are the main sources of the explicit beliefs and deliberate choices of System 2.The automatic operations of System 1 generate surprisingly complex patterns of ideas, but only slower System 2 can construct thoughts in an orderly series of steps.”———System 1 is our limbic, emotional selves with free will.System 2 is what we’ve replicated in the machines as limited, narrow, mathematical intelligence.
Lol, ok i can look up Julien offray de la mettrie. I think we might be coming at this from two completely different traditions though. De la mettrie sounds apocryphal. Gurdjieff is using the analogy to demonstrate how “on automatic” our mental, behavioural, and instinctive patterns are. Anyone who has sat down for a 10-second meditation session will have gotten a taste of that.
A-ha, :*). You mean this.I wish I’d given Pilates & Yoga more of a go!
Do yoga. I don’t know much about Pilates, but I think it’s more complex; whereas yoga is much simpler. When you finally have your aha! moment about the importance of mindfulness- being present with every movement (it took me 7 years to “get it”), you have your body’s meditative “prayer” already memorized and it starts to come alive as you daily connect your consciousness to your body and vice versa.
The other reason the “man is a machine” philosophy is a terrible one is because then it means we’d be expected to be like the machines and have no emotions and no cultural values.We’d just be operating on pure logic, rationality and probability with no empathy or consideration for others.AI researchers recognize that the machines aren’t intelligent like we are because they’re pure logic, rationality and probability.That’s why the likes of Qualcomm presented “Robots must care” in April 2015 at a conference on cutting-edge technology and where we need to go.So…man is NOT a machine and we should not try to be like them.Rather, we need to get them to be more like us.
Good reason and there are many more:The Politician – a path to a new economyThe Intellectual – a different way of problem solvingThe impoverished – a way to get outThe artist – the computer is the canvas the language the oils and pigments (apologies to Fred Brooks)The educator – a new way of engaging their chargesThe researcher – a new way to explore dataThe businessman – efficiency and an edgeand I’m sure the list goes on.
I agree with your list and would add: economist, scientist and gamer because I see developers I know, including myself, in that list — with the exception of Politician & Impoverished.Marc Andreessen, Sept 2012: “The future will be made up of two types of people. People who tell computers what to do, and people who are told by computers what to do.”Sept 2015………Hitachi robot is the boss so we better believe that HAL and Skynet are possibilities and human evolution+ survival will depend on the values of the people who can code and instruct the machines (@hymanroth:disqus ).The other day @fredwilson:disqus wrote ‘Recommending Recommenders’. Yesterday I read a report from Citigroup on how robot advisors will take over in Private Wealth Management in the way they already do a lot of investment banking (e.g., proprietary trading) and in hedge funds (e.g., algorithmic trading).I’m super thankful CS was compulsory in my school from 11, my parents had gotten me into STEM long before that and let me go to after-school Computer Club where I learnt to code simple games like Hanoi Towers.So I take off my hat to you and your team for your dedication in shaping and tooling kids with code and CS.In 2012, Aaron Patzer, founder of Mint: “When valuing a startup, add $500k for every engineer, and subtract $250k for every MBA.”I’ve saved myself A LOT of cash burn because I code.
Thanks – love the Aaron Patzer quote
Personally, I see engineering + MBA as symbiotic and about equal in value.There can be a bit of one-upmanship between the two schools (@jameshrh:disqus ).I’ve heard MBAs be dismissive of coders in this way, “Well, if we don’t give you the capital, you have zip to make your system and buy your servers with, so you end up building what WE want because we control the capital.”Then coders’ response is something like, “Good luck with waving a business plan at an ordinary user and expecting them to DO SOMETHING USEFUL FOR THEM with it…without our code!”The way you’re teaching the kids to imagine themselves as those combinations of responsibilities (politicians through to businessman) is a terrific context.After all, Da Vinci wrote: “Learn how to see. Realize that everything connects to everything else.”Code, of and in itself, is some syntax, strings and functional variables.More importantly, it’s the connector of dots (people, products, places etc) in the dynamic canvases of Life.
Steve Wozniack recently said this, though: “”Steve Jobs played no role at all in any of my designs of the Apple I and Apple II computer and printer interfaces and serial interfaces and floppy disks and stuff that I made to enhance the computers. He did not know technology. He’d never designed anything as a hardware engineer, and he didn’t know software. He wanted to be important, and the important people are always the business people. So that’s what he wanted to do. The Apple II computer, by the way, was the only successful product Apple had for its first 10 years, and it was all done, for my own reasons for myself, before Steve Jobs even knew it existed. So I had created it, and it was just waiting for a company. And Steve Jobs was my good friend, the businessman.”
That’s great mike
Teaching kids the basic of programing is a good idea but I’m less bullish on actually teaching kids a real programming language.Rather than teaching them the complexities of instructing complex machine machines, we should making machines that accept a more simple input.I’d rather see more arts and drama in a core curriculum than a coding language.
The skill of creating a great story line using modern storyboard authoring tools is subject-specific coding in my books.We just need to place a little more emphasis on getting the student to conceptualize such a process as a subject specific form of coding which revolves around reducing the job at hand into a recombinant, author-able, reusable set of sub-processes/components.Then he/she can conceptually carry over that coding concept to other subjects by becoming aware of the generic commonalities that define coding.
Being a good problem solver its worth its weight in gold. coding teaches you to se through problems and resolve them which is good training for being a problem solver.
An engineering degree is valuable for that purpose.
Very true which is why I teach computer science and not coding however, I’ve also seen a lot of people employ what I call glue programming – very rudimentary programming without much deep problem solving to tie together components. That’s also useful but not the same.
“Glue programming” is the essential idea of the “no stack startup”. I wonder if the “business analyst” / “functional analyst” role will be replaced by “glue programmers” — if in 5 years the “business analyst” at, say, Deloitte or McKinsey will have been replaced by the “glue programmer” doing rapid prototypes and MVPs, instead of PowerPoints.
As a former Deloitte analyst turned software designer, I wholeheartedly agree. A blend of business know-how and coding knowledge is quite valuable. “What if we did it this way…” is a great way to get the ball moving.
Could you describe the difference between teaching cs vs coding, as you interpret it? Thx 🙂
I describe my job as:1. Teach the kids to think in a new way2. Teach the kids to solve problems in a new way3. Teach them to learn on their own4. Do this by showing them some neat sh*tIt’s about thinking and problem solving and the coding is the tool by which they can express themselves.While any chunk of code could be described as “solving a problem,” using Fred’s example of programming an alarm, which could involve coding, doesn’t really enter the realm of problem solving and deep thinking.
using Fred’s example of programming an alarm, which could involve coding, doesn’t really enter the realm of problem solving and deep thinking..Exactly. The problem solving is actually the fun part. And the fun part is what keeps you in the game.
If I had kids in school:1 and 2? No thanks.3, okay, but not via computing.4, in computing? Not neat enough.
Shell scripting as one example. Can’t even begin to say how helpful that has been in my life.
Quiet! Don’t tell them! What do you want to do, mess it up for the rest of us? Heck, next you will want to be teaching them to read, do sums, tie their shoes, take a bath, date girls, grow the welfare rolls. Gads!
Quiet! Don’t tell them!What’s fascinating is the entire aspect of “don’t tell them” which the web has been turned on it’s head. In the olden days information was power and you certainly didn’t want to turn people on to your secrets (and in a sense I would argue you still don’t in many situations actually). Sharing is different now simply because of not only vanity “15 minutes of fame” but also the fact that the market for whatever you do is worldwide. There is more than enough business or business to be gained by being more open than in the past where getting a customer was much much harder (take it from someone who was there there is no comparison was actual work!..) [1]Anyway, the fact is now there is so much information out there the problem is really deciding what idea to do or who to listen to.Car colors. You remember? Henry Ford? Who said customers could have any color they wanted as long as it was black? Making a decision on car color was easy back then. Today it’s more difficult. So many choices so many options. Same with programming. What should I learn? Videos, blogs, tutorials on everything. Need to know how to do it? Just a google search away is the answer.I remember back when I had to drive to the Princeton U bookstore in order to find any books on Unix or C. I didn’t have to give any thought to the dozens of new things that you hear about now that you can choose from. They didn’t exist. Things that will go out of style down the road when someone invents the new perfect language that “fixes every single problem the old stuff had”. [2] [3][1] The guy who does kitchens locally isn’t going to turn on a competitor to his low priced carpenter for fear that carpenter won’t be available for his job when he needs him. Give out your babysitters number to a friend and they might be tied up on the Saturday that you need them.[2] I remember this same thing with martial arts in the 70’s by the way … “it’s this, it’s that, it’s better because..”[3] I guess it’s a version of “don’t play someone elses game make up a new game”. If you can’t be the expert at Perl come up with something to replace it so you can be the expert.
“Black is not just black, though, Henry Ford.”You do know Marissa Mayer A/B tested 41 shades of blue on Google search box to get the PERFECT SHADE OF BLUE?* http://www.nytimes.com/2009…
That’s an example of crap that you hear that makes for good PR and is way overblown in importance. [1] Stuff that appears in car advertising. Did they ever define how much better the perfect color was vs. one chosen the traditional way and how it impacted the bottom line? If they did would you believe what they said? Or whether the time that Marissa spent obsessing over that could have been better spent on other things? What was the “net” cost in other words? Don’t get me wrong I love attention to detail. In the case of Apple, it matters. But with the true money of google being paid search I find hard to believe that is more than a cute anecdote released as almost disinformation.[1] If not google I would have thought that a great way to get your competitors to spin their wheels actually. Not that color doesn’t matter it does just not in this case to show anything but Marissas quirky obsessiveness.
There’s a rumor that, because now she is pregnant with twins, she hasn’t been fired!I like her! When she first went to Yahool, on a good day, she could still look like she was in the seventh grade! Really cute!She had at least two dresses, one blue and the other red. She looked terrific in either one!Too bad it was all wasted on Yahoo!Ah, it’s the fault of Mother Nature, in particular, men, the men who didn’t get her to be a wife and mommy as she was 110% intended to be!It’s like the opera Manon where the girl is on her way back to school but at a routine rest stop gets off the carriage and, then, totally off track in her life. Marissa got off track when she joined Google and concluded that that was better than marriage and motherhood. But it’s not supposed to be up to her: Instead, Mother Nature is supposed to have some men see that she’s cute and make her an offer she won’t refuse.
What are your thoughts on Sheryl?
Apparently provides good adult supervision and mother hen support for Zuck.
Sometimes, you’re HILARIOUS!Monday night, at dinner with one of my oldest friends, I was making a forensic point about Ada Lovelace and her translations of Bernoulli’s work and do you know what he said?”You look SO CUTE!” Yes and he sees me as “just graduated high school” and has done for well over the dozen years we’ve known each other.Then, yesterday, this news about a female barrister being offended by compliments on her looks appeared.Marissa Mayer and millions of working women out there are about much much more than looking “cute” and many of them are married with children.Moreover, there are FEW men in the world who are wealthy and witty enough to make intelligent women like Marissa Mayer offers that they can’t refuse: stop working to spend all their time laughing at their husband’s jokes and rearing children.And losing braincells because of lack of stimulus in the process.
Motherhood? Hmm …. Let’s see:Track and lead the development of the kids including emotional, empathetic, verbal, mechanical, psychological, moral, ethical, religious, athletic, social, academic, artistic, rational, quantitative, scientific, technical, entrepreneurial, creative, etc.I’d add: Get them ready for their Princeton math Ph.D. qualifying exams by age 18 and have at least a few papers published. Then, pass the qualifying exams, submit the published papers as the dissertation, stick around for a one-year residency, and then do a startup.E.g., get a magnet, some wire, and a sensitive volt, amp, ohm meter and start with Faraday moving the wire past the magnet. That’s age 4 …!Get two prisms; use one to make a spectrum, and use the other to show that can’t further divide the light of one color from the spectrum. Ah, think about that. That’s age 5.Get some small pieces, a light, some narrow band filters, and a magnifying glass, do Young’s double slit experiment, and read Feynman’s analysis — that’s age 6.Get the kid a toy steam engine, and use that to teach the gas law and basic thermodynamics.Show five good proofs of the Pythagorean theorem, also age 6. E.g., take four copies of the right triangle; arrange them into a square with one triangle hypotenuse for each side of the square and with a small, empty square in the middle, start with the area of a right triangle, tap lightly, and get the Pythagorean theorem.Give a simple definition of sine and cosine, write some software, and understand perfect tuning and tempered tuning. Understand overtones and have a start on Fourier theory — age 7.Study music A/D and D/A, the canonical theorem of interpolation theory, the data on music CDs, and illustrate with a little software. Also age 7.Newton invented calculus in, what, two weeks, two months? Okay, should be able to learn the basics that fast. Do that, age 7.”The hand that rocks the cradle rules the world.”Motherhood is the most important job of all, the most responsible, the most involving, the one requiring the most insight, but, right, can still be done badly.If any woman has anything at all between her ears, then being a Silicon Valley CEO is a really big step down from motherhood.Any woman who thinks that the world of work is better than motherhood has been sold one gigantic pile of nonsense, maybe originally from Communist saboteur of the US family, Betty Friedan.Thankfully, apparently Marissa will soon have three kids. Great for her. I hope she has three more.Otherwise, the average is well under 2.1 children per woman which means that Darwin will have something severe to say about a lot of women.
Hmmn…clearly you’re not a mother who’s educating a well-rounded and sociable child because it goes more like this:6 months = 1st language.12 months = trilingual.24 months = spatial reasoning, crack gate locks and form social relationships with kids a lot older.36 months = barter with older kids about what they have to give in exchange for use of toys, specifically a bicycle.4 years = complex card games & lots of art.5 years = chess & Confucius.6 years = Pythagoras by short-cutting across the park, Eureka in water displacement experiment involving some crabs, sand, seawater and a bucket, quantum mechanics projectiles with catapult (later useful for ‘Angry Birds’)7-9 years = dance, piano+guitar, physics of cloud formations (tell difference between cumulus and sirrius), chemistry (why OJ curdles milk), cell biology, car engines, making computer games, poetry recital & all the great artists & knitting.9 years = algebra, electronics & how to make tofu.10 years = all the great writers, athletics & how to use a sewing machine.11 years = Turing, Shakespeare, Man Ray, Mao, bridge & team sports.WHILST MOTHER IS WORKING FULL-TIME.
No way. No way in child raising could I replace a good mother. Not a chance. Don’t have the aptitude. E.g., Mommy always knows what Baby is thinking and feeling, and I wouldn’t have a clue. It takes a Mommy. A good job is not easy for a Mommy, and impossible for a man.
You have forgotten “manipulate the child psychologist to get your parents to give you that dog you always wanted”.
Ha! :*).More like…8 years = negotiate purchase of Golden Canary by sidling up to Dad even though child has destroyed his Peace roses with catapult, made from the leather tongues of HIS shoes. Haha, child has learnt wit and irony and problem-solving by adaptation by this age.There are also fishies, tadpoles liberated from the canal, dragonflies & butterflies caught in nets and a baby electric eel.
Well to be clear you have to understand that men (like the one you are referring to you friend) can easily be equally abusive with men.Let me give you some examples and my thoughts.Sometimes when I am sitting in my car at a stop light and look over there is a man looking at me. Let’s stipulate that man is not gay. He was just looking who was in the car next to him. However if I had been a woman (a good looking woman) I might assume he was looking at me for that reason. Ditto if I was a black man in a white neighborhood.Next point. Many years ago I was looking at some businesses to buy with my older cousin. He is maybe 10 years older. The idea is that we would be partners in this business. We went to look together and something came up and he said to me in a very direct way “ok you should call them and ask them why XYZ is ABC”. So of course I thought “he is only doing that because I am younger than he is”. But you know I have been accused of the same thing by women and men. I bark orders in a way which was very helpful when I was in my early 20’s and had older employees work for me. I didn’t even think about it that is just the way that I am. So most likely my cousin (who is an entrepreneur) was doing the same thing.Next example: When I used to date I have had women tell me any or all of the following:a) It sounds like you are interviewing me.b) Why do you talk to the waitress (or waiter) that way why can’t you be nicer to them? I didn’t even understand that since it was the way I talked to everyone.c) When my mom invites me to dinner I tell her when I can be there (not because I am so important it’s just the way that I am). Has nothing to do with the fact that she is my mom. I did the same thing with my dad. And I do the same thing with everyone. My sisters etc. “I can get there when I can get there if I am working I make no guarantees”. What’s funny is people sometimes have a problem with this but they never question my wife when she does this. Why? Because she can play the “doctor” card. People always give her plenty of latitude and never question her. And she is a woman.My point is although you could be right I wouldn’t want everyone to assume that all men are pigs they could just act a certain way baseline. I agree it’s annoying though to be treated this way.
Let’s compare old+new Google logo and see how the most minute details matter.There’s definitely something amiss with the shade and contrast of the yellow “o” compared with the other letters.They didn’t compensate enough for the loss of the axial left-tilt and that yellow “o” should be a deeper tone, erring more to red spectrum.New Google logo is color-imbalanced.It may be imperceptible to most people but it’s really jarring every time I do a Google search.
Google logo with my brain (and I am actually good with these things) doesn’t even rank anywhere near the level of a corporate logo. It always sucked it sucks even more now. That makes sense because the leadership of Google (like Microsoft) has no innate design ability therefore if they are involved in the decision making and/or hire people at the company all of that flows through to the underlings and their abilities and sensibilities. This is not a dig so much as just the reality. Jobs said it best about Microsoft that their color schemes and logos are truly bad. That they have no sense of design. (Or actually that is what I am saying but Jobs said something that sounded like that about Gates iirc.) Lucky for them it doesn’t matter. They aren’t a product sitting at eye height on a supermarket shelf. And they have such tremendous market clout who cares actually.Look, Larry and Sergey called it “backrub” first attached is what they thought was a good idea for a corporate identity.I mean seriously how gross and stupid is that for a name? Why not call it “toilet” or “litter box”?Here is a good test to see if someone has a clue design wise with logos and branding. Ask them to watch network news and have them talk about the differences between what the three major networks do vs., say CNN in terms of graphics, chirons and so on. The best people work for the major networks and it’s clearly apparent that their skills are vastly greater and in a different league than whoever is doing the same shit for CNN or even the local news channels.Ditto for, say, business card design. Look at the business cards of a major corporation (but not google) and compare it to the card that the local small business gives you or even a 500 person business. You will see a much more refined look and style that is like an understated elegance for lack of a better way to put it. Same for trucks used by major corporations. All well thought out, not done by the artist working part time for the local truck wrap company using clip art….
May have been designed by a man. IIRC 25% of men are partially red-green color blind!Maybe that was because Mother Nature wanted men to chase after both girls with red hair and ones with green hair! However, somehow something happened to the girls with the green hair!
Yes, and as I recall I used a little piece of software that can report the color of any pixel on the screen to copy her blue — used it. I might also use the Tiffany blue!For my font and its colors, I borrowed from Google!Such work has a relatively low barrier to entry!
Yes, RGB detectors sont très utiles!Issues would arise if you wanted to file design patents, though. Some lawyers from Google may contact you then.
Okay by me. RGB is a 24 bit number, and there are, let’s see, right ballpark 16 million of those. So, I’ll change a bit or two.Uh, your Honor, you mean to tell me that Google has a patent on a number, one of those 16 million?Gee, let me get a patent on some numbers! How about 0, 1, …. For each number n I have a patent on, I also want a patent on n + 1. Okay? Then the negatives of those. Then the ratios of those where the denominator is not zero. Then the monotone limits of those. Patents on all of those! Then for positive integers n, n-tuples of those. And I will license each use of each number at $0.01 per use. Presto, richer than Trump!
Ha! Except no bit numbers and no mathematics can be patented.1998, Pantone’s Hexachrome, the standard for six-color process printing, was awarded patent number 5,734,800 by the USPTO, though.
Oh, 5,734,800. I’d almost forgotten that number!
then google realized that it was a waste of time and stopped doing it
> [3]Yup. One way, research, “new, correct, and significant”, powerful, valuable, proprietary, intellectual property, barrier to entry, technological advantage, etc.E.g., now there’s lots of data and means to collect, transmit, store, and process it. But where’s the value? Often a tough question.So, for some value, identify a problem and then manipulate the data to get a solution. How to do the manipulations? Can try the silly, weak, intuitive, heuristic semi-brain dead stuff in the computer science departments, but far more powerful, for far more valuable results, is some math.For the math, there’s a lot on the shelves. Can take that, and, if just don’t tell anyone, then likely they won’t figure out what you did. So, will still have your own “game”.If do some original work, research, it is still less likely that will have anyone else figure out what you did.If believe Trump, then the US has 92 million people who can’t find anything useful to do. Okay, pick a problem, get some data, do some math to say how to manipulate the data to get a valuable solution to the problem. Hmm ….
The interesting corollary to this is that now that everyone knows what the secret sauce is, it is fascinating to me to see how many people choose not to utilize it despite the fact they don’t lack the resources to do so. It often turns out you don’t need to keep things secret because the competition doesn’t believe you or agree with it anyways.
The wonderful thing is precisely that each of us cooks the sauce differently — even when working from the same recipe.
I’ll be showing my kids simple scripting tomorrow as a teaser of what’s to come.
I’m jealous of my nephew (and all the other kids) who have all these CS resources readily available to them today. That being said, I’d love to see a blend of design mixed into his learning. “Why are you solving this problem?” “Are there better, more interesting, or simpler ways of getting to the same goal?” The thoughtfulness and prioritization of his problem solving is often glossed over.
I could argue that it *is* essentially the same – I mean, wether you’re making a workable process out of third party webservices or assembler instructions, the steps to make it work are pretty similar with all the differences being in the complexity of the components you’re using, your [lack of] familiarity with them, and the scale of required result. E.g. one can solve quite deep problems by gluing together pre-made machine learning components without neccessarily delving into the math on how exactly they work; and even if you implement everything yourself, then the neccessary rudimentary glue code will likely outweigh the complex core by a factor of ten or more.You can make a house from bricks, a larger house from prefabricated concrete blocks, or a much smaller house from matchsticks; the difference is in the tools used, and components – because, unlike in construction, in software the hard part is understanding the problem and making up a working detailed solution in your head, and then ‘coding’ it consists pretty much just writing it down if you know the appropriate components and ‘type of glue’.
It can be the same but it can also be very different. I agreed that glue programming can be useful but I’ve also seen many “glue code programs” – for all ages leave participants with no ability go beyond the project they left the program with.You can do all the things you said but as long as you know how to build the house – lot’s of programs take people through “building the house” without teaching them to build the house.Hard to really explain that last part but there’s a lot of that out there
So is 2 years in sales, if you replace machines with people and logic with agendas.
Agree. Sales (at the highest level) is for sure problem solving.Also I am not talking about the type of sales that is essentially what I call “order taking”. That type of sales is not problem solving and takes little skill other than showing up, being nice, and acting as if you are the buyer’s friend. Problem solving sales would involved uncovering and overcoming objections by proposing creative solutions. It is challenging and fun and quite a game.So in order to get the most out of this you need to be in the right type of sales situation (since “sales” like “computers” is very broad).
Coding generically defined = the skill of optimally-recombinant reductionismThe skill of breaking larger processes down into their fundamental component processes along with their basic rules for recombinant conjugation then using that PLATFORM of basic processes components and their reusable conjugation rules to imaginatively reassemble/sequence them into new higher level authored/stored/reusable processes that if well optimizes can form the basic components for the next higher level recombinant Platform.As process-literacy osmotically seeps into our collective mindset, that platform-recombinant organizing-principle ie-coding, along with its narratives/metaphors and language memes will emerge as a higher level social-organizing platforms. Platforms that will facilitate more accessibly abstracted social-construction/coding where customizable-Apps play the key role as recombinant baseline social-coding platform components.All that to say that it is time to start consciously thinking/teaching/producing coding-concepts and social coding-components that embodied recombinantly-customizable social-Apps as the dominant high-level mass-culture coding-platform meme.We need to start bringing coding to the masses not the masses to coding !The evolution of coding is all about hiding the variables !The present push to teach everyone low-level syntactic programming is a form of inefficient level-mixing(solving a problem at the wrong systemic level). It is skating to where the puck is rather than where the puck it is going.Sure we need some low-level chief coding architects but the rest of us indians just need to stand on their reusable shoulders!
Nice, but several steps up from what can be expected via teaching coding.
I see a lot of programmers that don’t seem to know much about computer science. They get away with it these days because processors are blazing fast and memory is ample so you can still get decent performance without optimizing algorithms.
Agree.And you are a sailor so you know that it takes a great deal more skill to try to get a small hobie cat or sunfish to go anywhere with little to no wind vs. if you have 15 knot winds.The thing is with sailing there are days with varying winds and there will always be. So the skill and knowing the right way to do things does matter. (Or skiing, say on ice for example) However we can safely assume that computer power will continue to mask poor programming and for many applications so it’s a bit different.The other situation though is the programmer who is so anal (and I have dealt with this) that they never get the project done because they are worried about “the paint on the other side of the fence that you know is there” (reference to Steve Jobs father..) Perfection is the enemy of project completion.
You get away with it when in obscurity. But if you suddenly get popular then you get the Fail Whale.
I have found the opposite many of the coders I work with are horrible problem solvers.
Yes, fundamental to coding, I think, is learning algorithmic thinking. It brings together mathematical logic, rigor, scientific method and using them all to explore creative possibilities. Those are powerful tools, and really what’s lacking when we refer to the woeful lack in American education.
https://www.youtube.com/wat…
In the future, there will be three kind of people. (1) People who are told by machines what to do. (2) People who tell machines what to do. (3) People who tell the people who tell machines what to do, what to do. You can’t be Type 3 without knowing a lot about Type 2. And you’d rather be Type 2 than Type 1!
Ahh.. the old false trichotomy. There will be many more types of people. Arts, music, and entertainment aren’t going anywhere soon.
i agree with you, though the counter-argument is that it will all eventually be machine-learned away.
I don’t buy that. At least not until the machines have enslaved us.
they won’t, we will enslave machines.
The Robot’s Rights groups are going to love you.
Well…I didn’t mean that to cover 100% of humanity…
You forgot “government bureaucrats that don’t listen to machines, don’t code for machines, and are adrift and above the fray”
Yes, that’s a whole different class!
Gee…truly a sad picture Matt.A world without poets and artist, chefs and food visionaries, brand builders and musicians.
Yes!We still need the truly experimental imagination programmers !
.People who own the machines and rent the people.JLMwww.themusingsofthebigredca…
Most people are this guy (the user).The people who “own” the machines are the ones who code them to do what the users need and want.@mattblumberg:disqus
(3) People who tell the people who tell machines what to do, what to doIf you zoom out, aren’t those type(3) people generically known AKA as customers ?You are inferring, under algorithmic network-condithions, the death of “the customer is king” ?As a non type(2) customer we still have the skills to decide what we like, to decide what suits our needs, and thus ultimately in the big picture steer the behaviour of the type(3s) as “the customer is king” will still be in charge of universal “pricing signals”. Apple is banking on it !
I agree with you to a point, but it may prove to be optimistic thinking that any of us will tell machines what to do.But I get and agree with the general point, our degree of influence in the world will be correlated (if not a function) of our understanding and use of technology, including coding.
and 4. Hackers
I prefer “There are two kinds of people: the consumers and the producers. Be the second type”. It allows for non-technical professions.
that’s a great point Matt. did you know that over 75% of Princeton undergrads, across all majors, now take their renown Intro to CS course at some point in their undergrad journey
2020: If you finish school and don’t know how to code properly, you can’t find a position in a digital layer.
Just as traditional works are automated out of production systems traditional concepts of coding will inevitable be automated out as well ?
“I responded that coding is just instructing a machine what we want it to do. Anytime you are instructing a machine what to do, you are coding. That could be writing python code, that could be setting the alarm on your phone.”Do we agree?If we’re not providing a set of instructions that can be executed later, is it really code? What’s the minimum definition of coding?
Zooming out on the concept of coding is very instructive !
I see how my coding skills help me solve non-computer problems, that other people struggle with, all the time.It’s the true or false nature of programming that helps a person learn to break down any problem into a series of true or false questions. That, and the way that it makes a trial and error approach to problem-solving second nature. Those two things truly make anything seem doable, solvable, or learnable! Nothing is too big to know.When I watch people who don’t understand programming (not in-depth, but just the basics — the true or false nature of machines) struggling with their devices, I see how important it is for everyone growing up now to understand how these things work.A truly brilliant programmer shared this with me the other day, CS Unplugged: Computer Science Without Computershttp://csunplugged.org/acti…It’s really neat, even for people with programming skills.
“It’s the true or false nature of programming that helps a person learn to break down any problem into a series of true or false questions. “–> This.
What lessons would you replace with coding lessons? Phys. Ed? English Lit? Biology? Knock on effects will be interesting.
Not replace, but enhance. Phys Ed = analyzing data from wearables worn during previous class or track meet. English Lit = pattern matching. Biology = instrumenting the class pet’s terrarium and making sure it doesn’t expire because someone forgot to check in on it.
I like that idea. But enhancing lessons with data and tech is different to teaching the nuts and bolts of coding no? (I can’t code, so this is a question rather than a statement 🙂 )
It is different but not everyone will want to code when they grow up. However, everyone will need a basic understanding of how technology in general works, and deeper understanding in their specific discipline (e.g. the doctors of the future will hopefully be able to use systems for passive biometric data collection and diagnosis assistance decision engines; they’ll be better at their job if they understand the mechanics of how these systems work the way drivers who drive manual transmissions have a better understanding of the overall mechanics of how a car moves than those who’ve only ever driven automatic). If you’re exposed to practical applications you care about early on you’re more likely to dig in deeper into a discipline. The way coding was traditionally taught (at least when I was in high school and uni) preloads applications with a lot of theory and fairly run-of-the-mill examples (e.g. the first program I remember writing had to do with manipulation of matrices and wasn’t very sexy) so unless you know this is what you want to focus on long-term your interest can wane pretty quickly.
Yep, sounds pretty good to me.
yesssssssssssssssss
I think a the very simple step here would be to suggest giving HTML/CSS a shot for class presentations. Give a fifth grader a color picking tool and you have to pry it from their hands. Even changing text from an <h1> to an <h6> brings oohs and aahs, the urge to learn more. It seems like high schoolers are guided to presentation software with the well meaning thought “you’ll use this in the real world.” It gets the job done faster with no design headaches. But this subtly trains them to, as commented elsewhere pace Andreessen, take the job where the computer orders you what to do. You have to encourage this because it takes a long time to match or exceed in HTML what you can do in PowerPoint but once you do the sky’s the limit…Downside of a tsunami of kid marker-uppers will be lobbying for the return of blinking text.
We don’t need to replace other lessons with traditional concepts of coding.Rather we need to highlight the generic coding concepts of recombinant, author-able, reusables as narratives, metaphors and language that specific apply within those other subject areas such as english and biology.We need focus on bring forward the generic recombinant coding perspectives inherent within all those other topical areas as well as introduce the tools and technologies presently available to empower practical recode-manipulation of said topically materials.
i don’t think we should replace. we should use coding as one way, not the only way, to teach those subjects
We need to think very widely about the word “machines”. Yes, computers, appliances, cars, robots are machines, but we can also program more virtual things like:- a network – a blockchain- a set of data These are made of machines, or by machines.
We can also extend that thinking to biotech where we’re essentially programming cells. That’s a coding language too albeit not meant to interface with software or hardware. Other verticals too – it’s all communication of one type or another.
Good point.
Interesting…Do you actually program data? You build stuff out of it is how I usually conceive of it.
The legacy approach in Big Data and Machine Learning has been “Pull in data via APIs, run it through some algorithms to get analytics from it and/or build stuff with it.”However, data programmability will happen more in the next wave. It already happens in READ-WRITE functionality on APIs.When we pull in data it might originally be meta-tagged just as “video”. Developers can script it so they rewrite that bit of data as “video, 30 minutes, related to cars” if they want.Users also re-program data every time they change their comments on Disqus or update their user profiles.
Does this relate to services like Apple Music and Spotify, trying to guess which songs you would like to listen to next?
Indeedy, it does.Every single recommendation engine has a basic data corpus. It’s how the engineers classify the data. Look at a typical JSON+xml file and you might see something like this:—————-<xml version=”1.0″> <catalog> <book id=”bk101″> <author>Gambardella, Matthew</author> <title>XML Developer’s Guide</title> <genre>Computer</genre> <price>44.95</price> <publish_date>2000-10-01</publish_date> <description>An in-depth look at creating applications with XML.</description> </book>::</catalog>var result = from e in XDocument.Load(“xxx.xml”).Descedants(“book”) select new { BookId = e.Attribute(“id”).Value, Author = e.Element(“author”).Value, …………………… };foreach(var item in result){ //Suppose your EF’s model’s name is Book, then—— Book book = new Book{BookId=item.BookId,BookAuthor=item.Author,……}; XXXEntities.AddToBook(book);}XXXEntities.SaveChanges();——————Developers can add in as many empty variable cells they want to the database, let’s say “Comments”, “votes up / votes down”, “how many times this link was clicked”, “how long user stayed on this article”.Then every time a user adds something related to the key value id (bk101), the dataset is reprogrammed and gains new metatags; let’s say “Great read that’s clear and helpful”, “vote up”, “2” and “10 minutes”.Recommenders are then just a matter of filtering that database according to whatever variables the developer wants (e.g., some combination of author, price range, genre, etc) plus some random correlation generator against “other people in this social category also read this” in a way which seems personalized to users like us and @fredwilson:disqus.Pretty much all the big techcos (Google, Amazon, FB, Baidu, Alibaba, Spotify, Twitter et al) use the same techniques. They’re industry standard.Apple Beats has secret sauce and $3 billion will likely prove more than worth it.
Thanks that’s v helpful. This sort of recommendation is the clearest example in my life of machines telling me what to do. And I tend to like it, which is a little scary 😉
There’s a company I know that’s doing work on “data sets”. Their software is specific to that.
coding…like most things…is actually a religion.hacking (or my more general def. which is just ‘problem solving’) is my personal preference. It usually involves some coding but is less rigid than just syntax and instructions.I have the hacker faith.
You are the ultimate hacker 😉
That is quite the compliment in my book…Thank you!BTW – I spent this past weekend in Jackson, WY for a wedding and talking with some of the other guests about Blockchain, BitCoin, and many, many of the alternatives (I brought your name and resources up more than once) 😉
How did you pronounce his last name? It ain’t no “Marshall”.My guess is “moe gay ar”. Or maybe “mo guar”.
I just use “William”…he’s that kind of famous. 😀
.You’re scaring me, dude.JLMwww.themusingsofthebigredca…
Heh – well full disclosure, I’ve had this idea on my mind for a bit now…I actually bought the domain hackerfaith.com a few weeks back with the intent of doing a series of content around “how to code” or better yet, “how to become a hacker” (and of course to make some cool tshirts and swag).I’ve been helping my 11 year old build a mobile game app (hopefully set to release in a few weeks) and through the course of that, a lot of his peers are asking for advice, help, and tips on being able to do the same sort of thing.The trouble is, most of the kids (like the rest of us) just want the quick fix/answer and don’t *really* have the faith yet (they get super discouraged soon after they start down the rabbit hole)…so part of what I’ve been thinking about is how to properly start them down the path, without getting too discouraged by all the religious debates about what language to learn and how to go about it all…I don’t have the answers yet…but I’m building quite a good list of questions 😉
.Build a cult with long dark hooded robes and incense. Give great titles and charge admission to your events. Conduct silent marches in downtowns and then run away and take the subway somewhere.Bust into big databases and publish the results. Threaten public officials.It could work.JLMwww.themusingsofthebigredca…
I’m mostly interested in the tax exemptions it can provide…
.Screw the exemptions, make it a 501(c)(3) and you can take donations, pay for your lifestyle, travel, gadgets, and never pay taxes.Model it on the Clinton Foundation, no?Get your own private server.JLMwww.themusingsofthebigredca…
I’ve been taking notes for sure…did you happen to catch the John Oliver episode on religions? Inspirational for sure -> http://www.ourladyofperpetu…
I say go for making money, get tax benefits (write off that new laptop and trip to SF when Apple announces) and if you happen to be lucky enough to earn a profit then pay taxes on it. Why play around with non profits. (I know you are kidding of course…)
(they get super discouraged soon after they start down the rabbit hole).So then those kids (as was said in “Caddyshack”) deserve to be ditch diggers since the world needs those.without getting too discouraged by all the religious debates about what language to learn and how to go about it all…Oh just tell them to ignore all of that pale face bearded (and eats shitty food) hacker culture. Religion yes. Gets way by putting downs and brainwashing. Doesn’t matter. No need to admire the weirdos. (Not your beard of course.) You know the Stallman type beard.I am reminded of a guy who I knew that took shitty pictures but could rattle off the specs of any new camera because he read all of the photography magazines. Or the guy who reads the car magazines and gets into all of the details on sports cars but doesn’t own one. The bottom line is knowing enough to get something done that suits what you are trying to do. If you are trying to get a pretty girl doesn’t matter how many horse power is under the hood. I hate all of that purist shit. [1]I know a coder guy who often comments on things that I do. An example might be how I don’t need to compress a file first and then scp it somewhere how that can be done in a pipeline on one line. He is right. [2] But the way I do it gets the job done and I am not interested in learning 6 ways to do something that aren’t any better for the reason that I am doing them (which is what matters I am not doing programming for google I am doing this to solve a problem for myself).[1] Just heard that Porsche is putting turbochargers in all 2016 911s and that “purists” will be upset because they like the naturally aspirated engine (which ironically sounds like shit). Who cares about naturally aspirated? When the turbo kicks in the engine sounds awesome and to me that is what matters.[2] After many years I finally did begin to do it this way when I had a chance one day of course. It just wasn’t a priority .. and as they say with Perl “there is more than one way to do it”.
It’s official, *YOU* have the hacker faith!Now for just $19.99 you can get the t-shirt to prove it…for just three easy payments of $29.99 you could also get the official certificate showing your status as a “hacker elite”. 😉
I don’t want to identify with any group that would want me as a member.Actually “there is more than one way to do it” would look great on the back of a tshirt that has Perl on the front.
This is the best way I have read coding described, and I agree. I started programming at age 13 and now am so grateful for the skill, and how I now understand technology. Learning to code allowed me to start as a jr. iOS developer when i was 19, and now i have an early-stage startup (im 22 now) all because of “Hello World”
I like the push to coding. My son often tells his class, to confusion, he wants to be a coder.But I think we should push for basic digital literacy so folks can get middle skill jobs.The press loves to beat up on millennials in this department but if the truth be told Gen X (remember those guys?) is guilty as well.Things like:1. Gmail2. Google Docs3. Excel (Yes Excel!)4. Internet Research5. Online Data Entry 6. Creating Online Content7. Online Price Comparison8. Web/Mobile friendly, basic online business presence (Like Squarespace etc)9. Hardware maintenance
I love this simple description. It fits perfectly as a definition even as we move up the “chain” from assembly to higher level languages. According to your definition, though, when we speak commands into the phone we are “coding”. When someone uses their brain waves to move a mechanical arm – they are coding. I am still okay with that (even though that is probably not what you meant). The point is that the number of functions encompassed in a single command gets more a more complex as we advance in coding.
Long live the evolutionary trajectory of hiding the nested, reusable, functions and variables.We need to promote that generic conceptualization as a universal social meme/skill-set at all levels not just syntactic level coding!
I think this immortalized in the KISS principle! (Even our Mom’s knew that.)
“I think this immortalized in the KISS principle! (Even our Mom’s knew that.)”You over state your case !Yes, all gear heads have been introduced to this programming cliché but even many of them still don’t recognize it in the fresh, especially once you abstract the principle out into its many divers interdisciplinary forms/applications.That organizing-priciple applies equally well to biological evolution, brain mechanics, social evolution and just about everything else that has a complexity trajectory, all of which are forms of extensible coding !The generic appreciation/application of that “hiding the variables in the lower level networked-automation coding/culture layers” principle is not widely visualized/utilized as a broadband reusable cross-disciplinary mass-culture meme. At least not by my mom!My compressed point in sentence 2 opportunes subjective decompression/drill-down into the reader’s personally experienced instantiations, a personalizing cliché-probe concept amplification techneque of sorts, participation/dismal optional !For most people decoding compressed/abstracted/summarizing, even nonsensical language, is a knee-jerk automatic behaviour that relentlessly attempts to reconstitute meaning grounded in their own personal visceral experiences/metaphors. All those linguistic encode/decode metaphoric overlaps/exclusions create a vast playground for collective/shared-mind experiential brain storming that requires little or no conscious mental effort/overhead.I realize that my repeated carpet bombing of the obvious on this blog can become annoying/tedious but there is some perceptual-ergonomic tunnelling-metaphor communication method/purpose to that madness.OK. . . OK. . .I make no claims about succeeding at that, just having fun trying it on for size – cheers 🙂
yes, exactly
Coding for coding’s sake will not be everyone’s cup of tea but there’s a whole lot we can do to enhance existing curricula to feature more coding, technology, and logic. For example, can we enhance existing classes with fairly mainstream tech elements (both software and hardware) that would expose kids earlier to the building blocks (namely, logic and problem solving skills) that coding requires? How do we better integrate wearables and things like LittleBits into today’s classrooms? While not everyone will be a coder when they grow up, this type of approach will ensure we’re teaching kids a bare minimum of technological literacy they’ll need in the future.
I thing you’ve got that just right!We should try to project the narratives, metaphors and language of authored, sequenced, reusables as widely as possible, not just around syntactic coding but in ways that bing it alive for all learning styles.
Coding has one quality that is extremely valuable to all who learn it and this is its UNFORGIVING nature. A machine cannot be relied upon to do anything other than what you tell it. Accordingly, your code will ‘work’ or it won’t. There are no excuses. This alone is an invaluable lesson in humility and the need for attention to detail.
A greybeard I worked with in the mid 90’s had a little ditty:I hate this damn computerI think I’m gonna sell itIt doesn’t do what I want it to doOnly what I tell it
Yesssssss
As I reflected more on this, I realized that modern coding imposes a further discipline – the requirement to read and digest documentation. This was always true to some degree e.g. you had to master the OS system calls. But the modern OO programming environment is an order of magnitude more demanding in this regard. You just have to reconcile yourself to the fact that you CAN’T just know all the APIs you will come into contact with so what you have to be good at is reading them and understanding how to efficiently apply something you have likely never seen before. A lot of programming now isn’t you plus a compiler, some OS calls and a file management system – it’s you and thousands of objects and methods and properties with a mess of types – it’s demanding. But if a kid can get his/her head around this kind of work, it is an incredible training in concentration and ‘being there.’
Here is an abstract thought. Setting up the economic incentives correctly in a two sided marketplace is similar to coding.
and a Western gunfight
Great blog post, just shared it with my network. So many people ask me all the time, what is code? So this is really helpful!
Yes, yes, yes, yes, is all sounds good, in isolation.<bitter-rant>But in strong contrast, really strong contradiction, going back to Xerox Palo Alto Research Center (PARC), there is and long has been an overwhelmingly stronger theme, especially all along the west coast of the US today: A user should see a graphical user interface (GUI) where there is a user interface (UI) that is a metaphor of direct manipulation, with a pointing device, e.g., a mouse, cut and paste, drag and drop, with for the user nothing like coding at all.Moreover, long a standard view is that everything for an end user should be, must be, just, only, nothing else, a GUI UI with a beautifully designed user experience. (UX).Moreover, the actual capabilities of the interface and how to use them are commonly not documented but left to user experimentation.Much of the interaction is based on graphical icons, that is, tiny images, generally too difficult to see meaningfully, with nearly completely obscure meaning, with little or no documentation, that has to be understood via user experimentation, and that can’t be spelled or read in a natural language, pronounced, or looked up in a dictionary.Civilization had icons and then, with one of the greatest leaps upward in all of the ascent of man, got the Roman alphabet. Then Xerox PARC wanted to return to icons. Bummer. I try to avoid hate, but my reaction to the whole idea of icons is nothing but pure hate, bitter, angry hate. God do I hate icons. The Web pages for my project have some links, but all the links are just nice, simple, meaningful words, with no roll-overs, and with no icons at all.”Look, Ma! No icons!”.Also, no pop-ups, pull-downs, etc. Minimal to no use of JavaScript; the screen loads very quickly and never jumps around, and all the keys still mean what the Web browser has them mean.So, no GUI UI/UX, obscure, funny stuff.Since the start of the PARC work, frequently I’ve screamed at GUIs, icons, clicking, cut and paste, drag and drop, UI/UX, screamed enough to get a sore throat. Nearly the whole thing is brain-dead, definitely a barbed-wire enema, wildly inefficient, treating humans like pigeons pecking peanuts in a psych lab.Wow, just back from the kitchen sink where I did an upchuck. Close call that I didn’t ruin the 100% wool, sheared carpet. God do I hate PARC.Much of the value of Microsoft, Apple, Intel, Android, mobile computing, etc. has been based on that GUI nonsense. E.g., Microsoft Office.E.g., long each time I returned to Excel to get simple X-Y line graph of some data, I screamed at all the clicking — left click, right click, left double click, right double click, at nearly every candidate pixel on the screen, e.g., to get rid of the colors and return to black and white, get the font sizes bold and about five time larger than standard, same for the lines, cut out all the automatic junk trying to do me favors, and, finally, getting an okay, simple graph. Documenting clicking is a pain, but by now I’ve done it — screaming less frequently now.Sure, someday I will get some graph APIs and write some code for each graph type I have in mind. Then for a new instance of a graph, I’ll just use my favorite editor to prepare the input data, run my program via a command line, and, presto, I’ll have my graph, instead of clicking and screaming.Some of the original spreadsheet software was based on some clever use of keystrokes and was much easier to use.A keyboard has 100+ keys, and a mouse has just two, but PARC thought that the two made a better user interface than the 100+. Bummer. Sick-o bummer.Instead, Microsoft was just fanatical about clicking. I deeply, profoundly, bitterly, hate and despise clicking.Instead, I want well designed and well documented APIs and, to get work done, write code to use the APIs.E.g., my hatred of Microsoft Word has no bounds. I try hard never to use it and have been successful for years.Instead I use either my favorite text editor or D. Knuth’s TeX, and for both I get to write code. I have written 186 general purpose macros for my text editor and about the same number for TeX.I really, really hate Word. Clicking, all that clicking, e.g., just to get running headers and footers, and Word’s defaults and favors are fighting me all along.Command lines — a real, deep, warm, affectionate love affair. I really love command lines.E.g., my hard disk file system has ballpark 10 million files, and I have some just dirt simple pieces of code, mostly in a simple ‘shell’ I wrote, that let me jump all over the 10 million files, finding what I want, right away. Microsoft has Explorer, and that is another source of bitter hate.In broad terms, here’s much of the core issue: Clicking can be a faster start for total computer novices. But with a few hours of study of coding, they could for the rest of their lives be much more productive with command lines invoking code.Then with clicking, to do something 1000 times, have to click through 1000 times. With a little code, have a loop from 1 to 1000 that calls a little code that calls some APIs. Big difference. Huge difference.E.g., for a while I tried to make good use of the famous Zip program WinZip. The main reason: It would partition a full backup into parts 4 GB in length and, thus, that would fit on a DVD.But for all the years I used WinZip, whenever I had to do something unusual, e.g., get a file from a backup copy, I screamed in agony at having to try ballpark six times to get the stupid, obscure, badly design, largely undocumented GUI UI and the icons to work.Finally I got a really cute Western Digital Passport 2 TB USB hard drive and use that as one of my backups to hard disk. Terrific.Then for the software, sure, the drive came with some. Right, more GUI UI clicking. Nope. Got rid of that junk-ware ASAP.What’d I do? Sure, old XCOPY. It has a lot of options, and setting each of them is just crucial, but there is decently good documentation, and I got the options correct. Then I have two simple scripts, one for a full backup and the other for an incremental backup. And everything about the backups and using them is really simple, works right away. I have my settings of the options documented, and the options are set in the scripts so that I can just f’get about them. With a GUI, I’d have to work through the options once for each usage — highly error prone and a huge bummer.My usage of XCOPY? Total joy. True happiness. No clicking, ever. Simple. Totally easy to use. Reliable. No bugs, security problems, updates, new versions, etc. Fantastic. Great XCOPY!Spell checking? There’s a very well written spell checking ASPELL, and it’s my main source of spell checking. I use it for nearly all my typing, even comments in source code. So, I have just one addendum dictionary for all my typing! Sure: Invoke ASPELL via a command line, and drive it with keystrokes and not mouse clicks. Super nice program.Net, due to the PARC effects, getting end users to code is less promising than the classic pushing a rock up a hill.</bitter-rant>
Nice rant. I do hope you realize you are a 3 sigma outlier.My first programming job was building multi-sensor fusion tracking software for anti-submarine warfare systems using extended kalman filters. Of course, the operators interacted with the software through a GUI. We did lots of studies on the best way to interact with the software to produce the least errors and fastest results. Icons, colors, clicking won out by a wide margin over other input/output methods.There are real reasons why most users prefer interacting with computers through such systems. Voice and multi-touch are the future, IMO, and also the most expressive way we can interact with our future machine overlords!My new startup, Clozer, is building smart sales tools that use machine intelligence to help salespeople meet their goals and close more business. Understanding unstructured text and deriving sentiment and meaning from this text is one of our biggest technical challenges.Some introduction to programming/coding is a good thing for all students, but just like not all students that learn basic physics go on to build nuclear reactors, not all coding students will, or should, go on to build production quality code.
I do hope you realize you are a 3 sigma outlier. Likely, but I have guessed that a lot of Linux users would be on my side. My first programming job was building multi-sensor fusion tracking software for anti-submarine warfare systems using extended kalman filters Early in my career I did software for such things, at the JHU/APL. Later I learned Kalman filtering fromDavid G. Luenberger, Optimization by Vector Space Methods.Ah, yes: Fun and profit from the Hahn-Banach theorem!At one point I impressed some of the JHU/APL engineers by showing them how to do power spectral estimation and explaining why at the really low frequencies they were interested in, they wanted in effect some astoundingly high resolution and, thus, needed some astoundingly long input time series. Just standard Blackman, Tukey material.I was eating dinner at a seafood bar in Silver Spring reading Blackman and Tukey when a guy, about 50 I didn’t know, smiled and said that he guessed that I worked for the US Navy. No way was I going to talk about high resolution adaptive beam forming, power spectral estimation, and the SSBN missile launch hover control system for the US Navy with a stranger, so I said nothing! Of course, the operators interacted with the software through a GUI. We did lots of studies on the best way to interact with the software to produce the least errors and fastest results. Icons, colors, clicking won out by a wide margin over other input/output methods. Sure. No doubt.I was not clear enough:In doing my work, I want to be able to build tools to be used by other tools, i.e., tool reuse. The now long standard, good, first cut approach is just command lines and scripts where a script can be invoked from a command line and invoke other scripts or compiled programs.So far I’m still using the old Cowlishaw scripting language Rexx. I has a good TCP/IP interface and also a somewhat useful interface to the windows on the screen. Using the second, I have in the UL corner of my screen an icon, right, an icon, that will arrange the UL corners of the windows, preserving Z order, equally spaced on a line from about the top center to the left center of the screen. I also have two more command line versions I prefer other times.Other approaches to reuse are also welcome: In programming languages, e.g., managed code on Windows, have a lot of reuse, say, some priority queue routine based on the old heap data structure (from famous heap sort, that meets the Gleason bound — standard Knuth TACP) that is polymorphic. But the command line-script case of reuse is the one I’ve wanted more of for a long time.Right, on Windows I should convert over to PowerShell. Given a few days with nothing else to do ….E.g., instead of WinZip, I just use some little command line invoked, traditional Zip program — easier than struggling with the WinZip GUI — 20 minutes to learn to use it again once each six months instead of just use an old Zip program. There are real reasons why most users prefer interacting with computers through such systems. Voice and multi-touch are the future, IMO, and also the most expressive way we can interact with our future machine overlords! Not for me. I have no hope that the computers will do what I really want done. Instead, I will have to program the computers. For that, the interface I want is for software, not humans. To me, a software interface is by far the more powerful and, thus, expressive.About the only GUIs I want is the screen preview program for TeX output and the Firefox Web browser. Maybe my favorite editor counts as a GUI program, but it has no icons! And I can drive it with macros! Indeed, the editor macro language can call programs, e.g., the open source program CURL for copy URL or some such for getting files from the Internet. CURL does handle HTTPS so is beyond what I can do with just TCP/IP sockets.The irony of my posts in this tread is that Fred is advising coding but is deep into the part of computing that wants end users to do what you have in mind with nothing like coding. My new startup, Clozer, is building smart sales tools that use machine intelligence to help salespeople meet their goals and close more business. Then I would guess backing up and figuring out just what the heck you really want, not in terms of programming languages, machine learning, machine intelligence, or computer science but in terms of data manipulations. E.g., my guess is that you would need prior to the software something analogous to the applied math of Kalman filtering prior to the multi-sensor software you wrote.Maybe what is prior is just some fancy version of non-linear fitting to empirical data, e.g., classification, but, then, still, should be clear about that.Kalman filtering, optimization, e.g., best matching via min cost network flows, stochastic dynamic programming, etc. can look really smart, but I regard them as some good applied math and not as intelligent.Thus, IMHO, machine intelligence is something of an incongruous juxtaposition! Understanding unstructured text and deriving sentiment and meaning from this text is one of our biggest technical challenges. No joke.My startup has a powerful approach to that, but I suspect that your work would not meet the assumptions of mine.
I hate the click mouse but it still does “pinpoints a pixel” better than my finger does which is good for precision Illustrator/Photoshop designs (and see Apple’s new Pencil whilst we’re at it).Mouse does not compare with finger for playing ‘Angry Birds’ though.I have to disagree with you slightly about icons and graphics because “A picture says 1000 words.”Command lines can drive us nuts because…all that tabbing <—- —-> to get back if we mistype.
> I have to disagree with you slightly about icons and graphics because “A picture says 1000 words.”(1) Typically the icons are too small to be useful as pictures.(2) I still want words, even just one word, instead of an icon.Maybe the control panel of a microwave oven could make good use of icons, but my microwave, a high end Tappan thing I’m glad I bought, still has words on the buttons instead of pictures.There can be some uses for icons in some very specialized software.There is a theme to what I wrote: I mostly don’t want software that is the end of the line and, instead, want software that can be invoked by other software. Writing scripts to drive software driven by clicks is possible but a pain. One exception is the screen preview program for TeX output. A Web browser would be another exception, but, really, I’d like to be able to write macros for my Web browser — likely in a sense that is possible but I’ve yet to get into the relevant documentation.
Every morning when you open your eyes you are presented with a systematic field of perceptual icons(nouns verbing each other) which ultimately fire infinitely nested biological perceptual/actuating algorithmic life functions.Ditto analogue auto-nested algorithmic bio-functions operating via all your other senses!That “non-tribal-causal-spread” down into the basement of auto-support functions is an endemically necessary characteristic of all complex systems in order to simply/operationalize their global high level functionality.Walking around operating your daily persona would be impossible without that hidden/nest automation/simplification layer!So you are ultimately tilting at the universal windmill, the universal substrate, that is the evolutionary complexity dynamic embodied in all living/adaptive systems.
Wow!Sounds like the neurology of an octopus where the tentacles have enough smarts to do some things without signals from the home office!
Coding teaches you logic and how to assemble logical blocks into one beautiful piece of art, or even an argument ;-). Coding improves your Math skills. Coding helps you understand accounting better, because you need to keep track of “stuff” (variables etc) and not be profligate. Coding helps you understand efficacies of good communication (a la APIs). I could go on and on, but all these skills become better via coding and hopefully help you become a better, more efficient person in life.
“Anytime you are instructing a machine what to do, you are coding”By that definition, anytime I talk with Siri, I’m coding…
Totally agree! Check out LittleBits? It is an incredible new toy to teach kids coding – NYC startup founded by a fantastic woman founder: Ayah Bdeir – I could not get my kids out of their SoHo store where they were playing with the parts to build things http://littlebits.cc/?gclid…
the gotham gal (and thus me too) were angels in LittleBits
Fantastic!
way way more important than coding is logic. that is what should be taught.
We do need to differentiate between Coding (akin to writing sentences) and Programming (aking to crafting readable chapters which tie together very nicely). As mentioned in comments below, coding is perhaps a tool to help develop problem solving skills but is probably not as good as learning programming which really enforces a logical mindset. The other thing Programming teaches is patience, loads and loads of it!Then perhaps all this is just semantics and I am just a semicolon of Code away from finishing my Program…
I support the idea of teaching coding to kids. I am a developer and I have 2 kids. When I tried to teach my kids coding using websites like codeacademy or madewithcode, I see a problem: they either teach them syntax or teach them to create simple games etc using drag drop building blocks. None of the coding sites or courses are focusing on teaching kids “how” to code i.e., how to break down a problem into instructions that a computer can process and produce a program that is really usable. I think we need to teach kids program design first so they can pickup and work on any language. I think that’s a missing piece in the narrative that’s building now to “teach everyone to code”
It also teaches how to think logically. It is the branch of engineering that is in a sense pure logic. All you have are logical rules and if any are wrong, things break
For once, I think you’re mistaken. Coding is not teaching a machine what to do. It would be like saying “writing is putting signs on paper”. The machine, like the paper is just the medium. Coding is communicating via a machine. It’s giving instructions to a machine so that the machine can communicate with a human. That human can be you, later you, me, later me, them… anyone.Coding is a wait to communicate in a dynamic way.It’s dynamic because the code I write will be executed to communicate different things when the people I’m communicating with will enter different inputs in the machine. Books, in this regard are very ‘static’: they send the same message to anyone who reads it.
Yes!We are simply using computer devices to aid communication using language (systematic use of signs, syntax, and “parts of speech” role semantics).Coding should be close to natural language as possible. Sadly, that isn’t the case since too much emphasis is placed on imperative as opposed declarative programming languages.[1] http://kidehen.blogspot.com… — Nanotation (turns every place text is accepted into a structured data space for knowledgebase [or graph] construction)[2] http://kidehen.blogspot.com… — Beyond Bookmarking[3] http://kidehen.blogspot.com… — Data & Semantics.
Fred, your succinct answer is very similar to what I wrote on Quora last year for the same question. “It’s not about learning to code, it’s about learning to think”. http://www.quora.com/Why-ar…
I prefer Donald Knuth’s definition:Programming is the art of telling another human being what one wants the computer to do.Read more at: http://www.azquotes.com/quo…
Agreed Fred. In fact, I wrote a piece on this in TechCrunch: http://techcrunch.com/2015/…I think APIs will democratize software development that you won’t need to learn how to code to build software. The human element of understanding the user and instructing the machine will be the key skill set. Until, of course, computers will do that too 🙂