

The difference between a programmer & a hacker - Peroni
http://hackerjobs.co.uk/blog/2012/4/24/the-difference-between-a-programmer-a-hacker

======
daly
Well, not quite. I read a recent post that said that people over 35 should
find other things to do with their life. Mark Zuckerberg is quoted as saying
that young people are just better. Japanese companies won't hire programmers
over 35. The programming business has somehow become the new "fashion"
industry. Everybody wants "ninja rock stars" (somewhat a contradiction in
terms I think).

As someone who is a programmer for 41 years, leads multiple open source
projects, posts to github on a daily basis, and writes code every day I find
this trend disturbing. I have interviewed for a job where I helped implement
the compiler they use and I'm "not qualified for the job".

People ask me why I'm not in management. I've turned down several "promotions"
in companies because I live to program. Why would I move from the top of my
skill set to the bottom of a career I know nothing about?

So your advice is interesting but seems to have a target audience of recent
graduates, not seasoned professionals. Look over your hiring record. I'm
willing to bet that you have not hired anyone over 40, regardless of their
github status.

~~~
MatthewPhillips
Please don't be so polite. If a company is discriminating against "older"
programmers, please call them out by name so the rest of us know to avoid
them.

~~~
daly
The exact phrase is "We don't think you will fit in to our culture". I won't
name names for two reasons. First, I'd likely get a law suit. Second, the
attitude is pervasive. Recent post-graduates doing first level "filter
interviews" asking questions from their recent algorithms class. The process
is optimized toward new graduates. "What's the average order of mergesort?"
kind of nonsense. In 41 years of daily programming I've never had to code a
sort routine. I have spoken to Tarjan about computing the order of the Rete
algorithm but I don't think the Rete is covered in the college courses... and
who ever heard of Tarjan anyway?

Sadly, this means that we will continue to repeat the same mistakes "for the
first time". Knuth's literate programming, Alan Kay's Meta insights, Chandy
and Misra's parallel work, and other fundamental quality gains will have to
wait for another generation, assuming that generation ever gets its chance.

What I see are languages without standards "evolving". That is, they are
making all old inventions but badly (e.g. Python has "closures" but only 1
liners. What a joke.) They "abstract away" complexity but badly (e.g. Ruby has
gems but you have no idea what the ruby stack is really doing.). This is much
different from Alan Kay's abstraction. To quote Stroustrop "C++11 is a whole
new language!" And MapReduce as an "invention". Oh, please. The list goes on.

The worst part is the stupid hiring games meme. Solve our puzzle! Take our
quiz! Show us your blog! How many angels can dance on the head of a pin? Make
sliding colored blocks on web pages!

Experience is a valuable asset in most professions but is looked down upon in
programming. Unless, of course, your experience is "exact"... "oh, we need an
Oracle 10.3 database guru with stored procedure experience".

If you want to know what companies to avoid... look for the ones that
emphasize "culture'.

~~~
eli_gottlieb
I agree with everything you just wrote, and I'm 23.

Either something's wrong with me, or something's wrong with this profession.

------
marcusf
"You can't fake passion"

Honestly though, this gives a decent three step template for how to get
yourself on the top of the pile in about ~1-5h worth of work:

1\. Register a GitHub account, fork some projects that look cool

2\. Register a domain, set up a yourname.github.com page for hosting, and add
your contact info and link to github, whatever. Set up a mail redirector.

3\. Upload your own project. If you don't have one, probably a good idea is to
replicate some basic utility. How about pretty printing JSON using python from
the command line?

Bam! Passion, done. For extra credit, create a blog and write two-three posts
on why Java is verbose, something on getting started with node.js on your
machine and a benchmark of your json utility and another one.

In all sincerity, when I look at candidates I also look hard for passion, and
a blog, github, stackoverflow, etc puts them at the top of the pile.

As a counter anecdote, I've worked with tons of really, really good developers
who went home at five, and came in at nine, and brought it every day. For most
of them, life happened and with two kids it's harder to be prolific or show
resume-friendly passion.

