Shared publicly  - 
As a counter to this, I present exhibit A: Judge Alsup from the Oracle vs Google case, from the GrokLaw transcript today:

Alsup tells Boies Oracle's only doing damages because they haven't won anything else and they're in a fix. "This is a fishing expedition."...
Alsup says he's been writing code since this trial started. He's written rangeCheck code a "100 times". Incredulous Oracle claiming damages...

Yes, the Judge in the case has been learning Java code. :)

Now here is a later followup where the Judge slams Oracle:

Judge: We heard the testimony of Mr. Bloch. I couldn't have told you the first thing about Java before this problem. I have done, and still do, a significant amount of programming in other languages. I've written blocks of code like rangeCheck a hundred times before. I could do it, you could do it. The idea that someone would copy that when they could do it themselves just as fast, it was an accident. There's no way you could say that was speeding them along to the marketplace. You're one of the best lawyers in America, how could you even make that kind of argument?

Oracle: I want to come back to rangeCheck.

Judge: rangeCheck! All it does is make sure the numbers you're inputting are within a range, and gives them some sort of exceptional treatment. That witness, when he said a high school student could do it-- ---

Maybe it's a good idea for people to learn programming to make better judges and juries if our whole society is going to be based on information and computing in the future?
John Haugeland's profile photoJustin Chase's profile photoDaniel Haggard's profile photoCarthic Kameshwaran's profile photo
Learning to code because it's "good money" is a bad reason to code (actually, I think that's a bad reason to learn anything.) Learning to code because you want to improve your logic (or any other mental) skill is a wonderful thing.

Learning to be a plumber because you want to improve your skillset is a good thing as well.
COol Judge invite him to A HACKATHON!!!
Learning a little bit of everything to acquire some computer literacy is neat. Learning how to code, knowing thoroughly a language, that takes time, experience... that is also neat. It's all good...
I wonder why you're showing up in my stream.
The judge just rangeCheck()'ed the lawyer. Or was that bitchSlap()-ed?
There is a difference between learning Java syntax and comprehending a problem and reasoning through it. While you can learn Java and get the comprehension skill as a consequence of learning coding with Java it isn't (and by extension learning how to code in any language) isn't the only means.

If the judge had a good working knowledge of logic in mathematics he could reason what a rangeCheck program does and probably even "write a program" using psuedo code. Hell if the judge had learned rhetoric (+1 if you get the Phaedrus reference ;-) ) in literature he could pick apart and reason through a logical definition of a rangeCheck algorithm...

Of course as a software developer learning Java as a means to understand the problem and poke Oracle in the eye definitely makes him (Judge Alsup) super cool in my eye :-)
There are already tools such as MATLAB which enable people who don't understand the difference between a matrix and an array to produce massive amounts of shit quality code.
I just noticed from another thread that the Judge's middle name is Haskell! Wonder if his mom's name is Ada and his dad's is Turing?
............and if he has a relative named Eddie?
........Who knows Wally and The Beaver?
The real WTF is why hasn't he put rangeCheck in a library?
It's really great to see more people coming out against the view that people shouldn't learn to code.

As you point out +Ray Cromwell if our entire society is going to be based on information and computing then the possibilities of human experience are going to be constrained in a real way by what we can do with those fundamentals. If you can't code you're going to be at the mercy of those who can.

I go further however - and argue that desires themselves can open outward when you know something about what you can do with programming. Interested folks can read a rant by me here:
I have a feeling that the judge might not be too friendly towards software patents, either. Given the way that coding works, I find it hard to believe that there are still judges out there who believe that software patents are any good.
I still think it's important for us as a nation to consider requiring judges trained in the field that they're judging, when practical.

All masturbation about whether everyone should learn to code (no, they shouldn't, it wouldn't change the life of 90% of earth; most of us stock shelves, clean, sell hamburgers or wash windows) notwithstanding, it is of critical importance for a judge to have a practitioner's understanding of matters, to help make them immune to the sort of bullshit Oracle is slinging.

Honestly, if you're talking to someone who doesn't know what these words and phrases mean, it's pretty easy to make rangeCheck sound important and complicated: observe the things it does in minute detail, then rattle off some of the scarier sounding things that use it, and bang, you're good.

To this end, I think we would have a lot fewer problems (hey check it out, I'm invoking the other thing we're all cluelessly butthurt about) with our patent system, which in my opinion doesn't need an actual overhaul; it just needs clueful adjudication.
I believe that learning to code today will be as valuable as learning to read in the past.
Yes, that's a very cute and hipster thing for people to believe. After all, just like it's important to read Candide, it's important to read the kernel source.

Oh, wait.
I'm learning to code, little by little. For now, I'm learning Bash, but eventually, I'll have to take classes for other languages.
+John Haugeland "Cute and hipster" - that's not an argument. It doesn't help me understand the rationale of your point of view - and it doesn't at all induce me to revise my own.

