Live data from Hacker News

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

zef.me

81–90 of 268 posts

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

#81
This isn't the only industry this happens.

In restaurants you have line cooks, prep cooks, and then occasionally if you are a "fancy" enough of a place you have a sous chef and an executive chef.

The one common thread here is, they are all cooks.

Now most line cooks will have never have actually "created" a dish, just like most of us have never "created" an algorithm, (having the vision for something new, knowing which ingredients sourced from what region will work the best, knowing how the various intricacies of spices, how they interact with each other, what temperature is optimal for meats, ect), but I am sure they know how to put something new together.

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

#82
post #69

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…

[deleted]

[deleted]

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

#83
post #70

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…

RegEx is just ludicrous a general requirement to "program" as anything else. I've never particularly wanted it to write the mathematical models I work with. I can think of just a single instance where I've used one in the last year and that was to display integers as ordinal numbers (hardly a sizeable task). Every job needs a spec. Every spec should inform the interviewer and the interviewee of the skills and compete…

Agreed. I can write a regex the (very) few times I need one, but it generally entails me looking up a cheat sheet to get the appropriate character classes. If you were to put me in front of a whiteboard I would flub the most simple of tasks (from the original post, "{(.*)}", I think? Did we mean to include whitespace, and does . translate properly? Because that's partly language dependent when it comes to white space, newlines, etc, and how the regex parser works. Did we mean to capture empty cases? Did we intend for it to be greedy?).

Does that mean I can't program? Ha ha ha, no. Does that mean I can't manipulate strings like a boss? Ha ha ha, no. I first reach for the language's tools, before I reach for regular expressions (the OP, I would first reach for doing a string search for {, and then one for }, from the rear if you want it greedy, and substringing what is in the middle; it's far less ambiguous, and any dev will know exactly what it does). Even when something ~technically~ takes a regex, if what I'm looking for is just a literal (as it often is; does this string contain X or not?), I don't need to 'know' regexes. So there's a LOT I can do without knowing regular expressions.

Meanwhile, I -have- needed to be able to recognize that something was running in O(n^2) time, and what I could do to optimize it to O(n). I -have- needed to implement my own search and bucket sort routines.

EDIT: Oh, wait, no, for the regex I'd need to escape the brackets, too. Etc. See? Now I have two problems.

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

#84
post #68
post #62

Earlier quoted context omitted.

Once upon a time I was a programmer, building CRUD apps for enterprises. I hated puzzles, too. Then I discovered quicksort, and graph search, and Bayesian inference, and Dijkstra, and Karatsuba. I'm still a programmer, but now I love puzzles, too.

> 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…

This is very similar to the behaviour that Keynes described in the equity markets: http://en.wikipedia.org/wiki/Keynesian_beauty_contest

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

#85

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…

A developer working with HTML, CSS and Javascript does not need to know algorithms whatsoever.

I'd only partially agree with this.

One of these things is not like the others: HTML and CSS are not programming languages; JavaScript is, and we're treating it like one now. As we move into a world of "client side applications" rather than "dynamic HTML," JS can be an order of magnitude more complex than it was just a few years ago. If you're going to use Angular or Backbone well, you're going to need to have a solid understanding of at least a few design patterns. You're probably going to need to know the difference between a queue and a stack and when you'd use one or the other (or neither), and you're going to need to be able to look at a problem and say "this is something I need recursion for." There's an awful lot of people who could make a good living as a web developer in 2004 who couldn't in 2014.

Having said all that, I think the current hiring process, particularly among Facebooks and Googles and startups that emulate them, is pretty heavily biased toward things one only learns in computer science degree programs (or when one is desperately floundering around trying to solve a "take home" interview puzzle). I don't want to claim that it's bad to know how to do directed graph cycle detection in your language of choice, but the need to do that is only going to come up in fairly specific circumstances -- and it's more important to know that someone you're hiring can find the information necessary to solve a problem and apply it than it is to know whether or not they have that information memorized.