On the other hand, I doubt any of them will ever need to send in a resume
anyway.

~~~
yummyfajitas
People already do everything you said. It's pretty easy to spot. Just look for
a bunch of forked projects with no commits by the person in question, a high
ratio of forked to original projects, etc.

The biggest giveaway is that there are no projects which are just for fun.

Incidentally, I've observed that the "just for fun" projects is a good trick
for identifying a serious economist as well. A real economist Tyler Cowen
obsesses over the economics of finding good restaurants and whatever else
tickles his fancy, whereas a pretender like Krugman is all serious policy
issues (both examples of economists who's policy I tend to disagree with).

~~~
mdkess
[http://en.wikipedia.org/wiki/The_Theory_of_Interstellar_Trad...](http://en.wikipedia.org/wiki/The_Theory_of_Interstellar_Trade)

~~~
yummyfajitas
I should have clarified that I meant modern Krugman. Back in the day he was
awesome. Thanks.

[edit: just noticed someone downmodded you. WTF, how does your valuable
correction to my comment deserve a downvote?!?]

------
jaimzob
"I will instantly disregard any CV that doesn't have reference to a GitHub
account"

Well bravo you. The problem with recruitment in our industry is not the
candidates with no GitHub account, its the egomaniacal interviewers who waste
no opportunity to turn any interview, in this case any _application_ , into a
passive-aggressive pissing contest.

 _Perhaps_ its acceptable for an interview to be adversarial, but I don't
think any other industry matches the tech industry for the utter _hostility_
of the interview process.

~~~
Peroni
I disagree. The problem you mention is certainly a problem but it's by no
means _the_ problem.

My disregard of people who don't commit to their own projects is entirely a
personal choice and I didn't intend on that point to be a direction.

------
VolatileVoid
This bothers me. I consider myself very passionate about programming - I think
most people who know me would consider me to be a hacker.

That said, I work for a company that does not allow its code to be open-
sourced. The job is demanding and after I put in 60+ hours a week, I simply
feel worn out. On top of that, I have an 8 month old son which means that my
sleep is fragmented at the best of times.

If you're unwilling to take the time to have a conversation with me to see my
passion (and this is something I _firmly_ believe comes across in any
interview) then I am unwilling to waste my precious time with my son to have
an inane dialog about my lack of a public portfolio.

~~~
minhajuddin
I think what the OP is trying to convey is that, passionate people leave
external residue of their passion. Which I think is true. Do you have anything
(code, scripts, blogs) to show (stuff which you worked on) when you worked at
a different place?

On a different note, 60+ hours a week sounds too much, not sure when you
started working on this job, but if you keep continuing that. You. Will.
Burnout.

~~~
VolatileVoid
Been 7 years, been burned out for nearly 6. ;) And I've been here since I've
graduated university in 2005.

And to answer the next question: it's a bank. Every time I've contemplated
leaving, there was some major life-changing event that prevented me from doing
so (i.e. getting married, wife losing her job, buying a house, moving abroad,
having a kid...). Likely I'm making some excuses here, but my point remains: I
know a lot of hard-working hackers that simply don't have the time to build a
decent GitHub profile.

Those hackers - whom I work with - all read HN extensively to stay abreast of
trends, and toy around with side-projects. But all that "side coding" happens
whilst at work. And therein lies the problem. If you have ever worked as a
programmer on Wall St. you won't need me to spell it out for you, but for
those who haven't: your firm owns your intellectual property. Even if it's not
related to the firm's business, if you do that work on the firm's premises, it
is theirs, and you are not entitled to export it. If you try it is generally
considered as grounds for termination.

~~~
jrabone
It's not just Wall St. Everywhere I've worked has had similar clauses (even
though some of them are of dubious legal stature in the UK).

------
jrabone
Increasingly, I'm thinking that "show us your GitHub" is a good filter for
companies or recruiters I don't care to work for or with, but then perhaps I'm
not the target market; I've been doing this for a while, I'm not a shiny new
graduate.

When I've interviewed people in the past, I've had them do some coding or
domain modelling / OO design exercise as a phone screen. On the other side,
companies I've interviewed with have used coding exercises (live or on paper).

I don't agree with the "if you're truly passionate" argument; challenge me in
an interview and you'll find out how passionate I can be :) That doesn't
extend to wasting my time with the latest recruiter fad. _If_ I want your job,
and if you want to see code, ask me to write you something. Pick a language,
I'm not choosy; I'll tell you if it's one I know or if I'll need some extra
time to learn it, and if I'm not interested in a job using
$SCRIPTING_LANGUAGE_OF_THE_WEEK$ we can stop there.

~~~
minhajuddin
The companies which ask you for 'your github profile', really want to see your
code. When, people are passionate, they do things outside _work_. This article
on Feynman is relevant: [http://www.physics.ohio-
state.edu/~kilcup/262/feynman.html?r...](http://www.physics.ohio-
state.edu/~kilcup/262/feynman.html?repostindays=413)

If you are passionate about football, do you play football? or atleast watch
others play football? That's definitely not your _work_. Why do you do it
then?

~~~
jrabone
Um, no, they don't. They're desperately trying to find a proxy for "is a good
hire" without spending a lot of time on it. GitHub is just the latest in a
long line of such.

I have some sympathy with them; recruiting is hard, vital to get "right", and
susceptible to gaming by unscrupulous individuals. It's also hard to get rid
of people once they're in (at least in the UK). However, this is WHY you have
to spend a lot of time on it. There are no shortcuts. Adding another checkbox
"Has GitHub account with code in it" to the process is futile. You know, it
won't surprise me to see "faked" accounts with lots of (scripted) commits
showing up. Easy to do. Or better, I'll sell you a convincing looking
repository with some code and a cheat-sheet of what to say when asked about it
at interview. Hey, cool new startup idea!

~~~
minhajuddin
I think the OP says, it is one of the first filters, which I think is a good
one. This is definitely no substitute for a thorough interview.

------
abulman
I've occasionally taken to send out a 'nano' CV - with my contact details, a
paragraph of text and 3 URLs. My Stackoverflow account, Github, and my tech
blog.

I've also been responsible for hiring developers over the last five years and
if I saw something like that, and there was anything useful to see on those
links, the person would be at the top of the shortlist. The only time I ever
came close to it - I offered the guy a job within the first hour of meeting
him. I've also worked with that guy again since then.

~~~
Peroni
Absolutely spot on.

Any hiring manager will have at least a dozen CV's in his inbox. Nano CV's
take seconds to read and you are instantly made aware of the candidates
ability plus it also gives an excellent indication of confidence in said
ability which is a crucial factor in finding good people.

~~~
zalew
There's a deep secret of HR most of us programmers don't know of or understand
- CVs are often printed on paper and transfered to other desks by hand. While
it'd be exciting for a nerd to receive, in a traditional HR dept such a 'nano-
cv' or what you call it will quickly become a piece of garbage just as it hits
the printer.

~~~
Peroni
To be fair, if you are applying to a HR contact, then traditional is the way
to go. I'd only ever recommend the use of 'nano' CV's if you can directly
contact the person who makes the final decision.

~~~
zalew
Let's be honest: that only can work for small startups ran by young technical
people or very small software houses where the 3-5 employees are in one room
next to each other. In any company where there's even a slight hint of a
corporate structure, you have to provide just what they are asking for or
you'll be that dude who sent us a cv with no cv on it.

//edit: Actually, now I remember I was that guy many years ago. I was applying
for a programmer at the tech dept of a publisher. Sent a very short cv with
some basic data and a link to portfolio. The head of IT (actually a clueless
older dude on sweatshop wage) came with a print, took a look at it very
disappointed and said "that's the shortest cv I've received". And there wasn't
even a laptop around to check my portfolio while speaking. From what I saw
there I didn't want to work for them anyway, but it still proves my point.

------
JamesLeonis
I see a lot of discussion over the Github comments. I understand the merits of
having an account with some code on it, as well as the restrictions of
corporations and time that prevent many people from maintaining a repository.
However this is a red herring.

The problem is visibility.

The resume is very poor at showcasing your talents. All the common resume
advice makes yours hard to differentiate from everybody else's. While having a
website, Github, Bitbucket, or something else will help your case, you are
already hobbled by the very generic-ness of the resume format. You can play
with the fonts and format, but I've found that it's a fine balance between the
"Pop" factor and annoying the reader.

The other major problem with the resume is they are very low cost in terms of
those applying. A unscrupulous candidate can send out hundreds of resumes to
shotgun his chances at landing a job. The time it takes to vet out these is
many times higher for the hiring party, and it is multiplied by the number of
resumes to vet. Companies must then increase the cost of applying, either
through coding tests or puzzles, but this paradoxically turns away candidates
who might be qualified and don't have the time. This is especially true for
small startups who have problems with visibility of their own.

To me, the question isn't Github use or having a website, but _how can I
increase my visibility_? Being physically present in front of people who are
hiring is so ridiculously powerful, that most hires are made that way. Thus,
obviously, meetups/networking/hackathons are a giant step in the right
direction, but not everybody is in the correct neighborhood and can't casually
attend. For those of us that aren't local, how can we disrupt the
email->resume->round-file process that effectively dehumanizes most
applicants?

I am warming up to short video submissions because of their ability to show
the personality and creativity of the individual behind all the credentials.
It allows for both a quick introduction, as well as introducing a subtle time
cost, on behalf of the applicant and it doesn't add significant (as far as I
know) time to the hiring manager.

