Why I don’t accept would-be disciples

Every few months I get a letter from a would-be hacker petitioning me to accept him (always a “him” so far) as my disciple. Happened again today; I think this time I’ll share part of the request, and my response, so I have it to point to next time this happens.

The aspirant writes:

Thus, I started my search for Master Foo, who will accept me as disciple. A master whom I can look at, follow, walk with, see through and ultimately become a master myself. A master in front of whom I can empty my cup. One who will introduce me to computer considering me a newbie.

I know it might take decades or even my lifetime to achieve what I pursue. But, it’s worth it.

I have written this email to ask a very simple and the most sophisticated question:

“Will you accept me as your disciple and teach me all you know ?”

Here is my reply:

No, because the communication path between us doesn’t have the required bandwidth. Sorry.

Yes, there are important aspects of being a hacker that are best learned by mimesis (actually this is true of any really skilled craft). If you lived near enough to a master hacker to be social with him face-to-face, or you worked with one day to day, you might benefit greatly from observing what he does and what kind of person produces those behaviors.

Unfortunately, the most valuable parts of those interactions won’t pass over an email link. Jokes, spontaneous reactions, small and at first sight unimportant behavioral examples that fit together into significant wholes, all the things the master is teaching when he is not thinking about teaching and the student is learning when he is not thinking about learning.

I can’t give you that experience; I don’t run an ashram for you to live in. Trying to create a counterfeit of it over email would only cheat you and frustrate me.

And that pretty much disposes of “disciple”, unless you’re a billionaire’s kid whose parents are willing to offer me enough money to persuade me to uproot my life for a few years so you can have what you want. The “you Alexander, me Aristotle” scenario wouldn’t be utterly impossible, but it would be very expensive.

