
Eric S. Raymond - The Curse of the Gifted (2000) - vinutheraj
http://www.vanadac.com/~dajhorn/novelties/ESR%20-%20Curse%20Of%20The%20Gifted.html
======
RyanMcGreal
ESR often comes across as unbearably pompous and self-important, but here he
strikes a very constructive posture of hard-earned humility and even tough
love.

~~~
ajross
Or alternatively: this was 10 years ago, and the kernel is _vastly_ more
complicated now than it was then, running on hardware of a sophistication most
of us scarcely imagined. And yet the kernel development model really hasn't
changed much.

It may be that ESR was especially humble and constructive in that post. But
honestly, I'd argue he was also objectively wrong.

~~~
illumin8
How was ESR wrong? He seemed damn insightful to me. The curse of the gifted is
a real thing. We've seen it many times before. Developers that can write 20
times the code of a "mere mortal" but don't think it's necessary to check it
back in to version control. Or unit test, or run it through QA, or any of the
other things that "mere mortals" need to do.

Sure, you can get away with this when you're operating in "Founder only mode,"
and you're the sole contributor, but his point is valid. If you don't plan for
the point in time when you have hundreds of developers working on several
branches of forked code before you reach that point, by the time you do, your
project is doomed.

~~~
fnid2
I've been and to a large extent am one of those in some cases and I can't
imagine not using version control, or code sharing, or modularity. I also
backup my code in several locations across thousands of miles of earth and
ocean.

Look, "Founder only mode" is when the practices of these large corporations
with lots of people depending on them are the most valuable, because
everything depends on _you_. There aren't other people who can fill in and do
your job. You have to be able to do it all. You can't skimp on any of the
areas just because you're just you. Not if you expect anyone to depend on you,
including yourself 6 months later when you have no idea what the code you
wrote there does anymore.

And you don't want to have to repeat yourself all over the place so you
modularize. That's how it's done at the big shops too. It's good practice.

------
zavulon
Yeah, that makes a lot of sense... I never ever studied anything before
sophomore year of college. And then when faced with serious large-scale
programming problems, and 300 level math, I realized I don't know how to
study. It was definitely a struggle, but I'm glad it happened to me early, and
not when I entered a "real world".

~~~
sjf
Depending on your career path, it is unlikely you would have ever encountered
that math in the 'real world'.

~~~
presidentender
Doesn't matter. He'll run across a problem that doesn't just fall down and
surrender in the face of his blinding intellect, and at that point, his
studying and thinking skills (not the math trivia) will kick in and allow him
to slay the beast.

~~~
aoriste
A trivial tangent: oddly enough I find that, whether I'm programming for
distributed applications or animations, it is the number theory, and not
(surprisingly) the linear algebra, that I am most grateful for having learned.
Boutade's Law: do not underestimate the algorithmic utility of knowing your
way around the integers.

~~~
infinite8s
This is intriguing. Care to elaborate on a problem you've had and how number
theory helped? I did the typical math courses required for a computer science
degree (discrete math, linear algebra, diffeq, probability and statistics),
but stopped short of the serious math courses (analysis). I've been meaning to
start up with analysis (mainly for fun) but I'm intrigued to see how it might
help in my day to day work.

~~~
aoriste
Well, unless you're terribly interested in moving on to things like
differential geometry, I'd put analysis off a bit longer were I you. If you'd
like something stimulating and potentially useful, more advanced
combinatorics, number theory, or algebraic geometry might all be good choices.
The first two tend to overlap a bit when they are presented in textbooks (with
some group theory tossed in as well). If you do crazy graphics programming, or
if you program robots' spatial reasoning, algebraic geometry might pay off -
though, AG doesn't have as easy an entry. (One exception might be via the book
Computational Algebraic Geometry by Hal Schenck).

As far as number theory "paying off": 1) Many proofs in number theory are
algorithmic in nature; 2) Computers understand integers with greater facility
than they do the psuedo-reals we call floats - often times efficient integer
approximations will be more appropriate than slower floating point solutions,
and knowing the integers will help you develop/understand these
approximations; 3) If cryptography is your bag, number theory is a must; 4)
Martin Davis, Yuri Matiyasevich, Julia Robinson, Hilbert's 10th problem,
Turing Machines, computability theory, and (the number theory bit) diophantine
equations (sorry to be cryptic, this is getting rather long winded).

