Raganwald
weblog.raganwald.com · Personal blog · on HN since 2007
Reginald Braithwaite writes about programming, functional programming, hiring and interview questions like FizzBuzz, and language design.
What HN saysHN commenters cite it in discussions of FizzBuzz as an interview filter and of meta-programming and abstraction overhead.
115HN people shared it
55linked it in comments
145stories submitted
2.5Kstory points
12 months agolast shared
2007people per year2026
Most-shared posts
- 1Why Why Functional Programming Matters Matters8 people · 177 points · first shared 2007 · 25 comments on HN
- 2Dont overthink fizzbuzz8 people · first shared 2009
- 3My favourite interview question7 people · 232 points · first shared 2010 · 95 comments on HN
- 4Are we Blub programmers? (2006)6 people · 37 points · first shared 2007 · 83 comments on HN
- 5Why you need a degree to work at Bigco6 people · 17 points · first shared 2007 · 4 comments on HN
- 6Sharecropping in the Orchard: Plus ça change, plus c'est la même chose6 people · 7 points · first shared 2008 · 3 comments on HN
- 7(1..100).inject(&:+)5 people · 34 points · first shared 2008 · 62 comments on HN
- 8You Suck (On web apps that mismanage text)4 people · 102 points · first shared 2008 · 75 comments on HN
- 9The Naive Approach to Hiring People4 people · 43 points · first shared 2008 · 4 comments on HN
- 10What I've Learned From Sales, Part I: Don't Feed the Trolls4 people · 28 points · first shared 2007 · 1 comments on HN
- 11Writing programs for people to read4 people · 15 points · first shared 2007 · 1 comments on HN
- 12A Brief History of Dangerous Ideas3 people · 125 points · first shared 2008 · 32 comments on HN
- 13A degree is only as meaningful as its scarcity [2008]3 people · 107 points · first shared 2008 · 42 comments on HN
- 14Beware of the Turing tar-pit (2004)3 people · 73 points · first shared 2012 · 27 comments on HN
- 15Reg Braithwaite does Daily WTF3 people · 33 points · first shared 2008 · 5 comments on HN
What HN people wrote when they linked it
revorad · 2012-02-08
Here's another idea: Since your friend is coming out in 9 months anyway and there's so much risk involved in trying to sneak in a programming book, he should probably spend his time developing another equally useful skill: writing well.
As many other successful programmers have noted (Spolsky, Yegge) and demonstrated, effective communication, especially through writing, is a very useful and necessary skill for a programmer. So, maybe you should send him just some good books on writing well.
In general books, I can think of Strunk and White, On Writing (by Stephen King). But some examples of good writing about programming could also help:
The Best Software Writing (edited by Spolsky)
Joel on Software (the best articles from his blog)
Steve Yegge's blog posts (others might disagree but I think he is an excellent writer).
Paul Graham's essays
raganwald's old blog - http://weblog.raganwald.com/
James Hague's blog - http://prog21.dadgum.com/
Rands in Repose - http://randsinrepose.com/
cyphar · 2025-11-22
> For those that don't know, Fizz Buzz is less an aptitude test and more of an attitude test.
The articles which popularised FizzBuzz as an interview question stated as a categorical fact that most computer science graduates or programmer candidates (one article even said 199/200!![2]) cannot do FizzBuzz[1,2,3] and were absolutely recommending it as an aptitude test.
I personally think this whole thing was simply untrue back in 2007 (or at the very least incredibly overstated) and we are paying the price for it with ridiculous 15-stage interviews as a paranoid response to some urban legend from ~20 years ago.
[1]: https://imranontech.com/2007/01/24/using-fizzbuzz-to-find-developers-w… [2]: http://weblog.raganwald.com/2007/01/dont-overthink-fizzbuzz.html [3]: https://blog.codinghorror.com/why-cant-programmers-program/
visil · 2024-05-30
Reminds me of this[1] great blogpost: "This abstraction adds overhead. “Abstracting” the common operation has made it more difficult to read, not less difficult to read. People for who consider meta-programming some sort of Black Magic often make this exact point: The mechanism for removing duplication adds complexity itself. One view is that the overall effect is only a win if the complexity added is small compared to the duplication removed."
[1]: http://weblog.raganwald.com/2007/12/golf-is-good-program-spoiled.html
TeeMassive · 2021-05-18
I love the idea because it's like an automatic FizzBuzz filter
http://weblog.raganwald.com/2007/01/dont-overthink-fizzbuzz.html
kordlessagain · 2021-02-27
> UPDATE: If you think that I just claimed that 199 out of 200 working programmers cannot code, stop immediately and either read my follow-up explaining the math, or read Joel’s article on why companies aren’t as picky as they think they are. Thank you.
http://weblog.raganwald.com/2007/01/dont-overthink-fizzbuzz.html
I will note the person making this observation is apparently incapable of securing their website with SSL!
hyperpape · 2015-05-08
> If the real purpose is to evaluate a candidate’s proficiency at eliciting hidden requirements, I suggest that there are much better problems to pose.
Like, say...how to design a monopoly implementation? :) http://weblog.raganwald.com/2006/06/my-favourite-interview-question.ht…
bzalasky · 2014-12-24
To borrow from an article I read earlier today (http://weblog.raganwald.com/2006/06/my-favourite-interview-question.ht… how would you enable two people to play turn based (and/or realtime) monopoly (or chess, or any other game) over the web? This will almost certainly be more complicated on the front-end than most apps you'll need to build, and complicated enough on the back-end to be non-trivial.
wink · 2012-02-10
Copy/pasting from Twitter, but this was a really good read: http://weblog.raganwald.com/2007/01/where-were-you-on-saturday-novembe…
raganwald · 2012-01-31
Sorry, it just so happens I’m an expert in failing to pull metaphors off :-) I did once pull off a great interview metaphor, but I did so by plagiarizing someone else’s hard work:
http://weblog.raganwald.com/2006/07/hiring-juggler_02.html
Like I said, I think we agree on a great deal about this :-D
elviejo · 2011-07-29
Completely agree with you.
In "My Favourite Interview Question"[1] The author asks:
How would you design a Monopoly game?
He goes on to say that with 'basíc' OOP you can model the elements: dice, buildings.
But What about the rules? One of his suggestions is to look to the Strategy, Visitor, and Command patterns.
But I disagree. I want to model the rules using Prolog!
That is what prolog is great at.
So can please the next high level language standup?
I just want:
top of the line OOP (Smalltalk)
constraint programming (prolog)
functional (haskell)
And Design By Contract (Eiffel)
And no... I'm not asking for the kitchen sink language [2]
Is simply that this concepts aren't exclusive and all of them helps us to better model reality.
[1]http://weblog.raganwald.com/2006/06/my-favourite-interview-question.ht…
[2]http://zedshaw.com/essays/kitchensink.html
rbxbx · 2011-03-07
Can't help but be reminded of
http://weblog.raganwald.com/2007/03/why-why-functional-programming-mat…
Congrats on the job with Relevance, they seem like a great company :)
groaner · 2010-12-10
You might have seen this posted here before, but Reg offered an interesting one that certainly opens the door to other questions that may help or give you ideas:
http://weblog.raganwald.com/2006/06/my-favourite-interview-question.ht…
generalk · 2010-11-08
In Ruby 1.9, or Ruby 1.8 w/ ActiveSupport, you can use the & operator, which coerces it's argument (in this case, a symbol) to a Proc:
all_users.select(&:is_admin).map(&:username)
This is a common idiom with a fantastic writeup at http://weblog.raganwald.com/2008/02/1100inject.html
kalvin · 2008-11-12
This is such an insightful comment. Applause.
The Raganwald article:
http://weblog.raganwald.com/2007/01/what-ive-learned-from-sales-part-i…
"This is the first part of “What I’ve Learned From Sales.” In this part, “Don’t Feed the Trolls,” I present my explanation for why people act like “trolls,” raising objection after objection to new ideas, and I suggest how to side-step this behaviour and deal directly with their concerns."
nostrademons · 2008-05-02
Many of the people who're objecting - at least on these TechCrunch and FeedBurner stories - would never have bought it anyway. It's better to concentrate on the folks who will buy it (I assume they're out there, though I'm not one of them...) and make something that they'll use, love, and tell people about.
http://weblog.raganwald.com/2007/01/what-ive-learned-from-sales-part-i…
mdemare · 2008-03-09
Hat tip to raganwald: http://weblog.raganwald.com/2008/03/drive-and-determination-can-most-o…
I used to program in AMOS basic in the early nineties. That was a great experience. Its 2D API and resource management were terrific. Anyway, I was surprised to hear about this. This kind of programming was completely in my blind spot.
davidw · 2007-06-26
A really great book about, well, "growing" a business is called just that:
http://tinyurl.com/2dxnoc
It predates a lot of things, but says so much that makes sense, and that I recognized from other people's writings (PG included). It's worth buying. Of course, being from the 80ies, and talking about a garden tools business, it doesn't talk about high tech much, but I think a lot of the lessons are quite worthwhile.
BTW, raganwald also seems to like it:
http://weblog.raganwald.com/2007/04/venture-capitalist-passes-away.htm…
brudgers · 2017-01-29
1. Minor 'typo': Mix and match charts types and maps to tell beautiful data with your data.
2. I'm not sure what 'story' means in this context. While it sounds good, it makes me uncertain about what Vizbi is and the landing page doesn't really help pin it down. For example 'with or without code' doesn't clarify it.
3. Don't misunderstand me, I love creative prose and the turn of the phrase. But when I look at a tool, I want to know what it does and why I should care.
4. I hit the Vizbi page and the headline is two statements which are not clear about what it does and why I should care. Most of my screen is wasted on a picture of hands and a laptop on a desk: it's completely irrelevant to my interests.
5. Don't misunderstand me, I love graphic design. But here it seems to exist for it's own sake. Just tell me about the product.
6. Since Vizbi tells stories, tell me the story with Vizbi...this is showing me what it does. http://weblog.raganwald.com/2008/05/show-dont-tell.html
Good luck.
bradleyland · 2014-10-19
These are just easy to understand examples. I don't know any Rubyists who would actually define these methods in exactly this way. If you look at the Ruby StdLib, you'll see that, most of the time, libraries implement operators in a way that is consistent with the spirit of canonical methods. For example, in Unix, a network socket is abstracted in a way that is similar to a file. You read/write from it in similar ways. This is an abstraction pattern. Ruby also has patterns. Lots of them, actually.
For example, many Ruby objects accept a block. The ampersand unary operator is used in a particularly common pattern that interacts with methods where a block would normally be passed.
Imagine you have an object that is implemented as a collection of items; like a collection of query results, wrapped in an object. Let's also imagine you want to call a method on each of the items. In Ruby there are two simple ways to do this. The example below uses an Array, upon which many common patterns are based [1].
1) Using a simple map function, which passes the receiver as an argument to a block:
["Hello", "WORLD!"].map { |x| x.downcase }
#=> ["hello", "world"]
2) Using the unary operator of the Symbol class to pass a proc:
["Hello", "WORLD"].map(&:downcase)
#=> ["hello", "world!"]
The second example uses a pattern combining #map from Array and #to_proc from Symbol. This looks like magic the first time you see it, but it's actually pretty simple to follow when you look at the…
lambda_cube · 2011-08-02
Thank you Reginald. You always make me think, more reliably than any other writer about software. You pose interesting questions and have interesting viewpoints and discussion related to those questions. I hope you feel proud about this ability, because you should.
I also appreciate that you have chosen to publish your writing more in a blog format just like on http://weblog.raganwald.com instead of the GitHub experiment, I never really got into reading your stuff there.
As for the question posed, I believe I'm biased towards invention. I would prefer to work in a research department in a company or in a small company that have a business idea (partly) based on research. I hope I'm wise enough to avoid NIH, that is not really inventing anyway, so it's not as much fun as real inventing. (Working in a university seems to come with too much bureaucracy for my taste, but I do like the teaching part.)
aidenn0 · 2024-06-03
I have seen #1 many times (in non-interview settings).
- It's definitely possible to hold a tech job for 12-18 months without writing any working code and changing jobs that often isn't that big of a red flag. Also, people lie about their experience.
- The pool of people applying for a job has a very low intersection with the pool of people currently working at a job. In that intersection there is a very high subset of people who believe they may lose their job soon. Therefore the people applying to a job is largely people who either are not currently working, or will shortly be out of work. See also[1]
1: http://weblog.raganwald.com/2007/03/thank-you-for-writing-such-heartfe…
dublinben · 2023-07-27
As others have pointed out, that phrase means something else.
What they were doing here is usually referred to as sharecropping, because you're building your business on someone else's land/platform. The real owner can kick you out at any time, and you have no recourse.
http://weblog.raganwald.com/2004/11/sharecropping-in-orchard.html
zosima · 2022-07-04
This is interesting, mostly because to me it reads as a typical blub paradox type response to react.
http://weblog.raganwald.com/2006/10/are-we-blub-programmers.html
adolph · 2021-06-07
Churchill: “Madam, would you sleep with me for five million pounds?”
Socialite: “My goodness, Mr. Churchill… Well, I suppose… we would have to discuss terms, of course…”
Churchill: “Would you sleep with me for five pounds?”
Socialite: “Mr. Churchill, what kind of woman do you think I am?!”
Churchill: “Madam, we’ve already established that. Now we are haggling about the price.”
http://weblog.raganwald.com/2007/07/haggling-about-price.html
anotherevan · 2018-12-30
I remember a colleague who was affronted at being asked to do Fizzbuzz. I told him it was just a simple screen for fraudsters and bullshit artists and not to take it personally, they didn't know him from Adam, after all.
http://weblog.raganwald.com/2007/01/dont-overthink-fizzbuzz.html
mattmanser · 2017-05-04
My problem with this comment is that it really sounds like you haven't even tried to use the fizzbuzz for a hiring process.
And if you haven't, what point was there in you commenting?
Here's one of the original blog posts that afaik made FizzBuzz famous back in 2007, it deals with your issue:
http://weblog.raganwald.com/2007/01/dont-overthink-fizzbuzz.html
m0th87 · 2016-12-08
See also Raganwald's Why Why Functional Programming Matters Matters: http://weblog.raganwald.com/2007/03/why-why-functional-programming-mat…
ColinWright · 2014-03-08
I suggest you are suffering from the Blub Paradox[0][1][2].
[0] http://paulgraham.com/avg.html
[1] http://c2.com/cgi/wiki?BlubParadox
[2] http://weblog.raganwald.com/2006/10/are-we-blub-programmers.html
bsg75 · 2014-02-18
So the tweet is gone. I will just leave this here: http://weblog.raganwald.com/2007/09/you-suck.html
"Thursday, September 20, 2007 - You suck.
There’s a childish thing bloggers do. They get angry about something that pisses them off, and they vent. They know, deep in their hearts, that whining about stuff when they could be out there making positive change is not constructive. And they especially know that lashing out in public is not constructive criticism, it’s just throwing a digital temper tantrum."
Morendil · 2014-01-19
But Y would I want to do a thing like this? http://weblog.raganwald.com/2007/02/but-y-would-i-want-to-do-thing-lik…