
Ask HN: How do you "fix" the curse of the gifted? - speeder
I saw one post today in HN about failure, on the comments someone linked that e-mail that Eric Raymond sent to Linus saying that he suffered from curse of gifted programmer...<p>I thought it was interesting,, reading the e-mail felt like it was a grandpa lambasting me for being a childish.<p>Yes, calling myself might sound arrogant, and I am arrogant anyway, but I am gifted, and I know that because it is obvious:<p>In my entire school life, I never felt challenged unless I sabotaged myself, before the sixth grade, I would pass every single class with A or A+ without doing any effort, I never made my homework, and my parents got called constantly to visit the principal because I was utterly lazy. After the sixth grade, I started to gradually have lower scores, and my behavior worsened, in high school in the two last years I actually went to school, plopped my head on the desk, and slept.<p>And yet, I never failed.<p>My first non-internship job, I submitted my resume for junior iOS programmer.<p>Got hired as solutions architect and R&#38;D head.<p>Then I noticed that every time I looked to other programmers working, I thought they were amazing, but my bosses always think I am amazing, because they can throw random shit at me, I say I cannot do it, and I do it anyway.<p>Yet, I only learned to use version control in 2012 (I started to code in 1993), I am always amazed by other people design, it took me 6 years using a C++ compiler before I touched std, I make code mostly by trial and error, I make lots of sloppy mistakes, I am sure that if I was coding 30 years ago when you had only three compiling attempts on a mainframe my code would never run, yet, everywhere I looked, I never find someone that can be my mentor.<p>I rarely feel challenged.<p>What is the point of being extraordinarily gifted, if in most cases I don`t feel challenged,. and in the end, I don`t accomplished much more than a average joe?
======
mtrimpe
There's actually a bunch of people smarter than you that doesn't want to work
with you because you're an arrogant little schmuck below their level.

Figure out who those people are, become humble enough to start learning from
them, rise to their level, rinse and repeat.

In general it might be important for you to realize that modesty is an
incredibly valuable skill that will allow you to continue to interact normally
with people as your skill level is rising. The more modest you are the more
awesome people will let you become without starting (wanting to) sabotage you.

~~~
speeder
I had to edit my submission to make it shorter than 2000 characters.

But I rarely worked directly with people that I wanted to learn from, usually
I always end in positions where everyone else wants to learn from me.

And that is horribly tiring, I want to learn, not to teach all the time

Of course, right now I don`t have a choice, being a startup co-founder means
that I am the leader anyway, but I had a couple of past jobs that I tried to
end as grunt and failed, I always end falling up...

~~~
mtrimpe
First off: greatness is not one-dimensional. Remember that you're comparing
everybody against your chosen dimension(s) of excellence. Adding a another
dimension is certain to make you a beginner in something again. You're a co-
founder now so you might want to consider sales (in the broadest sense.)

Secondly, I can guarantee that even in your chosen dimension of excellence
there is someone in your town that out-classes you. Try calling the top
consultancy in your area, ask them who their best programmer is and buy him
dinner. If you can't learn anything from him/her than I'd bet on you being a
bad learner.

As a general conclusion: if you keep on improving and taking on bigger
challenges then at some point you _will_ reach your limits and you _will_ find
something you can't succeed at. It took me almost 30 years but when you get
there you'll realize a) who exactly is 'better' than you and b) the degree to
which you've been slacking all your life before that.

------
10dpd
Sorry to be blunt but you are not "gifted" - you might have experienced being
the most intelligent person in the room, but that's dependent on the other
people in the room.. Applying for a junior iOS job and instead be offered a
solutions architect role speaks more about the company you work for than your
skills.

I'd advise trying to zoom in on what excites you about your current role, and
look for opportunities at a larger company that will stretch you and engage
you with people of equal or greater ability.

------
guylhem
Arrogance is not the problem, even if it points you to the easy way (low
quality C++ code as you presented)

The problem is you not only that you are not challenged, but you don't love
what you do - when you enjoy something, doing it is its own reward, and you
want to be better and won't tolerate low quality.

Maybe that thing is code - maybe it's not.

I would suggest you try something totally different - but something that
interest you. Only you can answer what it is - maybe it is economy, or
physics, or wrestling- whatever, deep down in yourself, you know you really
want to do, but maybe are afraid to do because of the consequences on your
beliefs or on yourself.

Find that, do it, and the problem will solve itself.

------
locopati
'I make code mostly by trial and error, I make lots of sloppy mistakes' -
maybe you're not as gifted as you think

~~~
speeder
I thought of that possiblity... I many times cringe at my own code, and every
time I get a task, I feel that I have no idea on how to do it.

But I never failed to do what needed to be done, and I always get praised in
the end.

And trust me, this is absolutely horrible, I am always feeling I am not good,
yet I am always getting more and more pressure on me, with people throwing
more and more crazier shit at me believing I can do it,

I had one job where I was asked as first project to develop alone a geo
location augmented reality library for iOS.

I had no idea on how to do it, and it took my three months, and I thought I
was slow. When I was done the CEO of the company gave me a 10% raise and
praised me for a whole week saying that what I did was really fast and that
his other workers would not do that fast... I did not knew if I felt great for
the praise, or bad, because I was feeling that I did not deserved the praise
and that I was like cheating the guy out of his money.

~~~
pcowans
Stop defining success in terms of praise from others. At best you'll spend
your time doing unfulfilling work and not learning much, and at worst you'll
be manipulated.

From the discussion in this thread I don't believe that you're a particularly
effective developer - it seems you're used to playing the hero programmer role
and have been too poorly managed for anyone to question that. Your
descriptions of the C++ STL show that you don't know what you don't know, and
if I were working with you I'd be asking all sorts of questions about what was
going to jump out of your code and bite us further down the line.

You're probably smart and have a lot of potential, you just need to realise
that there is a vast amount that you don't know.

~~~
speeder
I know there are lots of stuff I don`t know.

