Live data from Hacker News

I Hate Puzzles: Am I Still a Programmer? (2011)

zef.me

121–130 of 268 posts

Re: I Hate Puzzles: Am I Still a Programmer? (2011)

#121

>Four people need to cross a rickety bridge at night. Unfortunately, they have only one torch and the bridge is too dangerous to cross without one. The bridge is only strong enough to support two people at a time. Not all people take the same time to cross the bridge. Times for each person: 1 min, 2 mins, 7 mins and 10 mins. What is the shortest time needed for all four of them to cross the bridge? 17 minutes, if you…

It'll take 17 minutes for all the people to cross if they all start on the same side: start: 1,2,7,10| 1: 7,10|1,2 = 2 minutes 2: 1,7,10|2 = 1 minute 3: 1|2,7,10 = 10 minutes 4: 1,2|7,10 = 2 minutes 5: |1,2,7,10 = 2 minutes total: 17 minutes

http://en.wikipedia.org/wiki/Bridge_and_torch_problem

Re: I Hate Puzzles: Am I Still a Programmer? (2011)

#122

Silly question of course, anyone who has programmed for 18 years is a programmer. But the missed question is "Am I a hacker[1]?" And it is that which puzzles attempt to ferret out. Let's take the example of the 1000 piece Escher puzzle that the author uses as an excellent example. They are correct that most of the pieces are just 'shades of grey'. Impossible right? If you're a hacker you say "Challenge accepted!" if…

> if you're not you say "This is way more work than its worth." Because what the hacker mentality gets reinforcement from, is overcoming the 'impossible' (or simply the 'you can't do this') not the actual puzzle assembly. Hmm, up until this, I thought I was a hacker. When I see a problem worth solving, I'll dig in and try different tools that I've never tried before and figure out a way to make it happen. I really re…

Fair enough, I see it as something of a spectrum. From full on OCD[1] on one end where once engaged a puzzle must be finished, drifting off toward zero (not sure how to compute the shape of that curve though). For the OCD person it is a compulsion, for someone just to the right of that, it is entertainment, further right its part of the job, and furthest right it is 'a waste of time and I won't do it.'

I completely agree with your point "When I see a problem worth solving,..." the only debate is computing the value. My original point is that as it takes less and less external motivation to engage someone on solving a puzzle/problem they exhibit more and more tendencies of what I associate with the moniker 'hacker.'

[1] Obsessive Compulsive Disorder

Re: I Hate Puzzles: Am I Still a Programmer? (2011)

#123
Yup. The way I like to express this is as follows -

It took Einstein about 10 years to formulate the general theory of relativity, needing no further experimental input into the work during this period. A few other scientists such as Wheeler, Schwarzschild and others, not to mention mathematicians like Riemann, put in at least as many "top scientist years" of time - about 20 TSYs in all, conservatively. The core content of this is taught in grad school these days over one semester and could be considered about 1/2 grad student years worth of intellectual effort.

So what did these people do for the remaining 19.5/20 of the time? They got hold of a problem that wouldnt let go of them, that they poorly understood, but nevertheless persevered through false starts, uglifications, and what not to arrive finally at the beautiful theory that it is.

i.e. Problem finding and perseverence through foggy days with all but a candle that seems to threaten to blow out any minute is at least 40x harder and that much more valuable than problem solving.

I believe your phd would've served you well on that front.

Re: I Hate Puzzles: Am I Still a Programmer? (2011)

#124
I don't hate puzzles, but my brain just refuses to work on something that is not important to me. That's why I can't play go/chess well, I can't do sudoku and I can't solve algorithmic puzzles. Even when working on a real algorithmic problem, my brain just refuses to analyze whether something should be x or x+1. Those are things I can easily try and see.

I had a number of technical interviews last month and the conclusion was that because of this, I'll never work for a company that uses this kind of interview process. I just can't take the puzzle questions seriously enough to be good at them. But the experience also made me question whether I am still a programmer. Fortunately, I have written some algorithmically complex software to convince myself that I am.

Re: I Hate Puzzles: Am I Still a Programmer? (2011)

#125
post #68

Earlier quoted context omitted.

> Then I discovered quicksort, and graph search, and Bayesian inference, and Dijkstra, and Karatsuba. I would guess most "discovered" those because they had to interview. The % of programmers who need to Karatsuba or Bayesian inference to finish their project is very much smaller than the % of programmers who thought "oh shit, I better learn this because Google and Facebook keep asking about graph theory". It it is p…

Actually I think graph theory is pretty important. For example many programming contexts have to deal with dependencies, and often dependencies form a directed acyclic graph. Understanding that will aid in writing better, more reliable code. Path finding is also pretty important, especially if you want to make a game.

That's great if you're a game AI programmer (an incredibly small group) or you're creating Yet Another Dependency Loader (hey, I guess will only have 100 frameworks to manage modules, you'd better create your own as well).

You know what I really wish? Programmers would spend 1/100th of that algorithm studying on learning to write readable, maintainable code.

Re: I Hate Puzzles: Am I Still a Programmer? (2011)

#126
post #73

This is what really irks me about the industry as a whole. Large companies like Facebook and Google have hiring processes in place that aim to weed out the strong from the weak by making them solve complex algorithmic puzzles and solve them on a whiteboard, and for larger companies like Facebook or Google who have massive troves of data, this kind of makes sense to me, but only if you're hiring a programmer to work w…

This idea that you have repeated several times... > A front-end developer working with HTML, CSS and Javascript will never EVER need to know how to write an algorithm. > In my 12 years as a developer thus far I have never needed to ... write an algorithm to markup some HTML > A developer working with HTML, CSS and Javascript does not need to know algorithms whatsoever. > Only a developer working with data or writing…

You know the saying, "If you have a hammer, everything looks like a nail"? I think the corollary to that is "If you don't have a hammer, nothing looks like a nail".

If you have little knowledge of graph theory, algorithms, and other such "esoteric nonsense", you wouldn't recognize situations where those will be helpful, which then reinforces your belief that algorithms are useless. I have seen too many times a person saying that algorithms are useless, who then gets stuck wondering why his naive O(n!) program is running so slow.

Re: I Hate Puzzles: Am I Still a Programmer? (2011)

#127
> Maybe I should refer to myself as software designer rather than programmer.

I think you should refer to yourself as an Software developer, not a Software Engineer. You can be good by referencing your previous experiences. But knowing how to solve and loving puzzles is a nice sign that this individual can solve problems quick and efficiently. This latter case is less common though. Most programmers are Software Developers, just referencing sdk's and frameworks and minor "new" development.

Re: I Hate Puzzles: Am I Still a Programmer? (2011)

#130
Ha ! And I was feeling stupid for not being able to make headway on the puzzle on the front page that was shared from Terry Tao's page :P

On a more serious note ..

I'd like to think that raw cognitive ability would be a nice thing to have in a programmer. In a field where things change so fast we definitely need people are who are good at figuring things out and making things work.

Ofcourse its obvious that the best way to hire someone is to have them build something substantial and or go over their previous open source work. When that is always not possible then some test of cognitive ability will have to come into the picture as a proxy.

Post reply on HN