Comment by ryandrake
11 years ago
It's 2015. The audience of this article shouldn't even exist. The reader, as described in the article, is a VP who has so little understanding about what it is his company does, that the only meaningful abstraction he can mentally picture is that of his employees "burning barrels of money".
Imagine an auto company VP who says "I don't know anything about engines and drivetrains and all that technical stuff. All I know is that when you guys are in a meeting talking about your variable valve timing system, all I smell is money burning!"
That would not be acceptable. Yet, here we are, over 30 years after the original IBM PC was released, and there's still a corner-office audience for "what is a computer?"
You're living in a pretty isolated world, my friend. I'd say 90% of my friends would be the audience for this. I've been coding 20 years, most of my friends are successful, grad-degree educated people in a variety of fields, and some of them are even my coworkers.
Who is supposed to teach people what code is? Our schools? Who with a CS degree and programming experience would willfully choose to teach in the USA's education system?
Or maybe the companies who make all their money from code? I think not- it wouldn't help the economic position of Apple, Google, FB, or Microsoft if everyone knew what code is and how it works. It strengthens the tech economy's stranglehold on society when code is treated as something inscrutable.
So there's really very few resources for people- even educated, successful, technically literate folk- to grok "what is code?"
Many coders would do well to read a similar article, if there was one, called, "What is Society?"
> Many coders would do well to read a similar article, if there was one, called, "What is Society?"
There was a thread a while back where software developers told me I was unreasonable to expect them to know who the vice president of the country they lived in was. I feel you here a whole bunch.
> There was a thread a while back where software developers told me I was unreasonable to expect them to know who the vice president of the country they lived in was.
It is absolutely unreasonable. The average person has no clue who the vice president happens to be ... so why should software developers?
We can complain about how clueless average people are, sure, but there's no reason to apply a higher standard to software developers.
12 replies →
What's the Vice President relevant to? It seems to me that for most of us it would be more relevant to know the name of e.g. the head of the FTC - and I don't think that's something you'd expect of people. Even if you did want to know about the Vice President, knowing his party or policies is surely more important than his name. A name is just a trivial fact, not important to actual understanding - and you could look it up if you ever needed it. I'm reminded of http://unreasonable.org/Feynman_and_the_map_of_the_cat .
I think that Parent made the observation that it is sad that in our information society people (in responsible positions (regarding ICT)) don't know about the fundamentals of the information society. At least, that's what I took from it and I concur.
We, as a society, should have started integrating computational thinking (Wing, 2006) as a core competency in the k-12 curriculum from the late 1980s onwards. We didn't.
anecdote
In 1991, I was in 5th grade, I saw the first computer enter the classroom in my primary school. It wasn't used but for some remedial mathematics training for a students or two and I believe the teacher did a computer course with it.
In 2010 I became a high school computer science teacher. There were three computer rooms (about 30 computers each) for the whole school (of about 1500 students) running windows XP + IE 6. Besides my class, the computer rooms were mostly used for making reports and "searching for information". Some departments did have specialized software installed (most of which came with the text books), but used it sparingly at best. On top of that, these software was mostly simple, inflexible, mostly non-interactive, non-collaborative, and "pre-fab" instructional materials. Often this software was not much more than a "digitized" version of parts of the text book with some animations, games, and procedural trainers mixed in.
My anecdote: high school student in a smallish (100k) northern Canadian city, circa 1992-1996. computer science courses ran every year. We were all taught DOS, Windows, programming in QBasic and Turbo Pascal, and (!) building web pages / using the Internet (in 1995!).
The day Netscape 1.0 came out, the teacher had us all download it from a few of CDs passed around had burned after downloading it on the class modem. The classroom was networked (coax) and figured out how to get Trumpet Winsock to work over the next few weeks to share the network with the computer with the modem. By 1996 we had a frame relay connection.
There was no curriculum other than what these two teachers could envision and sell to the achool board. Pretty thankful for that.
anecdote: I graduated in 2008 from HS. When I graduated from there the most advanced computer class offered was essentially how to open up photoshop, word, and excel. A little bit of this is adobe flash go have fun. And make a pure html web page with inline styles - no css. Now that HS has a 3d printer. Once, the computer teacher sincerely asked me how to make a href open in a new window.
I graduated college in 2012 and I learned what css was and why it was better. I took an intro to java class. Learned some stuff volunteering for NPOs doing website work. When I graduated I knew I wanted to do something in IT but not program. Now I am a software dev.
Turns out its easy to get a job and teach yourself how to code when nobody understands what coding is.
We do not love in an "information society", and people do not absolutely need to know the internal workings of computers, any more than a person in 1970 lived in a "radio society" and needed to know how radio or television waves propagated in order to hold a non-technical job.
Another anecdote.
In 2015 my teenager will start High School in a small, rural, school district and each student has a Chromebook. No, I don't know what they will be used for besides googling information, but times are changing.
I emphasized small and rural for a reason.
3 replies →
You make a good, if harsh point.
But this:
"it wouldn't help the economic position of Apple, Google, FB, or Microsoft if everyone knew what code is and how it works. It strengthens the tech economy's stranglehold on society when code is treated as something inscrutable."
Is just cynical. Tech companies aren't so fragile as to depend on general ignorance among the human population. If more people understood code, these companies could create more code. I think you point to an underlying misconception that some how technology is just a barrier to entry, and doesn't provide intrinsic value. But I do not believe this to be true.
> Who is supposed to teach people what code is? Our schools? Who with a CS degree and programming experience would willfully choose to teach in the USA's education system?
Grade school teachers aren't expected to be specialists in the field they teach. They're expected to be specialists in teaching. Usually they have a bachelors (or masters) in education and maybe another degree, but it may or may not be the thing they teach (if they even teach only one thing at all).
To put it another way, this is a bit like asking what physicists would willingly teach in the USA's education system? The answer is obviously not very many, but that's beside the point. Physics still gets taught.
> Grade school teachers aren't expected to be specialists in the field they teach. They're expected to be specialists in teaching.
Yeah, and this breaks down pretty fast, particularly when it comes to teaching the stuff you can't easily hand wave, e.g. science. Even at the middle/high school level, where teachers are supposed to have studied topic they teach at the undergraduate level in some capacity, you find plenty of foreign language teachers who are terrible speakers of the language they teach, or math teachers who basically have the same level of math as their students, with the distinction that they have access to the answers for the exercises they give. I spent some time in a US state university for grad school, and the level of some students who majored in education and later went on to teach was abysmal. It's hard to tell if the hegemony of standardized testing is the root or a symptom of the problem, but the overall picture is bleak.
This is precisely why if we want a great education system, we need to incentivize people who are practicing professionals first to then go teach. My best teachers in high school all shared those traits: a historian who had spent many years doing field research teaching history/geography, a geologist who was also a researcher for a major lab teaching natural sciences, etc.
Not everyone is made for teaching, but we as a society need to become much better at encouraging and enabling the people who enjoy it to teach in parallel to their professional activity (I would happily teach math from 8-10am before my day job 2-3 days a week if there was the structure for it.).
The people who want to become teachers just because they like kids but don't have any deep knowledge/understanding of any particular subject can teach kindergarten.
This is incidentally a weakness in the US education system. You split schools into elementary-middle-high (for no especial reason) then treat it all as 'grade school'.
In every European country I've lived in schools are generally split into primary and secondary. Primary school teachers are general educators whose primary skill is teaching but who do not need advanced knowledge in any particular subject. They usually have the same class all day, which gives them a deep insight into students' progrewss (although from a kid's point of view, if you don't get on with your teacher then school may suck). In secondary school teachers may teach more than one subject but they're required to have studied their primary subject at university and done some additional study in other subjects they teach, as well as additional study in educational methods. So your math teacher has a math degree, your history teacher a history degree and so on. People who plan to teach usually develop themselves academically in two subjects, sometimes three if they're closely related or you have special experience. For example: http://www.teachingcouncil.ie/_fileupload/Registration/Gener...
California seems to be moving towards this model too: http://www.ctc.ca.gov/credentials/leaflets/cl560c.pdf
The downside of this is that if a particular teacher is sick and another has to take the class as a substitute, the substitute teacher just babysits, or comes into class with a homework assignment from the sick teacher that should be doable during the class period. The upside is that in general students are keenly aware that teachers know what they're talking about and are considerably more expert in the subject than would be possible using the assigned textbooks.
I've ranted on HN before about how destructive of educational ends the practice of using 'Teacher's Editions of textbooks with scripts and answer keys is. It degrades teaching to a branch of bullshit artistry, and students who take a subject seriously can quickly detect a lack of true expertise.
Obviously this short comment isn't meant as an accurate descriptor of the whole state of the US education system, just the legacy of the non-specialization referred to in the grandparent comment.
8 replies →
Exactly, I did my first instructed programming in a 6th grade computer class in BASIC on Apple IIes. I think my teach at the time taught typing as well.
> Who is supposed to teach people what code is?
'But no one told me I needed to know this' stops being an excuse as of adulthood, if not earlier. Anyone who cares what coding is only needs curiosity and an internet connection, the web is full of introductory material for almost every level from almost every angle. If a professional in the current world doesn't know 'what coding is', they just don't care.
What do you mean? Theres tons, TONS of resources for learning the basics of programming.
Yes, but a lot of them go through the same hoops - Hello World, variables, conditionals, loops, arrays, functions, OK that's it take this pile of building materials and just turn it into a house mmkay.
There are two big problems for would-be programmers: there's a shortage of obvious standards on architecture/program sturcture (not least because it's hard to prove mathematically which structures are optimal), and endlessly proliferating options. For example, betweeen HTML 5, CSS, and JS, it's quite complex to put together a web page these days.
I mean look at this page on the DOM: https://developer.mozilla.org/en-US/docs/Web/API/Document_Ob... there are hundreds of subtopics, and it's not obvious which ones are most important. The Introductory page on the DOM is less-then-inviting to a non-programmer, not least because it presumes code as the optimal medium for production, when most people would rather work through a GUI and have the computer take care of the abstractions.
I wish sometimes that programmers were forced to decompose their latest and greatest algorithms into electronic circuit diagrams or diagrams or something, to remind them that translating functionality between different paradigms is a Hard Problem and that ,amy people do not like all the typing and syntactical overhead of text-based programming.
2 replies →
So how does that make this article a bad thing?
Also the TONS thing is kind of bad, because it becomes a lot harder for the layperson to filter out the bad resources from the good.
What? I imagine there are many, many auto manufacturing VP's who think, "I don't know anything about engines and drivetrains and all that technical stuff [– and I don't need to]."
Why should the VP of Human Resources need to know how a drivetrain works? Or the CTO? Or the CFO?
They are experts in their area focus. It's ridiculous to expect every manager to understand everything about their business. Would you expect the CTO of Starbucks to be able to tell you how all of their drinks are made?
I wouldn't. And I wouldn't care if they could.
In general, a good executive doesn't need to know the minutiae. They need to know how to motivate people, how to keep projects on track, how to recognize talent, how to delegate, how to budget, how to distill information for other executives, etc.
Sure, knowing the minutiae usually helps. It's easier to sniff out all the BS people feed you, etc. But it's far from the most important knowledge and skills a great leader needs.
I've only skimmed the article so far, but the part that stuck out to me was this (technical manager talking to the VP): “My people are split on platform,” he continues. “Some want to use Drupal 7 and make it work with Magento—which is still PHP.” He frowns. “The other option is just doing the back end in Node.js with Backbone in front.”
Now, that's an example of a terrible trait for an executive. TMitTB clearly has very little ability to communicate with people outside of his area of expertise. The ability to convey complex ideas simply is crucial. Why would a non-technical executive care about the framework you're using? That's asinine. Worrying about the implementation is TMitTB's job. When meeting with the VP, TMitTB should talk about the business impact of options. This option is cheapest but doesn't give us these features that the marketing department says they must have. This option is best, but it's much more expensive to hire developers with those skills right now.
"When meeting with the VP, TMitTB should talk about the business impact of options."
I don't think he even knows what the business impacts are. TMitTB is just a tech guy who works for the new CTO. Presumably, the CTO (being an executive in charge of technology) can speak both the language of tech and the language of business and could make a business case to the VP, in terms he understands, as to why the company needs the new software. The CTO should not have sent her tech guy to talk to the VP.
TMitTB (in his "mid-30s") seems in over his head. And he's not a "tech guy", but a "Scrum Master". And he spends so much time (and money) at conferences that he is specifically brought to task for wastefulness ("he has apparently spent all of his time at conferences and no time actually working"). When he eventually delivers, months late, it's "a plain and homely thing" and he's still cagey about a go-live.
Yet at the end of all this, "TMitTB will get his bonus."
WHAT!?
What's the message here? Big companies are hard and inefficient places? Programmers and techies are confusing and dress funny?
Other than being technically illiterate, the VP seems to be the hero of this story. Not recognized as such, of course ("Money? Hours? Due date? Value? Bah!").
The CTO ("who has several projects on roughly the same footing [e.g., horribly mismanged] scattered across the organization") and TMitTB should have been fired long before the 30,000 words came to a close.
This is the only valid answer, here. Why is the guy not talking in terms of technical debt, business impact, KPIs etc.?
If he really knows his shit, he should be expected to break his technical insight down into layman-friendly terms.
Hell, we're expecting just that from our doctors all the time.
> there's still a corner-office audience for "what is a computer?"
There's a technical audience for "what is sales?", and that's thousands of years old. Generalists, especially good generalists, are rare.
There are always going to be people like this, in any field. TSR (of Dungeons & Dragons fame) actually had a CEO who forbid her employees from playtesting their products during work hours, calling it "playing games on company time." http://1d4chan.org/wiki/Lorraine_Williams
Dear God, what a disconnect. How does someone with that line of thinking even get a job in the gaming industry?
Then again, I'm reminded of a boss I used to have who would ask me to fix the shipping calculator on our web server, then ten minutes later he would poke his head in the door and tell me to "quit playing on the goddamn computer and get some work done!" He didn't realize that "working on the web server" is done at a workstation, not physically taking the server (remotely hosted of course) apart and putting it back together. All he knew was the customers were complaining about the shopping cart module not calculating shipping correctly.
> How does someone with that line of thinking even get a job in the gaming industry?
The page I linked spells it out in pretty plain terms. In short: being in the right place (in terms of general business experience and family connections) at the right time.
Yet, they do: many VP's in this position are promoted from parts of the company that have nothing to do with tech. I even wonder if this is the majority. Not sure. A huge chunk of VP's out there, though.
It's got to be the majority, since most non-tech companies (i.e., the vast majority of companies in the world) only use tech as a tool - it's not the focus of their business. The executives of banks, retail businesses, airlines, etc. are not likely to have been promoted from the IT Department.
Sounds right. Makes even more sense how you worded it.
> auto company VP
The VP is not in charge of a software company. Presumably some sort of widget/manufacturing operation ("cycle reduction"), so it is unfair to accuse him of not knowing what is going on in IT (at the level of engines/drivetrains for an auto company).
This comment falls neatly into the category of my favorite trendy term of 2014/2015, the "hot take". No matter how informative or well-intentioned a piece of writing may be, some people will just immediately go looking for something wrong with it, reason or authorial intention be damned.
Maybe instead of ridiculing the majority of people who don't understand what we do, we should celebrate a piece like this that makes an effort to educate. Maybe instead of lamenting their ignorance, we should commend the VPs and everyone else with enough curiosity about code to make it through this behemoth of an article.
It's perfectly acceptable. Business optimises for least-knowledge-you-can-get-away-with.
Three generations of my dad's side of the family were in the print industry: everything from printing Vogue and Playboy to fancy art books to dull but well-paid corporate stuff (annual reports, mergers and stock issue documents—500 page books that the SEC make you print filled with legalese that nobody reads).
Most people working in big print companies know nothing about print. They don't know about how paper works or how ink works. They have no understanding of how colour works or why you can't print certain colours on certain materials, or how long certain types of print work takes. Not at the junior level and not at the management level.
Hell, if you took half the people in a big print management company and asked them to explain the basics of offset printing, they couldn't give you a "lead paragraph of Wikipedia"-level description. And that technology has been around since 1875.
For all but a small set of technical and management roles, a lot of businesses are far less interested in technical know-how than "soft skills". In a shocking number of places, the ability to build a tower out of rolled up newspaper and sticky tape in a team building exercise is valued over an ability to know the details of how the industry or its core technologies work.
I think you're taking their conceit of a VP audience too seriously. To me that just feels like a fun narrative choice, and the article is just intended for any adult dealing with and slightly bewildered by code.
A lot of people find themselves in this role, people who specialize in other fields but still need to interact with developers because software is eating the world, but more quickly it's eating their role.
Software doesn't only happen at software companies.
Actually, I've met a lot of programmers who are deeply resistant to learning anything about the core business of the firm they work for, especially if it can't be automated of if it resists automation because of strongly established legacy practices, as well as the tech short-sightedness that so often prevails - eg saying that the putative listener won't need $85,000 in Oracle licensing any more, oblivious to the fact that such licenses involve periodic contractual obligations.
> Imagine an auto company VP who says "I don't know anything about engines and drivetrains and all that technical stuff. All I know is that when you guys are in a meeting talking about your variable valve timing system, all I smell is money burning!"
His job isn't to know about drivetrains and engines and stuff. His job is to manage products, cashflow, audit requirements, stock market regulations, and marketing. That's the stuff he has to deal with day to day.
> what it is his company does
The company sells products. The website with a shopping cart is not the primary purpose of the company.
The company may in fact sell automobiles.
Most VP's do not sell computers (or even software). They sell goods and services that depend on computers. What you're saying is more like "a VP at UPS or FedEx should understand everything about engines." That's ridiculous, you don't need to understand how trucks work to know they move goods from point A to point B.
Writing software is not what (many) companies do. Companies exist to create things of value for their clients. Software is one aspect of the secondary functions that enhance this value creation.
In the article, the VP worked at a company that sold things on the internet. The things they produced were their primary function; internet platform development is a secondary function, much like marketing, hiring, business development etc etc.
So the theoretical VP's core competency should not have been software dev, or even technology - that's what CTOs and technical leads are for. In fact his core competency probably wasn't product development anymore, if it ever was. He was a manager, and his role was managing resources within the company to optimise their primary function.
Hence the disconnect, and hence why articles like this (and audiences for them) exist.
It's a caricature, much like the pointy haired boss in Dilbert. The reader is supposed to think "at least I'm not as dumb as that guy".
Also, the whole article is written as if it were 1997. The graphic design is rather HotWired-like, in a world where they had the tools we have now.
This article doesn't attempt to answer the dull, dry, boring, well-understood question "What is code?" in the sense of "What is it that computers use to make them do what they do?". It tries to answer the much more interesting, intangible, existential question "what is code?", in the sense of what does it mean for the world to depend on a culturally isolated priesthood of technologists who control what computers do? How does that work?
I've seen a lot of 50something execs who have been passed by on the technical superhighway.
I met a CIO of a large insurance company who didn't know what Python was.
I know a senior banker and educator who struggles with the basics of Excel and Word. (Yes, there are still people out there who are used to the days when secretaries did all the work.)
I knew an IT exec at a large consumer products company who didn't like using computers at all.
I work at a software company where no one likes computers too.
It should make sense that this article & VP exists. 7 billion people in the world and only 11 million professionally code, and 7 million are hobby coders, according to the author of the article and the IDC.
After auditing the software of at least 20 different startups, I'd have to say there will always be people in positions of power who know nothing. Just look at our politicians.
I though the imaginary VP was pretty clearly not working in a software company. What if random companies suddenly needed to design and build their own automobiles in house? There would be a similar lack of comprehension about just what the automotive engineers were actually doing all day.
At least, I know I would be lost and would greatly appreciate a guide like this.
"It's 2015. The audience of this article shouldn't even exist."
Well, the audience most certainly does exist whether it should or not. The thing to think about is what to do about that.
> Yet, here we are, over 30 years after the original IBM PC was released, and there's still a corner-office audience for "what is a computer?"
As someone who got their start on DOS and BASIC back in the 80s, I say you raise a pretty good point. There are so few languages depicted in this web brochure that it does not illuminate anything.
So many people stopped learning in the 80s that the 50s are starting to catch up with them again.
This is the stuff that cardboard box forts are made of.