Live data from Hacker News

How to recognise a good programmer (2007)

inter-sections.net

31–40 of 47 posts

Re: How to recognise a good programmer (2007)

#31
post #19

Earlier quoted context omitted.

When I say "if everyone follows this philosophy," I include both VCs and college acceptance boards in that antecedent. Then, presuming you don't have a trust fund, the only way to get your start building stuff is to do it on the side while being underemployed; this is a net efficiency loss for the economy.

Firstly, colleges are not in the business of making admittance decisions based on whether you are a good programmer or not; secondly, 40 hours a week is the standard for being reasonably well-employed, which leaves a whole lot of hours for doing your own thing in life (not to mention the years you're in primary and secondary school, during which many programmers build a pretty passable CV of personal work.) I feel gu…

Okay, let me now be completely clear on how I interpreted your original statement:

Let "an institution" be "a place where one may work on projects safe in the knowledge that one's base needs for food and shelter will be met."

    I(x) := x is an institution

    S(x) := x seeks to join an institution

    A(x,y) := x will accept y

    P(x) := x has completed a project

    1. ∀xy( (S(x) ∧ I(y) ∧ A(y,x)) → P(x) )

    2. ∀xy∃z( (S(x) ∧ I(y) ∧ P(x)) → (I(z) ∧ y≠z ∧ A(z,x))) )

    ∴ ∀xy∃z( (S(x) ∧ I(y) ∧ A(y,x)) → (I(z) ∧ y≠z ∧ A(z,x))) )
Or more prosaically, "every institution that will accept a person (and thereby let them create a project) requires that there exists a project they have already completed (and thereby another institution willing to accept that person.)" Obviously there's a problem with that statement :)

That being said, I agree completely with your first paragraph. I was being half-satirical—not intending to find a flaw in your argument, so much as desiring to provoke you into strengthening your point by clarifying it (and trying to go one step beyond the common-sense assumption of "our current society" to see where this philosophy would take you.)

Do you think the world would be better if programmers could not transition into the workforce until they had created something that no one had asked them to create? The idea behind a company hiring you is that they need what you have, and so they pay you for it. If you're creating something and no one's paying you for it, then, presumably, either you aren't marketing it well enough, or it's something nobody needs (or you've made it as an act of goodwill, but the likelihood of Joe the Programmer writing FOSS as anything other than a prerequisite to a job—which, therefore, means that he really would rather have been paid, but just couldn't find a taker, again implying that he was underemployed—is slim to nil.)

Re: How to recognise a good programmer (2007)

#32
post #19

Earlier quoted context omitted.

When I say "if everyone follows this philosophy," I include both VCs and college acceptance boards in that antecedent. Then, presuming you don't have a trust fund, the only way to get your start building stuff is to do it on the side while being underemployed; this is a net efficiency loss for the economy.