On the other hand, maybe the hiring process is an NP-Hard problem.

------
r0s
I'm a junior level web developer in my first year at a salary job for such.
I'm self taught and motivated, with a good CV and lots of completed projects
under my belt.

Now it's become obvious my work has a serious visibility problem. Still
pulling less-than-average wages, I asked my employer for a performance review
which resulted in above average praise. Naturally I'm curious about the
difference between my work and a Real Developer. They explained that a a web
developer is dedicated with more experience on real projects etc, but reading
between the lines it seemed like a perception that I've yet to pay my dues
with long hours spent in frustration testing on overdue deliverables. So I
understand that resentment, who do I think I am to walk in and demand wages
consummate with my output? This is a communication problem. My abilities might
mirror my peers, but reputation is effecting my career directly. At this point
I realize most of my work is invisible, patching broken websites and
refactoring old code, deploying small changes etc.

I need more visibility, I need to show off my skills and process more. I'm out
of time and energy, my private projects at home are my own and I'd like to
keep them private (for now). Now I'm working with my marketing person to setup
a company development blog, hopefully that will give me more control over my
image with this company.

~~~
kstenerud
It's never a good thing to feel unappreciated or underpaid. If your employer
refuses to give you what you consider a fair wage, start looking elsewhere.
Many employers tend to operate on inertia: Unless you're about to leave, it's
easier to just ignore your problems. It's up to you to spur them into action,
which it sounds like you've been doing to varying degrees, but if they still
refuse to move, you have to kick it up a notch. Find a better offer from
another company. If your current company truly values you, they will try to
keep you on board. If not, you have a better offer anyway and will likely be
valued more at the new place.

