
Put Yourself Out There: The Myth of the Genius Programmer - davis
http://joshldavis.com/2014/06/13/put-yourself-out-there/
======
mattgreenrocks
This meme of "do things and blog about it" presumes a certain amount of
extroversion. I'm rather fed up with it altogether.

Would you rather be _thought of_ as the best developer, or actually be the
best developer? The two aren't mutually exclusive, but I find it entirely
suspicious that the rise in needing to "put yourself out there" has correlated
so strongly with social media becoming pervasive. If I have a finite amount of
time available for hacking, why do I want to spend a not-insignificant amount
of it signaling?

Hacker culture has been corrupted by this 'need' for influence. Perhaps it
isn't the same as the neckbeard culture I looked forward to joining in my
youth.

~~~
samspot
The theme of all of this isn't just to signal. It's that putting yourself out
there will cause you to bend and grow. Over and over I read testimonials of
people with low confidence who decided to do something like this and found it
incredibly fulfilling. Don't just do the things you've always done. Stretch
yourself, and you might be amazed what you can accomplish. Blogging improves
your writing ability at the very least, and can also cause you to think more
critically about your ideas. If you happen to build some influence or good
relationships, even better.

Obviously if you aren't interested in any of that, there is nothing wrong with
spending the time the way you want to spend it. But it's not about signaling
or influence, at least as I interpret it.

~~~
mattgreenrocks
It's unfortunate that someone downvoted you, I've tried to negate that.

The only reason I made a comment to this effect is that I've noticed an uptick
in articles about how Github is your resume/marketing yourself/marketing your
OSS/how you should only work on 'important' OSS/some other silly notion. I
want to believe this isn't a problem, but with open source powering so much,
it appears that people want to be the next DHH.

I think there is _something_ to worrying about software shifting to a heavily
reputation-based economy (as opposed to one oriented around making things).
Namely, in that shift, it rewards people who generate noise, regardless of the
amount of signal contained. Polluting the well, in this case, results in
everyone having to output a certain amount of signaling just to keep up.

It's entirely possible I am projecting some here, as I've struggled with this
myself. I just don't want to always concerned with this tripe, because it's
not the same at all as actually making software.