What bothers me very much is that there are seemly noone ever to look at my
code and say what I could have done better, or tell me what I should be
knowing.

In fact I asked as birthday gift to my grandmother to import the special
edition of Bjarne book because I concluded that the only way to improve my C++
pratically now is just work my ass off trying to learn the whole damn thing,
because noone will teach me.

And not wanting to be too much pedantic, but std != STL

~~~
pcowans
... having said that, on a good team there will be a culture of code review.
Have you ever asked for feedback on your code?

~~~
speeder
I rarely get a good team.

Not the lack of the good, but the lack of a team.

Usually I am tasked into solo or soloish positions.

But I think this is kinda expected, considering what I work with ( mobile
games and non-web apps, where most of the time one coder is enough, also small
indie games for other platforms, that rarely have more than one coder )

~~~
pcowans
So, at least we've got from 'I'm too gifted to learn from anyone' to 'I'm in a
difficult position without access to peers to learn from', which sounds more
plausible and is probably worth sticking with.

I guess you have two options really - find another job that will give you
access to a team, or start doing something to give you contact with
programmers outside of work, whether that's getting involved with an open
source project, finding a meet-up to go to, taking a class, etc. In any case,
approaching it with an appropriate level of humility is probably a good idea.

------
kjackson2012
Submitted a resume as a junior IOS programmer and got hired as a "solutions
architect" and "R&D head"? That doesn't even make sense.

Sorry but I smell troll-bait here. I'm flagging this post.

~~~
speeder
Alright, I will explain this ( because I am bored right now, not because I
feel that I need to defend myself )

I had previous internships as iOS programmer, and thus I thought that for my
first non-intern job, it would make sense to apply as junior programmer.

I applied, and got accepted by the HR and whatnot.

The CEO for some reason then read my resume personally, and he saw that I`ve
built a entire arcade (even the carpentry) by myself, also he saw that I was
not a CS graduate, but a Game Design graduate, and finally, I had lots of old
projects that I made to create stuff.

He called me in person, to explain why he wanted to change my job role, he
explained what wanted from ,e and how much money he would give me (he offered
60% more than I asked, granted that still was lower than market rates).

He told me, he noticed I was more of a inventor, than a good academic style
programmer. and that he already had 35 CS people on the building, he needed
someone different and passionate for creating stuff, as head of the R&D
division he was intending to create (until that point all his income was from
outsourcing contracts).

I actually had a great chat with him, we spent some hours talking about our
tales of inventing stuff, I felt that the guy wanted to innovate, and was
bored with the company current role, and missed a mad scientist type of friend

That would give me problems later, as I felt entitled to frequently drop into
the CEO office to chat, or present results and skip my boss, and this quickly
eroded morale of other workers as they thought I was a favourite, soon I
started to get sabotaged by other workers... Kinda nasty, and took my a while
to realize what was happening.

------
Tzunamitom
Set targets for failure. Chances are you'll also have a deep fear of failure,
and while your boss thinks he's pushing you, you know you're really taking the
safe option. Wake up and realise that. Quit your job if you have to. Find some
fear and constantly push the boundaries of your comfort zone.

(On an interesting side note as a previously devout Atheist, I found that
finding my spiritual side and a Faith really helped. That was a big surprise
for me.)

Find a meaningful goal that motivates and drives you. For me it is helping the
homeless and dispossessed. Set yourself small, regular targets to achieve
things - reward yourself when you achieve them. Find a partner that when
you're around him/her you feel compelled to do great things, someone that
won't buy your bullshit, and ask them to support and push you harder.

I'm not there yet, but as someone who can relate, I feel like I'm finally
starting to get there. As Generation Y, I feel we buy too much of our self-
confidence in our abilities to "hack" everything. The sad realisation I made
(after years of fighting it) is that there is no substitution for hard work -
sure you should still work smart, but that doesn't absolve you of the need to
word HARD. Really hard. Get up and give me 10 pushups! Good point... regular
physical exercise helps too. Don't wanna gym? 20 mins a day, do something...
squats, long walk, reconnect with nature.

Hopefully one day the fear of not achieving enough will be greater than the
fear of failure. Good luck :-)

------
victorhn
It took you 6 years before you touched std? what std are you talking? as in
the namespace std::cout, std::cin, etc?

~~~
speeder
yes.

I still don`t use cout and cin actually. I prefer printf. I don`t know what
are streams exactly (but I bought Bjarne TC++PL and it will arrive next
thursday, and then I will read what it is...)

In fact, I still rarely use std, when I use it is vectors.

I never used std interators (I think they are fugly, and I like to use while()
instead of for )

And I don`t know what else std do beside iterators, streams and containers.