------
gwat
I always have a problem in mind while in college, and the problem becomes my
real problem. If my day job requires me to work from 9am to 8pm, excluding 1
hour round trip commute, which is a norm in the city I am living in, how can I
squeeze out time to maintain a meaningful github repo/ SO profile / tech blog?
I really want to sharpen my skills AND display it, but my day job already take
up literally half of my life.

~~~
Peroni
I do understand your frustation and to be perfectly honest, I hear the same
concern _constantly_. The fact is, if you're truly passionate about something,
you'll find the time. I work a 60 hour week and I have a 2 year old boy and an
impatient wife at home yet I find the time to dedicate at least a couple of
hours a week to blogs, news, forums and so on and I can sincerely say that it
doesn't have any significant impact on my precious family time.

Keep in mind, a useful GitHub repo doesn't need to contain anything
groundbreaking. Honestly, even a simple fizzbuzz application is enough to
prove you can code.

~~~
drunkpotato
I understand the frustration of trying to find talent in a sea of uselessness.
(Not even mediocrity: I've interviewed candidates who could not explain a for
loop, how to write one, or when to use one.)

However, you are trying to take your version of passion and project it onto
everyone else, and I think that is harmful. If gwat is working 9-8 and in love
with their job, they are passionate and don't need a github to prove it.