------
sjf
Here is the post in the context of the original thread
[http://lkml.indiana.edu/hypermail/linux/kernel/0008.2/0240.h...](http://lkml.indiana.edu/hypermail/linux/kernel/0008.2/0240.html).
There doesn't seem to be a reply from Linus.

~~~
jwecker
No, and I don't know if he split that driver, but I like to think that Linus
took the message to heart (regardless of how he felt about it). The two+ years
that followed saw the arrival of a lot of "meta" structure fixes, like
bitkeeper (and then git of course), etc. that address many of ESR's concerns.

~~~
gfunk911
I love that Linus did what brilliant people do, which is modify the world to
better fit how they want to work. I'm sure he modified his own practices
somewhat, but he also modified the world by creating Git to enable his
preferred workflow.

~~~
krakensden
You're forgetting history- BitKeeper, mostly. The way I heard it told, Larry
McVoy sat down and showed it off to Linus, who finally said "ah yes, this is a
tool and model that would improve my life."

git didn't come along until Bitkeeper withdrew their support, after a
prolonged series of arguments with kernel developers mad about a private
company owning the code repository.

I guess I'm saying you should give credit to Larry McVoy for showing the way.

------
rbarooah
I think it's worth saying that it's not just that gifted people don't need to
learn study skills to get through school. They can be actively prevented from
learning them by being forced to focus on a curriculum for which they don't
need them. Denying gifted people the opportunity to take on real challenges
while they are still at school when their mistakes are not too critical, which
happens all too often, is worse than not recognizing their gifts, it is
actively denying them the opportunity that others are given.

------
patchwork
You guys are all talking about the burden and challenge of being gifted, but
really, being gifted is awesome. I would much rather be gifted than not be.
And if you are truly gifted, and not just talented with a tendency for the
grandiose, you can rise above this challenge too, and become wise as well as
gifted (after the necessary trials that any worthy endeavor entail, of
course). It can happen, despite the happy mythos espoused here by our dear
friend ESR. I am skeptical of cursing any specific group of people, unless the
point is that every person or "type of person" has a curse that must be borne.
If so, being gifted is hardly one of the worst. "Oh noes, I must deal with my
constant state of amazingness! How will I cope!"

Others must deal with you though I suppose. That must be rough for them.

~~~
lucifer
> you can rise above this challenge too, and become wise as well as gifted

That's the essence of what ESR was saying.

------
presidentender
I'm so very lucky that a) I just happened to major in math and CS, not just CS
and b) my 'giftedness' was only enough through calc 1 in the math program. My
foreign language and gen eds were easy, and the CS program didn't expect much
of us, but I had to actually _try_ in the higher-level applied math classes.
Without that, I'd have been in for a rude awakening when it came time to work
for real, and it would have cost me much more than re-taking calc 2 did.

~~~
aoriste
As for me, I eschewed the applied topics (no ODE's no PDE's) in favor of the
"pure" (algebra, analysis, topology, etc) only to discover that, because I had
little interest in becoming a professor, most of it would only serve to keep
my happily diverted on what are now ridiculously rare lazy Sunday afternoons.
In these topics, so long as one is interested in the propositions in need of
proof, real study is relatively useless. I first learned what it meant to
study in the "real world" - in the lowly field of IT - when the fiat came down
the line to transform format X into formats Y and Z, and ensure that changes
to one translate to the others, keeping in mind that simultaneous changes may
occur, in which case on the 'right' change should be kept. The old dictum is
true: there is no substitute for experience.

------
Aegean
I didn't get what this _sharing code_ was about until I read the earlier post:
[http://lkml.indiana.edu/hypermail/linux/kernel/0008.2/0201.h...](http://lkml.indiana.edu/hypermail/linux/kernel/0008.2/0201.html)

I think this is a typical engineering argument and its got nothing to do with
curse of gifted etc. If you share code and they divert later on, even if to a
small degree, it gets harder and harder to maintain them. That's what linus
says, and I do think that _is_ simpler. Linus (and a good engineer) always
favors the simpler solution. The more gifted, the more simpler. So ESR is just
arguing the other way around.

I see this all the time in hot lkml discussions. It's often the more gifted
who _sees_ _through_ to the simpler solution, but others can't. Don't know if
it is true for all gifted, but definitely for the best software engineers.

------
pavelludiq
Anybody have good advice for a first year university student who slept through
most of high-school, got good grades, and then failed his first calculus exam
because he was reading "Practical common lisp", instead of studying? How do i
learn to study if i find the subject boring? How do i get disciplined? I know
a lot of you have been here, how did you handle it?

~~~
aaronbrethorst
No, I do not have any good advice to give you. I had the same problem, and
never figured out the answer.

Instead, I was able to squeak by with C-minuses in all of the subjects I found
horrendously dull, and make it up with A's in my senior and grad level
computer science and psychology courses.

I graduated a month after I turned 21; I think my final GPA was 3.02/4.00.
Microsoft hired me a few months later to work on Visual Studio. They never
asked about my GPA. In fact, my first manager was a college dropout.

I hope you figure it out because I absolutely do not recommend this path, but
it is workable.

------
lotharbot
Edit the title to include the year (2000) ?

\-----

The overall point is solid. Many times, the "gifted" have sufficient brain
capacity to be able to track or process fairly complex problems. As such, they
see no need for the sort of support structures and habits others use to solve
the same problems. Therefore, they don't develop those things in the "natural"
way, piece by piece. Instead, they finally run up against a problem too big
for their brain, and have to develop those habits all of a sudden.

For some people, that's an obstacle they never overcome. For others, once they
realize the problem, they're quick to get advice, research solutions, and
develop those structures. I hope this letter served its purpose by giving
Linus the motivation and information he needed to overcome the curse of the
gifted.

~~~
ominous_prime
Isn't hindsight grand. I never had to study, take notes (or write anything
down for that matter), or do homework to get through highschool. College
wasn't too difficult, but it was too much of the same, and I couldn't keep
with the grind.