117 thoughts on “Why I don’t accept would-be disciples

  1. Pingback: Why I don’t accept would-be disciples • bring back unix

  2. Would you accept a disciple who was living in the Philadelphia area?

  3. IMHO, the trick is, following a master is not enough to become one, in our domain.

    If you refer tu Kung-Fu, it is a slowly-evolutiong domain, with a limited number of techniques. The tough part is mastering each of those techniques to perfection. From time to time comes a small innovation, with a huge cost, as it’s year of work to refine it & master it. Old times blacksmiths were, IMHO, similar. Therefore, apprenticeship works for those skills

    The essence of hacking, I believe, is to bend a system to your own will. Preferably beyond its scope of design. The core of that skill is not mastery, it’s imagination. You get good at forging arrowheads by forging 10,000 similar arrowheads. You get good at hacking by hacking 10,000 different problems. Having a look at the master’s work can help(a lot) for inspiration, but if you solve the same problem he did, the same way he did, you are an inferior. Which is not the case for Kung-Fu or blacksmithing – making the same perfect sword than your master means you are a master yourself.

  4. Wouldn’t the conscious decision of being an hacker actually a disservice in such case?

    I mean, IMO, he shouldn’t do things because he wants to be an hacker, he should be an hacker because he already wants to do those things.

  5. >Would you accept a disciple who was living in the Philadelphia area?

    How would “living in the Philadelphia area” change the logic of the situation? The relevant predicate would be “lives near enough that he or she can hang out with me while I hack”. And that would still require me to change my living pattern significantly – think how your life would change if there were somebody looking over your shoulder most of the time. I repeat: possible but expensive.

  6. >who was your master?

    I didn’t have one. I had to learn by immersing myself in the craft tradition. And now you know why I wrote The Art of Unix Programming.

  7. >Having a look at the master’s work can help(a lot) for inspiration, but if you solve the same problem he did, the same way he did, you are an inferior.

    True, but…the way of the hacker is a posture of mind. The point of following a master is not to imitate his work, it’s to imitate the mental posture of a master.

  8. >I mean, IMO, he shouldn’t do things because he wants to be an hacker, he should be an hacker because he already wants to do those things.

    I agree, but I generally assume that a person who says he “wants to be a hacker” means that he wants to learn how to do hacker things effectively. That doesn’t seem problematic to me.

  9. “think how your life would change if there were somebody looking over your shoulder most of the time.”

    They call it “Pair programming”. I hear it’s all the rage.

  10. Something I never understood until recently:

    Once you get to a certain point in your life, you get way too much email. [I don't get too much email because I'm famous, but because I've acquired administrative work. But I imagine the effect is the same.] And once you have way too much email and way too many requests for meetings, then everything and everyone who says “give me attention now!” saps your energy. I used to think it was snobbish when people made appointments through their secretaries; now I understand they’re preserving their sanity.

    I don’t see how you can possibly imagine that a public figure can be your personal tutor. Now, if you want to get the attention of a semi-prominent person by cold-emailing them (and I’ve done this with a surprising amount of success) the strategy I find works is to ask an intelligent, specific question that shows you’ve done the background reading on their work. (Not a fake question, something you actually want to know. If you can’t think of any real questions, you’re probably a fan, not a disciple.) In my experience, smart people are usually starved for good shop talk and will be remarkably generous in getting back to you if you’re interesting enough. But “give me lots of vague, unspecified help and attention” is inconsiderate; it’s basically taking a big slurp out of the energy someone needs to get through the day.

  11. @Sarah: Have you been reading your Heinlein recently?

    “Learn to say No—and to be rude about it when necessary. Otherwise you will not have time to carry out your duty, or to do your own work, and certainly no time for love and happiness. The termites will nibble away your life and leave none of it for you. ” -RAH

  12. @Sarah:

    > I don’t see how you can possibly imagine that a public figure can be your personal tutor.

    And yet, historically, prominent thinkers, poets, statesmen, artists, craftsmen, and engineers _did_ personally tutor others.

    esr is right in that the tried-and-true way of doing this requires lots of face time. But there are significant real-world experiments going on _right now_ to determine how well all sorts of learning and interaction can be done from a distance. It will be interesting to watch.

  13. >And yet, historically, prominent thinkers, poets, statesmen, artists, craftsmen, and engineers _did_ personally tutor others.

    I’m aware of my responsibility to pass on my craft, be a role model, etc. Because I can’t really spare the time and attention to do a lot of tutoring, I write and blog a lot instead. This is also a historically well-attested strategy :-).

  14. The customary use of apprentices is to make them do the boring repetitive stuff nobody else wants to, this is how they pay for the teaching they get. Now a programmer’s life is precisely about automating boring repetitive stuff. A programmer who has plenty of boring repetitive stuff to do and is glad to have someone else do them is either not a very good programmer or some constraint forces him to use less than ideal tools.

  15. The other thing about apprentices/disciples is that typically the master would want to make sure that the applicant has native talent in the domain or it’s a waste of time (barring patronage benefits from a rich kid’s parents).

    Becoming a apprentice of a master can be relatively simple…catch the master’s attention. Either by creating something very noteworthy or sitting on his virtual doorstep until he accepts you or gets a restraining order. One shows talent, the other perseverance.

    If I were young and aspired to be Eric’s virtual “disciple” I’d pull the source for reposurgeon or gpsd and attempt to contribute something useful or do something really cool with it. Or even just ask a lot of intelligent questions about the code over time. Become trusted and skilled enough to become a gpsd or reposurgeon commiter first and “discipleship”, if it’s to happen at all, will flow naturally.

    It’s kinda a silly aspiration though. You learn hacking by hacking stuff you care about, not stuff someone else cares about. Fire/passion is both the strength and weakness of hacking.

  16. A programmer who has plenty of boring repetitive stuff to do and is glad to have someone else do them is either not a very good programmer or some constraint forces him to use less than ideal tools.

    You mean documentation?

  17. >You mean documentation?

    If writing documentation is boring and repetitive you’re doing it wrong.

  18. @Sarah: I think it’s actually pretty simple. Most acolytes are merely thinking that their offer accords high honor on the would-be tutor, and that he would be only too thrilled to make another copy of himself. And the less they know, the less the tutor has to uproot. And who knows, maybe the tutor can start by putting the acolyte in charge of screening their email?

  19. It’s a joke. Well, half a joke considering how poorly written or non-existant most open source documentation is in comparison to closed source.

    Getting an apprentice to document code effectively can do two things (assuming the documentation doesn’t suck):

    * It provides very positive indication that they understand what the hell the code does.
    * It gives them much needed perspective on the end user needs.

    That said, I never make “apprentices” (aka interns) do boring repetitive tasks but as much of the cool stuff as they can handle. I get a tech writer to help with user docs.

  20. That email strikes me as kind of creepy. It is both fawning and shallow at the same time.

    There are some public tech people who delight in introducing newbies to computer stuff or hacking in general (see: Raspberry Pie people, Maker culture). Approaching one of them with a “I’d like to learn how to be as good as you at this stuff” email might be fruitful.

    The email itself wasn’t helpful, though. A better question might be “how would I learn to program?” or “what programming language should I learn first?”, or even “what should I learn to become a hacker?”. These are answerable questions, even if at the start of the journey. I have no doubt that Eric would be able to provide a number of quick references in order to get somebody started (many of which would be links to his previous writing).

    I was amused at the general worshipful tone of the email, though. Every now and then when I’m in Eric’s physical company I’ll start making worship-like noises towards him. I can only keep it up for about 10 seconds before I burst into laughter. The look of horror on his face is worse than what I’d get if I suggested we spend the evening watching vore porn.

  21. >The customary use of apprentices is to make them do the boring repetitive stuff nobody else wants to

    If I had one, I’d set him tasks like this:

    1) Translate all of the git tree test cases for cvsimport.perl into test cases for a generic CVS-to-import-stream conversion engine.

    2) Collect real names and email addresses for all Battle for Wesnoth committers (yes, this exercises some useful skills).

    3) Using svncutter and any other tools you can find or invent, reduce the Subversion dump of the Network UPS Tools repository to a minimal test case that reproduces the known problem with the Eaton-SDK branch. Turn that into a properly packaged regression test for reposurgeon.

    4) Extend the code for Roundup so that it can dump its entire message-queue state and metadata as one big JSON object, then load that object to become the live state of the instance.

    These are real tasks.

  22. >That email strikes me as kind of creepy. It is both fawning and shallow at the same time.

    A reasonable judgment if you’re missing a clue I have but didn’t publish. The aspirant is from the Indian subcontinent (hence my use of “ashram” in reply). They have a different relationship to authority figures there, especially people with personal/charismatic as opposed to institutional authority. Language that would be creepy and fawning coming from someone culturally native to the U.S. is in his context merely the properly respectful way to petition a guru.

  23. ESR, you’re missing a great opportunity to be giving a life as “Pai Mei” a shot… What you need is a 5-line-exploding-CPU story to impress your would-be students.

  24. >Every now and then when I’m in Eric’s physical company I’ll start making worship-like noises towards him. I can only keep it up for about 10 seconds before I burst into laughter. The look of horror on his face is worse than what I’d get if I suggested we spend the evening watching vore porn.

    For the to-do list:

    1. Buy a rubber mallet suitably (over)sized for a Warner Brothers cartoon.

    2. Stash it somewhere in reach next time Garret visits.

    3. When he pulls this shit, produce mallet with a Bugs-Bunny-like flourish and pound him into the ground.

  25. It seems to me that anyone looking to become a hacker by “apprenticing” oneself to another one is already doing it wrong. You can look to others for guidance, but the best, and probably only, way of internalizing the information and mental state involved is to do it yourself.

    Perhaps ESR’s role here should be more akin to that of Morpheus: “I can only show you the door. You’re the one who has to walk through it.”

  26. If writing documentation is boring and repetitive you’re doing it wrong.

    Unfortunately, the federal government disagrees.

    I know, I know. YA argument against the existence of government.

  27. 3. When he pulls this shit, produce mallet with a Bugs-Bunny-like flourish and pound him into the ground.

    Of course, you realize, this means WAR!

  28. >Perhaps ESR’s role here should be more akin to that of Morpheus: “I can only show you the door. You’re the one who has to walk through it.”

    Hm. Perhaps I’ll just quote that next time I get one of these letters.

  29. The essence of hacking, I believe, is to bend a system to your own will. Preferably beyond its scope of design. The core of that skill is not mastery, it’s imagination. You get good at forging arrowheads by forging 10,000 similar arrowheads. You get good at hacking by hacking 10,000 different problems.

    In the traditional guild system, you demonstrated mastery by producing a masterpiece, an original work that exemplified the techniques and traditions of the craft. Masterpiece was also the word used to describe what is today called a master’s thesis — the original scholarship by which the scholar demonstrated mastery and became worthy of the title of “master of arts”. Such an original work distinguishes the master from the journeyman by showing he knows the deep structure of the craft, not just how to follow procedures. Kung fu is the same — real kung fu masters are actively engaged in extending the art, and some form their new arts as Bruce Lee did with jeet kune do.

    Programming is much the same. There are indeed tons of journeyman programmers who solve the same problem the same way, over and over, and there’s nothing wrong with that. Society needs those journeymen; so much that it’s possible to become a millionaire in just this way. But mastery in hacking is defined by production of original work that exemplifies knowledge of the deep structure of hacking. Admittedly, in our craft it is easier to get started on your own and learn with the aid of online resources than in kung fu and blacksmithing. And some of us do seem destined for greatness from the beginning; it was known from quite an early age that Fabrice Bellard’s hackachlorians were off the scale.

  30. ESR, you’re missing a great opportunity to be giving a life as “Pai Mei” a shot…

    Edsger W. Dijkstra seemed a better fit for this role, right down to the general churlishness and ethnic chauvinism.

  31. Of course, you realize, this means WAR!

    You’rrree Desp-pp-ppicable!

    – Foo Quuxman

  32. Garrett on Monday, February 11 2013 at 10:41 am said:
    “I was amused at the general worshipful tone of the email, though. Every now and then when I’m in Eric’s physical company I’ll start making worship-like noises towards him…”

    I now know what I need to randomly do to ESR at Penguicon. Just for the horrified look.

  33. >I now know what I need to randomly do to ESR at Penguicon. Just for the horrified look.

    I’ll bring the mallet.

  34. I’ll bring the mallet.

    Are we to take this as there being a malletizing ceremony at Penguicon?

    Whoever has a write bit on universe.lisp needs to make physics more… slapsticky.

    – Foo Quuxman

  35. Hmmm… I wonder if hackspaces are good places to get hacking mastery by following…

  36. >Hmmm… I wonder if hackspaces are good places to get hacking mastery by following…

    That’s plausible. Mimesis is even more important as a learning mode for physical craft skills than it is for hacking.

  37. Whoever has a write bit on universe.lisp needs to make physics more… slapsticky.

    First the universe would have to be re-implemented in Lisp instead of Brainfuck, or whatever it is currently implemented in.

  38. One good “PS” you could add to your answer to this kind of e-mail would be to this Wikipedia article:

    http://en.wikipedia.org/wiki/Software_craftsmanship

    I’m still a newbie programmer, and due to my professional focus (or lack thereof) I probably won’t ever reach journeyman level, much less that of a master, but what I read from that list of books has been extremely beneficial nonetheless.

  39. “I’ll bring the mallet.”

    You can’t just bring the mallet with you…the hard part is reaching out-of-frame and pulling it in.

  40. @Nigel:

    That said, I never make “apprentices” (aka interns) do boring repetitive tasks but as much of the cool stuff as they can handle.

    Amen to this. I haven’t had an intern in awhile, but my little speech when interviewing an intern has a section that goes something like this:

    “It is practically impossible for an intern to get fired. It’s easy enough to not get invited back for another semester, but to actually get fired, you’d almost have to kill somebody. No company wants the reputation of firing interns in the middle of a semester.

    So from my perspective, as soon as we hire an intern, the money is spent. No, the intern doesn’t get it all at once, but it’s budgeted and can’t easily be revoked, which means that it’s a sunk cost, and after that, the intern’s time is essentially a free resource to me.

    This means that if if I plan properly, I won’t actually care how long it takes the intern to perform tasks. If he does something in 20 hours that would have taken me 2 hours, it’s no big deal — _unless_ I have to spend 2 and a half hours helping him. Mind you, right at the start, I don’t mind spending extra time, but I expect it to be paid back by the end of the semester.

    If I hire you, I will view you as a time multiplier. As long as the factor you multiply my time by is at least 1.0, we’re good, and you will get all the time you need and want from me. But if it drops down too far below 1.0, you’ll find yourself getting less and less of my time, and less and less interesting tasks, as I try to minimize the damage of having you around, and try to find _something_ that you can do successfully.”

    The non-verbal reaction to this speech is one of my key hiring indicators…

  41. Ah. So sad. I’ve been thinking this over for months now. Every once in a while I get sad about the mediocrity around me, and yearn for a Master to lead the way. I’ve been about to write an email not too unlike that thrice.

    Sometimes, I’ve thought about stopping my work on software altogether. Given the environment I am in, I should be a leader, or a prophet of sorts. People don’t improve, don’t grow, don’t share, don’t work enough. They already see me as a guru. It is so sad, knowing I am not.

    It is sad knowing I’m not good enough to be the prophet that brings about a revolution in my surroundings. I hope some day I can be.

    Getting The Art of Unix Programming now…

  42. >Why not just point him to the “How to become a Hacker” essay and say have at it?

    Well, that is what I normally do. In this case, though, it seemed pretty clear he’d already read it.

  43. As a “master” of sorts, who teaches others for a living, I can speak to this issue. The true apprentice is rare, and welcome. Worshipful is not a quality I particularly admire. Respectful is nice; but I find worshipful an embarrassing display. I derive more pleasure from a questioning; even somewhat disrespectful, but talented student. A true master is not threatened by a talented student.

    I hope to have an apprentice who surpasses me some day. It would be wonderful to guide such a student, and learn from them.

    Eventually, apprentices become colleagues, and if you do things right-friends.

    Disciples are to be avoided.

  44. @ Looney Tunes….how many consider this part of the source code? I’m not a software type..but it’s definitely part of my “programming”….so to speak.

    Interestingly, tried to get my niece and nephew interested….they had no patience for it. No instant gratification. Apparently Looney Tunes requires too much attention. I was shocked.

    sorry for the off topic, curiosity got the better of me. Immm desssspiiiiccccibbblllle!!

  45. I taught what basically amounts to systems administration in a corporate/telecomm environment for about 10 years.

    Every bit of teaching is incredibly time consuming –and the training was about operations and maintenance, disaster recovery, but not even about writing code.

    Having to jump onto multiple other people’s wavelengths can be draining if you’re not accustomed to it. I agree that trying to do so via email would be frustratingly inefficient.

    One of the things teaching taught me is that _how_ people think is far more interesting than what people think. If you want to know someone, learn how they think. This has the side effect of teaching the teacher more ways to think…

  46. @ESR: “If writing documentation is boring and repetitive you’re doing it wrong.”

    When was the last time you wrote a tool intended to be used by the sort of person who asserts (quite self-evidently) that “I am NOT a computer person”?

    Because for them the documentation, in order to be useful HAS to be boring and repetitive.

    And the world is full of them.

    @Mr. Doner: “…Lisp instead of Brainfuck, or whatever it is currently implemented in.”

    Perl Or Ada.

    Or more likely both.

  47. @iajrz:
    “…I’ve been thinking this over for months now. Every once in a while I get sad about the mediocrity around me,”

    Oh, you work in the Defense Industry too?

  48. >>Hmmm… I wonder if hackspaces are good places to get hacking mastery by following…

    >That’s plausible. Mimesis is even more important as a learning mode for physical craft skills than it is for hacking.

    I know of at least one guy attempting to do exactly that, at Noisebridge in SF. He described it as “putting himself through the invisible college “, as saw it as a better (and far better value) use of time than getting a formal university education. This conversion has reminded me that I must look him up and get back in touch.

  49. >you spoke about a second edition of TAoUP; [...] Any progress since then?

    Alas, no. I know what needs to be done, but have not budgeted time to do it yet.

  50. When was the last time you wrote a tool intended to be used by the sort of person who asserts (quite self-evidently) that “I am NOT a computer person”?

    Because for them the documentation, in order to be useful HAS to be boring and repetitive.

    Wait… you know people who aren’t “computer people” and yet read documentation? You know some interesting people. Because for the rest of the world, The basic rule of thumb is if you expect someone who isn’t part of tech support to open the manual, then your software has failed and your reasoning is flawed.

  51. Eric, have you read Nassim Nicholas Taleb’s Antifragility? Although he doesn’t discuss the Unix way, I think you would agree with his overall thesis (that progress generally comes through accretive learning, not top-down theoretical breakthroughs) and would find his applications of it interesting.

  52. >Eric, have you read Nassim Nicholas Taleb’s Antifragility? Although he doesn’t discuss the Unix way, I think you would agree with his overall thesis (that progress generally comes through accretive learning, not top-down theoretical breakthroughs) and would find his applications of it interesting.

    I have read it and I do agree with him. One of the topics I have queued up to blog about is a review of the book.

    There’s actually a fragment of evidence in the book that Taleb knows my work and may have been influenced by it in a minor way. He tells the same story about the Mayans having the wheel but no narratives connecting it with transport that I’ve been using for years in my talks, even in rather similar wording. And he uses it to make the same point I go after.

  53. >The non-verbal reaction to this speech is one of my key hiring indicators…

    Patrick, that’s one of the most clear, honest and downright sensible things I’ve seen in a long time. Pardon the digression, but exactly what sort of reactions *do* you get?

    Back on topic, I’m not a hacker but I’ve been around hackers for a while, am personal acquaintances of a few, and am sympathetic to and have absorbed the culture.

    I’ve never taught people in the sense this thread is about, but in my guise as a sysadmin I have trained a few. And it’s utterly exhausting. Just training someone, even a more experienced admin than I am, on the peculiarities of our particular environment- painful. I try very hard to do it right, to put it in context, say as well as show, then make them do (that’s the only real way to absorb information long-term)… But short term it ruins my ability to do my own work. Training becomes its own job, and really teaching would be worse.

    For it to really work well it has to be a calling, something you want to do and have the circumstances to do. A responsible man doesn’t hoard knowledge (death to empire builders and the would be ‘indispensible man’) but there are other ways to pass it on than directly to pupils.

  54. >For it to really work well it has to be a calling, something you want to do and have the circumstances to do.

    It’s true. I don’t find individual tutoring very rewarding, though it’s possible this is because the right student has not yet appeared. On the other hand, I’m pretty good at instructive writing and teaching groups. So that’s what I do.

  55. “Taleb’s ‘progress generally comes through accretive learning, not top-down theoretical breakthroughs’…”

    That sounds uncomfortable to me; it appears to be saying that progress is all about Kuhn’s normal science, with little room for revolutionary science. Given the number of years that physics has been stuck in normal science, culminating with finding the Higgs just about where expected, I’d say we’re overdue for a period of revolutionary physics. And endless accretive learning is not sufficient to bring you from Aristotle to Newton.

    I wonder to what extent our expectations of progress and learning are set by the types of learning that dominate the era in which we live? If you come of intellectual age in an era of revolutionary science, does normal science feel like minimal progress? If you grew up with normal science, does revolutionary science feel like pseudo-scientific attempts to overturn what’s solidly known?

    It will be interesting to see what comes of Stanford and Bradley’s book “Across Atlantic Ice,” arguing that the anicent North American Clovis culture came from Europe rather than Siberia.
    Even if physics remains stuck in normal science for the nonce, perhaps another science is ready to break out.

  56. Patrick Maupin: “I haven’t had an intern in awhile, but my little speech when interviewing an intern has a section that goes something like this…”

    Interesting perspective, Patrick. I’m about to get my first intern (who will also be the first for the whole department), and I’m going to bear this in mind.

  57. >That sounds uncomfortable to me; it appears to be saying that progress is all about Kuhn’s normal science, with little room for revolutionary science.

    Beither Taleb nor I would go that far. (As a separate issue, Kuhn’s account is bogus).

    Taleb’s charge is rather that theory has much less role in generating new practical knowledge than is commonly represented these days. I’ll have more to say about this in my review.

  58. >That sounds uncomfortable to me; it appears to be saying that progress is all about Kuhn’s normal science, with little room for revolutionary science.

    Beither Taleb nor I would go that far.

    In fact, Taleb would say (and I agree) that “science” usually doesn’t deserve its billing as the source of interesting developments, but that unheralded tinkering is mostly to thank. In computer science, there have been some important results from, e.g., work on algorithmic complexity or relational algebra, but much of the advancement has come from unforeseen happenings such as the “invention” of the 404 and from tribal knowledge such as the management of complexity by encapsulation. The latter sort of heuristic is what apprenticeship used to teach, and while there’s no substitute for experience, guides such as TAOUP and the gestalt of Design Patterns have been able to explain for hacking what remains implicit in many disciplines.

  59. >In computer science, there have been some important results from, e.g., work on algorithmic complexity or relational algebra, but much of the advancement has come from unforeseen happenings such as the “invention” of the 404 and from tribal knowledge such as the management of complexity by encapsulation.

    Agreed. As another good example of tribal knowledge and the unexpected, consider The Cathedral and the Bazaar. In our understanding of open source, tribal knowledge came first – my theory came second and was mainly a systematization of folk knowledge already present in the culture.

  60. As another good example of tribal knowledge and the unexpected, consider The Cathedral and the Bazaar.

    What piece of that are you deeming unexpected? Writing an account of how a society operates isn’t typically expected to precede that society’s existence.

  61. There was a time when I was somewhat inclined to work my way to becoming a hacker. But then I realized that my location, situation in life, temperament and career choice would not permit it.

    I feel that hacker culture is restricted to first world countries because of the ease of finding and mingling with fellow hackers. Though there are plenty of geeks all over the world, true hackerism can be found only in the first world, particularly the US (I think).

    ESR is right. I don’t think I can ever understand hacker culture without mingling in person with other hackers on a regular basis.

  62. While read code/write code seems to be the best advice.

    Have you (or other hackers like yourself) considered making contributions to
    to an online educational program similar too like Khanacademy (i.e. Linuxacademy) or another rendition that aspiring hackers could log onto and train?

    With contributions from hackers like Linus Torvalds, John “Mad Dog” Hall, Alan Cox, yourself, and plenty of others creating videos with code examples or how to to better run the linux os, this take “read code write code” and at the same time introduce an interactive facility that wouldn’t drain any one hacker of their energy and time.

    Once you create a 10 minute video. Your finished. Then you don’t have the
    time constraints of dealing with one student, who could end up being a failure anyway.

    It appears that education is being revolutionized through the advantages of the Internet.
    However, I do not see any attempt to take advantage of this by the hacker culture. Am
    I missing something here? Or is there an genuine attempt to do so? I think for millions of
    student to log on with their linux variant of choice, learn from videos, read code, write code, interact with other students, and then achieve a status the way a Jedi padawan would, is not
    entirely nuts.

    With popularity from such a site, the world would then witness the true difference between crackers and hackers. The linux versions of Obi-Wan Kenobi and Anakin Skywalker would be quickly spotted would they not? Brought up in a 21st century online “Temple.”

  63. >What piece of that are you deeming unexpected?

    It was a surprise from the point of view of the field as a whole. It fits Taleb’s charge that progress tends to come from unexpected discoveries made during craft practice more often than it comes from from purposive exploration driven by theory.

  64. >However, I do not see any attempt to take advantage of this by the hacker culture. Am
    I missing something here?

    I’m not sure. What do you imagine a video lecture would accomplish that a written presentation of the same material doesn’t?

  65. “This storyline has been done before: [xkcd thread]”

    Loved it! But it raised a serious question for me: are there actually algorithms that run in O(N log (log N))?

  66. >I’m not sure. What do you imagine a video lecture would accomplish that a written presentation of the same material doesn’t?

    Well, its the philisophical approach of Sal Khan, that I think, made a break through in online education. However, I am not a fan of their programming in python setup. Let’s say we take a subject like Geometry, specifically angles and basic measurements.

    I count six videos that build on each topic with five exercises that the student can then work on, in order to prove to the instructor that she understands the subject. Then the student moves on to the next subject, Angles between intersecting and parallel lines and the pattern repeats building upon itself.

    Imagine an online school with manual that cover certain subjects. A student logs on and studies live examples of how the subject works along with exercises that the student can then work on to prove that they really do understand given subject. Their progress could be tracked and monitored and it would also become evident if the “manual” wasn’t working properly by the inability of a given number of students to complete exercises. How many written manuals don’t really help newbies?

    During the video the instructor does more than write a document, the instructor shows the student what the problem is and gives examples of how to solve it.

    While written documentation in Linux is abundant, there is no interactive process that allows a student to build their knowledge one step at at time along with exercises that ensure understanding of given topic. One video to be created and millions of people to interactively study piece by piece versus one long document written in hacker speak and misunderstood by millions of newbies that can’t reach that level yet. Yet, being the keyword. They’ll get there, but rather than viciously studying Bruce Lee style they have a more progressive academy to work with. Hard liners may not appreciate my point.

    Plus while the hacker culture seems to recognize contribution through code, documentation, and technical savvey, the Linuxacademy or Hackeracademy or whatever it would be called, could begin building recognition among newbies by a point system, or other publicly displayed rewards to show status.

    Bill Gates jumped on Khanacademy quickly because I think he recognized its potential. And if I remember correctly, Bill is not disliked by the hacker community for being stupid, it is for ethical reasons. He donated millions (15 million I think) to Sal Khan and now his influence is probably strong enough to leave Linux in the dark, respecting this.

    If there is a way of educating the way I think it could be, then the hacker community would do well to establish their own base outside of the old fashioned rtfm newbie. This would also be light years ahead of the One Master One Student bullshit that is so ancient. Ten or Twenty Masters. Tens of Millions of students.

  67. @JonCB:
    “”"
    Wait… you know people who aren’t “computer people” and yet read documentation?
    “”"
    They don’t read *all* the computer documentation, but many of them will read bits to solve a certain problem if they can find the documentation, and then find the relevant bit of documentation.

    I’ve known folks who were incredibly bright and very narrowly focused on really difficult issues who would only read a page or two out of a manual because they “did not have time to read the whole thing”. If that page had been sufficiently redundant to the rest of the manual it might have solved their problem. However my time was *distinctly* less valuable than theirs, so I put all the pieces together and fixed it for them.

    “”"
    You know some interesting people.
    “”"
    Yes, yes I do. But that’s orthaganol to the issue.

    “”"
    Because for the rest of the world, The basic rule of thumb is if you expect someone who isn’t part of tech support to open the manual, then your software has failed and your reasoning is flawed.
    “”"

    I don’t consider just the PDF to be the documentation. There is LOTS of internal documentation on modern software projects–the stuff under the “help” menu. The reason MOST users don’t use it is because it doesn’t.

    This isn’t their fault entirely. They’ve been trained that it’s a waste of time to look there.

    If you’re writing a music or video player you’re right, the interface should give you all the clues you need. If you’re writing spreadsheet software or business process stuff you simply cannot expect the actions to be obvious, and there the documentation NEEDS to be sufficiently informative for the kind of person who locks their screen at 5 pm and goes home to watch Friends. This means that for someone who *doesn’t* turn their brain off at 5 it’s boring and repetitive.

  68. @Patrick Maupin,

    Interesting, this time multiplier stuff is exactly the same advice as I hand out to young people who are desperate from not finding a job. I tell them the school gives them a really bad attitude to display at a job interview. Depending on the school, place etc. it can be anything from disciplined obedience to clever creativity. But what the school does NOT impart is typically that kind of pragmatic, get-shit-done mentality most interviewers expect, the kind of silent confidence that I can save you 2 hours a day by taking over tasks that will take me 8 hours, would take you 3, but explaining and controlling them is only 1. This is so extremely rare, yet it is the highest sought after quality of a young, inexperienced applicant.

  69. The Mythical Man Month comes to mind, where the communication overhead from additional interacting programmers slows down coding. The Linus rule “given enough eyeballs, every bug is shallow” matches bugs to fixes by (maximized degrees-of-freedom via randomized or chance meetings of) fitness of perspective, not by rigid constraints of communication requirements explosion. Thus, personalized hand-holding reduces the degrees-of-freedom. General insights and help can be propagated most efficiently by mass distribution media.

    Thus the terseness. RTFM, STFW, UTSL.

    The culture or personality of hackers may result from the nature of the tasks. I seem to have developed some of the described traits, without interacting with other hackers before I started reading this blog a couple of years ago (phoning home finally).

  70. @ESR @Dan Unger

    >What do you imagine a video lecture would accomplish that a written presentation of the same material doesn’t?

    I would argue the opposite, there is utility in NOT doing so.

    Khan wants to teach any random, low attention span, average IQ, averagely lazy/unmotivated person some science.

    This is an excellent thing to do, but I guess you want to filter out most of these people when you are talking about hackers, and any medium that takes some attention and dedication to process is at least better than no filter at all.

    It is an entirely different thing to teach some entirely averagely motivated, average attention span kids the basics of programming. For this a video medium could be excellent.

  71. > Thus, personalized hand-holding reduces the degrees-of-freedom

    By binding perspectives.

  72. @Shenpen I was having a similar thought, that videos are most applicable to replacing or supplementing general education systems for the broad population. Perhaps this is why Bill Gates is so interested. For those of us who read fast, videos are a frustratingly slower medium, because can not speed up the video to match the comprehension rate.

    Non-structured interactive tools that aid in learning are useful for some medium levels of competence or intellect, e.g. real-time code completion, real-time compilation feedback, real-time cross-referencing of keywords or syntactic construct, etc..

  73. @Greg:

    > Pardon the digression, but exactly what sort of reactions *do* you get?

    I never say anything like this until the interview has indicated that they may be competent and that they are certainly interested. So they should already be excited. This little speech should leave them still, hopefully even more, excited, but that should also be tinged with worry/fear.

    If they become too fearful, they’re not the right intern for me because sometimes I’m gruff. If they aren’t fearful at all, it may be because they are psychopaths whom I have just told can get paid for doing nothing for a semester, or because they are overconfident as per Dunning-Kruger.

    @Shenpen:

    >> What do you imagine a video lecture would accomplish that a written presentation of the same material doesn’t?

    > I would argue the opposite, there is utility in NOT doing so.

    I agree completely. At least for building old-school programmers, and I’m not really sure what a new-school programmer looks like yet.

    > … I guess you want to filter out most of these people when you are talking about hackers…

    I think it’s more self-filtering. I think most hackers were already avid readers. If they aren’t comfortable interacting with text, they won’t cut it — at least not yet.

  74. @me:

    > This little speech should leave them still, hopefully even more, excited…

    Forgot to mention that if it _doesn’t_ do that, they probably want or need more structure than I am capable or willing to provide.

  75. Eric, I’m still managing not to understand what you’re saying. Do you mean that the production of the CATB account from within the community was unexpected, or that the emergence of the phenomena it examines was?

    Regarding video vs. text, if we disregard the cases where visual guidance is particularly valuable, I think that a reading “baud rate” plays an important role. Hacker types tend, by innate ability and/or practice, to be able to read and understand large volumes of text more easily than the general public. I strongly prefer transcripts or articles to videos exactly because they’re more time-efficient for me; I can both skim to get an overall idea of the topic while focusing on only the specific issue I’m trying to solve and inhale large quantities of written information much faster than someone can serialize it in speech. Remove those abilities, and the advantages of text over speech drop significantly.

  76. I don’t think that the real mark of an advancing newbie programmer is whether they prefer to learn via video demonstration or reading a text book. It’s when they learn by experimentation, writing little test cases, etc. That’s when real learning starts. You have to ask the computer.

  77. > Do you mean that the production of the CATB account from within the community was unexpected, or that the emergence of the phenomena it examines was?

    From the perspective of the wider programming and CS world, both. From within our culture, only the former was surprising; we’d been living the latter.

  78. @LS:

    It’s when they learn by experimentation, writing little test cases, etc. That’s when real learning starts. You have to ask the computer.

    This is true. But this is still (so far) done through text for almost all serious programming. If you’re not comfortable reading and writing, you’re not going to be comfortable hacking. And if you’re going to be part of any kind of hacking community, guess what? That’s mostly still done through text, too.

  79. Part of the freaking problem with wanting to be like Eric Raymond — or any great hacker — is that it requires something of an authority-oppositional stance which sort of precludes wanting to be someone’s “disciple” in the first place. (RMS has disciples, sure, but more great software — even GNU software — was produced by people who personally think RMS himself is a git.)

    The home culture of the author of this missive to Eric may not be conducive to cultivating such an oppositional stance. Hacker culture has been very nearly stillborn in places where it would otherwise be expected to thrive for this very reason; Japan, where Linux and open source are virtually unknown except among tiny pockets of “pasokon otaku”, comes to mind as an immediate example. If I were in a position to offer this young padawan advice, it would be twofold: a) to develop a suspicious and questioning stance to authority, alongside a curiosity about how things work (since no one likes someone who’s a git for being a git’s sake); and b) either be aggressive about finding like-minded people within your environs, or move.

  80. You can’t teach passion. Passion will locate the entry to the path you must go, and once started, guide you along into the shining path. The information is not the path. The skill is not the path.

    The only way to know if you are a master in training, is to feel the passion, and find yourself driven by it as a leaf is driven by a flood. A master trains himself.

    If you want the glory of being a master, your passion will lead you into darkness.

    People’s admiration will not make you a master.

    The joy produced as you travel the shining path proves you are a master. An acorn is an oak
    A weed gives no fruit.

  81. @esr
    > From within our culture, only the former was surprising

    While RMS was moralizing, Linus was implementing, ESR was distilling the uncanonical, profound, undocumented, undiscovered generative essence for the phenomena driving the community.

    His writings drove a buzz on the internet (audible to programmers) that attracted an outsider (myself) to the community by reinforcing the shared attributes that I had developed independently, e.g. experimentation, a do-it-myself attitude, decentralization, maximizing degrees-of-freedom (breadth of option tree), loath to work for an authority, and arcane humor ostensibly as a release from Deep Hack Mode.

    From this blog, I have deduced that you determined early that your wide range of abilities (a polymath) would be wasted if you buried your head only in coding (or any one discipline). Perhaps this is why you did not focus to your initial interest in mathematics?

    @LS
    > It’s when they learn by experimentation, writing little test cases, etc

    Agreed and this need for randomized trial and error fit to the individual perspective is why my prior comment differentiated structured from non-structured interactive aids.

    @Jeff Read
    > it requires something of an authority-oppositional stance which sort of
    > precludes wanting to be someone’s “disciple”

    Because hacking acknowledges that knowledge creation is individualized fitness to billions of scenarios. Otherwise, a system which ties its feet to hands, can not simultaneously walk and grab.

    > The home culture of the author of this missive to Eric may not be conducive

    The top-down industrial + statism world is racing to its free money (debt + money creation) capacity limit cementary, as it misallocates capital to the uneconomic while the economy of individualized knowledge creation grows exponentially. For example, Kyle Bass recently pointed out that Japan just crossed into terminal velocity as its current account moved into deficit. Michael Pettis’s blog pointed out that China is run by 200 families that extract much the capital (and thus probably misallocate it). Soros recently said Europe is likely headed for Soviet Union style collapse.

    There must be ways of involving more of humanity in some derivative of what we do. History has shown that such paradigm shifts do eventually create more jobs than they destroyed.

  82. @Jeff,

    I often argue with you, but this was really eye-opening! Linux is kinda popular enough in my native Hungary, but in a weird way that does not really resemble hackerdom. Now I know why – we tend to like it because be are bloody poor and not having to pay for stuff has an appeal. It’s nice to be able to reuse old computers for some broke rural school who can’t buy new ones, with Puppy Linux, but this is entirely different from a hacker culture.

    There are also different kinds of cleverness. When people are generally poor, a large part of it is “how to make do with few resources creatively”. In creative computing this is not really hackerdom which has a history of thinking rather large with hardware (remember early EMACS), it is more like the culture of the Commodore demoscene with their artificially limited 4kbyte demo competitions.

    I still get tripped by this. For example I always tend to assume any major mainstream Linux distro will need less resources and be faster on an old PC as Windows because it is something clever and clever must mean frugal…

  83. There are also different kinds of cleverness. When people are generally poor, a large part of it is “how to make do with few resources creatively”. In creative computing this is not really hackerdom which has a history of thinking rather large with hardware (remember early EMACS), it is more like the culture of the Commodore demoscene with their artificially limited 4kbyte demo competitions.

    In the language of early hackers, demos are “display hacks” written by “code bums”. There was a whole craft dedicated to “bumming out” as many instructions as you could from a routine. So it was a thing even in the early hacker culture, though not the only thing.

    Emacs is a Lisp environment, and in Lisp you know the value of everything and the cost of nothing. For decades the Big Problem with Lisp was “how do I get the benefits of other programming languages while remaining in Lisp?”

    I still get tripped by this. For example I always tend to assume any major mainstream Linux distro will need less resources and be faster on an old PC as Windows because it is something clever and clever must mean frugal…

    See my lament in another thread; Fedora and Ubuntu are laden with GNOME and distro-specific cruft; and the attitude that the only way to compete with Windows is to be like Windows — including all the bad bits like large heavyweight programs — appears to be prevailing at Red Hat and Canonical. Nevertheless, both these distributions are still, to my knowledge, doing better than current versions of Windows in terms of disk space, memory, and CPU required to run them well. But there are a lot worse ways you could go with an old PC than loading Slackware or Debian to start and tailoring the software loadout to your needs.

  84. >Nevertheless, both these distributions are still, to my knowledge, doing better than current versions of Windows in terms of disk space, memory, and CPU required to run them well.

    My laptop runs Ubuntu 10.04, which weighs around 650 MiB of memory used at a bare desktop (actually more like 700 because of some stuff I run at startup). With Metacity instead of Compiz I could shave off another 50 megs (but I’m not memory constrained enough to want to). But Ubuntu can be lighter than that.

    I installed 12.04 on another machine via debootstrap, which pulls in a very minimal install, brought in what I wanted (including MATE as my desktop), and got a setup that weighs around 250 MiB. It would be 300, but the machine’s graphics hardware won’t handle Compiz.

    So the approximate amount of memory needed for a system on par with any version of Windows is 250 megs, and a system that beats any version of Windows hands down is about 300.

    This is around 10% of the memory on a mid-range 3-4 year old machine.

  85. I didn’t quantify, I just found modern Ubuntu with Compiz and Unity is kinda sloggy out of the box on a 6 years old laptop, Lubuntu was perfect though. It was for my dad, so I added a large Cairo Dock with xcompmgr instead of Compiz to make it easy to find applications and make the whole thing look tasteful and modern, and he likes it. I can really recommend Lubuntu for all users, beginner and advanced alike. Beginner, because fewer things can go wrong, advanced, because you gonna add your own stuff anyway.

  86. My favourite bit of LXDE is where you go to show seconds on the clock and the popup literally tells you to go look up man strftime(3) if you want to do such a thing. Obnoxious nerd interface design doesn’t get much better than that.

  87. @David in their defense, there is a large correlation between computer “nerds” and people who want to add seconds to the clock or even notice it does not show them :-)

    Actually… something just occured to me: does it whether people wear digital wristwatches vs. analogue wristwatches with numbers vs. analogue wristwatches without numbers predict their personality type and interests and attitudes? I guess it could.

  88. Shenpen, there should have only been a radiobutton for “time” or “date and time”, and a tickbox for seconds on the clock; and the system’s locale settings should have figured out the rest. Maybe a third radiobutton for 12h, 24h, or locale default clock settings, for those people who wake up to a blasting MP3 of Reveille at oh-six-hundred every morning.

  89. Hacker culture has been very nearly stillborn in places where it would otherwise be expected to thrive for this very reason; Japan, where Linux and open source are virtually unknown except among tiny pockets of “pasokon otaku”, comes to mind as an immediate example.

    ISTR there were enough of them to invite Eric over at one point. I get the impression Japanese companies like the idea of their workers being pretty much interchangeable, that’s kind of the salaryman ideal in some ways, and as programmer skillsets don’t really conform to that it’s presumably a problem. Being on the spectrum in a place where you’re supposed to be really sensitive to other people can’t be much of a picnic, either.

  90. >ISTR there were enough of them to invite Eric over at one point.

    Actually, twice.

    Nevertheless, it is true that Japan seems to have far fewer hackers than it ought to, given the average levels of education and wealth and the degree of Internet penetration and the fact that the country is otherwise very positive about technology. And it’s not hard to connect this to identifiable features of Japanese culture.

  91. Being on the spectrum in a place where you’re supposed to be really sensitive to other people can’t be much of a picnic, either.

    The figures I’ve read said that the density of people “on the spectrum” is thrice as high in Japan as in the States. Which just serves to make Japan’s paucity of hackers about thrice as anomalous.

    The problem is so bad that Rakuten, a major Japanese e-commerce company, is actively courting Western developers, replete with an English-language application process. (Normally, if your aim is to work in Japan for a Japanese company you have to be fluent in Japanese just to even get your foot in the door.)

  92. Yeah, I think Rakuten is the one that’s famous here for trying to get their entire workforce to speak English at work all the time, which is…quite hard work for a lot of them. Japan has a sort of “resistance” to English – significant numbers of influential people seem to be afraid too much of it will corrode their precious native culture or something, so they may be handicapping themselves, in the converse of the way that the development of India’s software industry has been helped by the fact that so many Indians are bilingual, as English serves as a sort of international language within India.

  93. “Houston, we have a serious global problem.”

    Computer science education adoption is woefully underperforming all the other sciences, ostensibly because there is no primary school curriculum.

    Although we noted up thread that by definition autodidactism is a necessary trait for hackers and structured education isn’t always the cure for ignorance, until society has efficiently accessible and presented structured computer science education, unemployment will very likely increase to very high levels (c.f. my comment February 13 2013 at 10:56 pm).

    Structure is necessary for most novices because of variance of free time, motivation, intellect, initiative, and ingenuity. Although no choice of priorities for the depth and breadth of structured curriculum will be an ideal fit all ranges of the aforementioned qualities, abundant orthogonality of courses choices could be presented to cover a wide range. Such orthogonality reduces structure, i.e. maximizes breath of permuted path options for learning steps.

    I am thinking introductory courses need not use overly obtuse, erudite conceptional complexity nor language, if it offers no significant advantage for understanding nor speed of comprehension for any level of student who would use them. Higher intellectuals can consume faster, assuming the courses are not saddled with unskimmable information nor unskippable redundancy.

    Here follows some of my opinions and observations of what I have found freely accessible online. Not impressed.

    The w3schools.com HTML tutorial is best structural model I found with bite-sized written sections in a semi-unstructured order, incorporating optional interactive examples. The introduction section jumps into unnecessary complexity too early by including the optional DOCTYPE and the overly stark bulleted exposition style does not sufficiently explain to an utter novice what a tag is, how it is differentiated from text content, the distinction between source and rendering, nor the significance of the term “markup”. Quickly I might instead write as follows, while not unnecessarily introducing advanced terminology too early such as “embedded” nor “font”:

    “Hyper Text Markup Language is a written language for making web pages. The source code for a web page is a text document that can be created and edited in a text editor program. This source document contains the displayable text mixed (i.e. marked up) with HTML tags. Tags are text always enclosed in angled brackets (e.g. <tag>). The displayable text can be between matched pairs of tags with a forward slash in the ending tag (e.g. <tag>text</tag>). When viewed in the browser, the text for the tags is not displayed, and only the displayable text is displayed. Paired tags controls the browser’s display options (e.g. the text size, styles, justification, positioning, etc.) for the displayable text between the tags. Note, see the Links section for an explanation of hypertext.”.

    The w3schools’ Editors section fails to explain the distinction between editing the source code and WYSIWYG visual editing, erroneously and meaninglessly asserting that the latter is more professional. The Basics section introduces tag attributes (and the term element) before explaining them. The CSS introduces the complexity of style sheets and selectors, before explaining the syntax and examples of the style language.

    Saylor.org’s free computer science courses are links to external documents, that diverge from any coherent, efficient direct-to-the-point elucidation. For example, the 101 Intro links off to rambling, verbose, incoherent written histories of computers and software, then to tsuris of a unskimmable sequential series of web pages, then to a tediously slow khanacademy video on binary numbers, which doesn’t simply explain adding by 1 and carrying to next digit position. The procedural versus oop theory crud is incorrect, false dichotomy+taxonomy, and confused (but so are most compsci educators on that aspect). Attempting to introduce the pedagogical essence of common semantic elements (e.g. data, control, logic) of programming languages using Java and C++ introduces unnecessary syntactical complexity too early. Sadly I find more problems than I can enumerate in a paragraph.

    Codecademy.com drops me into structured interactive tutorials that seem to either go off on incoherent “doing without knowing”, or disjoint verbose sidebar text that tries to get me to do some incoherent actions in the editor pane.

    The video lectures from Harvard, MIT, Stanford, Berkeley, and Udacity are slow because they are videos, not bite-sized orthogonal sections, not direct-to-point of some topics student might be interested in, layered in dogma, and assume the student will pursue a deep theoretical education.

    I find good ideas for conceptual explanation at computerscienceforeveryone.com, but the courses suffer the video format and the introduction of complex terminology too early.

    Society desperately needs freely accessible online courses similar to w3schools for syntax and also conceptual courses, with improvements in the direction I have outlined. The incorporated interactive examples could be improved to interact more (while remaining optional) so the student knows what to type and click.

  94. Over the past few hours I initiated an attempt to the solve the problem I alleged in my prior comment. I haven’t had time to reflect on whether it is improvement and if I will add more lessons.

  95. Oh, hi Shelby.

    When I was ten years old I was pressed into impromptu tech support service for my entire elementary school. Like every school in Murka, the classrooms were equipped with Apple II computers, ostensibly for computer literacy education purposes (but mainly they just ran cheesy MECC edutainment games). The teachers, quite simply, didn’t know how to run them or care for their paraphernalia (some believing that the hole in a 5 1/4″ floppy was for you to stick your finger through while grasping the disk). And they were virtually ineducable in the subject.

    The problem with computer science education is, imho, that we’re not ready for computers as a race. We depend on them but we don’t value them; we only value what they give us. By contrast, consider cars. All they really give us is a fast way of getting from place to place, but we value cars in their own right — especially in America, much to the detriment of the planet’s climate. We invest a lot of time, money, and care in them, dress them up with fancy paint jobs, show them off to our friends. While cars are convenient enough to operate without knowing how they work, for a time in America knowing how a car works made you one of the cool kids.

    We don’t value computers the same way. In fact, with the smartphone-of-the-month aggressive marketing from carriers and handset makers, computers are becoming disposable. Beyond that, we make a big show of how ignorant we are with regards to computers and computing, and how just and proper this is. Some people, when faced with a computer, put on an elaborate pantomime of stupidity, just to avoid being confused with someone who might know what to do when faced with a computer.

    I think that some of this has to do with the fact that computers, while still being just machines, are a lot more like people than other machines: they can remember things, make decisions, take orders, and even hold a simple form of conversation. Unlike cars or sewing machines, computers present people with a sort of visceral existential horror: like Frankenstein we have built our own replacement, our undoing. So to be accepted, computers must be “user friendly” and part of that means pretending to be something other than a computer: a writing desk, for instance.

    Correspondingly, people who understand and are intrigued by computers have embraced the enemy; they are traitors. We need them, but we must stigmatize them, remind them and ourselves of their treachery, and constantly declare how “not like us” they are. They’re nerds, geeks, outsiders; and we should not give them access to our prime breeding stock.

    Until this attitude changes, cultivating computer literacy in the general population will be an uphill battle, littered with big colorful picture books — like children’s dictionaries — for MIS undergrads, and “how to code javascript” online courses for trendy marketeers.

  96. @Jeff, what evidence supports your claim that resistance to learn computer science is genetic?

    It can’t be that people are not choosing computer science only because it is less social, more analytic, or less tangible, because the video link in my prior comment showed it is under-adopted relative to other less social and analytic sciences such as Chemistry, Biology, and the intangible Math. And only 14% of computer science students are female, as compared with roughly balanced for the other sciences. Average females probably view hackers as socially challenged recluses who speak Klingon– socially non-integrated thus not well networked as a hypergamy pathway.

    If computer science is not taught in primary school, then it is not integrated into the formative social experience. The link I provided showed that it is not being taught (and the video link I provided confirmed your point that the primary school teachers don’t know computer science).

    Any one who has kids, understands that it is almost impossible to interest them in something that is not important in their primary school or family/community life, unless the kids are among those recluse nerds.

    Someone mentioned Minecraft as a way to interest kids in. When winning a game on Facebook involves writing more clever programs, then we will have given kids a socially competitive reason to be programmers. But the chicken-egg problem is that probably only hackers will play.

    I will quote from another programmer’s blog.

    An example is my son, who is fascinated with Minecraft. One mod for the simple game features wires and circuits. He downloaded and installed it (he’s 8YO) and learned how to use it. How did he know how to do this? YouTube videos, of course! He watched them again and again to learn how to do it all. He even does command-line programming so triggering something can generate a string or play a sound.

    Minecraft, which many teachers are apparently in the process of discovering, is a great way to teach spatial reasoning skills, and also things like barter, simple programming concepts, and even machine concepts like solenoid action.

    And it does it by letting the kids discover them on their own.

    The human race appears to be heading to a world where we will compete by writing code and using programs, not just the latter. This will probably touch every art.

    The adjustment will probably be driven economically. Those families that don’t adjust will probably decline in economic status. At some lower level, the children get motivated to raise their status.

    Up to now, there have been many lucrative careers orthogonal to computer science. The affluence of the middle class has afforded the idle time to aspire to be an American Idol or a Lebron James. We appear to be coming to a Winter in the Long Wave Cycle, which should eviscerate this middle class delusion. Unfortunately, we might have to wait for the Awakening, before the bulk of the society makes the adjustment to the integration of the arts with programming. I assume this is because the first response of society to a crisis, is greater statism. That statism delusion has to be worn to the bone (World War perhaps), before the Awakening can ensue.

    I am trying to think if we can do anything with technology and/or writing to disrupt and accelerate human adjustment. I continue to improve the “Intro to Computers” lesson, and will probably attempt an improvement to w3chool’s HTML course.

    P.S. your unproven claim that humans are altering the planet’s climate may have to wait for the Awakening to be resolved in the minds of the masses. We’ve had this AGW debate numerous times, so we won’t likely learn anything new by debating it further. I agree humans pollute the environment, but that is not the climate.

  97. @JustSaying
    “And only 14% of computer science students are female, as compared with roughly balanced for the other sciences. Average females probably view hackers as socially challenged recluses who speak Klingon– socially non-integrated thus not well networked as a hypergamy pathway.”

    Except for the cultural shock expressed by the writers, these give a reasonable account of the situation in Malaysia. Where, btw, women have lead CS since its inception. So why these writers are so shocked is a mystery to me.

    Women attracted to IT in Malaysia
    http://www.20-first.com/621-0-women-attracted-to-it-in-malaysia.html

    Interestingly, about half of the student body and the faculty at the University of Malaya’s Computer Science department is female. Furthermore, all of the heads of department in the faculty are women and so is the Dean.

    Computers for women?

    Most of the female students I interviewed for the study, A Cyberfeminist Utopia did not consider their choice of computer science to be unusual. On the contrary; they saw it as consistent with being a woman. They were also computer enthusiasts – not something generally associated with women.

    Malaysian women redefine gender roles in technology
    http://gender.stanford.edu/news/2011/malaysian-women-redefine-gender-roles-technology

    The answer may lie in Malaysia, where women make up between 50 and 60 percent of the computer industry’s employees and many hold mid- and upper-level management positions. The country’s burgeoning technology industry has brought about dramatic changes to women’s roles in society, changing traditional perceptions of class, ethnicity and gender.

  98. +1 with JeffRead on the computer acceptance topic. A computer seems alive, like a spirit of the wood, & those who master spirits of the wood are witches(or warlocks in case of men). History tells us that old-fashioned witches were not socially very well accepted. Hackers are more accepted, they don’t get burned alive, but they still are seen as “different”(whatever it means).

    +1 with Winter on women. Friends in Romania tell me that more than half hackers there are women, that they like hacking, & don’t want to get promoted to managerial duties(unlike France, where the few hacking women I meet quickly jump to management positions – I’ve had more women as managers as men). Also, where I work, the central server used to be managed by 100% men in France. It was outsourced in Poland. One man & only women around him.

    There MIGHT be a biological difference on the topic of hacking between men & women, but looking at different coutries, it seems to me that this effect is dwarfed by cultural effects. 15% women in IT in the US, 20% in France, more than 50% in other countries….. it cannot be JUST biology.

  99. @Jeff
    > imho, that we’re not ready for computers as a race. We depend on them
    > but we don’t value them; we only value what they give us.

    Thanks for pointing out that distinction in values. You inspired me to add a concise Why Learn Programming? section.

  100. @Winter and el_slapper
    Ah so anecdotal where women have an economic or cultural deficit to correct for, which can be aided by learning computer science, the balance is normal. As I expected where I mentioned middle class affluence and other competing careers.

    @JAD from the other recent blogs, I could imagine you making the point that western statism subsidizes the female, and thus is apparently destroying her adaption to the future w.r.t. computer science education.

  101. The problem with computer science education is, imho, that we’re not ready for computers as a race. We depend on them but we don’t value them; we only value what they give us. By contrast, consider cars. All they really give us is a fast way of getting from place to place, but we value cars in their own right — especially in America, much to the detriment of the planet’s climate. We invest a lot of time, money, and care in them, dress them up with fancy paint jobs, show them off to our friends. While cars are convenient enough to operate without knowing how they work, for a time in America knowing how a car works made you one of the cool kids.

    You do realize that working on cars, and “valuing cars” is a lower class trait, right? It wasn’t and isn’t universal, the upper classes wouldn’t get their hands dirty. And the enthusiasm for cars developed precisely *because* of what they gave their owners: Freedom and Mobility. (Just the sort of things you don’t think the proles should have, I find the irony delicious.) The ability to go where you want, when you want, to pursue opportunities, to seek entertainment, to do, see, buy things you wouldn’t otherwise have access to- all those things cars gave the lower orders, the lower orders ate it up and their betters HATED it. Still do, scratch a mass-transit enthusiast today and you will find a closet totalitarian who despises the freedom that the unwashed wrongfully enjoy. The “cool kid” car-owning status never translated outside the lower classes, it’s purely an in-group thing- look at the status of lowriders outside their own subculture today. Same thing.

    I find it ironic that you want to encourage people to behave in such a way with *this* particular wave of technology, in a way that you would have (and still do, apparently) despised and railed against people behaving toward a previous wave of technology. It’s about freedom, both times. You don’t get to pick and choose.

    The end state you want, people “valuing” computers, is achieved bottom-up, by freeing people and giving them opportunity to let the new technology (I hate to use this awful word but it fits here) empower them. Even when you find it distasteful (and in ways of which your awful nannyness does not approve). That’s actually under way- and Eric helped.

  102. I feel ESR mentored me by writing the Hacker Howto, and generously answering a couple of email questions over the years.

    All I needed.

    Thank you ESR!

  103. The w3schools.com … introduction section jumps into unnecessary complexity too early by including the optional DOCTYPE and the overly stark bulleted exposition style does not sufficiently explain to an utter novice what a tag is, how it is differentiated from text content, the distinction between source and rendering, nor the significance of the term “markup”.

    I can now compare my interactive HTML intro page to w3schools. From the perspective of person who knows nothing about programming nor HTML, I think mine is much more clear. Mine updates the preview as the user types HTML, and doesn’t open the editor in a new window. Some simple attention to details like these could potentially grease the initial confounding experience of newbies.

  104. Non-structured interactive tools that aid in learning … , e.g. … real-time compilation feedback

    @LS
    > It’s when they learn by experimentation, writing little test cases, etc

    Agreed and this … is why my prior comment differentiated structured from non-structured interactive aids.

    incorporated interactive examples could … interact more … so the student knows what to type and click.

    I coded real-time HTML linting for the editor in link in my prior comment. Surprisingly googling seems to indicate this is first implementation in JavaScript.

  105. And the enthusiasm for cars developed precisely *because* of what they gave their owners: Freedom and Mobility.

    Indeed, and quite unlike the lefty cartoon you keep arguing with instead of me, I actually value freedom and mobility. I like cars. I just don’t think we should sacrifice the environment to have them. I strongly support the development and proliferation of EVs, for instance. But let’s face facts: When I walk into work in the Boston area each morning, the commute slaves I see in standstill traffic don’t have much in the way of freedom or mobility.

    The “cool kid” car-owning status never translated outside the lower classes,

    Spoken like someone who’s never owned a Ferrari, Porsche, or other expensive, finicky, Veblen-good European car.

  106. Indeed, and quite unlike the lefty cartoon you keep arguing with instead of me, I actually value freedom and mobility. I like cars. I just don’t think we should sacrifice the environment to have them. I strongly support the development and proliferation of EVs, for instance. But let’s face facts: When I walk into work in the Boston area each morning, the commute slaves I see in standstill traffic don’t have much in the way of freedom or mobility.

    If it walks like a lefty cartoon, talks like a lefty cartoon… let’s face facts, you present as a lefty cartoon. Though you do occasionally shine through with stunning bursts of lucidity, but they are as rare as they are delightful.

    Commute slaves are commute slaves, no matter how they commute. I’ve commuted on foot, by bicycle, by subway and by car. Traffic and all (Boston traffic, and Boston drivers are indeed *bad*) commuting by car was still the most enjoyable overall, and being able to commute by car gave me access to jobs that were otherwise unreachable. In addition the ones with cars can actually get somewhere when they’re not working (Richardson’s is fun!). Even the Boston metro area, as built up and pedestrian friendly as it is (I lived in and around Boston for ~13 years) is a lot more fun if you own a car.

    The “cool kid” car-owning status never translated outside the lower classes,

    Spoken like someone who’s never owned a Ferrari, Porsche, or other expensive, finicky, Veblen-good European car.

    No, I haven’t. But I’ve known enough people who have to have some idea of how that works. Insofar as it impresses anyone, it’s as an indicator of wealth and power – the ‘Veblen-good’ matters there, not the ‘car’.

    As a control, see how much cool kid status buying an expensive finicky Veblen-good car confers on people who are already known to *not* be wealthy or powerful (heh, I’ve seen that happen enough times), and if anyone *is* impressed, see their social class.

  107. @esr

    Nevertheless, it is true that Japan seems to have far fewer hackers than it ought to, given the average levels of education and wealth and the degree of Internet penetration and the fact that the country is otherwise very positive about technology. And it’s not hard to connect this to identifiable features of Japanese culture.

    Internet Explorer browser share by country seems to correlate with that “respect for authority” (“save face”) conformance of northeast Asian culture.

    71% South Korea
    60% China
    52% Japan
    44% Taiwan
    40% Israel
    40% U.S.A.
    39% Hong Kong
    37% Netherlands
    35% Australia
    35% Belgium
    35% Iran
    33% Mexico
    32% Peru
    31% Switzerland
    30% U.K.
    29% Sweden
    27% Italy
    26% France
    26% Somalia
    25% Thailand
    24% Europe
    22% Germany
    20% Brazil
    20% South America
    20% Argentina
    19% Finland
    19% Africa
    19% Colombia
    17% Iceland
    17% India
    14% Cuba
    12% Viet Nam
    10% Cambodia
    10% Madagascar
    10% Nepal
     7% Bangladesh
     7% Mongolia
     6% Philippines*
     3% Indonesia

    Closer to here (i.e. lower) is more use of open source.
    * I code on the top of tallest mountain here.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">