~~~
tgflynn
As far as the C++98 standard library goes I think vectors are by far the most
useful construct it provides because they're like arrays but manage memory for
you.

Lot's of people prefer printf to cout/cin.

Iterators in my opinion are a bad idea because there are so many cases when
you need to do index arithmetic. The idea of having common interfaces for data
structures with very different performance characteristics is one that
probably seemed great to some people at the time but it doesn't work too well
in practice.

The C++11 standard library seems to have a lot more features that may be very
useful, like regular expressions, but I haven't started using it yet and if
you care about cross-platform code it probably won't be truly useable for
several years.

EDIT: Had a nagging feeling I was forgetting something when I wrote this. Yes
of course std::map is incredibly useful it's definitely something one would
need to implement if it weren't in the library.

~~~
pcowans
Although I kind of agree with you that iterators for vectors aren't really
very necessary, for std::list, std::map, etc. I think they're quite a sensible
way of sequentially accessing the data - you'd pretty much have to re-
implement them if they didn't exist. In the case of maps, I don't actually
think the container implementation is specified enough to allow you to get
away with any less abstraction - it technically doesn't have to be a BST,
although I guess you could argue that the containers should have mapped to
precisely defined data structures in the first place.

C++11's type inference does make STL iterators a lot less ugly, by the way.
Also (referring to the initial post), there's no reason you have to use for
rather than while when using iterators (while(v != c.end()) ...).

------
mindcrime
OK, I can see how some people might regard this as "humblebragging" or
whatever. But I think it's a valuable discussion, so have an upvote.

I'd say that being "gifted" is relative. Relative to my high-school senior
class, I'm fairly sure I was "gifted" in terms of IQ or whatever. I definitely
experienced the whole thing of "coasting" a bit and relying on my inate
smarts, and not studying and applying myself as hard as I could have. I was
mostly bored shitless in high-school and my grades reflected it. So, yeah, I
was "that kid" who always got the talks from his teachers "You could
accomplish so much if you'd just apply yourself". I mean, I'd goof off all
year, rarely turn in any homework, cut class constantly, goof off, almost
fail, and then make it up by acing the end of year exams. Drove my teachers
batty.

BUT... relative to the population of HN readers, I expect that I am - at best
- fairly average. Everybody here was smarter than most of their peers in H.S.,
and there are some folks who post here who are just off the charts (pg
himself, for example). So for me, it's not too hard to stay humble by simply
paying attention to what's being said around me here, and the articles that
get posted here.

 _What is the point of being extraordinarily gifted, if in most cases I don`t
feel challenged,. and in the end, I don`t accomplished much more than a
average joe?_

Hmmm... so, for me, college was a whole different experience than H.S., for
example, exactly because I had more control over my direction and I could
_choose_ things that did challenge me. I sought out the things that A. I found
interesting and B. challenged me. I've also always had this "thing" where I
tend to jump into the deep end of the pool and take on challenges that should
be (and sometimes are) too much for me.

After a lot of years of doing all sorts of shit career wise and having some
bizarre adventures (ask me about my years as a volunteer firefighter
sometime), I've reached the conclusion that the best path forward for me is to
start a business. So I've been working on Fogbeam Labs for about 2 years now
and that's been a tremendous experience. I've been forced to branch out into
so many new areas and fields and learn so much, that it's just ridiculous. But
it's also fun and exhilarating in it's own way.

I guess if there's a point to all that, it's to say "Yeah, I understand where
you're coming from... but realize that - no matter how gifted you think you
are - there probably are big challenges out there for you. But you have to
take some initiative and seek them out".

------
im3w1l
Is this you? <http://www.joelonsoftware.com/items/2009/09/23.html>

~~~
speeder
Heh awesome post, and hell yeah.

I work making games, I never figured the point of using unit tests.

Also yes, multiple inheritance and that shit is pure evil... Once I tried to
make a game engine using very strict OOP. It took me two years to make a
barely working game... It is great to impress employers, but I don`t plan in
ever writing code like that again.

But I won`t say this is not only good thought. I feel many times that I should
know more, even if is to know why I am not using it.

------
general_failure
Show me the code.

Then let's talk about how gifted you really are.