> "For some people, that's an obstacle they never overcome."

It's amazingly difficult to create these habits. I often struggle with large
projects, where it's impossible to keep it all in my head. The urge to take
notes happens too late, or I don't know what to take or how to take it.

A recent project where I'm learning a new codebase and language simultaneously
is forcing me to reevaluate how I work. It's almost more than I can mentally
handle at once, and even still, I'm brute-forcing it by internalizing
everything. I'm taking notes here and there when I think of it, trying
different methods; wikis, textfiles, carrying a notepad; but it's slow going.

Parents, teachers, mentors - do your best to make sure your kids are
challenged. Praise them for succeeding, but don't let them ride that success
through life, because it does end.

~~~
jimbokun
"Praise them for succeeding"

Praise them equally for failing, if they worked hard, learned something, and
are willing to keep trying.

~~~
ominous_prime
"Praise them equally for failing, if they worked hard, learned something, and
are willing to keep trying."

I Agree. I guess I was lucky in this regard - I learned to love failing, and
saw it as a challenge. One of my favorite pastimes, chess, was taken up
because I was so bad at it, yet saw that it could be a master-able skill.

------
andrewpbrett
"Your tendency to undervalue modularization and code-sharing is one symptom
[of the curse]. Another is your refusal to use systematic version-control or
release-engineering practices. To you, these things seem mostly like overhead
and a way of needlessly complicating your life."

I'd say he came around on version control with git - five+ years later.

~~~
nas
At the time I think CVS was the proposed system. Linus said he preferred
patches. I'm not sure he was wrong. AFAIK, bitkeeper was designed (not sure to
what extent) when Larry got together with Linus and Linus explained how he
wanted it to work.

~~~
ob
I've heard it told the other way around. That Larry had worked on Teamware at
Sun and he showed Linus how distributed SCM worked. Linus said "if you build
that, I will use it" and Larry built it.

------
btilly
Dang. I should have submitted <http://news.ycombinator.com/item?id=1167649>
rather than just including the link in a reply that got ignored.

------
stromhold
Just the dose of practicality that my senior year at university needed. Makes
me feel I can actually accomplish something with the right mix of
communication, tools and team.

------
asolove
This is a very helpful post. How often do we run into people who are
headstrong, and probably even right when we disagree with them, but who
ultimately will benefit from a slightly more humble and careful way of
working.

Clean coding is as much about the social skill of communicating in code as
about the raw ability to hold the problem in your own head.

------
Willie_Dynamite
While I hesitate to call myself gifted I can recognize some of that. I never
really studied in high school, the only homework I ever did was hand ins.
University came as a bit of a shock really, and taliking to friends, I know
I'm not alone in this. I really wish they had done a bit more to prepare us
for higher education, and I suspect dropout rates would go down if they did.

------
tome
I think it would be useful if you put the year [2000] in brackets after the
title. For some reason I read the e-mail thinking it was contemporary!

------
nazgulnarsil
the more gifted you are, the more you can get away with. but that doesn't mean
you _should_ be taking the easy path.

~~~
jasonlotito
The problem is, society as a whole is concerned with the outcome less than the
path taken their. If you are able to get an honest A, does it matter that you
didn't have to study? If your client asks for X, Y, but not Z, then you give
him X and Y, and get paid and move on. After all, you don't want to spend your
life working.

Life is about goals in so many ways that for many it's hard to avoid getting
there as quickly and efficiently as possible.

