

Signs of an awesome coder - mathgladiator
http://blog.mathgladiator.com/2010/08/four-signs-of-awesome-coder.html

======
jrockway
Four signs of a mediocre blog post:

1) The title contains the number of points the blog post is going to make.

2) Each paragraph is separated by big text, bold text, or an irrelevant cat
picture.

3) The actual text, excluding the big bold text, reads like it's the last 200
words of a fifth grader's first 500-word essay.

4) Each point is so generic as to be applicable to any person or situation.

------
warwick
I know it's a nitpick, but there are three dragon books. Yes, the red and
purple books are only different editions, but with 20 years and an extra
author between them I tend to consider them different books.

I'm suspicious of anyone who claims to be an awesome coder. That's an honour
that others bestow on you. Instead, strive to be a better coder than you are
now.

~~~
mathgladiator
You are right to be suspicious of anyone making claims of awesomeness. Most of
my signs were metrics that I use to evaluate coders, improve myself on, and
encourage others in my organization to do. (Also, blatant abuse of the word
awesome is common to my character)

------
SamReidHughes
More like, four signs of a marginally passable coder.

To be awesome by any standard you _at least_ have to have attributes that
surpass those of the author of the standard.

~~~
exit
ok, what signs do you look for?

~~~
SamReidHughes
The identification of an awesome coder is more an art than a science. One
cannot rate the awesomeness of a coder, or make rules that identify a subset
of the awesome coders, or do so for such of the complement. Identification can
only be made by observing a subject until the inducement of an experiential
intrusion upon the axiomatic framework upon which the observer's worldview is
based. There are probabilistic signs that can be used for recognition, but
they only work because the world has a finite population, and so you're only
talking about the probability that they're the particular awesome coder upon
which the rule was based. That being said, you may be in the presence of an
awesome coder if..

They know some languages, and they don't know others, and you know some
languages they don't know, and they know those languages better than you. And
when they pull out their laptop to show you what they wrote with the language
they don't know, it's a Thinkpad, and don't mind that green stuff dangling
from the PCMCIA slot, it's just a really really crappy graphics card they
built that runs on an FPGA that they use to run demos on a television back
home.

Then they ask you if you want to try writing your own little graphics demo,
and you try typing, and they're like, "Oh, sorry, I don't use qwerty," and
they reach over you and set the layout back to qwerty, but then they need to
change it again because you use dvorak and they had it set to the right-handed
dvorak layout, because how else would you drink coffee while coding? But they
quit coffee years ago because the highs and lows were bad, and now they do
judo in their spare time.

Then you look at their code and find that they've defined some weird types for
weird things. They've got their own custom string type, but wait, it just
wraps the default string type, and it's there to stop XSS attacks in the type
system. And then you look at the APIs that the different subsystems of their
programs use and you find that all of their APIs are literally impossible to
use incorrectly. Or when that can't happen, they're designed to be impossible
to use naively.

As you get to know them better, you discover they didn't have access to a
computer until college, and before then all they had was some hand-me-down HP
calculator where you enter numbers backwards because they reprogrammed it to
use p-adic arithmetic, which they had heard about during some invitation-only
summer math camp out on the plains. And before that, as a three-year-old child
they invented numerous variants of 52-card bucket sort, radix sort, insertion
sort, selection sort, and bubble sort, because inventing sorting algorithms
for a deck of cards and then executing them by hand was a fun way to pass the
time.

One day, you wonder out loud how to solve some particular problem efficiently,
and they tell you some slick solution using the chinese remainder theorem, but
when you ask them a question about RSA later on, they don't really know what
you're talking about because all the number theory they know they learned from
music. But then when you start explaining the math behind it to them, you find
that they implicitly know Lagrange's theorem (the group theory one) and don't
know why.

When you ask them if they've read any interesting books lately, they're like,
"Yeah!" Then they ask you what _you've_ read, and you answer "Well, recently
I've read Coders at Work, Godel Escher Bach, and Code Complete, 2nd Edition."
And then they tell you all about this new series they've discovered about a
wizard named Harry Dresden who wears a duster and drives around Chicago
fighting bad guys.

So you ask them if they've read SICP, and they're like, "No." Then you ask
what technical books they've read lately, and lately they've read
Transactional Information Systems, Cryptography Engineering, a recent version
of the HTML 5 specification, A Guide to HP Handheld Calculators and Computers,
Fifth Edition, and Physically Based Rendering, Second Edition.

When you ask them if they know any awesome coders (other than yourself, of
course), you find that they do. And who is it? Their ex-roommate, an aerospace
engineer, who rarely did any coding and doesn't know anything other than
Matlab and some C from "C for Engineers 101," but who made a reddit clone
using PHP and MySQL one day just because he wanted a personal reddit clone for
him and his friends.

~~~
hc
lolwut? who youre describing is just a really brilliant person, not an
"awesome coder"

~~~
SamReidHughes
Hehehe.

------
cstuder
I just added the Coding Horror-blog to my feeds. My code will magically get
more awesome any minute now.

------
dhotson
This guy is awesomely good at stroking my ego. Upvoted.

------
lolipop1
I think there are two types of awesome coders.

The first type is extrovert and thinks of himself as an awesome coder. These
people are known in the circle and are very few.

The second type is introvert and will not admit their awesomeness. As such,
you generally don't know about this type until you've worked with them for a
while.

------
chopsueyar
I did enjoy the Bruce Lee quote.

------
wglb
Considering _of course, you should try to keep the ego in check_ , I would say
"too late".

------
mrhappy
yet another ass hole.