Firstly, colleges are not in the business of making admittance decisions based on whether you are a good programmer or not; secondly, 40 hours a week is the standard for being reasonably well-employed, which leaves a whole lot of hours for doing your own thing in life (not to mention the years you're in primary and secondary school, during which many programmers build a pretty passable CV of personal work.) I feel gu…

I think this is trickier than just saying "do this, you obviously have time", but not for the reasons that derefr gave. I think you are assuming things that may not be true of all people, and then using that to draw very broad strokes which may have a steep rate of false predictions.

Forty hours a week is an theoretical standard; it says little about the actual hours put in by programmers. Urban lore suggests the accurate number is higher, sometimes much higher.

The free time a programmer isn't guaranteed to be available in large chunks for hacking. There are a number of things that can take up that time; some of them are bogus, but some are quite reasonable. Enough of that time gets chewed up, the programmer really doesn't have the kind of time they need to focus on deep, substantial projects. Some do find the time, but there are more factors involved than simply motivation.

As for primary and secondary school years, this too depends on a number of factors, not all of them matters of personal motivation and ability.

Assessment is hard enough when you don't have preconceived notions of the molds other people fit into; if you start assessing people already cherry-picking assumptions about them based on what societal fashion suggests is "normal," then your ability to fairly assess them is already screwed. You're not trying to fairly assess them for them; you're doing it for you, because doing it fairly is your best shot at not screwing up.

Re: How to recognise a good programmer (2007)

#33
post #28

How much weight would anyone here give to the "Started programming at university" criterion? It's one that is bugging me slightly because 1) it applies to me and 2) it's not something I can go back and change.

I know a lot of good programmers who started in university. Not everyone discovers their passion when they're young, or has the opportunity to pursue that passion (in the third world, starting young may mean starting in university). Some of the skills that help you "code smarter" are not necessarily learned in front of a keyboard (math, English, etc.).

Re: How to recognise a good programmer (2007)

#34
post #28

How much weight would anyone here give to the "Started programming at university" criterion? It's one that is bugging me slightly because 1) it applies to me and 2) it's not something I can go back and change.

Why did you wait until Uni to learn to program?

Is that the point when you finally realised you had the freedom to do what you wanted in life? - If so, perhaps you are alright.

Is that when someone told you that you needed a job, and programming looked well paid? - Perhaps not so good.

Re: How to recognise a good programmer (2007)

#35
post #28

How much weight would anyone here give to the "Started programming at university" criterion? It's one that is bugging me slightly because 1) it applies to me and 2) it's not something I can go back and change.

Honestly, it would serve more to guide my questions than it would to just flat dismiss someone as untalented or apathetic.

Curiosity and genuine interest develop at different times for different people depending on the circumstances of their life. They might have not discovered programming until later in their life, or they may have been soured by an bad experience early on and only came back later on.

For some people, they don't discover programming until university, but then find the absolutely love it and quickly develop a considerable talent. For these people, who do exist, the pre-university test is a false negative.

A lot of these tests people come up with are based on the concept that past performance indicates future potential. The thing about these tests is that they suck really bad, except that for certain things there are no other tests.

A meteorologist I once heard talking about weather phenomena in Alaska joked in his talk about how there are two possibilites for available weather data there: data sparse, or data void. It is much the same in finding good programmers. There are a lot of important considerations, and getting a feel on each depends on sparse data at best. The best advice I can offer is don't take things like this too personally. Following advice from pg almost certainly applies to applying and interviewing for jobs as well.

Don't be put off if they say no. Rejection is almost always less personal than the rejectee imagines. Just move on to the next. (This applies to dating too.) - Paul Graham, Undergraduation.

Just take it as a sign that they probably would be judging you even after you are hired in ways that you might find unreasonable. Not every hacker is meant for every programming job.

Re: How to recognise a good programmer (2007)

#36
post #27
post #8

I know OP means well, but this post provides far more data about his own experience than anything that can be reliably used by the reader. What he calls "indicators", I call "co-factors". They may or may not accompany a given programmer, and they predict nothing. Generally speaking, good programmers are intelligent and do care about their work, but his positive indicators are much more a matter of personal preference…

There is one sure-fire way to identify a good programmer: their work. In fact, it is by definition the way that we should evaluate programmers. It is the great equalizer, and with web technology, exposed for all to see. Unless you are presuming a team of only a couple of developers doing their own thing, there is a real challenge in determining the extent of the programmer's responsibility for something that is expos…

Yes. This is a far more difficult problem than people seem to appreciate. Except for open, solo projects, finding out the work that people have done is challenging. Which goes a long way to explain the difficulties of the job-finding and interview process.

Consider the common case of the average developer (especially so for a non-web developer). They've worked on several closed source projects on which the extent of their participation is non-trivial to determine. Ultimately you have to talk with them and suss out what they actually know, which is at least a day long process in order to attain any degree of accuracy.

Even if they've worked on open source projects, it may take a lot of effort to grovel through their commits to find out whether or not they're telling the truth on the size of their contributions.

Incidentally, all of this is a good reason to have your own personal solo project and your own personal blog, though it can take a lot of effort to do so.

Re: How to recognise a good programmer (2007)

#37
post #22

TL;DR - they're smart and their whole world outside of work revolves around their profession and they've been doing it their whole lives. You could write a "How to recognize a good [X]" article about almost any profession if that's your thesis. Let's face it, the vast majority of work programming isn't that hard. A lot of programmers, perhaps especially the good and smart ones, might rationally realize that having a…

I think there's a good point in your comment but I think you have buried it in unnecessary insults and mischaracterizations of the article.

For all of the great devs I know and have known programming is very much a passion for them, and they will engage that passion outside of work. But this doesn't mean their job is their life or that they don't maintain a healthy work/life balance. Indeed, working on projects they're passionate about outside of work can often provide a release from toiling with a brain-dead code base at work.

Also, the vast majority of software development may not be hard, but perhaps that's because the vast majority of developers aren't that good. The work being done by the best devs is orders of magnitude better (and more challenging) than the work being done by the daily-wtf generating paycheck programmers in the enterprise trenches.

Re: How to recognise a good programmer (2007)

#38
post #13

I subscribe to the Build Stuff school of programmer evaluation. Why do you hire a programmer? So you can have him build stuff. Has he built stuff? Then he can probably build stuff. If he hasn't build stuff, he might be able to build stuff, but it is a better idea to have somebody else pay to figure out whether he can build stuff or not.

I subscribe to the Spolsky school of hiring: you need someone who's smart and gets things done. After all, any idiot can put together a neat website given a copy of "Learn Django in 21 Days". But is that person going to be able to move that site very far? Will they be able to understand other people's code?

Now, I'm not sure I agree with the author's point of any business person being able to spot a good programmer. But I think that if such a thing were possible, this would probably be how such a list would look.

But then again, we probably don't even agree on what a good programmer is. If there were an objective, standard way to find good programmers, articles like this wouldn't be necessary.

Re: How to recognise a good programmer (2007)

#39
post #16

Earlier quoted context omitted.

So, if everyone follows your philosophy, how do people get started building stuff?

Hint: You do not have to be employed by a company in order to build stuff.

This is where the author's string of side projects comes in to play. I mean face it, it's kind of difficult to make something really cool in your spare time without getting paid to do so.
Post reply on HN