
Signs that you're a good programmer - wyuenho
https://sites.google.com/site/yacoset/Home/signs-that-you-re-a-good-programmer
======
simonsarris
This list reads like a cringe-worthy case study in myopia.

Why is an active Wikipedia account better than an active MDN or StackOverflow
account?

Why does it matter if someone knows what Arduino is?

What if "eager to fix what isn't broken" means you get caught up in hip and
new technologies that cripple your businesses utility?

ThinkGeek toys? Obscure books and songs?

> Has a habit of boring people to tears explaining something tangentially
> related to the news, such as the cockpit layout of the Airbus 330

No. Just no, please stop.

I'd take "Good interpersonal skills and a disinclination towards generalizing
people" over this list any day.

~~~
fusiongyro
These are just rhetorical devices. An active Wikipedia account is just
standing in for active participation in sharing knowledge online. S.O.
obviously counts, and MDN probably does too (I know nothing about it).

Arduino is standing in for, knowledge of things that aren't directly
applicable day-to-day. Hobbyist stuff.

I think it's acceptable to define a good programmer in terms of qualities that
aren't beneficial to business. In the real world this is one reason why we
have and need management. A big part of management's job is to convey to the
rest of staff what the business goals are and how they are to be achieved. It
would be nice if all programmers synthesized this without having to be told,
but I don't see why that should be considered a necessary prerequisite for
being a good programmer.

ThinkGeek toys, obscure stuff are just specific examples of a general pattern
of curiosity and playfulness.

~~~
grey-area
This is Metonymy:

"Today _The White House_ issued a statement..."

This is not:

"Has an active Wikipedia account"

Metonymy is the use of a name (usually something specific like a building, or
a part) to stand for something else (usually more general, like a government
or organisation, or the whole thing), not the use of one example website with
lots of others implied (I don't see where they are implied anyway, this is
quite explicitly listing having a wikipedia account as an attribute of a good
programmer - what a curious idea).

Most of the symptoms are just trivia entirely unrelated to whether someone
might be talented at programming like owning a certain brand of toys, and this
undermines anything serious the writer might want to say.

~~~
fusiongyro
I misremembered, but I can't seem to recall the name of the device where you
show a specific example from a class to stand in for the whole class. This is
remarkably hard to search for. Please be useful and remind me what the proper
name of the device is.

I think everybody is taking this article both too seriously and too literally.
Sadly there is no known cure.

~~~
jenrzzz
I believe that's _synecdoche_.

~~~
fusiongyro
Thank you.

------
kirinan
Sign that you will have a successful career and will get things done: you
didn't listen or care what the list was.