~~~
bollockitis
samspot is dead on here, at least from my perspective. I am very private and
have suffered from social anxiety for years. I don't use Facebook because I am
overly sensitive to the reactions of others (no likes? everyone hates me and
thinks I'm stupid). I spend far too much time thinking about what others think
of me, so my natural inclination is to completely remove myself from public
view at all opportunities. I don't use GitHub for this reason. I'd like to
contribute and become part of a community, but I'm so terrified of being
judged that I never step forward.

So I completely understand the author's attempts to go public. It isn't about
being the next DHH, it's about overcoming the fear of rejection. I have been
considering "going public" for years for this very reason.

~~~
samspot
Freaked me out a bit saying I was dead, I appear to be alive again, at least
from checking with some random devices.

I'm not sure if this describes you, but I can be pretty thin skinned on the
internet, which often discourages me from posting. I write things and delete
them more often than I hit submit.

One nice thing about going public is it's unlikely anyone will notice you for
a while. Even patio11 says only his brother looked at his blog for a few years
(IIRC).

~~~
patio11
_Even patio11 says only his brother looked at his blog for a few years
(IIRC)._

If only getting visitors were as easy as being related to them!

No, seriously speaking, my blog had perhaps 200~300 visitors for the average
article from 2006 through, hmm, late 2009 or so? (What changed? A combination
of discovering HN, going full time, changing my writing style to exclusively
focus on the 4k to 8k word essay that I feel is generally my best work, and a
minor refocusing on topics.)

------
warcode
But to get hired in the first place you have to show overconfidence in your
knowledge and abilities.

Slightly annoying how that works.

~~~
opendais
> But to get hired in the first place you have to show overconfidence in your
> knowledge and abilities.

I've had interviewers literally tell me that "Ya, that was a trick question to
see if you thought you were god's gift to programming. The fact you didn't
rate yourself a 9 or 10 proves that you are sensible."

So I'm not sure that is true.

I think it is a question of being confident enough that you don't second guess
yourself yet humble enough that people don't think you have an ego that will
cause workplace drama.

~~~
lostcolony
I've asked that. "On a scale of 1 to 10, how fluent do you feel in X?" And the
questions asked get partially tailored to that.

Anyone answering 9 or 10 is in for it.

~~~
jiggy2011
0 - 10 is a pretty horrible scale. If I was rating myself on such a scale I
would have got lower as I got older. At 21 you can be a "10" by being the best
in your CS class. At 35 you have to compare yourself to people with serious
achievements.

~~~
mwfunk
No, the same standards apply regardless of how old you are. If this question
comes up in an interview, you are being asked to rate yourself on an objective
scale, not on a curve based on where you're at in your career. A 21-year old
(or 35-year old, for that matter) who rates himself a 10 is almost certainly
way overconfident and will run into (or cause) all sorts of problems. What
you're complaining about is actually one of the main things this question is
trying to determine.

Put another way, someone who rates himself a 10 because he's the best in his
CS class is someone who doesn't know what he doesn't know, and is also likely
to be a primadonna. Someone who shows some thoughtfulness, skepticism, and
humility when answering this question is more mature and self-aware, and is
much more likely to be an effective part of the team. The rest of the
interview is supposed to establish how much they actually know.

~~~
jiggy2011
But not knowing what you don't know is really to be expected of people who are
recent grads in particular. I think this reveals why the question is
problematic unless it is worded very specifically. A 10 from a recent grad
could legitimately mean "I've had no problems learning everything that has
been thrown at me so far and have very high confidence that I will easily be
able to learn more" as much as it could mean "I know everything".

~~~
lostcolony
Then we will have communication issues and it will be difficult to work with
you. The question was worded "On a scale of 1 to 10 how fluent do you feel in
X". This is explicitly -fluency- (or phrased another way, "how well do you
know X"), not something completely undefined like "How good are you at X?".
The question is asking you to project your own perceived scale over a
reasonably definable axis, not an ambiguous one.

Project the question into another domain - "I passed my intro Spanish class",
"Oh yeah, on a scale of 1 to 10 how fluent are you in Spanish?", "I'm a 10".
Nope.

~~~
jiggy2011
There's a difference between being fluent in something and mastering it. You
might be capable of reading and writing Java code, but that says nothing of
your knowledge of JVM internals or of any particular framework etc.

It's like the difference between being fluent in Spanish and being able to use
the language to write moving poetry or having a very extensive vocabulary.

I think it is much better to be as specific as possible about what skills you
expect the candidate to have going in and what you expect them to be able to
learn on the job.

------
bambax
I started a blog some years ago and here's what happened: nothing.

~~~
brickcap
I have started to enjoy nothing happening to my blog. Since I am sure that
nobody actually reads my blog I write fearlessly. Some times the posts are so
silly that I would have been embarrassed if some one actually read it.

Any way I go back to my old posts from time to time and have a good laugh
about them. Nothing is the best thing that has happened to my blog.

------
adolgert
My recent favorite reminder of why I need others in order to program well is
the list of things I am unqualified to say about my own work, including, but
not limited to

\- Is the user interface intuitive?

\- Will this library be efficient for its most common uses?

\- Have I given the simplest explanation for what this thing I wrote does?

It helps to be able to say, "I can't know that yet, not until I ask someone."
That might happen in use cases, watching over someone's shoulder, showing a
conference poster, or getting complaints on a message board two years later,
but it's always collaborative, even when I have my act together.

~~~
danielweber
I have a lot of ideas, many of them good, some great, but quite a few are
horrible. Just one person to bounce them off of (and who isn't afraid to say
"no") is incredibly valuable.

------
TacticalCoder
Why do people who mention Linus Torvalds, Theo de Raadt, Rich Hickey, Fabrice
Bellard, Simon Peyton Jones, Satoshi Nakamoto (ok, that may be several people)
etc. get downvoted to oblivion?

This seems especially weird seen most people here are using Git and many of
the things we have wouldn't exist without these people.

If I'm not mistaken Rich Hickey took one or two years off, pulled the plug and
went on to create Clojure.

Saying "But that's only one in ten million" ain't an argument: there _are_
genius programmers out there and we're all using daily piece of code from
these genius programmers.

Watching videos from Linus Torvalds (the talk about Git he gave at Google is
amazing), Theo de Raadt (anything about security), Rich Hickey, Simon Peyton
Jones, etc. is one of the thing I prefer to do.

I've also personally met several genius programmers: including one who had
been working on at Adobe and who (while not at Adobe anymore) then single-
handedly wrote a Java bytecode to Objective-C source code converter. I know
for a fact that this converter allowed to write an app which reached top 3 in
the appstore.

I've also competed ten years ago or so versus plain geniuses in the TopCoder
algorithmic competition. Some of the best ranked coder there had incredible
achievements, like for one of them having won the mathematics olympiad several
times.

That's the thing: even "one in ten million" means that there are quite a few
genius programmers out there among us. And we owe a _lot_ to them: not only
have we many great tools and projects which would never have existed without
them, but they also let us get a glimpse inside their beautiful minds through
the messages / blog they post and through the video they make.

Why downvote?

~~~
ProAm
The down vote comes from the idea that this is not the only way to create
good, useful, widely used and appreciated code. Of course there are geniuses
that have enough raw talent, dedication and focus to do amazing things with
ease. But there are plenty of others that while not considered a 'genius',
will have to use pure grit to accomplish feats of greatness.

------
laichzeit0
Fabrice Bellard seems to me an outlier to the author's premise. He's like the
very definition of a hermit genius-programmer.

~~~
davis
Well of course there will always be outliers =]. I prefer the Satoshi Nakamoto
outlier myself.