The judging issue is difficult as well - though in general I agree with you on that score. But it raises problems - to become technically proficient in each case that you judge, as well as maintaining your expertise in law itself is an impossible task I imagine. Plausibly you would only really be able to preside over a very small subset of cases.

The costs of litigation, and law enforcement would skyrocket and the world would be overrun by lawyers.

As I said - I agree - it's crazy that folks with no expertise often get to decide matters of law in various fields. But nevertheless I don't know how you would solve the above problem.
+John Haugeland I can see why you disagreed with +Justin Chase. We have no idea whether the masses should be taught to code because we have no idea what benefit it would bring. (Or, if someone does have an idea, by all means explicate!) For all we know, in a generation programmers will join telephone operators in the pantheon of obsolete occupations. Switching analogies, once automobiles were crude and prone to failure. It was very important that people of modest means learn to be backyard mechanics. Today, by and large, cars Just Work, and are to boot virtually sealed systems, engineered to tolerances few amateur workshops can achieve. However, for your rebuke, I'm afraid that Candide-readers and kernel code-readers are disjoint sets, so neither appreciate the joke.
+Bob Foster I present some arguments for the view in the link I provided above.

But here is another one that I haven't seen mentioned anywhere - one that sweetens the deal for professionals.

A significant rise in the number of amateur programmers would create massive demand for improvement in higher level languages - speed, ease of use, documentation etc... as well as library support and the like. This demand could only be serviced by professional programmers and I imagine would create considerable business opportunities.
To elaborate on my previous claim, I don't think that programming is merely a skill that one picks up or a set of information that other people happen to not have learned (as it is with plumbing). I believe programming is a skill more closely related to reading or writing, since it has to do with expressing abstract concepts. Hopefully every programmer reading this knows that programming is more than just something you memorize; it really is a transformative learning experience. It requires a unique combination of creativity and logic and in a very concrete way allows us to unambiguously express abstract concepts that exist only in our minds. This is something special.

Programming is more than just a way to control a robot, it's a way to model the universe and ideas that don't even exist in reality. It is much more than merely a craft, whose secrets should be preserved only for the craftsmen but it is a route to a much deeper level of learning and thought, of which, I believe will be invaluable for everyone who takes the time to at least scratch the surface.

Much like reading a book, for business or for pleasure, I believe that programming is an intensely rewarding intellectual activity which reaps many intangible rewards other than specifically the profession of software development. And this world, I'm afraid, is in dire need of intellectual elevation.
+Justin Chase I totally agree with you, Justin. I spent last summer learning just a bit of Bash and I came away with some nifty automation for myself on my Linux workstation at home. I found Bash to be very accessible and fun to learn.

I think your point is even deeper than you propose. Programming is about as revolutionary to human consciousness as say, learning to predict a solar eclipse with great precision. That is something we could already do before computers came along.

The human capacity to predict events with reasonable accuracy was a revolution in and of itself. But when humans learned to program a series of events to run in the future, another revolution began.

When programming is recognized as a skill as important as reading and writing, we might begin to see a shift in consciousness where we're not just thinking of short term gain. We're considering all of the ramifications of our actions, to a far greater extent than we could without programming experience.

Just my $0.02.
Actually, there have been a great many attempts to teach the children to program. Logo and smalltalk are almost the only notable takeaways - the products of the adults, naturally. The Reagan administration and the Clinton administration both spent big money on pilot programs that didn't actually go anywhere.

Programming is about as general purpose a tool as higher accounting, painting, music theory, quantum mechanics, ballet, or marble sculpture. Do they contribute to society? Yes. Should everyone have this available to them as a path? Yes.

Will almost anyone enjoy it, or derive value from it? No.

This has been tried time and time again. Reading/Writing is a genuinely fundamental skill: you hand instructions to people, you keep notes, you write checks, you read menus and road signs, you fill your name in on forms. When was the last time you wanted to send a payment to the gas company because you didn't know how to write an envelopescript assertion?

Of course you think it's a good idea: you haven't looked at the widely available public data.
I know this is neither here nor there, but if you understand the FUNDAMENTALS OF PLUMBING, you can save some serious dough throughout your life.
If we follow that logic, schools should just teach reading, writing, and arithmetic, and that's it because most adults can be functional with just those skills. The reality, we teach a variety of subjects that not everyone enjoys or derives value from. There were many classes I was required to take and hated at the time, but now, years later, I realize the deep impact they had on my thinking and have gained a deeper appreciation of the subject matter.

Computer science is an extension of math, and teaching people basic coding and algorithms teaches them how to approach problem solving by breaking down things into smaller subproblems and encoding the solution as a series of discrete steps. Even if you don't write code, this skill can translate into other fields, from biotechnology to cooking.

The goal of our education system isn't to produce barely functional adults, or vocationally train adults, it's to produce functional citizens, and that entails critical thinking, creativity, problem solving, civics, ethics, an appreciation of history and the humanities, among other things.

