Video Of The Week: Computer Science Is A Liberal Art

I love this bit from Steve Jobs. It’s a clip from Cringely’s interview which I blogged a couple weeks ago.

This clip is only 53 seconds so everyone can spare that minute and watch it.

#hacking education

Comments (Archived):

  1. William Mougayar

    “it should be something that everybody learns”. If we take the high school segment, how far are we into this from a penetration point of view, on a scale of 0-100%? (in the US, as a starting point, as I’m sure it will vary by countries)

    1. fredwilson

      here are some stats:4mm kids per grade in HS in the US currently30k kids took the AP CS exam in 2013. i think that number went up a lot in 2014. maybe 50k to 60k in 2014assume 20% of kids who take CS in high school decide to take the AP CS exam that means that maybe 250k to 300k kids are taking CS in high schoolso that means we have maybe 10% penetrationi think that number is high though. my gut says it is more like 5%

      1. William Mougayar

        Interesting. See this Chicago initiative that aims for 50% of its high schools to offer AP CS courses in 5 years.

        1. fredwilson

          yuppp. i am deep into this stuff. it is one of my personal passions right now.

        2. pointsnfigures

          Lot going on here in education. Will be hard to innovate inside public education silo but they are trying Have to play the long game.

        3. sigmaalgebra

          There is a very serious question if any large, public, US K-12 system can offer competent courses in the current states of biology, chemistry, physics, mathematics, or computer science, very serious question.And the situation is much worse than that: Currently a big theme in college and graduate school computer science is to assume that the basics of algorithms, data structures, data base, data communications, operating systems, and programming languages are, for nearly all practical purposes, known, polished technology, to regard these as given tools to be used, and, then, to concentrate on the future by which it is assumed that the work to do now is to emphasize the means of specifying, before the software writing starts, what the software is to do. That is, in the past, what the software was to do was often well-known if only because that work was already being done manually. Now we are moving on to having computers do work that never was done manually; thus, specifying what the heck the computer is to do is a new challenge.The main theme of meeting this challenge now is some applied math. Or, there is the approach of data science which, to spill the beans, is drawn nearly totally from what was called applied math, mathematical sciences, optimization and operations research, and mathematical and applied statistics. In time the theme will expand to stochastic optimal control. However, here computer science is just drawing from some mathematics, nearly all of it long since quite highly polished.So, how can computer science draw from such mathematics? Well, so far, today, in current university computer science departments, mostly they can’t. Why? Read some of the best, recent efforts — I will avoid mentioning names. There will see, in a word, incompetence. In two words, grotesque incompetence. Why? They are missing the crucial prerequisites which, in succinct terms, are just a good undergraduate major in pure and applied mathematics. So, they fumble and struggle horribly and write what is often just garbage mathematical notation and total nonsense mathematics. Or, can find, for random variables X and Y, the expression P(Y|X). Sorry, there is no such thing! Or can learn that adding more and more random variables that are independent and identically distributed will converge; the justification given is the law of large numbers. Alas, easily there will be no such convergence, and the law of large numbers doesn’t say there will be. Did I mention grotesque incompetence? We’re talking professors, maybe chaired, of computer science at world famous US research universities.The poor computer science guys: They wanted to have a career in computing so, sadly, were fooled into thinking that the best education was computer science. Tilt. Wrong. Sorry ’bout that. Now nearly all of the whole effort of computer science is struggling with this horrible mistake.Physics also long struggled terribly with math but, mostly, has done much better than computer science.So, for good material in K-12 computer science, sadly, can’t just draw from university level computer science.However, for good material in K-12 math, physics, chemistry, and biology, really can just draw from the university materials. E.g., once I looked at high school AP calculus: Bummer. The people who wrote those materials didn’t understand calculus very well. But there’s a really easy solution: Just f’get about high school AP calculus and, instead, just get any one of the many very highly polished, beautifully written and balanced, highly expert and mature college calculus books. The book need not be nearly new! Or, in high school, just study through trigonometry, and that course can be surprisingly short, and then just dig into calculus.Does it work? It certainly did for me: For my college freshman year, I went to a college I could walk to. Alas, that was about the only thing good about it! So, they wouldn’t let me take calculus and, instead, pushed me into some absurd college algebra beneath what I’d already covered in high school. Bummer. So, a girlfriend in the class told me when the tests were, and I showed up for those and got my easy A. Then for something worthwhile, I got a good book on analytic geometry (mostly just the conic sections) and calculus and dug in. For my sophomore year, I went to a good college with a quite good math department, started on their sophomore calculus, and did fine — A’s, lectured to a professor on topology, “Honors in Mathematics” from work on group representation theory, etc.Lesson: In high school and want to learn calculus? Good. Be decently good at high school algebra, know at least the basics of plane geometry, learn some trigonometry, get a polished college text in analytic geometry and calculus, and dig in, on your own. Works fine.Look, guys, have to dig in with the book anyway: Learning math is not a spectator sport. Instead, at least until you are in research, the main tools are a quiet room, an hour or so without an interruption, a good book, a stack of paper, a soft, fine pencil, and a big, soft eraser. Then, study the text, try to understand it, and work the exercises until can go them easily. Work nearly all the non-trivial exercises. It can be good to have 1-2 extra texts for alternate explanations and treatments, e.g., as a way around getting hung up.In high school and want to learn some computer science and practical computing? Independent study can also work fine, likely better than nearly anything in a public K-12 classroom, but books as polished as for the math do not exist. So, you will need some wise, expert guidance on what to emphasize.

  2. Tom Labus

    I love this interview. He was so open and vulnerable. Maybe he thought he was done at that point.

    1. fredwilson

      yeah. me too.

      1. JimHirshfield

        When was this interview?Link to the full video?

        1. fredwilson

          link is in the post. it was video of the week two weeks ago

          1. JimHirshfield

            Ah, yes. I remember.

        2. Girish Mehta

          It was part of Robert Cringely’s ‘Triumph of the Nerds’ TV series from 1996 ( have memories watching and re-watching the series back then). The whole documentary is quite interesting (about 3 hours) and it had edited portions of this Jobs interview that made it into the final documentary with many of the interesting portions and quotes (…”good artists copy, great artists steal” (re-quoting Picasso)…”the sixties actually happened in the early 70s”….”its the reason some people want to be poets instead of bankers”…etc etc).Triumph of the Nerds was released in 1996, this interview was probably ’95-’96. Thanks.

          1. JimHirshfield

            Thanks Girish.

  3. William Mougayar

    “Schools to require all students to learn code before graduating in Chicago”…”In five years, at least 50% of its high schools will offer AP computer science courses.” Is Chicago ahead of other cities?

    1. fredwilson

      yes. Chicago is leading all the major cities in the US because the mayor just decided to mandate this.LA was leading five years ago because of the amazing work that Jane Margolis did in their inner city schools as documented in this book… Seattle is doing very well too because of efforts like TEALS and the like CSNYC is all about getting NYC there with private sector investment because we can’t wait for the city to do it

      1. pointsnfigures

        Chicago also a big data city

      2. Dave Pinsen

        How have graduation/dropout rates changed in response?

        1. fredwilson

          too early to knowmost of this has happened in the past couple years

    2. Richard

      With kids being raised with smart phones and tablets and many without laptops, will we soon bump up against peak pecentage of kids who code?

      1. JimHirshfield

        I grew up with TV, radio, and cars. But that does not mean I can build you one.

        1. Richard

          That is kind of my point. My guess is that a large percentage of kids who who was raised in the 50 and 60s could change a set a of break pads, replace a fan belt and install a car radio. There were probably highschool classes for it. Then cars became like more like an ipad. I’m not sure the analogy is the same, but Peak Programming did cross my mind.

          1. JimHirshfield

            Yes. Good points. I did do a lot of those things… tinkering.

          2. LE

            Btw much of that also has to do with the fact that there was way less to do in those days with your time.In the 80’s I used to love spending time to fly my model RC (gas) helicopter. Take it apart, put it together fix it after crashes all of that. Go to the hobby store. Used to love to take a trip on Saturday to the hobby store to just walk around and pick out parts and gadjets.Well now even though it’s much easier to do (no longer need to fix after crashes as much) I don’t have the time I have other fun things to play with that I like much more. It doesn’t hold the same interest for me.Likewise in the 70’s I had a darkroom and I did photography and made money doing that as well. Spent countless hours on that. Forgetting that one doesn’t need a darkroom anymore even taking pictures (which I still love to do, it’s legacy to me) isn’t as attractive as it was back in the day. Because there are so many more things that I can do with my time. (And I’m not talking about family responsibilities).

        2. screendoor

          Totally agree with Rich W. I was more and more shocked with each passing year when my math/science geek son — now in college — never developed an interest in coding throughout high school. Completely bored him. Coding to him was like plumbing to me. It works, I have a vague notion of how, and that’s enough. The thing that fascinated our generation about coding is blase to his generation. That said, I also completely agree w/ Jobs that coding and law school are both worth the effort for the value they bring in teaching you how to think in a logically structured way. If today coding for kids isn’t cool and instead is more like eating your vegetables, so be it. It’s still worth learning.

          1. Mike O'Horo

            As long as learning a thought discipline that you won’t be using directly (coding, law) isn’t accompanied by crushing, non-dischargeable gov’t-guaranteed debt, as is the case with law school. Under those conditions, you simply can’t afford to indulge that simply because it’s useful to be able to think that way.

      2. mattharney

        An alternative view: as more people (especially kids) become exposed to technology and how important it has become culturally within society today, there are greater chances of someone’s interest being sparked to dive deeper. Maybe rooting a phone and installing a custom ROM is the first step towards programming.

    3. stefano zorzi

      I think there is a difference between what Steve Jobs is saying in the clip and the goal/idea of teaching code in all schools. I totally agree with the clip, programming is about logic and seeing the world in a different light. Today especially I want my children to know that they can MAKE the world they live in, not only CONSUME it. Compared to the past in which TV dominated you now can build what you consume. Very powerful idea which everybody should be told.On the other hand, teaching everybody how to code, or even more, pretending that everybody should code is a risky move that comes from the ( i think naive) belief that there are going to be unlimited dev jobs in the future. I think Albert Wenger had a great post recently about this…I support these initiatives and i am happy to see that even in Italy we are doing a lot about this, I only hope that we will do it with the right motives and without false hopes.

  4. Pete Griffiths

    The distinctive value of learning to program is that the computer is singularly unforgiving. There can be no excuses. If found chess rewarding in like fashion – you can’t blame your losses on anything but yourself.Anything that can contribute to making our society more sophisticated wrt reason and argument is to be applauded. Every morning I read which is a treasure trove of discoveries that is a testimony to the power of reason, then I watch the news that is a litany of irrationality. The contrast is striking. And if education can help shrink that gap we must do everything in our power to make it so.

    1. fredwilson

      the other thing about programming and related stuff (robotics, 3d modeling/printing, etc) is that kids who come from disadvantaged schools, neighborhoods, and homes have trouble relating their classes to the real world. but programming and robotics and 3d modeling and all of this stuff are very real and tangible to them. they understand why its important and they enjoy making things. it gets them to come to school on time, to stay awake in class, and to do their work on time. all of those things may seem like givens to folks who have more advantages in life, but they are most certainly not givens in the NYC public school system and i have seen the power of programming to wake a kid up from a slumber. it is powerful.

      1. Kirsten Lambertsen

        It’s neat to see how poetic you get on this topic. Like you’ve got a buzz on.

        1. fredwilson

          i am high on life

      2. Pete Griffiths

        the idea that this stuff is more relatable to the real workd is very interesting. I haven’t had the opportunity to witness it. I live in a privileged ghetto in LA and it is nowhere near as mixed as NY. But If that’s case it is a very powerful tool.

        1. fredwilson

          these kids don’t have much but they have phones. which are computers. which they use to do most everything with. making software that does stuff on their phones is very real to them.

          1. Pete Griffiths

            So they like tools that develop content/apps for phones, not just apps on phones?

          2. fredwilson

            yes, that is one of the things we teach them. but i really think the best is a broad introduction to programming, robotics, 3d modeling, etc, etc

          3. Emily Merkle


          4. Pete Griffiths

            That suggests something. If the tangible relationship to the world is helpful, then the emerging internet of things could prove to be a huge canvas for young people to experiment and learn.

          5. Steven Lowell

            I am fascinated when I see a young person use his/her phone to somehow program. (Ex: hacking an xbox360 account for more points)Its unethical but these same kids dont see how they are very talented, and how to make the best of skills they possess.

          6. fredwilson

            hacking has always been a big part of kids getting into codingearlier in the jobs interview he talks about he and Woz hacked into the phone system early in their relationship

          7. Emily Merkle

            learn how to take it apart before you put it together

          8. LE

            The immediate gratification, intermittent reinforcement, and feedback of programming is a big deal.You do something, something happens. You see a result. You iterate or you fix. You add on to it. You see something happen.That’s a tremendous drug.Point being you don’t have to wait 3 months or 3 years to see a result. That’s something that works very well with all people, immediate gratification and intermittent reinforcement.One of the reasons I do “deals” of all sizes. The small fast ones provide a quick jolt of positive feedback. [1][1] You know what I’ve found is that 10 small checks in the mail over 10 days provides much more happiness than 1 large check every month.

          9. SubstrateUndertow

            That make me think of the possibilities of moving the programming paradigm up the participation-stack one more level of granular abstraction.Since kids/everyone heavily use a shared palette of popular social/info Apps then when all those popular iOS Apps have implement their own set of extensions someone(maybe Apple) could write an App that piggybacks on top of those App-extentions to allow kids/anyone to program/re-orchestrate all those extension behaviours? Replacing Hyper-Card with Hyper-App.I’m kinda thinking that that is where Apple is headed anyway, a social/data construction kit for the rest of us?Edit:If that could happen then the low level Apps and their extensions would be quickly reshaped by end user social needs and priorities. Then we’d truly be cooking with gas!

      3. LE

        it gets them to come to school on time, to stay awake in class, and to do their work on time.Similar in a way to how “shop” or auto repair class was for the “greasers” back in the 60’s and 70’s.

      4. awaldstein

        Yup–the high school on Chambers and North End Ave is always doing robotics demonstrations with the kids by the Green Market on Grennwhich the weekends.Huge crowds–silly wonderful stuff like building a frizzby throwing machine and measuring how far it flies.Crowds of kids with a gleam their eyes watching.Good stuff.

  5. LaMarEstaba

    I believe that all children should be exposed to coding. Maybe not every kid will be a developer, but Steve is right. The method of thinking is very helpful. I’ve used Codecademy to learn Ruby, a little JavaScript, and HTML/CSS. I took two computer science classes on Coursera. I have been employed in software QA, but the point of the classes was to learn something new, not necessarily professional development. I came out with a better vocabulary and working knowledge of how to use Python. I understood what people were talking about when they were excited that Swift had tuples.

  6. Richard

    And statistics / probability should be the new math.

    1. fredwilson

      hell yes

    2. pointsnfigures

      As long as correlation is taught properly I am for that!

      1. Emily Merkle

        amen. and regression and meta-analysis.

  7. JimHirshfield

    Thanks for sharing. I just showed this to my 4th and 8th grader. The 4th grader is building a video game at school using Scratch.

    1. fredwilson


    2. pointsnfigures

      Tell the 8th grader to start playing on

    3. LE

      My step daughter (4th grade as well) is totally obsessed with scratch.She then (with the help of my wife, her mother) built a website on Wix which I hooked up to a domain. It’s for her lego league or something like that. My wife (who has never programmed) then started asking me questions on how to do the wix site (rtfm?). How to insert the scratch programs (and some youtube video) on the wix site. (Use an iframe ). I hate the WIX stuff makes way more sense (as long as we are on the subject of “programming”) to spend the short amount of time needed to write some really basic HTML. No big deal. You don’t have to read an entire book or take a course to do the quality of a WIX type site.I give both of them tips and direction but I don’t hold their hands at all (same with using imovie for the video). I say “I’ll give you pointers but I’m not doing this for you you have to learn and figure most of it out on your own”.I learned everything the hard way with nobody to ask at all. Sitting for entire days figuring out one thing by trial and error. I think if you lean on someone you develop a lazy brain and it works against you eventually because you don’t develop a way to learn and overcome any adversity.

      1. JimHirshfield

        Agreed. I tell my 8th grader that I’ll help her with her homework, but I won’t do her homework for her. Rather she didn’t do the homework than have me do it.

        1. LE

          I’m very strict with things like that. In no way will I ever clean up the mess for a kid that neglects or forgets to do something. Homework, project etc.My wife has to go to work early and the kids send themselves off in the morning by themselves. (I work late and I sleep later). The rule is “if you miss your bus you will wait until I’m up and then I’m going to take my time to get ready (as I do) and then I will drive you to school. It’s your problem not my problem.”The issue that I have with my step kids is that from my observation things are to easy for them academically (and they are in the AP classes and get all “a’s”). I really fear that they aren’t encountering enough adversity it’s almost like I need to generate it for them.

          1. JimHirshfield

            Real life.

          2. Pete Griffiths

            On things being too easy.You are absolutely right to be concerned about that but of course things coming easy isn’t the problem. It is how they use that ability and kids vary a hugely in this regard. Some kids are very smart but still push themselves. Other kids coast. But kids who don’t encounter difficulties don’t develop resilience. And that is a real problem. There have been research results that confirm your instincts on this.To a degree you have to generate it for them by exposing them to experiences that they don’t find as easy.Competitive sport is good. For kids doing APs something like the National Outdoor Leadership Program may be worth considering. (

          3. LE

            I just took a look at that thanks for suggesting never heard of it.My first concern was that I couldn’t easily find the cost of the “program”. That’s typically a marker for “expensive” to me.I did a search and found this:…So this basically is instead of a semester at school.Seems like a fun thing that rich kids do. (At first glance that is). Doesn’t mean no value of course. Everything has value.Honestly I don’t know if according to my way of thinking I could support doing something like this. I like real world things and not that this wouldn’t be of some benefit, it would, honestly I’d rather them spend a semester working for a small business on the lower east side of New York (or equivalent) out in the dirty real world with that type of “danger”. I know that sounds kind of reductive but to me that’s “real world”.Not only would it not cost money (and it might pay) it deals with real people in real situations where you have to get along and not some cozy difficult world. The lady who works in bookeeping at the dirty office probably smokes and will give you a hard time. The warehouse guys might hit on you. You have to deal with the strangeness and adversity of the real world. Not “camp counselor” types.My daughters have done similar but different things (Israel for a semester, pictures learning to fire weapons with the Army and so on, travel to dangerous places (not my idea or approval by the way)) and all sorts of coddled middle class experiences where everybody is warm and cozy and encouraging and most importantly, nice.Once again thanks for giving the link I didn’t know about that.

          4. Pete Griffiths

            I have a great deal of sympathy with what you say. The only tricky part is finding a down and dirty experience that works. 🙂

  8. jeffyablon

    I’m not sure I can adequately describe how great I think this little clip is—agree or disagree—AND I’m not even sure I agree with the “liberal art” analogy.Lemme give some background, though; maybe it can make my point better than I feel as though I know how.My almost-eighteen-year-old step-daughter (you can pause right there and have a chuckle on her age/gender, the fact that I have a parent’s lot to deal with, or the “step” part, which only amplifies the issues) is one of the smartest people I’ve ever met. And she’s capable of analytic thought at levels not normally seen in people of her age—words I’ve used about her since she was about 13.Several years ago, she postulated that computer programming should “count” as learning a foreign language. I’m sure she had reasons for having taken the time to form that opinion, like getting out of French, but she also made a cogent argument.Now, coincidentally, having obtained a language waiver educationally, she’s taking computer science as an elective in her senior year of high school (small private NYC school, which adds several contexts I won’t try to address here). And she decides she wants out, and the add/drop period has passed, so she uses her language waiver to get out, claiming she never should have been allowed to take the course BECAUSE OF THE WAIVER.Leave “self responsibility” and “manipulative” out of your reaction, if you can. The fact that any of this occurred to her is amazing, right? But not because I’m marveling yet again at her <ahem> intelligence. Because it all underscores what Steve was saying; what matters is learning to THINK.And it is what matters.BTW (complete aside… or maybe not … ) she also said, about two years ago, that everyone should learn to program, which I believe was a bit BEFORE people like “us” started saying it. And again: it’s all about thought.I wish she’s stuck with the CS course, by the way, because everyone SHOULD learn at least a little programming, and this video is a freat explanation of why.Thanks for posting, Fred; this made my day.

    1. fredwilson

      you are welcome

    2. Steven Lowell

      Your comments remind me of a thought I had once while trying to learn another language:”Why am I doing this when the obvious 2nd language of the future is code?”

      1. jeffyablon

        That was as good a “not sure what to make of my own thoughts” thought as mine was, Steve!

  9. Kirsten Lambertsen

    My 7 year old just got hooked on Minecraft, and you’ve never seen a mommy SO excited to have her son playing video games 🙂 “Honey, have you played Minecraft today? Don’t you think you SHOULD?”The other thing about learning programming is that it’s a motivator into learning other things. There’s a reason to learn certain math things or geometry or physics things because they are needed to accomplish what you want to create on the computer.I’ll just put in a pitch here for art, as well. Learning to compose, say, a drawing the way you want it to come out is not so different from learning code. Srsly. And it leads you to learn other things with it in order to get the result you want.Having young kids has given me such a different perspective on education. So much of me can’t help but feel we’re Doing It Wrong.

  10. Emily Merkle

    Thus Spake Zathustra.

  11. Steven Lowell

    Classic advice and now that Im older I say, “nice move”, too. There are better numbers of expressive people in liberal arts. What better way to change the world than to get on the good side of large numbers of expressive, intelligent, and creative people letting them know they can be computer scientists.I was wondering why my liberal arts degree feels more useful now than in 1995. In 1995, I was just flakey to most business owners.

  12. pointsnfigures

    Agree. Rqud now to graduate in Chgo Public Schools

  13. Scott Barnett

    I’m a Math/CS double major and my parents were both H.S. Math teachers. You always hear the complaint from kids “why are we learning this advanced math stuff? We’ll never use it in ‘real life’ “. I agree with the sentiment in the video, and as somebody who studied both, I firmly believe that Math (specifically, Set Theory) taught me how to think and solve problems much more than anything else I have ever learned and is the reason everybody should not just take Math, but advanced Math!I blogged last year about how I apply what I learned in Set Theory to sales forecasting – http://www.repeatablesale.c….Let’s do both – Math provides the most powerful foundation for learning how to think and solve complex problems. And programing is a more practical skill that can be more heavily used “in real life”

    1. fredwilson

      bootstrap is a “drop in module” for middle school geometry and algebra classes that uses programming to teach mathematic concepts've been teaching middle school math teachers in the NYC public schools to do the bootstrap modules in their classes and the results are pretty amazingmath+programming = learning^2

      1. Scott Barnett

        Spectacular. I will pass bootstrap onto my parents – they are retired now, but still have contacts in the Upstate NY H.S. Math community.Your formula is right on (well played? 🙂

        1. fredwilson


      2. sigmaalgebra

        Ah, you want the learning to be large from math andprogramming maybe not so large. So, you wantlearning = (math + programming )^2Right? Of course, in this, we want the assumptionmath + programming > 1or we will havelearning < math + programmingAh, we can use poetic license to justify notmentioning this assumption!Of course, we could also havelearning = 2^(math + programming)or for the students who have startedon calculuslearning = e^(math + programming)or for some software-like syntaxlearning = exp(math + programming)Or we could havenew_learning = math + programming = old_learning^2

        1. Emily Merkle

          rocked’s how I feel about math:geometry – much more than “math” – fucking basis of existence and logic. imperative. my mother teaches geometry.statistics – crucial. a.k.a. analytics. the rest? computers. man should not do what a computer can do. logic. just takes the calculator up a few levels. save for theoretical physicists, who need the gamut as background.curriculum needs to dump in order to inject things like programming and other SMAs that actually matter. like critical thinking/logic. civics. social science – i.e. psychology-study of us.

    2. James Ferguson @kWIQly

      Set theory – is quite obviously incomplete … (which makes for fun) if we suppose pen-ta-syll-a-bic (having five syllables) is deemed “self-descriptive”.We can then consider a set of the less elegantly named group of things that are unlike “pentasyllabic” in this sense – call it the “set of all non-self-descriptive concepts”We can then ask if the set is member of itself or not. If it is then it isn’t and if it isn’t then obviously it is – try coding a test assertion for that !Set theory has the attribute that it almost exposes Goedels incompleteness theorem on its own and on an intuitive level – Because even simple ideas like inclusion cannot be allocated into sets.But never mind because as Epimenides the Cretan famously (even Paul cited it) – all cretans are liars !If you like that – read this

    3. SubstrateUndertow

      “Set Theory” = The New Math = I just thought I’d date myself 🙂

  14. Robert Heiblim

    Yes, this is a fun clip. Focusing on what you can do with things is important for wide adoption. Looks like he was on to something.

  15. dev/null

    I agree that learning to think like a programmer is useful, however, I believe it’s the underlying concept of problem solving that’s critical. This skill is developed from math and the hard sciences from high school (the inadequate average level of math in America is another issue entirely). Programming today often means being able to make CRUD apps with awful architecture, logic and design. I think focusing on math is better than teaching people to become code monkeys making pretty sites with Bootstrap. The ones interested in applying mathematics and the logical paradigm to engineering and computer science will naturally self select into these fields.While it’s great for everyone to learn how to program, not everyone should be a programmer. Right now at Columbia, we have over 700 students enrolled in introductory computer science classes with the intention of becoming CS majors. Not all of these people have any genuine interest in problem solving or computer science. 5 years ago, many of them would have been Economics majors funneling into Wall Street. The only reason there is a demand for the subject now is its career opportunities. You might argue that this isn’t inefficient since there’s a massive glut in CS jobs, but I still think we have an excess of people studying CS because they’re not the people the right kinds of people suited for industry or academia.

    1. bsoist

      This is exactly why CS programs should focus on problem solving more than “coding” ( hate that word ). Joel Spolsky wrote an excellent piece about the problem with creating code monkeys. http://www.joelonsoftware.c

      1. Sean Hull

        I was never very good at math. Barely passed calculus. That’s why I gravitated to computer science. It was more practical and hands-on. I could grok that. Plus hanging around the computer lab you could learn from people older & more experienced.I completely agree about this whole “coding” trend. These probably won’t churn out real problem solving, conceptual thinking skills. Those take much longer to foster & build, perhaps Malcolm Gladwell’s 10 years or 10,000 hours?That said the shortage of brains in this area is so serious, that industry can make use of people at all skill levels, from master architects, problem solvers, troubleshooters, & performance experts to code monkeys etc.

        1. bsoist

          Couldn’t agree more. And I did not mean to imply one must master calculus to be a programmer. 🙂

          1. Sean Hull

            Luckily for me. 🙂

        2. Mike O'Horo

          Perhaps the shortage of programmers, engineers, etc. is reliable evidence that it’s time for the form to evolve again. It’s analogous to not having enough manual laborers, or not having them at an acceptable price. The correct response was to modify the endeavor itself to reduce the demand for laborers by replacing them with artificial labor, the supply of which was both expandable and controllable.

          1. Sean Hull

            If someone could figure out how to make artificial labor in software, they would have a very huge startup idea.We’ve gotten some way there in certain areas:1. commoditization of hardware, first linux then cloud computing2. virtualization & infrastructure provisioning3. automation with chef, puppet & ansibleOn the software side we’ve had some successes:4. object oriented programming5. frameworks that provide basic scaffoldingAnd failures like Object Relational Modelers (ORMs)As much as some of these technologies have expanded the scope of what one programmer can do, they’ve also fragmented, so there are more platforms, more languages, and more frameworks to choose from. That means they’re more obscure, and fewer people have expertise in each of them.

  16. Semil Shah

    I don’t write about this much, but I loved doing this stuff in high school and was doing light programming, but burnt out on sciences/math and basically ignored them in college. Then, I went down a different path. I’d love to have some recommendations of how I can get on a path to learn some of the basic principles of CS. I don’t have a desire “to build things,” but I do have a desire to deepen my understanding of how they work. Thanks in advance for any suggestions from the AVC crowd.

    1. LE

      I don’t have a desire “to build things,” but I do have a desire to deepen my understanding of how they work.My suggestion is to find some problem that you need to solve (could be related to an efficiency issue for example) and then pick up a book on, say, php (others may have suggestions as well) and use that to learn and to solve the problem. Then you will work toward a purpose.From my experience the best way to learn is to have a problem you need to solve. That gets you focused and makes it fun and provides reinforcement. Anything I ever self learned came from the same concept. “How do I do this to solve this?”It’s much easier to learn (imo, again) when you have an actual problem you need to solve rather than just following the book examples.Now once you do the above you will be in a better position to “learn the basic principles of CS”.I’m not a programmer but I use computers (and write some light stuff) to solve problems that I have.

      1. Semil Shah

        Thank you. Could recommend a site or a good book to read on this?

        1. LE

          It’s been several years since I’ve bought books on php (and mysql which you need as well) however I’m seeing that two books I did buy are fairly highly rated (still) on Amazon.1, PHP and MySQL Web Development (4th Edition)Oct 11, 20082. PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide (4th Edition)Sep 23, 2011Book #1 has a 5th edition coming out in March 2015. Hence given the edition increase (also note same for #2) we can safely assume it is well like for some reason.This is a good point of reference although it tends to get bashed quite a bit as being outdated (last I heard maybe that has changed):…Let me explain a concept here with books and websites. The concept is “triangulation”. Back in the day I used to go to bookstores and buy as many books as I could on what I was trying to learn. That way if I didn’t understand what one book said I could just open the other book and get an explanation from a different “angle” or writer.Now that’s less important today simply because anything you need to know you can just search for.I’d be careful about asking actual programmers what they recommend. They tend to have a different aptitude and they will tell you things that might be way over a beginner’s head. Or want you to spend time on things that aren’t important in the beginning.Even though it’s one of Fred’s investments I don’t recommend codecademy from what I have seen. I find that method of learning doesn’t work for me. I just checked what they are doing for php and it’s a mess to my eyes and I know enough of php to actually get something useful done. That’s me, everyone is different. (See screen grab I just did).For example the thing they are showing has style sheets in it. I have no clue why they need to bring that up in a splash page. Way overkill. They should just start with “hello world” type example (almost every programming book starts with a simple program like that so you can get your feet wet.).One thing I would also do (before buying the above books) is stop at a Barnes and Noble and browse through the books that they have. You will get a feel for the style of learning that works for you. I would always do this back in the day (for hours) sometimes I would buy a single book just if it had a good chapter on something I didn’t understand.This isn’t as important now because you can simply google any answers to things that you don’t know!

          1. Semil Shah

            Thank you. I’m actually thinking something as elementary as CS For Dummies.

          2. LE

            My feeling is that your brain will absorb that type of info much better (and see the points and the purpose) if you first learn to program something. Even simple things. Similar to how having actual business experience allows you to put an MBA education into perspective.Here is the answer to your question on Stack Exchange which I think proves my point about asking “programmers”:http://programmers.stackexc…I can’t imagine that that would be a good use of your time or that you would be able to retain or understand as a beginner anything useful.If you get a book suggested by someone though feel free to run it by me (my email address is in my disqus) and I will take a look and let you know my thoughts!

          3. darlinton001

            Bests quality and discreet delivery,hook up,drop off got some goodies of types,,,coca,mdma,Ecstasy,Heroin,LSD,viagra,ogu purple kush,blueberry,afghan kush,dark ganja,sour diesel,heroin, Ephedrine hcl Powder,nembutal,ketamine,kcn.actavis,hydrogel butt injection,oxi,roxi,TFMPP,2-Methyl-2-Butanol,Mephedrone ( 4-methylmethcathinone (4-MMC) , HU-210, HU-331,CB1 and CB2,MDAI,DMAAand more hit me at [email protected]

    2. sigmaalgebra

      Here is an outline of how to get started in computing, for bright and motivated middle school students and above.It is possible to spend a lot of time, years, pursuing the outline here. For a person, those years would be a big investment and, thus, should be considered carefully. I can’t recommend that just everyone pursue this outline or invest those years. Computer Processor Hardware For the hardware, at Hacker News recently, there is…For more, say, just read the Intel documentation of their most advanced microprocessors. Computer Operating Systems For an operating system, maybe just read up on how Linux works. Someplace read up on how a hypervisor, e.g., the CMU Mach Kernel, works — Windows may still use some such. Then read up on how virtual machine works, say, now, via VMTurbo. Programming Languages To get started on programming languages, learn a few. A lot of people started withBrian W. Kernighan and Dennis M. Ritchie, The C Programming Language. So, C is too primitive for now, but it is a start and will not go away.C made popular an idiosyncratic syntax and, thus, a sparsity that looks like a deliberate obscurity. Also, C was first developed for an old DEC computer with just 8 thousand bytes of main memory and, thus, was severely limited. Still, C has some advantages: (A) Actually can write low level code, say, in an operating system, in part because C needs no dynamic run-time package or complicated operating system support for error handling, etc. (B) Can write embedded code, say, to run in a processor in a car, model airplane, or microwave oven. (C) Can write an operating system and its low level device drivers.But C is so primitive that there isBjarne Stroustrup, The C++ Programming Language. which offers object-oriented programming. C++ was originally just a pre-processor to C, that is, you type in your C++ code and the C++ pre-processor program reads your C++ code and writes out C code to be compiled by the C compiler. So, really, C++ was just helping you write relatively tricky C code; fundamentally a pre-processor can’t offer a programmer more functionality.C and C++ share some weaknesses that make them clumsy and inefficient for relatively significant software projects. E.g., memory allocation gets to be too challenging, and failures there result in memory leaks (that is, allocating more and more memory, to infinity, and never freeing it) and worse.Good code from big projects is possible, and there are tools to help. It appears that long C++ was the main language at Google. It’s also possible to ride a unicycle, but a bicycle is a lot easier.For more, maybe learn Microsoft’s Visual Basic from any of the Microsoft Press books, say, from the Visual Basic parts of (the mostly charmingly clear and easy to read)Jim Buyens, Web Database Development, Step by Step: .NET Edition. the fairly complete and solid but not so well writtenFrancesco Bolena, Programming Microsoft Visual Basic 2005: The Language. or the many Web pages at the Microsoft’s MSDN Web site, say, for a start…The MSDN site is enormous; I have 5000+ Web pages from it, and I would guess that the site has 20,000 Web pages. The pages are organized into at least one tree, and the left column of each page has links to related pages close in the tree. So, can find more by doing some tree traversal.For more in programming languages, maybe try Python, an interpretive (not compiled) language built on C that, then, inherits some of the limitations of C, e.g., no multiple threading. While an interpretive language can ease the effort of programming compared with a compiled language (the difference is less now than it used to be), generally a program in an interpretive language runs ballpark 10 times slower than an equivalent program in a compiled language. Often a factor of 10 is a bit much to give up.But Microsoft has Iron Python that is compiled and does permit access to the enormous Microsoft .NET Framework (mostly a huge collection of software classes in the sense of object-oriented programming) and likely has threading via .NET.Microsoft also has their language C# which, for the masochistic, borrows the idiosyncratic syntax of C/C++. Programming Note: Now on Windows, mostly are writing code to make use of the .NET Framework and the Common Language Runtime (CLR). The most powerful way to get to these two is Microsoft’s C#, but the current, .NET, version of Visual Basic is equivalent or nearly so. To me, Visual Basic is more verbose and, thus, easier to teach, learn, write, and read and less error prone. So, my project is based on Visual Basic .NET.There is nothing in C#, or any other programming language, that would make the work of my project easier.All the popular programming languages are closer in syntax and semantics than, say, English, German, French, Spanish, and Italian. The basics are the constructs define storage (in main memory), allocate-free storage, if-then-else, do-while, try-catch, call-return, read-write files (sequential or direct), evaluate an expression and assign the resulting value. See versions of these constructs in a few languages and have about seen all there is to see in programming languages (the languages by themselves; there is much more in other, related collections of software for, say, communications, database, applied math, Web site construction, graphics, and more). Yes, for a little more, there are constructs for multi-threading and concurrency.So far in exploiting concurrency, the popular programming languages have not done a good job getting caught up with the fact that Intel knows how to put dozens of processor cores on one chip in one processor.For typing in code, there are integrated development environments (IDEs) and some other important tools, say, code repositories that can be important for large software projects.But a lot of quite significant software can be written by just one or a few people and where there is little or no formal software project organization for design, documentation, coding, testing, versions, etc.A lot of experienced cooks find that their best tools are a French chef’s knife, a cutting board, and their two hands. A lot of experienced programmers agree with me that the best tool is a good text editor. I use KEdit, and much of what I like about it is its macro language that lets me automate a lot of work. If I’m at my computer and not looking at a Web page, then usually I’m using KEdit; it is my most important tool and will have to be torn from my cold dead fingers. The Emacs family of text editors is likely also good.Mostly need a scripting language for helping to ease and automate the running of programs. I still use Open Object Rexx developed by IBM’s Mike Cowlishaw — it’s elegant and powerful. On Windows, now likely a better choice would be Power Shell. What the best options would be on Linux I can’t say.Heavily what programming is now is writing mortar to glue together other software for database, Internet communications, graphics, Web pages, etc.Web site development used to be simple, but now there can be a lot to it.The most serious problem in software development is poorly written documentation. Or, “When a program is written, it is understood only by the programmer and God. Without good documentation, six months later, only God.”. When have to make heavy use of the work of others, the quality of the documentation is likely the most important consideration. Programming Language Compilers For how a compiler works, read, say,Alfred V. Aho and Jeffrey D. Ullman, Principles of Compiler Design. Database For how database works, read, say,Jeffrey D. Ullman, Principles of Database Systems, Second Edition. For more on database, read about IBM’s Structured Query Language (SQL), now an important standard, at various Web sites, e.g., Microsoft documentation of their SQL Server, or any of no doubt many books.A data center or server farm making heavy use of database will need a lot of work in database administration, installation, configuration, security, monitoring, management, backup, recovery, and more. Algorithms and Data Structures For algorithms and data structures, of course, the volumes ofKnuth, The Art of Computer Programming but now maybe, shorter and easier,Robert Sedgewick and Kevin Wayne, Algorithms, FOURTH EDITION. available in PDF atftp://ftp.micronet-rostov.r…The algorithms to emphasize, powerful, useful, and mostly too tricky to think of in less than three minutes, are just heap sort, AVL trees, and red-black trees. The last two are the foundations of collection classes in C++, C#, etc.A major theme in this work in algorithms is getting high performance, that is, short running time. The major points in the theme are, for positive integer n and input data of size n, getting running time proportional to 1, ln(n), n, n ln(n), n^2, or e^n. Here usually we don’t like n^2 and nearly always find e^n just horrible.E.g., part of the glory of heap sort is that it has worst case running time proportional to n ln(n). Moreover, heap sort works by comparing pairs of the items it is sorting, and due a cute argument of A. Gleason there can be no faster means of such sorting. Getting More For more in computer science, there are some theoretical topics, and there the 900 pound gorilla is the question of P versus NP.For more, I suggest avoiding as junk anything about artificial intelligence, data science, machine learning, or big data. More for Before Writing Code For more, I’d suggest an undergraduate major and a Master’s in pure and applied math, calculus, linear algebra, advanced linear algebra, numerical linear algebra, abstract algebra, advanced calculus, ordinary differential equations, optimization (mostly from operations research), point-set topology, measure theory, functional analysis, probability and stochastic processes based on measure theory, statistics based on measure theory, and a huge list of selected topics depending on interests. Why? To do much in computing as above, need some strong reasons, that is, something important that needs some computing.Today that important thing is usually an information technology start-up where we exploit Moore’s law, the Internet, mobile devices, and maybe more.For such a start-up, can boil down to three steps:(1) Find an important problem.Here want a problem that can make a lot of money, from high prices, many customers/users, or both.Might just get girls in middle school all excited about some electronic version of gossip.(2) Find a good solution.For the problem want the first good or a much better solution and hope for advantages of virality, network effects, technological (secret sauce) advantage, and various barriers to entry.Still can do well with software to implement data manipulations that are conceptually clear and simple and in principle could be done manually.But for more might use some math to get some especially powerful data manipulations and then have the software implement the data manipulations specified by the math.(3) Sell the solution, e.g., use it to get users and sell ads.For the future, we should do much more with information technology than Web sites with millions of users or mobile software that helps middle school gossip.

    3. Kirsten Lambertsen

      If you like online/video learning, poke around I think they have some of the best instructors, and they cover almost anything you’d want to dig into (and you can go at your own pace/convenience). The guy who teaches programming basics -which is language agnostic – is quite good, I think.Bookwise, I think you can’t go wrong with anything published by O’Reilly. This could be a good one…Of course, there’s a little site called, but it’s more geared towards application (“learn to make a webpage”).If you like things a bit loftier, there are some interesting offerings at Coursera. Here’s their CS101 course from Stanford

      1. Semil Shah

        Thank you, Kirsten. I was hoping to start with something less specific, as a refresher. If one comes to mind, please do LMK!

      2. Rainboy

        hello world ! thanks disqus!

  17. Emily Merkle

    Thus Spake Zathustra.

  18. James Ferguson @kWIQly

    I agree with the sentiment that people benefit from learning to programme (though not necessarily that it should be taught)In my view computer science does not teach you how to think, it provides organised ways of putting data through structures that can in turn evaluate that data, and so formalises process.It does not teach on how to weigh evidence or meaning or opine (all of which are more fundamental to learning how to think). Debugging does teach humility !!!Learning a second human language is a greater basis for enhancing critical thinking skills (it teaches how culturally and semantically subjective we are)I argue that working abroad (ideally in a very culturally different setting) helps teach interdependence , co-operation, appreciation and awareness of ones fortuneBasically I argue that for every prescriptive – “Everyone should learn X” there is a better and more general “Everyone should experience Y” where Y relates subjectively to personal situation. So in your view everyone should experience … (fill in the gaps)

  19. Tom Hughes

    It was Doug Rushkoff, I think, who wrote the book “Program or Be Programmed.” An important part of the pro-programming argument is just that: either you understand the tools you’re using, or you’re just another one of those tools, controlled by someone else. Steve Jobs’ “teaching you how to think” applies also to (relative) arcana like Latin; but the Rushkoff argument is at heart an Emersonian argument about self-reliance.

  20. Laura Yecies

    I don’t have enough programming experience nor cognitive psych experience to have an opinion on whether learning to code helps you think. But I think there is another very simple and practical reason to require it. We want to expose children to this possible career! It is, at least these days, one of the jobs/careers where there is a shortage and can generate a solid income.

    1. Emily Merkle

      coding helps you think. debate helps you think. logic study helps you think. learning how to think critically helps you think. reading helps you think – all in different ways.

  21. LE

    What he said:I think everybody in this country should learn how to program a computer to learn a computer language because it teaches you how to think it’s like going to law school I don’t think anybody should be a lawyer but I think going to law school because it teaches you how to think in a certain way in the same way that computer programming teaches you in a slightly different way how to think and so I view computer science as a liberal art it should be something that everybody learns take a year in their life one of the courses they take is learning how to program.This is ridiculous. First the idea that there is no opportunity cost to learning something is like the government deciding to spend spend, spend, spend, and justifying (without respect to cost) only what the upside of a particular decision is. Without considering what else won’t be able to be afforded. Mistakes are always made by not incorporating the downside in decisionmaking. One investment that Fred does means he has less time for another investment or a better investment in the same space. If he does Yoga he doesn’t have time for another activity.Time is not unlimited. So if someone is learning to program (or even a bigger joke, going to law school) [1] what other things are they not going to be learning? Or doing with their time?Now I’m the first to say that many of the things that kids do have to learn appear not be the best use of educational time in this day and age. My 10 year old step is memorizing some pretty useless info (imo of course but what do I know?)As far as computer education and learning to program [2] I definitely take issue with the idea that everybody or even nearly everybody needs to learn to program. Or that it teaches you to “think”. What does that mean anyway? Does everyone need to know how to think like a computer programmer does? If anything, of the people who do think like programmers, I see way to much rigidity and absolute thoughts with no area of gray typically. Computers and programming is very predictable and life is not. Life is totally analog not digital.[1] I would also take issue with the fact that even if you could spend time to go to law school (and afford it or let’s assume the cost is free) that that’s a good idea. I think there are plenty of negatives that occur, from my experience in dealing with lawyers, when someone goes to law school. For one thing they loose total view (or at least all the ones that I’ve deal with) with practicality and what happens in the “real” world and incorporating human nature into decision making. They are way to rigid as if every case makes it to a higher court. [2] Also assumes that the course that they take is even taught correctly and doesn’t actually turn them off to the subject! As an example in college (Wharton) I had to take APL. Hated it. Didn’t do particularly well in the course. Was a turnoff. Good thing it wasn’t indicative of things that I ended up doing when self taught in other languages under different circumstances and with a true purpose instead of just stupid exercises and problems.

    1. fredwilson

      i told you that you were a naysayer 🙂

      1. LE

        I did leave out using the Citibike as an example of upside (fun) vs. downside (risk).Otoh there is risk in everything even going bowling in Brooklyn (according to some people).

  22. JLM

    .I wonder sometimes in our rush to anoint the “next big thing” that we confuse the latest variation with the real core of life.Thinking critically is the essence of an educated person. Being able to communicate–in writing–that critical thinking is the natural progression. Being able to deal with people in the context of the changes suggested by the communication of critical thinking is the way things actually change.I wonder if we simply think enough–not critical thinking–raw, unvarnished thinking, maybe that’s brainstorming.I do not remember ever doing any thinking about anything until I was in my forties. I do recall doing a lot of very interesting stuff like building high rise office buildings but I don’t remember doing much thinking.Coding could possibly be just a skill and not an adventure in anything much deeper than that. In some ways I pride myself in being a complete simpleton not requiring very deep thinking to get along in life. I sometimes will confess to being shallow and quite happy.In the end, we need to see that people are educated enough to make their way in the world independent of much support. To put a capitalistic bent on it — to become taxpayers perhaps.I think coding is a very contemporary interest and it is, in fact, very useful but I wonder is it more important than, say, golf? I have learned more about people on a golf course than in almost any other environment. It is a cheap look at one’s character sometimes.Not a strongly held opinion but not a zealot either.JLM.

    1. LE

      think coding is a very contemporary interest and it is, in fact, very useful but I wonder is it more important than, say, golf? I have learned more about people on a golf course than in almost any other environment. It is a cheap look at one’s character sometimes.That’s really the essence of what I said as well in my other comment. Opportunity cost.And further reason why us old-er guys rock!. We have years of observation and experience to draw on.To your “golf” example the answer of course is “depends on who the golfer is”.My dad was an importer of giftware who had customers all over the country. The golf (he didn’t play) wouldn’t have helped him in that business but it would have helped him in the real estate that he did on the side. So would joining the local jewish country club (he didn’t). Boy that would have been great in retrospect. The deals he could have done.The local realtor that I deal with would be way better served playing golf (he doesn’t) than learning to program, no question in my mind about that. He’s a compute imblick but that’s fine. He would meet people that he could do deals with. And to your point about “dealing with people” exactly. Every dollar I’ve made has come from understanding how to deal with and understand people’s motivation (the proverbial “let the boss win the golf game” joke).I know a guy, friend of my sister, was a local electrical contractor. I remember very distinctly when one of his competitors went out of business. He snapped up a sales guy who worked for him. The idea was “he dresses up, wears cufflinks and plays golf he will land me big contracts”. And he did. They electrical contractor (who never graduated college, started out in high school) got big years after hiring this guy and eventually sold the company and now is “filthy rich”. The electrical contractor was rough around the edges (spoke Philly english) and wasn’t the type to wine and dine the right people or fit in certain social circles. But he knew enough to spot the guy who could play golf (personally I don’t like the guy btw.) He was a total computer idiot as well. (Note how luck also played a factor in all of this..)

    2. SubstrateUndertow

      Isn’t it ALL recombinant coding from bits all the way up to higher level social coding?Our accelerating hunt for an effective set of bridging narratives/metaphors between that low level bit-coding and that high level social-coding is what makes contemporary life so fascinating !

      1. JLM

        .Please pass the Rosetta Stone.I did tell you I was a simpleton, no?JLM.

        1. SubstrateUndertow

          Really !Steve jobs already did over at the crossroads between technology and liberal arts.I don’t see that the above paraphrasing of that same sentiment is really all that abstract.That is exactly what is going on here with all these mobile Apps rewriting our social-view-points(liberal-arts) via new networking technology tools.The point of the abstraction is to zoom (way) out and frame the process as a top down cliché-probe-abstract where, your mission should you accept it, is to unscramble those somewhat tortured word entanglements to tease out whatever meaning your mind-set’s imagination bring to the table.Its my apparently sadly lacking attempt at a fun loving form of liberal-art/technical brain storming.Participation absolutely not required. I simply offer it up as an attempt at a fun loving food for thought brain storm technique.All that said your response:”Please pass the Rosetta Stone.I did tell you I was a simpleton, no?”Was a very comedic poke !Feel free to let loose with all out parody on any of my posts because I don’t take any offence as that would really just more intensely engage the intended purpose and create some good chuckles along the way !

    3. Russell

      I agree with you on this one JLM in that critical thinking is different than coding. Where I see a fundamental change in the knowledge of coding is to speed up the first step of “build-measure-learn”… the key point in the Lean book was that it isn’t important how fast you do one of these steps – but how fast you can get through all three, and return back to build with a more informed perspective.

  23. JLM

    .In the US today there are types of poverty that are crushing and deadly.Parental supervision is an example. Poor folks have parents who are engaged — often a single parent — in subsistence level jobs while rich kids have multiple sets of parents (thank you, divorce) and young grandparents who have the time, money and interest to become involved in their lives.Computer/technology is another measure of poverty which is equally crushing. Rich kids have smartphones, tablets, lap tops and, perhaps, desk tops. But they also have highly literate parents who are a constant resource for their tech education.Poor kids have no tech toys and their parents are unable to assist them.In some very substantial ways, the notion of coding is a rich kids’ problem or challenge or opportunity.JLM.

    1. Emily Merkle

      I would agree that a higher priority – mandatory – would be plowing into early childhood literacy – reading more, younger, regardless of SES

      1. JLM

        .Reading is the foundation for everything.JLM.

  24. JustinHK

    I completely agree with Steve on this one – it can be hard to explain to non-programmers how CS can be a great basis for any career.I also eagerly await the innovation that will allow people to truly abstract the logical thinking elements of software development from the more mundane syntactical ones. Languages have been moving in that direction over time, but when it becomes possible to develop using any unambiguous language, it will become that much more accessible to people.

  25. Twain Twain

    I posted this on G+ on 12 Oct 2014 because it was the part in the “Steve Jobs lost interview” that most resonated.I agree with him so much about “Computer Science is a Liberal Art”. The thing about the Liberal Arts is that it tools us to solve problems in a multi-disciplinary way. That’s not to say we lose focus — rather it enables our mind to be expansive and then to strand the knowledge in a creative and coherent way.

    1. Emily Merkle

      nice and agree.

  26. sigmaalgebra

    Some important problems in life include:Problem: Doing something effective about feeling alone.Solution: The first recommended solution is love of spouse. Then love of God. Then membership in a group. There is one more solution but is not recommended.Problem: Being productive.Solution: For most people, likely the most important part of the solution is understanding of people.The next, understanding of society.Next. understanding of the economy.Next, specialized knowledge, e.g., technical, e.g., writing software.For training in “how to think”, that has to depend a lot on the topics that need to think about. E.g., knowledge of functional analysis in mathematics and transactional integrity in database won’t much help in doing something effective about feeling alone, or understanding society, the economy, or more than a tiny fraction of important specialized knowledge.Maybe for every important question, e.g., training in how to think, there is an answer that is short, simple, easy to understand, and badly wrong.

    1. Emily Merkle

      very well-said. how to think? practice. curiosity. observation. reading. talking things out.

  27. peteski

    I nevver miss the saturday video – also fyi: you’re getting a security error “malware warning” over on your tumblr, (might be from an icon/avatar of a commenter < guessing)

  28. Frank W. Miller

    This argument is as old as programming. There are a lot of programmers out there that want to make themselves feel more important and/or artsy or whatever. It weren’t true. CS is engineering, pure and simple. All the pompous arrogance isn’t going to change that.You might argue that there’s an artistic element to user interfaces, and there can be in some cases. However, programmers are bad at it. The GUIs that are good tend to be done by real artists like graphic designers and such.

  29. brad_fuse

    Maybe, maybe not. Or put another way…IF programming teaches you to thinkTHEN you should learn to programELSE read a bookEND

    1. Emily Merkle

      both can, in different ways. so too debate/critical thinking practice; language acquisition; creative engagement.

  30. dave

    Steve Jobs didn’t program. He has no clue what he’s talking about. That isn’t unusual for Jobs. There are some things he did well, and others not. But he often didn’t bother distinguishing between the two.Speaking as an every-day programmer for over 40 years, go ahead and learn if you want, but it’s not going to do you a lot of good if you don’t have an idea of what to use it for.Much more practical:1. Learn to be a great user. Write a bug report that help developers.2. Set up and run your own server. That *will* give you ideas for things to program, for sure.

    1. Emily Merkle

      “doing” not necessary to understand underlying philosophical basis and draw inference.

  31. brad_fuse

    I’m glad learning to program teaches you to think, because its actually not enough to program with!Whatever programming tool you learnt with is obsolete by the time you’ve learnt it. And if you havent also learnt a whole alphabet soup of javascript libraries and build/deploy tools, you wont actually be able to work as part of a dev team.Back in the day if you knew Cobol you were fine. I really feel for the new peeps coming into software dev these days – its utter chaos

    1. Emily Merkle

      not a programmer, but am an amateur hacker. tried to teach myself Ruby; found that tedious. Yeah, I know what you mean – ideally evolution will bring the space to a place with a basic rubric for languages, with distinctions existing within that shared framework.

      1. brad_fuse

        I think “tedious” sums up 90% of programming. You can spend days trying to nut something out, then have a few minutes of glory when you get it going, then you move on to the next problem.A lot of the tedium is because of the immaturity of tools and techniques being used, so simple things can take longer then they should. For every amazing new technology that actually progresses the state of the art there has to be a hundred that looked amazing but turned out to be just hype.Not yet sure which category Ruby belongs in 🙂

        1. Emily Merkle

          it doesn’t 😉

  32. Marcus Detry

    This video is available for free on Amazon Prime Instant Video.

  33. Mike O'Horo

    As always, the commenting thread is more interesting than the foundation topic. We all have opinions and observations about what would be of great benefit to the undefined “everyone.” The fact, however, sometimes undermine our best insights.As part of my research trying to solve a problem in our startup, I stumbled across (and managed to slog through) a dense research paper titled, “The Validity and Utility of Selection Methods in Personnel Psychology: Practical and Theoretical Implications of 85 Years of Research Findings ( It’s a meta-evaluation of the various ways that we’ve tried to predict on-the-job success at the selection stage. The consistent finding is that combined, three factors deliver the highest predictive capability:1) general mental ability, i.e., raw intelligence2) conscientiousness3) work samplesIf you remove #3 for the moment, since it’s specific to a particular job, it seems that we should encourage children to spend time at anything that develops and reinforces factors 1 and 2. Google “ways to improve general mental ability” and you’ll see a long list of ways to improve GMA. The same search for “…conscientiousness” yields equally robust results.Do coding and other, similar, disciplines improve GMA or conscientiousness? I don’t know, but if they do, that would seem a more concrete argument for learning it than Jobs’s generalized “it’s a good way to learn how to think.” One approach that has been studied extensively is the effect of musical training on children’s cognitive functioning.

  34. Remi Zagari

    Wow thats a really interesting point! Great video

  35. fredwilson

    yoga and programmingthat’s the healthy lifestyle!