~~~
mnw21cam
Donald Knuth.

~~~
davis
Fitz actually jokes about METAFONT in the video at 11:29:
[http://youtu.be/0SARbwvhupQ?t=11m27s](http://youtu.be/0SARbwvhupQ?t=11m27s)

------
jleyank
There's two ways of being known as a hot-shit programmer. The first has been
described by Joel ("Smart. Gets things done.") and Rands ("Be productive, be
fantastically clever when necessary, speak truth to power, hit your dates, and
don’t ship crap."). These are people who deliver the goods. Deliver them often
enough and folks will know your name.

The second way is harder, particularly for the introverted. This involves
self-marketing, being obviously and repeatedly correct. It also requires a bit
of political adeptness and a bit of visionary helps as well. Both Joel and
Rands have done very well here and there's a number of others who have made a
name for themselves via the web. If you have a choice, choose this method as
it yields better visibility. Although it also means that screw ups are
magnified if and when they occur.

Am I the best programmer going? No. If you're reading this, I suspect you're
not either... But I work hard at delivering the goods, and I'm good at what I
do. People like this get remembered when new projects start. No matter how big
or small your niche is or how many you fill, impress others. And don't
needlessly piss them off - people remember assholes far longer than good 'uns.

------
coldnebo
Over the past few years, I've put myself out there as well, not because I'm
extroverted but because there is no better laboratory test of your
ideas/convictions.

I'd only add one thing to this approach: make sure that you are at least
solving one of your own problems and that the solution is _real_ \-- i.e. it
really benefits you in some measurable way.

I did this a few years ago with a relatively obscure gem that solved a real
problem I actually had with refactoring business logic. I put it out there to
get feedback on it and was rather disappointed with the initial reactions
("You don't understand MVC!" "You've done it all wrong!"). But I put myself
aside and tried to understand the feedback from their point of view.

One thing that became obvious is that most people didn't see the solution as
valid because they had completely different context and approach. Fair enough.
There were also several that simply 'cargo-culted' mvc responses without
realizing that my gem was a thin wrapper around methods that DHH had already
put in Rails (so if I didn't understand MVC, neither did he! ;) And no one
commented on the biggest problems I legitimately saw with my approach: thread-
safety and closures on controller instances in a prod env.

But none of that stopped this gem from being incredibly useful as I tried to
break apart a giant monolithic legacy app that challenged traditional
refactoring approaches. Maybe it's not perfect, but at least it's a way
forward.

So the moral of the story is: put your idea out there, expect feedback and
criticism (maybe only criticism since the people who like things tend to keep
quiet (e.g. the rvm story last year)) -- but so long as this thing is useful
to one person (only you?), use it to make your life easier!

If it's useful to others, that's a bonus learning opportunity, but that
shouldn't be your sole motivation.

------
alexandere
off topic: I missed this kind of talk at the last two google io's

------
Thiz
Those who can't code, blog.

