Lecture 3: How to Start a Startup - <AUTHOR> http://startupclass.samaltman.com/courses/lec03/ <comment><USER2> PG made allot of valid points. It very useful to watch the video first.

However here is one additional counterintuitive point. Not all startups work hard. The good ones are focused and might not have all the answers but you at least know what your going to be doing. Some startups are just there, they don't work consistent hours and spend allot of time doing fluff stuff and not productive stuff. Some startups are just there because it's the cool thing now and they come in at 12:00pm and leave at 4:00 pm.

For reference I have worked few startups, some small companies and one very large company. I am currently working out of a co-working space. I see very few startups here working any type of consistent hours. I don't mean 9-5 , I mean consistently being here and working no matter what hours they prefer, even though they are full time members of the space.

I can reference companies like Apple in which people are basically working as much as humanly possible[1]. Their work culture is actually more intense than allot of startups. Even at a small-medium company I worked at I would see executives up at 3am, even after they have been at work all day long.

[1] - [http://9to5mac.com/2014/10/01/former-apple-managers-talk- of-...](http://9to5mac.com/2014/10/01/former-apple-managers-talk-of- the-247-work-culture-these-people-are-nuts/)

</comment><comment><USER3> Am I the only person who ever found the course list for an MBA genuinely _interesting_? Like, intellectually so.

I get the general usefulness of advising undergraduates that MBAs are, in general, a bad idea for them. They're certainly about as poor of a financial investment these days as a degree in English. But the hopeless idealist in me asks if it isn't possible to get an MBA to actually try to theorize about customer behavior, economic structure, supply chains, what have you and build part of ones academic foundation around it? Or is it truly impossible to walk into today's MBA programs wanting to study business as theoretical and societal constructs, without walking out a professional networker and middle manager?

All I know is, I never seem to get tired of reading HBS case studies. I'm always curious to learn how other people approached things and how the world worked then, in addition to how it works now. If anyone has a good community for embracing that sort of knowledge, I'm all ears.

<comment><USER4> > But the hopeless idealist in me asks if it isn't possible to get an MBA to > actually try to theorize about customer behavior, economic structure, supply > chains, what have you and build part of ones academic foundation around it?

Yes, an MBA will help you understand many of our societal, economic, and business constructs. I did not find an MBA to be particularly helpful in understanding customer behavior, but it's definitely valuable in understanding government and corporate behavior.

And yes, it'll help you understand supply chains/logistics, various process and people optimizations, etc. Think of it like learning algorithms and patterns for solving problems that are commonly found in large human organizations.

> Or is it truly impossible to walk into today's MBA programs wanting to study > business as theoretical and societal constructs, without walking out a > professional networker and middle manager?

It's a degree. Nothing more. However, I would not get an MBA with a goal of middle management as the focus of most programs is on getting you ready for upper management decision making. For middle management in a large company skills such as project management, people management, scheduling, delegation and communication are more important than high level strategic thinking.

<comment><USER5>
       However, I would not get an MBA with a goal of middle
       management as the focus of most programs is on getting
       you ready for upper management decision making. For middle
       management in a large company skills
       such as project management, people management, scheduling,
       delegation and communication are more
       important than high level strategic thinking.

Perhaps it would be better if the training were divided into different (shorter) programs undertaken at different stages of a career. There might be a short program of basic business skills, appropriate for people just starting out and taking worker/analyst jobs; another for people stepping up into leadership positions, dealing with project and people management; and a final one for senior management, focused on strategic issues.

The military typically does it this way. What you learn in Officer Candidate School is different from what they teach you at the War College.

</comment></comment></comment><comment><USER6> The fact is most startups will fail[1]. If I fail and try again and again, statistically I will probably fail eventually. Therefore, most of us will end up working for other companies. Statistically again, there are a lot more employees in well established companies than startups so most of us will likely end up working for well established/large organizations.

So my question is: does the experience, the knowledge I learn from startups helps me on my probably eventual job in an established company? Should I just go work for a large company right away so I can be good at what I will end up doing? It seems to be opposite to what PG said[2].

[1] [http://online.wsj.com/news/articles/SB1000087239639044372020...](http://online.wsj.com/news/articles/SB10000872396390443720204578004980476429190)

[2] [http://www.paulgraham.com/boss.html](http://www.paulgraham.com/boss.html)

<comment><USER7> Strictly speaking, a corporate recruitment process will peg and interview you based on your experience level. 3 years at a failed startup are likely to be equivalent to 3 years at a large established company, you'll go through the same interview process, be asked the same questions, and presented with the same offer.

From a rational standpoint, having even a mild level of success that ends up in an acqui-hire instead of an outright failure will yield you a better offer from a large corp than an applicant who just sent his resume in.

Given two choices - equivalent compensation at failure, and higher compensation at anything but failure, you should do a startup.

That does not take into account stress levels and opportunity cost of your spare time.

<comment><USER3> I have to disagree here. Folks with failed startups are as diverse as the startups they built (or just as often, struggled to build).

The simple reason why is because while a startup is the best place to learn how to start a startup, it _isn 't_ always the best place to learn how to be an engineer.

At least, not the sort of robust engineering (hopefully) done at established companies, where you have to understand existing best practices like code style, continuous deployment and testing, and non-technical conventions like proper code reviews and pager schedules. That sort of rigor isn't found in all startups, but some amount of it is a necessity when your primary job is shipping code, lots of it, and not just searching for product market fit.

I think it is far more likely that you'll get a strong offer for a large corp coming out of another large corp - where you'll speak the language and have found at least _someone_ talented to mentor you - than as a typical acqui-hire or founder of an also-ran startup. In fact, many acqui-hire employees themselves have to go through interviews at the acquiring company, finding themselves on the bottom of the pecking order at their new companies - if they even have jobs at all.

That's not to say you shouldn't do a startup...just, don't do it expecting your Plan B to be a cushy job at Facebook. :)

<comment><USER7> That is true, I almost put a caveat there that small startups (or schools) teach programming, while large companies teach software engineering, but nowadays most large technology companies have onboarding/mentoring process designed around that, as a lot of the processes tend to be company-specific.

> many acqui-hire employees themselves have to go through interviews at the > acquiring company, finding themselves on the bottom of the pecking order at > their new companies

Employees yes, from OP's wording I understood the question was in regards to the founder. An acqui-hirer is likely to sweeten the offer for the founding team, otherwise why even pursue an acqui-hire.

<comment><USER6> With the word startup I actually mean founders and early employees. Sorry for the unclear wording and thank you for your opinion.

</comment></comment></comment></comment></comment><comment><USER8> I like this little corner of the universe with YC funding redditcoin and giving free lectures from Stanford to the world.

<comment><USER9> agreed, man. Fantastic.

</comment></comment><comment><USER10> "I have in my head more data [about starting a startup] than anybody else does... and you're asking me questions a reporter would ask because they can't think of anything interesting?"

I was blushing down to my beltline for that guy.

<comment><USER11> Still more on-topic than the question asking about Snapchat.

</comment></comment><comment><USER12> Loved this quote:

 _...this is exacerbated by the existence of this term "growth hacks"... whenever you hear anybody talk about "growth hacks", just mentally translate it... to "bullshit"._

<comment><USER3> A counterpoint: [https://medium.com/designing-for-results/if-by-growth- hackin...](https://medium.com/designing-for-results/if-by-growth- hacking-b3d057fcc0a3)

<comment><USER13> TLDR; but you can simply see "growth hacking" as a manner of tinkering with changes to your product/workflow/communication until it shows a positive effect on userbase growth.

</comment></comment></comment><comment><USER14> I share pg's distaste for the mouthful that is "entrepreneurship" ([http://youtu.be/ii1jcLg-eIQ?t=30m35s](http://youtu.be/ii1jcLg- eIQ?t=30m35s)). How about resurrecting the root, and using "enterprise" instead? Moving a language as big as English is a Brobdingnagian task, but few people are as well-positioned as pg to (re)introduce "enterprise" as a more economical alternative to "entrepreneurship".

<comment><USER15> but then what would you call the people doing the enterprise? enterprisers?

i'm not necessarily defending "entrepreneur" but one would hope that the alternative would be shorter.

<comment><USER14> You can still use "entrepreneur", which comes from same root as "enterprise" (ultimately from Middle French _entreprendre_ , "to undertake").

        entrepreneur
        noun, plural entrepreneurs

        1. a person who organizes and manages any enterprise, especially a business,
        usually with considerable initiative and risk.

[http://dictionary.reference.com/browse/entrepreneur](http://dictionary.reference.com/browse/entrepreneur)

<comment><USER15> ah, ok. i had assumed the distaste was for all forms of the word. =)

</comment></comment></comment></comment><comment><USER16> Interesting take on not starting a startup while in college. I've watched a lot of his lectures and didn't see him state this before. Good point in thinking about the ideas and cultivating them before jumping the gun too early in life.

</comment><comment><USER17> Perhaps PG's position on getting an MBA was previously well known to many. I found his comments regarding the orthogonality of business school and the process of _starting_ a business to be refreshingly clear and straightforward.

</comment><comment><USER18> I thought this answer was interesting:

 _" I don't think I'm very efficient. I have two ways of getting work done. One is like during YC, the way I worked at YC is I was forced to. I had to set the application deadline, and then people would apply, and then there were all these applications that I had to respond to by a certain time, so I had to read them, and I knew if I read them badly we would get bad startups, so I tried really hard to read them well. So I set up this situation that forced me to work.

The other kind of work I do is like writing essays, and I do that involuntarily. I'm like walking down the street and the essay starts writing itself in my head. And so really I either force myself to work on less exciting things, or I can't help working on exciting things. I don't have any useful techniques for making myself efficient. If you work on things you like, you don't have to force yourself to be efficient."_

</comment><comment><USER19> As someone who lives outside the US, what did PG mean when he was talking about Facebook starting as a Florida LLC and that "even you guys know not to do that" ?

<comment><USER20> Most corporations in the US are incorporated in Delaware. Whenever the question of incorporation arises, the answers is always in Delaware as a C-corp. PG's comment was a nod to that.

[http://blakemasters.com/post/21742864570/peter-thiels- cs183-...](http://blakemasters.com/post/21742864570/peter-thiels- cs183-startup-class-6-notes-essay) (Look at point #2 - "You Should Be a Delaware C-corp")

<comment><USER21> > Whenever the question of incorporation arises, the answers is always in > Delaware as a C corp.

Yes, if you raise venture money, you will need a Delaware C-corp. But the percentage of companies that are _successful_ in raising venture capital is extremely low. How low? Probably lower than Y Combinator's acceptance rate.

For entrepreneurs serious about building a real business, entity selection should be based on what's best for the business and the founders, not what's going to be required by investors they don't yet have and may never have. Generally speaking, young companies have no legitimate incentive to pay Delaware for the privilege of being incorporated in Delaware.

So what about companies that are successful in raising money? For early stage startups with little to no revenue and assets (read: most startups), it is quite straightforward to revisit entity selection if necessary with minimal complexity and cost, and with few if any tax consequences. Delaware has a statutory conversion that makes it super simple and inexpensive to convert a Delaware LLC to a Delaware corporation. Even conversion of a non-Delaware entity to a Delaware C corporation is a simple task and will not come close to being the most expensive item when you pay your law firm for its work associated with your financing.

Of course, if your company has no assets, you could just dissolve if need be. Which, ironically, is what happens to a lot of those Delaware corporations.

</comment></comment></comment><comment><USER22> Timestamped and summarized notes: [https://timelined.com/how-to-start-a- startup/lecture-3-how-t...](https://timelined.com/how-to-start-a- startup/lecture-3-how-to-start-a-startup)

</comment><comment><USER23> My favorite quote:

"Snapchat? What do I know about snapchat, we didn't fund them. How about another question."

</comment><comment><USER24> I found pg's comments about "podcasting businesses" interesting, in light of this exciting podcast about creating a startup around podcasting: [http://hearstartup.com/](http://hearstartup.com/) \--"...supposed to be in the podcasting business, and you like podcasting business, do those words even grammatically go together? The answer turned out to be no as Evan discovered."

</comment><comment><USER25> This talk is surprisingly entertaining.

<comment><USER26> He's very funny! I've never heard him talk before. I listened to this whole thing & laughed so many times. "screw this whole entrepreneurship thing" at 34 mins.

<comment><USER25> I've only heard one. Either the other talk of his I listened to was abnormally dry, or he's just more comfortable joking around with a younger audience (which kind of makes sense).

<comment><USER27> I imagine abdicating the YC throne had something to do with it.

</comment></comment></comment></comment><comment><USER28> I really enjoyed this lecture and I found it hard to take down notes. Mainly because there's more experience involved in this lecture, than "note worthy" information.

I'm not saying there's something wrong with Sam's lectures, but there's a stark contrast between the two formats which makes me even more interested in seeing what the other speakers will bring.

</comment><comment><USER29> Here you have some notes on the lecture.

By the way, we are a couple of italian friends building FlashUp, a platform for sharing notes on lectures, videos, books, panels so other people can enjoy the nitty-gritty without having to spend hours and hours glued to their screens.

Any feedback is appreciated.

\---

NOTES:

\--> Startups are very counter-intuitive – if you trust and never question your intuition you will make mistakes

\--> LIST OF COUNTERINTUIVE STUFF TO REMEMBER WHEN BUILDING A STARTUP:

\--> Startups are so weird that you will make mistakes if you follow your instincts. That's why at YC partners give advices to founders, to warn them about these counter-intuitive mistakes.

\--> Trust your instincts about people. A mistake founders often make is not trusting their instincts about people. In business pick people like you would pick friends.

\--> You don't need expertise in startups to succeed in startups. What you need is expertise in your users.

Zuckemberg wasn't an expert on startups but he knew his users and what they wanted.

\--> Another mistake founders is not making something people want first but "playing house": they come up with a plausible idea, raise money, rent an nice office in SOMA and hire their friends to later figure they have no product. Why? Cause they have been trained to believe this is how you do it. They measure success by how much money they have raised.

\--> They are always looking for a trick: What's the trick to raise capital? Start a startup that's growing fast and let investors know about it What's the trick to grow? Make something people want.

\--> Tricks and gaming the system doesn't work in startups. There are no bosses to trick, only users to build good software for and make happy.

\--> Startups are time consuming: they will take over your life time in a way you can't imagine now. If it's successful it will take over your life time for several years. There is a cost opportunity here. It's like having kids, it will change your life (kids are awesome – pg)

\--> What you really need to learn are your users' needs. University can't teach that.

\--> You can't start a startup in college. If you do, you won't be a student for long.

\--> DON'T START A STARTUP IN COLLEGE. There are things you can only do when you are 20, like backpacking around Thailand that people like Zuckemberg won't ever be able to do. So wait.

\--> While you are in college, come up with an idea and meet your future founders, friends you love to spend time and work with.

\--> The way to get startup ideas is not to think about having good startups ideas: you'll get bad and plausible ideas that will end up wasting your time.

\--> To have a good idea, take a step back and don't even try.

\--> You can have them unconsciously if: \- You learn a lot of things that matter \- Work on problems that interest you with people you respect

\--> Be on the edge of some technology, live in the future: you will be able to spot good ideas where other won't. They won't look like startup ideas but they will look good, like a search engine for example.

\--> If you want to start a startup later in life, learn important things and be genuinely interested in them. You need domain expertise.

\--> Bottom line: IN COLLEGE JUST LEARN.

The question time part is missing. I'm sorry, it's almost 2 o'clock in my zone. I just wanted to share some notes!

...

If you want to receive future lectures notes (more polished than these quick ones) in your inbox, sign up to [http://joinflashup.com](http://joinflashup.com) \- the first platform for sharing summaries and notes for startuppers, learning more saving time to actually get things done.

<comment><USER28> You're notes in Markdown: [http://markdownshare.com/view/c97aed92-513d-46f0-b097-0fb12e...](http://markdownshare.com/view/c97aed92-513d-46f0-b097-0fb12e4b5840)

<comment><USER30> Strangely, I find it easier to read as an HN comment. Maybe related to the font ?

<comment><USER28> Markdown Share isn't the best rendered, but the idea was to transpose the notes into a format that any can copy-paste to their own markdown editor.

Personally, I use stackedit.io

</comment></comment></comment></comment><comment><USER31> I live outside of a town with a large tech culture. I often wonder if a large part of success is just being around the right community. So you are getting a lot of feedback and have real connections to gain information from. I wonder what the best way to find/make a community like that in my area would be or if I am just out of luck and should be somewhere that already has a large tech culture. I am in South FL btw.

<comment> squeaky-clean Hey, another SFL hacker! I definitely think community helps you. The feedback and connections must be great, but for me the biggest benefit is just the motivation it provides. Having a community, large or small, that shares my interests keeps me driven, and I don't feel like I have that here.

It feels very lonely and discouraging to spend 12 hours on a Saturday banging out a personal project, and then not know anyone who would care to see it.

I hardly know any other techies/programmers. And of the ones I do know, 90% of them are 9-5 programmers, who are done talking about it once they clock out, and don't have their own personal projects. That's good for them! But that's not me, nor who I want to surround myself with.

I know there's that space in Wynwood, I think it's called The Lab. It seems like a good place to meet people, but all the events they do are usually while I'm working or something else occurs where I just can't attend.

<comment><USER31> Hey lets get in touch. Contact me at gbarberiATaotaonlineDOTcom

</comment></comment></comment><comment><USER32> 50 PG Quotes from the lecture all, 140 characters or less to make it easy for people to share.

[https://medium.com/how-to-start-a-startup/50-quotes-from- pau...](https://medium.com/how-to-start-a-startup/50-quotes-from-paul-graham- on-counterintuitive-parts-of-startups-and-how-to-have-ideas-4209154ff319)

You can find more from Sam Altman and the rest of the lectures there as well.

</comment><comment><USER33> I don't know if I'm alone on this one, but I thought his presentation was a bit scattered. Not taking away from him in any way, but his examples were not effectively backing up the points he was making.

You could even see him hesitating and questioning his own statements in his head a few times.

<comment><USER34> I don't really agree, I just think it was a bit of an informal presentation. I actually really liked that he questioned his own statements, because he knows it can be very difficult to give solid advice in an ill-defined field like this. I think I learned a lot more from his hesitance in giving anything definitive than I would have if he tried to provide solid guidelines.

Also, given the limited time I don't think he had a lot of opportunities to go into detail with examples. This was just a broad overview of advice he thinks you should take.

</comment></comment><comment><USER35> Anywhere to get these lectures audio only?

<comment><USER36> What I usually do is to use this website [http://www.vidtomp3.com](http://www.vidtomp3.com) to convert the youtube video to audio. Works flawlessly.

<comment><USER35> Thanks!

</comment></comment></comment><comment><USER37> Maybe I'm the only one here, but I was hoping for more in details, information, examples, and insight into how to find a good _idea_ for a startup.

I really can see that from his experience in Silicon Valley PG gave a view of what he has actually seen in how startup _ideas_ are or have been found. I have to respect most of what he said.

Still, from some of what he said, I have a tough time taking him literally: E.g., as I recall from the lecture, he indicated that early on Google was just a little thing, just a small interest, or some such.

However, also, as is well-known, even in the early days of Google even as just an _idea_ , Internet search was already widely regarded as an important need and problem. Without checking dates, there was, what, Lycos and Yahoo!, maybe more?

Without means of search, the Internet was like being in the world's biggest library with all the books, etc. just in a big pile. For libraries, the solution has long been the library card catalog, especially the subject index. So I have to suspect that, even in the beginnings of the idea for Google, the founders did understand that what they were working on was possibly important as a business.

Next, the lecture did mention that Ron Conway wrote Google an early check: I have to believe that Conway took the future of Google fully seriously.

From all I know, Facebook, Microsoft, Cisco, Intel, etc. all knew early on, at the beginning of the _idea_ or not long after, that they were trying to make a successful business.

But the lecture seemed to be suggesting that at the start an _idea_ is hardly more than a toy or curiosity.

Next there was,

> The way to get startup ideas is not to think about having good startups > ideas: you'll get bad and plausible ideas that will end up wasting your > time.

> To have a good idea, take a step back and don't even try.

While I can believe that PG has plenty of examples where startups followed this advice and were successful, still I'm shocked and have a tough time swallowing that this advice is the only way to be successful or that, in particular, always any effort to find a good _idea_

> will end up wasting your time.

Instead, I'd like to build on PG's

> What you really need to learn are your users' needs.

Now I'm on board!

But then I want to go farther: Okay, not everyone has to go along with my next thinking, and here is some of why: First, there's not just one way to "skin a cat" or be successful. Second, and something I regard as very important for successful startups, as we know too well, a really successful startup is rare, so rare that we have to suspect that, not all, but some of the most successful startups will be taking approaches that are new and with few or no examples from the past, say, 30 years in Silicon Valley venture funded startups.

Moreover, if a startup looks close to what has been tried, and even worked, before, then we have to be suspicions and question if that "what" should be tried again instead of something new.

But, broad strokes, aside, let's try to be more definite:

Step (1) Need.

Assume we've seen some users' need. Suppose we use some judgment here and accept only a genuine need. Such a need might be, say, a safe, effective, cheap one pill taken once to cure any cancer. Yup, that's definitely a need -- no question. We want a need so serious that we can be quite sure, e.g., the pill, that the first good or a much better solution will be a _must have_ and not just a _nice to have_. So, we pick a need.

Now I narrow the scope: We want to exploit Moore's law and the Internet and do have a need that, at least for its solution, is in _information technology_. One reason: Can send to the users just bits, and those sent just over the Internet.

Step (2) Solution.

With the need, we try to find the first good or a much better solution. If we fail, as we likely would for years on a cure for cancer, or, in information technology, a project were we needed an algorithm that shows that P = NP, we return to Step (1) and find another genuine need.

Step (3) How to

So, how can we find a solution?

Well, here's my suggestion: Right, even with PG's broad experience, the suggestion may so far never have been seen even by PG in Silicon Valley. So, in this sense we're talking something new, and we keep in mind that we should not be reluctant to pursue something new since being new and different is from maybe good up to crucial for the rare, big successes in the future.

But for something new, we very much want some evidence of, say, _efficacy_ , or will that dog hunt?

So, we have a problem, and we want a solution, in information technology, and a solution we have high confidence in, even before we start writing software. So, where can we find examples of doing that? Sure: The US DoD. They've been doing that with, comparatively, a great batting average for 70+ years, that is, finding solutions that well informed people can have high confidence in before starting implementation.

So, we have

Lesson 1: By example, it's actually possible, and in the US DoD quite common, nearly standard, to find solutions that well informed people can have high confidence in before starting implementation.

Now, this lesson, and the fairly obvious DoD examples, e.g., the SR-71, were often quite expensive to implement. But, there is also

Lesson 2: The implementation work commonly was routine, that is, low risk, maybe expensive but, still, low risk.

More of my suggestion: It can be good, when we can, to convert the work of finding the solution to a mathematical problem where, if the math is correct, then we are quite sure the solution is correct and, quite likely, effective as a solution for the need.

Advantages here include: (A) The math has a good chance of being done just on paper by just one person, with very low "burn rate". (B) The math is comparatively easy to check for correctness. (C) Since we have assumed that our startup is in information technology, a solution based on math has a big _natural_ advantage; e.g., maybe the implementation is just software with no metal bending, team of thousands, big buildings, etc.

So (1)-(3) is my suggestion for insight into how to find a good _idea_ for a startup.

So, where is this suggestion for finding a startup _idea_ unclear, wrong?

</comment><comment><USER38> this is amazing

</comment><comment><USER9> Made an interactive version of this lecture - with @paulg's essay, reading material and recommended Job's video embedded: [http://storygami.co/htsas- lec-1/](http://storygami.co/htsas-lec-1/)</comment>


You just went to the Google homepage. What actually happened? - <AUTHOR> https://plus.google.com/112218872649456413744/posts/dfydM2Cnepe? <comment><USER2> You just pressed a key on your keyboad.

Simple, isn't it?

What just actually happened?

You engaged a cascade of motor neurons to coordinate the contraction of thousands of muscle cells, which pulls a lever attached to your calcium crystalline framework, grinds across a glucosamine joint. This forces your calcium crystalline frame-member to depress, compressing your saline-filled lipid-polymer foam skin against the keyboard. As you do this, you constantly measure the pressure against the lipid-polymer walls to ensure you are not deforming your muscle cells too much or too little.

\---

Reality has inordinate complexity. When humans build roads or build narratives or build websites, we are simplifying reality for ourselves and others, including other animals.

<comment><USER3> At least with technology, _someone somewhere_ understood what is going on. With biology/biochem/physics all the way down... there is no expert who designed the system originally!

Can you imagine computer science if we had no prior knowledge of computers and had to research the entire process starting at the end point? What a task.

<comment><USER4> > _someone somewhere_ understood what is going on.

Not quite. A huge group of someones in aggregate understood what is going on. There is still no single expert who designed the system originally. Eventually, or perhaps already in many cases, some portion of the system has no _living_ expert who designed it.

I can imagine a future where expertise on some deep components of the system has been lost to the sands of time, and people have to study them blindly to determine their function in just the same way that we currently study nature.

Neat.

edit: I think raelshark and Carl Sagan said it better than I did.

<comment><USER5> In Vernor Vinge's _A Fire Upon the Deep_ he describes the role of the programmer-archaeologist, whose job is to sift through mountains of abstraction layers and black-box code modules written in dead languages thousands of years prior, determine their function, and stitch them together to perform a desired function.

In the prequel, _A Deepness in the Sky_ , one of these modules, buried beneath said layers, contains a booby-trap set by an ancient civilization that only the protagonist knows about. I believe the Unix epoch is mentioned briefly.

<comment><USER6> Why don't they just code new software from scratch?

<comment><USER5> It's a logical continuance of the current state of affairs. Even in the early 90s when these books were written, few people wrote entire applications in assembly language, or punched machine code into cards; they wrote in a higher- level languages that are eventually compiled into machine code, or were interpreted by other tools of which they know nothing about the internal workings.

Hell, we are inventing entire languages today that compile to Javascript, which in turn is interpreted or JIT-compiled by other tools. Or we write advanced HTML5 frontends that talk to advanced Node.js backends that in turn talk to legacy systems written in COBOL running on IBM mainframes. Programmer- archaeologists _already exist_.

</comment></comment></comment></comment></comment></comment><comment><USER7> When I got to the last paragraph or two, I realized this was not just a "computers are complicated" post. He marks a specific _social_ problem the complexity of the technology has created.

This is the best way to frame the "tech laws problem" I've seen in a long time. I'm curious: what is the best way to approach the bikeshedding issue?

On the one hand, the people who recognize the issue tend to be technical. On the other, the solution will inevitably be a social one, unless something comes along that makes patents and technological laws moot.

Here are three social avenues I could see being helpful, but none of them seems to solve the problem. I'd love to know what people are doing in this area.

a) Improve technical education for the general public so that they can call BS, or make reasonable decisions.

b) Improve technical education of public servants that make crucial decisions regarding technology. I'm not competent to rule in a legal case about pollution, so why should we assume judges are competent to rule in a legal case about code? (How do you measure that? Certifications? - egh).

c) Improve social outreach for technical people. Most technical people probably want to build cool things instead of sit in Congress, knock on doors, or otherwise get involved. I've talked with engineers who despise legal proceedings so much they started trolling the lawyers in depositions. Honestly I'd rather build something cool than think for five hours about how to get people to care about patent law. Maybe that should change.

I'd love feedback on this, because the bikeshedding issue is the scariest social problem I can't think of a solution to. It doesn't just affect a specific patent, it affects the way we rule on them in general.

If you are both a lawyer and technical, I would really love your feedback, here, or via email.

<comment><USER8> So before I was a lawyer I was an engineer, and most of my friends are still engineers. One of the things that I noticed then and still notice now is that tech people think they're special. They think that their problems are somehow qualitatively different from all the other problems that society has ever faced. They are simultaneously optimists (we can build anything!) and pessimists (we have no hope of influencing the system!). They are both self- centered (our things are the most important things!) and convinced of their own impotence (nobody cares about the things we do!). Indeed, this article _exudes_ of "we're special!"

If tech people want a world with sensible tech laws, the first thing they have to do is internalize one simple fact: computer tech isn't special. It's no different, in the grand scheme of things, than petrochemical refining or agriculture. It's just one specialized problem domain within a larger society.

That realization is simultaneously humbling and empowering. If tech is the same as everything else, then that means the same social tools that work for everything else can be leveraged to work for tech! And that means (c), lots and lots of (c).

But not just (c), even though (c) is the starting step. Ultimately, through (c) you can do (b). For example, a judge isn't a domain expert in petro- chemical refining either, but they make rulings on petro-chemical refining all the time and it works more or less well. That's because the system is structured so as to not require judges to be experts in everything. It is structured so people versed in a specific problem domain, be it petro-chemical refining or code, can explain in plain terms the moving parts of his case, and the judge, generally a highly intelligent person, can make decisions based on those explanations. And ultimately, through (c) you get to (a). Ultimately, the burden is on tech people to convince the public at large to care about the things that they care about.

I've used this example elsewhere, but I think it's a really important one. The tech industry complains up and down about its inability to fight the "big money" of the media companies. Yet, the entire U.S. movies and music industry put together are about $50 billion in domestic revenue per year, or equivalent to just Apple's revenues in just one quarter. You're telling me that the tech industry can't fight the "big money" of an industry that's a fraction of its size? Please! Another example: Apple's revenues and profits are about the same as Goldman Sachs, Morgan Stanley, and JP Morgan Chase _combined_. Tech isn't the skinny schoolboy getting picked on by the big kids--it's the behemoth. The only sector that can compare is the petro-chemical sector.

We live in a democracy. In a democracy, you can't just sit around waiting for everyone else to realize how wonderful and special you are and legislate to further your interests. You have to _integrate_. You have to participate in the political process. You have to explain to policymakers the moving parts of your industry, and you have to convince the public to care about the things you care about. And you have to accept that the policy makers sometimes will not agree with you (because they're balancing a broader array of interests than just your own), and you'll have to accept that the public won't necessarily buy into your worldview. But when that happens it's not an excuse to take your marbles and go home.

For a contra-example, look at environmental legislation. Environmentalists have been incredibly successful considering there is very little money behind the movement, and that the people on the opposing side of the table are petro- chemical giants, each of which are 2-10x as large as the entire domestic media industry that tech people think are too monied to be overcome. Yet they have been remarkably successful given those odds! Why? Because they don't hole themselves up in ivory towers. They participate in the political process. They translate their value systems into things that perk up the ears of politicians (this environmental bill might cost a few jobs, but it will be more than made up for by the avoided health costs from the reduction in pollution!) Jobs, costs, etc. Those are things politicians care about, and indeed those are the things they're elected to care about! Sometimes, they even fight dirty. They participate in the _war_ that is living in a democratic society with competing factions.

<comment><USER9> I'd argue that software and digital technology are different from everything that the legal system has legislated on in the past because this is the first time we've been able to make 100% accurate copies for zero cost. (Ok, maybe not zero with the cost of electricity and storage, but essentially zero.) I also feel that the legal protections of the patent system, while perhaps not completely broken, are certainly not tuned to the realities of software development. Software is different. It's sui generis and I believe our laws should be adjusted to reflect that.

That said, I agree completely with your point about integration. The worst thing we can do as a community is step aside and allow others to create legislation that is not in the interest of technology or the good of the people at large.

Edit: minor grammar.

<comment><USER8> We have had, for hundreds of years, technology that makes the cost of each marginal copy of a creative work some tiny percentage of what people are willing to pay for that work. Digital technology making that percentage even smaller doesn't fundamentally change anything. There is nothing magic about "essentially zero cost" copies versus "negligible cost" copies.

This is largely because our whole system of property is structured so that marginal cost is broadly irrelevant. We have a pervasive notion in our system that people are entitled to the "benefit of the bargain." That is to say, people are entitled to profit from the difference in price people are willing to pay for something, based on supply and demand, and the marginal cost of producing that something. That's why Apple can sell for $600 iPhones that cost only $207 to produce, or why Louis Vuitton can sell for thousands of dollars handbags that cost maybe $100 to produce. The marginal cost of production is irrelevant, from the buyers viewpoint, in anything we buy. So why should it be different for digital goods?

<comment><USER10> You're right, the marginal cost argument is wrong, and yet there is something different going on here and I think I know what it is: The fundamental change here is that _customers_ own the means of reproducing the product and reproduction costs are equal to the marginal cost. How much could Apple sell an iPhone for if the same was true? What would Apple do to remain in business?

<comment><USER11> I think that's worth repeating: "the ownership of the means of production has changed". Intentionally rephrased to allude to a certain economist.

</comment></comment></comment></comment></comment></comment><comment><USER12> Wow, it's easy to forget how much complexity there is, even for a technologist. This post reminds me to step back and appreciate everything that's going on under the hood. For a similar effect on non-technologists, see Louis C.K's bit about how even the shittiest technologies are a miracle[1].

I disagree with the conclusion though. I think the reason Steve Jobs' death impacted people more than Dennis Ritchie's is that Jobs was taken in his prime. Who knows what the world lost by his premature death.

1: <http://www.youtube.com/watch?v=KpUNA2nutbk>

<comment><USER13> "Any sufficiently advanced technology is indistinguishable from magic." -Arthur C Clarke[1]

This article has been posted at least once onto HN, and I liked reading it then, too. One of the first major insights I remember from my CS curriculum was the concept of abstraction -- in CS it's applied to code-as-data, the OSI model, etc, but it exists everywhere, including all engineering, large bureaucracies, etc. Thank you Prof Harvey!

1: <http://en.wikipedia.org/wiki/Clarkes_three_laws>

<comment><USER14> I prefer the correlary, as motivation:

"Any technology distinguishable from magic is insufficiently advanced"

</comment></comment></comment><comment><USER15> Beautiful. One thing though, I believe the OP is mistaken when he implies that Steve Jobs didn't affect how computers work on the inside:

"On the one hand, I can imagine where the computing world would be without the work that Jobs did and the people he inspired: probably a bit less shiny, a bit more beige, a bit more square. Deep inside, though, our devices would still work the same way and do the same things."

Ultimately, computer architectures serve real world use cases. Innovation in use cases results in innovation in architectures. There are countless new technologies that exist because of the products that Apple invented.

<comment><USER16> Example?

<comment><USER12> The entire ultrabook category can be credited the Macbook Air.

The iPhone drove the creation of the modern smartphone market. Before 2007, only businessmen carried Blackberries. Now pre-teens have smartphones. There's a really powerful image NBC posted comparing the Papal Conclave in 2005 and 2013[1] that tells the whole story. Similarly, the iPad is driving the tablet market.

And that's just 3 recent consumer-facing categories. The list goes on as you dig deeper or farther back. If you're using Chrome, guess who started Webkit?

1: <https://twitter.com/neilgupta/status/312317589432971264>

Edit: I should have said, guess who popularized Webkit. We can debate semantics on whether forking KHTML to Webkit makes Apple the author of Webkit or not, but I think we can agree Apple popularized it.

<comment><USER17> The macbook air is just a small laptop. In what way is making things smaller an Apple technology? Laptops have been getting steadily smaller for decades now.

The iPhone may have created a market, but that was because of how it worked. The question was whether anything Jobs did influenced the _technology_ of the device. The iPhone was an early (but not the first) user of capacitive touchscreens, but virtually everything else in the device was an off-the-shelf part.

And FWIW: I know who started WebKit. It wasn't Apple. :)

<comment><USER12> Apple pressured Intel to design the smaller chipsets that made the Macbook Air, and subsequently other ultrabooks, possible. Without Apple's influence, we might not have ultrabooks.

Similarly, Apple pressured Corning to make Gorilla Glass. I would also argue the iPhone's UI has heavily influenced modern smartphone OS's to be more user friendly.

I'll cede the WebKit point, though I do think we can credit Apple for popularizing it.

<comment><USER18> How does Gorilla Glass even come close to enhancing the state of computing technology like Dennis Ritchie did?

<comment><USER19> Unlike C it was a net benefit even if a small one. Pascal was often the direct competitor to C and for low level tasks it's a much better language that lost out due to UNIX / tool chain support.

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> Previous discussion: <https://news.ycombinator.com/item?id=3115951>

<comment><USER21> Thank you - I'm constantly surprised how frequent the same information is churned on this site.

</comment></comment><comment><USER22> To add some cynical flavor: when you went to the Google homepage, you expended electricity, CPU cycles, network traffic, gave up some privacy and waited some time just to see something that could have been shown to you by a static HTML file(²) on your disk (or even something built in the browser), because some corporation sees some benefit in all this extra work. We're not exactly trying to do things efficiently these days, since it's no longer a priority.

(²) not valid for search results of course, but even they could be sent to you in a more efficient, less privacy-destroying way if only some corporation's interests weren't more important than your own

</comment><comment><USER23> The best bottom up approach to this that I have seen is Charles Petzold's "Code: The Hidden Language of Computer Hardware and Software" [1] which starts with using a flashlight to send messages and walks up the abstraction chain (switch, relay, alu, memory, cpu...) to most of the components of a modern computer. It's very accessible.

[1] [http://www.amazon.com/Code-Language-Computer-Hardware- Softwa...](http://www.amazon.com/Code-Language-Computer-Hardware- Software/dp/0735611319)

</comment><comment><USER24> What's even more cool?

Before long computers will be able to conceptualize the whole complex mess.

Consider how we acquire knowledge (perhaps like <http://matt.might.net/articles/phd-school-in-pictures/>). The more we've learned, the more we need to know about how to learn. At each level of knowledge we gain knowledge by accessing new knowledge and combining it with what we know. Eventually the supply of new knowledge dwindles and the only tool we can rely on is learning; the only tool we can rely on is that ability to combine knowledge.

This is much harder than taking in new knowledge; especially for computers! However, computers are getting better and better at it. Whereas many of us are out of college, computers are still in middle school, but they're getting better and better at both large scale and high complexity learning, so they'll move on to high school and college soon. Moreover, they're moving at an exponential pace! (see Ray Kruzwell and his ideas on the exponential growth of technology) Eventually, no... soon, computers will be able to conceptualize and intuit the scale and complexity of something like google.com. No person can come close to this, so we have no idea what that ability will bring.

</comment><comment><USER25> When it comes to complexity, I think it's a miracle that spinning hard disk drives actually work.

<comment><USER26> I have told people before, "every time you make a phone call on your cell phone, a miracle happens". The little bit I know about the complexity behind a mobile network is mind boggling -- even just at the physical layer, dealing with reflections, power levels, etc.

Though I guess I can sort of understand how that works. What I _can't_ understand is that I can understand _anything_... I simply can't fathom how the human brain works...

<comment><USER27> In terms of epistemology (e.g., how can we form valid concepts and principles and be sure they're right), or in terms of neuro-biology/neuro-chemistry?

<comment><USER26> More the epistemology than the biology. The biology makes some sense on some level -- it's all "just chemistry" at the bottom.

<comment><USER27> I'm with you. "It's all just chemistry" is sufficient for me for most things, but I worry a lot more about epistemology, which is why I have spent some time studying it.

Until recently, there were two basic camps on "how we know stuff." The Rationalists and the Empiricists.

The Rationalists thought that knowledge was came from mental abstractions, not from reality. For example, Plato believed that we could all access the "ideal" world of "forms" by just introspecting. The medieval scholastic philosophers tended to be very rationalistic - they made arguments about abstractions not connected to real experience, like how many angels could fit on the head of a pin. Decartes was a rationalist - "I think, therefore I am" is rooted in the idea that we look inward to perceive reality.

The Empiricists, which are somewhat more modern, were a reaction to Rationalism, and rejected all of that. They said that all we can really "know" or "trust" is sensory experience. We can't build up complex mental models, and we can't have principles - we just have to be pragmatic all the time and do what seems best, because we can't really "know."

Kant tried to improve on both of these approaches by saying that we can't really know anything about "true" reality, because reality has to be filtered through the senses. There is only subjective "reality."

Ayn Rand, of whom I am a big fan, went in the other direction from Kant, but also rejected Rationalism and Empiricism. She said that you can build complex models of reality, but they have to be based on actual observations of reality (i.e., sense data). To do this, she proposed a new theory of concept formation (i.e., how to form abstractions based on observation of reality). Her approach is very Aristotelian, which is interesting because Aristotle was the main guy who disagreed with Plato at the very beginning. I'd highly recommend "Introduction to Objectivist Epistemology" if you're interested in this approach (although you may be better served by starting at a less advanced level... still, the book is short and very accessible, albeit kind of a mind trip).

</comment></comment></comment></comment></comment><comment><USER28> So I like how he ends with that bit on patents, when I did my presentation at the USPTO Silicon Valley roundtable event a month ago, a couple of the presenters made the case that absolutely nothing needs to change with software patents because computers should be treated the same as any other kind of machine, and so software should be considered the same as every other type of patent. The fact of the matter is this is simply not true, computer software cannot be equated to physical items, and barely equate to business flow and methods. With all the complexities, as well as the fact that to try out a new version of software happens in seconds where making a prototype of some machine or object takes days, weeks or months. It seemed they either didn't fully understand the difference, or they understand and do not want the system to change since it works greatly in their favor.

Anyone who has an opinion on patents, especially software patents, should be keeping up with the roundtable events. And, I'm not saying that because I went either, stuff is being talked about at these events that will either be ignored or shape the patent system in one way or another. In either case, it's in our best interest to stay involved in the process.

Edit: Spelling

<comment><USER29> > _to try out a new version of software happens in seconds where making a > prototype of some machine or object takes days, weeks or months_ //

Aren't most prototypes "made" in software nowadays and only final products are really fully produced.

In generally I think I agree with what you're saying. In Europe software patents, as such [!], are not allowed but patents to software have always been allowed that made a technical effect, ie performed a real physical change to a system. It's very hard to pin down the boundary but I think that this is something the board got right.

That said I think personally that all manufacturing rates have increased greatly since patent terms were set and that the terms should be decreased to compensate for this change in the rate of development.

<comment><USER28> That's a valid observation I hadn't made yet, concerning manufacturing in general. You're right about the prototypes being made with software as well, I mostly meant that to physically produce the prototype is different then when you produce the prototype for software, given the click and compile nature of it. All in all though I agree that the terms really need to be reconsidered, but I don't see our legislative branch making an real changes to our governmental system in general, it works out for them pretty good right now.

</comment></comment></comment><comment><USER30> From another perspective this is a modern view of the classic "I, Pencil" - which Friedman gave an great overview of:

<http://www.youtube.com/watch?v=OlTRau_XgGs>

<comment><USER31> Except this one isn't well written, and smacks of postmodern impossibility instead of structuralist awe.

</comment></comment><comment><USER32> It's a scary thought that if all the computers in the world were destroyed in an instant, how long would it take for us to build a Core i7 processor. Decades?

<comment><USER33> I was just talking to another developer about this, except we took it one step fruther: If all man made objects disappeared in an instant, how long would it take us to build a modern computer? The best we could come up with was: a really long time. Anyone have any input or recommended reads that pertain to this?

<comment><USER34> From observing reenactments of early American life, I think an 18th century agricultural technology is self-sustaining and directly bootstrappable, except for the problem of mining and working iron. So my guess is not much longer than 300 years.

<comment><USER35> There exists a viewpoint that in case of a cataclysm (which would involve man- made objects disappearing) we would never, ever progress past 18th century tech again.

The argument is that getting from animal-powered devices to solar/nuclear/whatever powered devices while at the same time switching from 90%-agricultural workforce to anything more progressive can happen only if there is a cheap source of energy available - and we already have mined and spent all of easily available fossil fuels.

Even if all kinds of fancy devices are available and constructed by rich enthusiasts, the lack of _cheap_ steam power ensures lack of cheap steel/etc, and all the technologies don't get the mass adoption required for their improvements, there are almost no advantages for industrialization, so the world gets stuck in feudal-agriculture systems as the local optimum.

<comment><USER36> I wonder how far you'd get with, say, bamboo and bamboo-charcoal as an abundant and renewable fuel?

[http://opinionator.blogs.nytimes.com/2012/03/13/in- africas-v...](http://opinionator.blogs.nytimes.com/2012/03/13/in-africas- vanishing-forests-the-benefits-of-bamboo/)

It wouldn't have quite the pop of surface-minable coal and oil, but if you were pushing for high technology it would boil water, drive steam engines - but maybe it wouldn't happen in England. Where you'd get the metal from is another question.

</comment></comment></comment></comment></comment><comment><USER37> Brilliant stuff that I have been looking for quite some time. I work in support and sometimes I really want to show this to our users, yet I would love to see something more human like: Jennie from Sales Support just used word merge to print a letter. Simple, isn't it? What just actually happened? The letter will go to post box, were postman will take it sorting center, where it will be distributed and sent to customer, who will read the letter, discuss it with the family and take number of steps to take a decision how to proceed further.

Or a guy from sales just received a call, but what just happened? The client was recommended by a friend after a splendid experience with the product, the client spent bunch of time reading number of sites and reviews and he is just about to purchase a product when sales guy's computer has crashed and he lost a client. We always try to make people understand the IT more and the other guys will try to makes understand their processes more, yet it is going to be never ending dialogue, process, fight..

</comment><comment><USER38> I've previously used this as an interview pre-screen question for job candidates. It's a great question to ask; there are so many levels of details involved.

As a web company, you generally want potential employees to at least mention "HTTP" in the response. DNS is great. TCP/IP too. You'll definitely weed out some people who don't have a clue.

</comment><comment><USER39> This question is one of my favourites when interviewing front/back-end developers and sysadmins. It gives candidates the chance to talk about the part of the stack they find interesting, so I can see what they are most knowledgeable/passionate about as well as judging their overall level of background knowledge.

</comment><comment><USER40> What if I don't use docsis? :P

also, we quite understand how chips are automatically organized by other chips. it's because we don't understand it that computers are "building" computers. its because they're way faster at those repetitive tasks (and yes i'm talking about automatic chip layouts, for example)

Even thus it's not exactly TFA's point, since TFA goes pages and pages on complexity for pointing out that people care about what they see, not what it really does, I though that's worth mentioning.

</comment><comment><USER41> My favorite one-sentence version of this, said by a comedian (whose name I forget): If you're left in the woods with nothing, how long before you can send an email?

</comment><comment><USER42> I'm just glad I understand technology at least to some extent. I mean technology is often so complex I could never put together most of it myself or even understand it down to intricate detail, but at least I have a grasp of how it all fits together to make a pc, cpu, memory, television, radio, phone, remote control, ...

I can't imagine going trough this life without having the faintest idea of how a lot of the stuff I use everyday actually works.

</comment><comment><USER43> The problem is not only with communication between end-users/management, it's also a problem with communication between teams -- for the same reason.

Because of the huge amount of complexity described, it becomes impossible for one developer -- or one group of developers working on the same project -- to understand at one time much more than their current specialization. This makes it hard to talk to peers working on other projects.

</comment><comment><USER44> Great post. I wrote something similar a while back - <http://techcrunch.com/2012/06/16/the-way-things-work/>

But he takes it to another level. There's a lot to be said on this, and education is super important, but ultimately one has to sort of ... surrender, at least to some degree.

</comment><comment><USER45> I've long contemplated the depths of technological stacks (and knowledge as a whole, it pertains to epistemology as well), and my opinion is that knowing the intricacies of them isn't that important, as long as we manage to archive their fundamental principles somehow (may it be in our heads through studying and transmission, or in data).

</comment><comment><USER46> Hypothetical question: if all the knowledge in the world was available to you, how long would it take to build a modern electronic device from raw materials and without using any existing machine in the build process? I mean the actual time spent building something, excluding any mental work.

<comment><USER47> Forget modern electronics, consider how long it would take to build a simple electric toaster from scratch:

<http://www.thetoasterproject.org/>

</comment></comment><comment><USER48> Another Abelson/Sussman gem comes to mind: "The secret to engineering is knowing what NOT to think about"

</comment><comment><USER49> I don't have access to Google Plus in office. Can someone post it here? I am very curious.

<comment><USER50> [[https://plus.google.com/112218872649456413744/posts/dfydM2Cn...](https://plus.google.com/112218872649456413744/posts/dfydM2Cnepe)]

Dizzying but invisible depth

You just went to the Google home page.

Simple, isn't it?

What just actually happened?

Well, when you know a bit of about how browsers work, it's not quite that simple. You've just put into play HTTP, HTML, CSS, ECMAscript, and more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.

Let's simplify.

You just connected your computer to www.google.com.

Simple, isn't it?

What just actually happened?

Well, when you know a bit about how networks work, it's not quite that simple. You've just put into play DNS, TCP, UDP, IP, Wifi, Ethernet, DOCSIS, OC, SONET, and more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.

Let's simplify.

You just typed www.google.com in the location bar of your browser.

Simple, isn't it?

What just actually happened?

Well, when you know a bit about how operating systems work, it's not quite that simple. You've just put into play a kernel, a USB host stack, an input dispatcher, an event handler, a font hinter, a sub-pixel rasterizer, a windowing system, a graphics driver, and more, all of those written in high- level languages that get processed by compilers, linkers, optimizers, interpreters, and more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.

Let's simplify.

You just pressed a key on your keyboard.

Simple, isn't it?

What just actually happened?

Well, when you know about bit about how input peripherals work, it's not quite that simple. You've just put into play a power regulator, a debouncer, an input multiplexer, a USB device stack, a USB hub stack, all of that implemented in a single chip. That chip is built around thinly sliced wafers of highly purified single-crystal silicon ingot, doped with minute quantities of other atoms that are blasted into the crystal structure, interconnected with multiple layers of aluminum or copper, that are deposited according to patterns of high-energy ultraviolet light that are focused to a precision of a fraction of a micron, connected to the outside world via thin gold wires, all inside a packaging made of a dimensionally and thermally stable resin. The doping patterns and the interconnects implement transistors, which are grouped together to create logic gates. In some parts of the chip, logic gates are combined to create arithmetic and bitwise functions, which are combined to create an ALU. In another part of the chip, logic gates are combined into bistable loops, which are lined up into rows, which are combined with selectors to create a register bank. In another part of the chip, logic gates are combined into bus controllers and instruction decoders and microcode to create an execution scheduler. In another part of the chip, they're combined into address and data multiplexers and timing circuitry to create a memory controller. There's even more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.

Can we simplify further?

In fact, very scarily, no, we can't. We can barely comprehend the complexity of a single chip in a computer keyboard, and yet there's no simpler level. The next step takes us to the software that is used to design the chip's logic, and that software itself has a level of complexity that requires to go back to the top of the loop.

Today's computers are so complex that they can only be designed and manufactured with slightly less complex computers. In turn the computers used for the design and manufacture are so complex that they themselves can only be designed and manufactured with slightly less complex computers. You'd have to go through many such loops to get back to a level that could possibly be re- built from scratch.

Once you start to understand how our modern devices work and how they're created, it's impossible to not be dizzy about the depth of everything that's involved, and to not be in awe about the fact that they work at all, when Murphy's law says that they simply shouldn't possibly work.

For non-technologists, this is all a black box. That is a great success of technology: all those layers of complexity are entirely hidden and people can use them without even knowing that they exist at all. That is the reason why many people can find computers so frustrating to use: there are so many things that can possibly go wrong that some of them inevitably will, but the complexity goes so deep that it's impossible for most users to be able to do anything about any error.

That is also why it's so hard for technologists and non-technologists to communicate together: technologists know too much about too many layers and non-technologists know too little about too few layers to be able to establish effective direct communication. The gap is so large that it's not even possible any more to have a single person be an intermediate between those two groups, and that's why e.g. we end up with those convoluted technical support call centers and their multiple tiers. Without such deep support structures, you end up with the frustrating situation that we see when end users have access to a bug database that is directly used by engineers: neither the end users nor the engineers get the information that they need to accomplish their goals.

That is why the mainstream press and the general population has talked so much about Steve Jobs' death and comparatively so little about Dennis Ritchie's: Steve's influence was at a layer that most people could see, while Dennis' was much deeper. On the one hand, I can imagine where the computing world would be without the work that Jobs did and the people he inspired: probably a bit less shiny, a bit more beige, a bit more square. Deep inside, though, our devices would still work the same way and do the same things. On the other hand, I literally can't imagine where the computing world would be without the work that Ritchie did and the people he inspired. By the mid 80s, Ritchie's influence had taken over, and even back then very little remained of the pre- Ritchie world.

Finally, last but not least, that is why our patent system is broken: technology has done such an amazing job at hiding its complexity that the people regulating and running the patent system are barely even aware of the complexity of what they're regulating and running. That's the ultimate bikeshedding: just like the proverbial discussions in the town hall about a nuclear power plant end up being about the paint color for the plant's bike shed, the patent discussions about modern computing systems end up being about screen sizes and icon ordering, because in both cases those are the only aspect that the people involved in the discussion are capable of discussing, even though they are irrelevant to the actual function of the overall system being discussed.

CC:BY 3.0

<comment><USER49> Thanks!!

</comment></comment></comment><comment><USER51> This will definitely be my interview question, and I expect the exact detailed answer!

</comment><comment><USER52> uh, "The proxy server is refusing connections" to plus.google.com (corporate desktop) so, I don't know.

</comment><comment><USER53> He didn't explain how DOCSIS works.

</comment><comment><USER54> Technologist. What a stupid word.

</comment><comment><USER55> Just another (linux) fanboi.

</comment><comment><USER56> JBQ BEOS! WOOOOOOOO!

Sorry, couldn't resist</comment>