(I'd also argue that demonstrating they can write readable, well-documented code that other people can actually work on is really important, but I almost never see that tested, oddly enough.)

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

#86

Earlier quoted context omitted.

Exactly this This also applies to: - Having a Github page - Contributing to Open Source Projects - Knowing (or not) a certain language - Knowing (or not) a certain technology - Knowing one of the latest fads Of course, this affects whether you can work on certain projects or not, but not that "every programmer knows that" is a fallacy (except for something really fundamental)

Many companies have a hiring process that favors hiring very similar engineers. Hiring different types of programmers would increase their diversity, which for me is a great quality of a team. The challenge here is to identify the competent engineers when you can't use cookie cutter assessment tactics.

I agree with you.

Suffices to see how several founders (of successful startups) were rejected or quit big companies. I believe Google is one of the worse offenders there.

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

#87

Best stick to the shallow end of the pool if you can't swim. Do you program? Then you are a programmer. However, in some circles, where extremely complex problems need to be solved, they would say, " No ", because you can't do any of the programming required, and you'd be as useful to them as a rock, only less useful because you take air and food. I play volleyball occasionally, but if I went to the olympic men's tea…

It would greatly surprise me if a member of the Olympic men's volleyball team said "you don't really play volleyball." People at the top of their field are way more likely to say "that's great! Keep it up!" The same applies in our field. The really great programmers I have known don't play the "you are not a real programmer" game.

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

#88

> I’ve been programming for 18 years now. Then congratulations, you are a programmer! Despite what you'll hear from people peddling various flavors of Kool-Aid, "programmer" isn't a personality type. It's a job description. If you program, you are a programmer, end of line, full stop. Don't let anyone convince you otherwise.

This. So much this. I'm a programmer who loves 'building the brain'. I've been coding professionally for about 16 years. I've written some code I'm really proud of. A couple of specific pieces of code are actually used in a LOT of major websites you probably use. Like almost every health care site or major retailer site. I actually find most code written by 'whiz' startups - even successful ones - to be incredibly si…

I agree.

>>> I don't have a GitHub page, nor do I have an interest in having one.

Glad I'm not the only one.

>>> I don't care about hackathons or solving puzzles.

Couldn't have been said any better. I never produce anything good when its tightly timed, under pressure, when people are watching over you.

>>> I hate the term 'nerd' or 'geek'. I am neither and I find the terms insulting.

Add "ninja", "guru", "rockstar" and other hipster name floating around these days to your list. I hate it too.

I've been doing programming for 3 years on and off. I program for fun, as a hobby and I can't see myself programming to meet unrealistic deadlines year in year out for someone, that's my personal opinion. I grew up in an athletic environment so I also play rugby and sprint for fun too. The most I would do is to program small projects at my own pace and share them to people or keep it to myself. I hate rushing into things which I feel hackathons encourage.I like to think, research, think and then create.

I program because I generally like making things, not just programs but also technical drawing, house designs (architectural and interior) and custom-modded computer builds , it has no correlation to solving puzzles or cramming algorithms I probably will never use.

Edit: There is this insanely think barrier filled with confusion in Human Resources, as a recent Computer Science graduate, some of the job descriptions have unimaginably high expectations for entry positions I actually think you have no place here if you don't know 4+ languages, 2+ trendy frameworks, and 1-2 years of experience from a fresh graduate.

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

#89

I dislike puzzles too. I guess because you're just finding the creator's predefined path, and it often feels like a pointless task. Programming is coming up with original solutions of your own, so I don't see the two as wholly related.

I came to say exactly the same thing.

A puzzle is a puzzlemaster saying "try to find the exit in this maze I devised!". But I'd rather build my own mazes that I'm more interested in, and then try to find the exits for my mazes.

If people find other people's problems interesting, then good for them. Mostly I find that my curiosity creates the most interesting puzzles, perfectly suited to what I'm interested in.

In other words, implicit in liking puzzles is the assumption that you care for what the puzzlemaster cares for. I find that double coincidence to be rare (for instance, Gardner's puzzles as discussed today here are mostly uninteresting to me).

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

#90

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…

I'd argue that being able to think laterally across multiple parts of the web browser is much more important for front-end development than having the typical CS background (algos, data structures, etc).

But the CS background certainly doesn't hurt. Especially when it comes to stepping back and figuring out how to do the same stuff with less code (i.e. making good architectural decisions and finding the right frameworks for the job), instead of diving straight in and producing a giant mess of code, which is quite easy to do on the front-end if you're not careful. (Especially if you throw JQuery in the mix -- at that point you have a hearty soup of DOM manipulation code.)

Post reply on HN