I don't claim we need to produce a bunch of amateur Ruby programmers. But our society now and in the future will be ever more dominated by automation, both software and hardware. We cannot have functional citizens without people having a bare minimum understanding of the environment we live in.

The jury trial over copyrights and patents is just one such example, and the Judge, having been exposed to programming in college, even though he is not a programmer by trade, has already shown the value of having that exposure had on his legal thinking.
+Daniel Haggard In your linked-to rant, you say programming gives the ability to automate tedious, routine tasks and more generally empowers people to see the interfaces they use in their daily lives as malleable rather than fixed. Unfortunately, one significant trend in software is in the direction of less malleable, not more. "There's an app for that." Yes, but the ability to tie two or more apps together to produce a result that neither was written for is lost. One can decry this state of affairs, and several have, but it is possible that the course of making software reliable enough to use in your phone inevitably makes it less tinkerable. Just as the course of making car engines reliable enough to last ten years with no more maintenance than the occasional oil change led to the engines becoming inaccessible to the backyard mechanic. One obvious counter-argument is that the internet is bristling with APIs begging to be used to make your life more convenient - if you can do a little programming. Another is that while my Mac has a superior graphical user interface and an app store, it's also a superior Unix system and programming environment. It's a hybrid, but what of? Apps vs. programming, or future vs. past?

+Justin Chase I take your point to be that the intellectual benefit of learning to program is somewhat akin to that of "model thinking", as touted in the Coursera description: "Evidence shows that people who think with models consistently outperform those who don't. And, moreover people who think with lots of models outperform people who use only one." However, programming teaches low-level, impoverished models that are more suitable to making idiot machines perform simple tasks than as a means to conceptually grasp the behavior of the parallel, analog, emotional world. For example, it's common to observe that programmers are pedants. It's not possible for most programmers to let a slight misstatement go uncorrected, because by training (and perhaps by inclination - people seek trades in which they have an advantage) every detail must be correct or the whole will be wrong. The world simply doesn't work like this, e.g., the "wisdom of the crowd" phenomenon. I do believe it worthwhile to teach everyone better modeling skills, but it's hard to believe that teaching programming is the best way to begin.
Ray: Should we constrain our teaching to the things that are most broadly needed, within the time allotted?


The question of what that list should be isn't bounded by the bare minimum; it's bounded by what would suit best in the given time frame.

But yes, that's why we teach literacy, mathematics, civics, history, logic, the fundamental sciences, the biological sciences, gym, and life skills: because if we can only keep them in school for 14 years, that's the best fit set.

I'd actually like to drop calculus in favor of statistics. (I'd also like to make the school day longer to put more material in and reduce parent burden, but that gets into a gigantic economic discussion that I doubt anyone seriously wants to have here.) Not that many people need rate of change, but if you have any doubt of whether they need statistics, just look at how much profit lotteries and casinos make.
And yeah, wow, a judge in a code case is taking from his experience with code. Surely that's an estimation of the impact that programming has had on his legal career, and not a simple instance of "this specific case happens to be about code."
+Bob Foster Good points, except I'm not convinced that programming is not good at encouraging model thinking. The argument I would add in favor of programming as a great proponent of model thinking is that it is actually "runnable". It's a very practical manifestation of the models you have been envisioning and you can get into a rapid feedback loop where you can quickly improve the clarity of that vision.

A lot like how when you have a thought but it's not fully formed and then you start talking about it out loud for the first time and it very quickly becomes solidified. Certain parts of the idea aren't fully formed but then once you start talking about them out loud it's almost as if they start answering themselves.

Well I think that programming can be like that. There is a phase where you start to think about the bigger picture of the problem you are going to attempt to model, but it is usually pretty fuzzy at first. Then as you begin to actually sit down and create an application you start to express those ideas as code and you start to see flaws in your original vision but you quickly repair those flaws. Slowly over time a working version of the model you had in your head forms and actually runs and shows you what you were envisioning... There are other ways to bring your mental models into reality of course, I am simply positing that programming is a unique and powerful one that may have more benefit to non-software professionals as well.
+Bob Foster A good point about the closing up of systems - not sure if we can decide if it's true or not yet. I would have pointed out that counter-argument if you hadn't. It will be an interesting battle between the relative openness of web standards and closed platforms like iOS.

But this feeds back into my other argument. Part of the reason those closed platforms are doing so well is because PEOPLE CAN'T CODE!!!! Those platforms would do considerably worse if people could. Thus anyone interested in open software is crazy not to support the movement to encourage more people to learn to code.
Honestly, being a techie myself, I understand the fun of learning something new. But why restrict myself to computer languages? I'm learning "human" languages in spare time these days. So it's the other way round. The judge learning a computer language. Cool. Actually, its a sign of strong judicial system when the attorneys and judges really know what s*** they are arguing about
Add a comment...