It's your phrase "truly passionate" that rubs me the wrong way, as did the
content of the OP. Your definition of a True Hacker(tm) definitely does not
match mine. Your post reminds me of a checklist for a recruiting fantasist's
wet dream resume more than an explication of what makes hackers different, and
I found it distasteful.

As always, YMMV. I can only speak to how the post struck me.

~~~
hackinthebochs
I agree completely. It's pure ego: a "true hacker" is someone who is exactly
like me.

------
computerslol
The "every good hacker has a github account" sentiment is a bit scary to me.

As far as I know, after signing my hiring contract, all of my work is owned by
the company. Even work done at home; owned by the company. I do not believe
this is unusual, every company I have worked for has had me sign a similar
contract. If I make the perfect sandwich, the recipe is company property. I am
not allowed to distribute company owned assets without the company's
permission; and I am not going to ask the company for permission to share code
they haven't seen on github.

Even if I wasn't contractually restricted, I would not contribute to a github
account. My spare time is spent working on research projects for my
corporation's benefit. Many of these become real products. A few I've had
patented. These make us real money; github does not.

I hope I am not, in the future, disregarded for a job because I am missing a
link to a github account in my resume.

------
earnubs
I'd just like to thank you for putting all the clueless recruiters out there
into a frenzied word search for "Github".

Yours, A Bitbucket User

~~~
Ziomislaw
he does mention nongithub possibilities, quote: "[...]GitHub account or at
least a portfolio of personal work hosted on the candidates own website[...]"

Though I certainly agree with you, people don't seem to notice any other
hosting repositories.

------
hackinthebochs
This is exactly the problem with hiring. No one can take their ego out of the
equation. Every single one of these 'hiring hacks' stems from our deep-seated
desire to see ourselves as one of the "10x programmers". So we look for the
same thing on other people to validate ourselves. When we're in a position to
hire, we hire people who match our own particular quirks, re-enforcing the
idea that we're one of the best. All of these subjective hiring hacks mean
absolutely bullocks.

------
jbrough
"...typical career programmer that doesn't touch a line of code between Friday
night and Monday morning."

do late-night and weekend commits to a Github Firewall account count?

A pretty polarised view, here: we are all either 'career' 501 programmers, or
disenchanted hackers?

What of the guys who choose companies they're passionate about and which
inspire them to find spare coding time after hours and during weekends? You
know, the kind of role you don't need an opining recruiter to source on your
behalf.

------
tablet
There is one outstanding hacker in our company. He is one of the smartest
people I've met. He knows so much and incredibly deep. However, he has no
blog. He has no github account. He does not share own code anywhere. He does
not use social networks. Your advices quite correct, but quite dangerous at
the same time. I learned that CV are often misleading, so better to contact a
person and ask some questions...

------
aprogrammer901
I am a junior level developer and in both jobs that I have had since
graduating, to the senior developers the term programmer refers to a
professional software developer who takes pride in their work and does things
correctly, while the term hacker can either mean someone who is attacking a
system, or someone who comes up with kludge solutions to temporarily 'cover
up' poor design decisions i.e. a 'hack'.

------
viraptor
I don't mind giving bonus points for having a github account, but to take it
as a bad sign? Actually no - good for us - we'll get all the interesting
people stuck in jobs which don't allow own projects or make them hard to
publish with useless bureaucracy.

------
sparknlaunch12
Are there good candidates who don't have github etc?

They must exist. How do you avoid missing them?

------
FreakLegion
"Programmer" is a profession. "Hacker" is a calling.