Seriously, these lists mean nothing. This list is some guy sitting behind a
computer who may or may not even be a good developer (I didn't check though),
and telling you how you know if you are a good developer based on some
arbitrary lists that are his own opinion. Listen to yourself, constantly
improve and have a thirst for knowledge and you will be a good anything, not
just developer. And if you are not a great developer, there are tons of
developers that make huge amounts of cash that are probably not that great at
actually designing and writing code, but they can get the job done. Who cares
if some list says you are a good/bad/terrible develop, you do you and you'll
be just fine.

~~~
jakejake
The irony being that you've just provided another alternate list!

I think your comment makes good points though. The OP makes a lot of good
pints as well. The bits of humor make it clear to me that it's not supposed to
be taken literally. This is just a list of indicators.

~~~
maxbaroi
"Listen to yourself, constantly improve and have a thirst for knowledge..." is
pretty general advice. He explicitly says it's not specific to being a
developer. I don't think, "constantly try and better yourself" as an over-
arching life motto is any way equivalent to "buying plushies at ThinkGeek."

Side note, I'm pretty sure the author stole half of his various bullet-points
from the DSM's diagnostic criteria for autistic spectrum disorder.

------
andrewljohnson
The tone of the article was so tongue-in-cheek, that I am surprised by the
seriousness and vitriol in the comments.

Obviously, to me and the author at least, this isn't like an actual guide to
being a good programmer - this is a semi-autobiographical, kidding essay about
the subject.

That's how I read it at least - I expected to agree with some points and not
with others, and empathize with a fellow soldier. It tweaks a lot of whiskers
because he invariably badmouths something you like or props up something you
hate. For me, I was scoffing when he said tabs vs. spaces wasn't important.

~~~
onemorepassword
I think you'll find that HN, and our profession in general, has a
disproportionate amount of people with a strong tendency to take things very
literally and overlook the intended humor.

Especially when it comes to matters they take very seriously.

------
twerquie
> A destructive pursuit of perfection

> * Preference for dismissal over compromise

> * Contempt for delivery dates

This one is so completely backwards it makes me wonder if it is somehow
tongue-in-cheek. The best programmers are masters of compromise. In the real
world, nothing is perfect.

> * Substantial refactoring on the eve of a deadline

If a team member did this regularly I'd have to recommend their termination.

~~~
cunac
It is true that we shall not be able to reach perfection, but in our struggle
toward it we shall strengthen our characters and give stability to our ideas,
so that, whilst ever advancing calmly in the same direction, we shall b e
rendered capable of applying the faculties with which we have been gifted to
the best possible account - Confucius

~~~
frozenport
lol, and at the end of your life you will have made the perfect app?

~~~
qu4z-2
Of course not. That's the nature of perfection.

------
danbruc
There are two kinds of good programmers. The first kind are good programmers
to hire; they get the job done and ship a working product on time and budget.
The second kind are programmers producing outstanding awe-inspiring code in
their spare time after working on it for eons and rewriting it from scratch
every time they had an insight how something could be generalized to unify
different aspects.

There are almost no men that are good programmers and good programmers.

~~~
twerquie
Amen, a thousand times.

------
danielweber
"How to hire people exactly like yourself"

There are many different kinds of programmers.

~~~
mwfunk
Totally. A disturbing number of things on the list are cultural or tribal
signifiers rather than things that have anything to do with being someone who
can get stuff done, get it done well, and get it done in a reasonable amount
of time (which is a big part of my own definition of "a good
programmer"...maybe that's part of my disconnect with this).

When interviewing people a common pitfall is to subconsciously look for stuff
like this, which is really bad because that means you're interviewing for
friends rather than coworkers. It also means you're unfairly discriminating
against people you can't immediately relate to on a personal level.

For an extreme example of this, look no further than ESR's version of the
Jargon File. He basically extends his idea of being a good programmer to
political beliefs and all sorts of unrelated things.

~~~
qu4z-2
In fairness, having similar culture within a company may not be a bad thing.
Windows programmers and Unix programmers can both get things done, but put
them on a team together, and ... well, I'm skeptical.

------
ambiate
"Doesn't become defensive when the boss mentions that they're looking for an
off-the-shelf alternative to what they've been writing for the past few years"

Hits so close to home, I might have a bruise. My whole department went through
the five/seven stages when we mentioned changing our main platform to another
company's product.

After countless presentations of superior software, they went through the
stages again. Finally, putting the idea on the shelf for a year, they went
through the stages again.

It is truly the "can't see the forest for the trees" sentiment. Cost center
programming is a job of fear for most. New hires, new software, new
terminology, etc leads to blame and fear to the point of malice. Job security
is their biggest fear; but their attitude towards 'new' prevents the business
from moving forward and decreases their job security.

------
zafka
I really enjoyed this article. And I will admit that it is because I
identified very much. That being said, I am 53 years old, and pretty much in
demand as an embedded programmer. I don't have an ardinio, but I have multiple
microchip demo boards. The kicker is , I just bought a bottle of silicone oil
to attempt making my own silly putty. A few weeks ago I tried a few variations
of corn starch modeling clay and wanted to step up my game.

------
bnegreve
_A cubicle or desk populated with toys that came from ThinkGeek_

I realize that it's a joke (or is it?), but I disagree with this. In fact, I
have hard time to trust people that show any strong sings of group-belonging.

~~~
pestaa
Very thoughtful and provocative comment. My initial reaction was agreement,
but then don't we enjoy belonging to this group of hackers? Although you might
argue there are no strong signs shown to the outside world.

(That said, trusting a developer with a bunch of ThinkGeek toys? Hell no.)

~~~
mhurron
> That said, trusting a developer with a bunch of ThinkGeek toys? Hell no.

Why not?

------
thomasjoulin
"At least 10% or more of their commits reduce the line-count of the project
without adding new functionality"

It would be great if there was a git command to check that. Now _that_ would
be HN worthy. I skimmed the rest of the article and it seems to be typical
link bait list

~~~
scrabble
This may not always be indicative of positive quality.

I could reduce the line count on many files and increase complexity and reduce
maintainability.

~~~
qu4z-2
It's the problem with optimising on metrics.

It seems unlikely that you would encounter someone who naturally reduced line
counts while making code worse, but once it's being checked whether you're
reducing line counts...

------
shaggyfrog
> Eager to fix what isn't broken

I've depressingly found, in recent years, that most programmers I've
encountered can't be bothered to fix things that _are_ broken, never mind
stuff that isn't. I don't see a lot of people who are taking pride in their
work anymore. It's a damn shame.

------
waterlesscloud
I knew the comments on this post would all be shallowly dismissive.

Wait, does that make me meta-dismissive? How far does this rabbit hole go?

~~~
itsybitsycoder
You should've poisoned the well too. Then once someone dismissed your comment,
we would have an infinite loop.

------
dominotw
Why are people constantly writing silly stuff like this. We need to stop this
relentless back patting.

~~~
qu4z-2
Exactly! Get your humour off my porch!

------
InclinedPlane
Signs that you're a good programmer:

You have a habit of building things that people find useful or valuable
(including other coders).

END OF LIST

------
jheriko
i'd like to see this list after about 10 years more experience. some of these
traits are dangerous in a production environment :)

------
frozenport
This list is highly speculative containing dangerous and self serving advice.
I think the author lacks both the sources, data, and experience to make such
blanket statements.

 _C. Lawrence Wenham was the lead architect, developer and Director of IT at
FragranceNet.com and is currently developing a new personal finance app for
the iPhone._

------
Wilya
I'm not sure there is much actionable advice to be taken from this list (and
I'm not sure it was the goal anyway), but that was entertaining to read.

There's a few obscure references that I got, a ton others that I didn't get,
and even more points where I'm not actually sure there was a reference to get.

------
prakster
You mean "Signs that you're the world's greatest programmer but don't have a
life".

------
djtriptych
I have an opinion on this list!

------
flyinglizard
I don't think this list is what makes a good programmer. Maybe I've grown to
look at programming as "problem solving" and "solution providing" to real
world problems, and take the actual process of writing code for granted.

------
jokoon
> Signs that you're a good programmer

I would have said "have a job as a programmer".

------
snambi
Ignore the examples. many things are said right.

------
doki_pen
1: You are just like me!

------
ttrreeww
Lots of recruiter spam.

