Steve Yegge

steve.yegge.googlepages.com · Personal blog · on HN since 2007

Steve Yegge, a longtime Amazon and Google engineer, wrote long, opinionated essays on programming languages, Emacs, hiring, and software culture.

What HN saysCommenters like his rants, such as Tour de Babel and the Perl piece, and his Amazon-era archive, though one calls his book list aspirational.
54HN people shared it
37linked it in comments
26stories submitted
594story points
17 years agolast shared
2007people per year2026

Most-shared posts

  1. 1
    Steve Yegge's five essential phone-screen questions
    11 people · 56 points · first shared 2007 · 28 comments on HN
  2. 2
    Effective Emacs
    8 people · 31 points · first shared 2007 · 12 comments on HN
  3. 3
    Math Every Day
    5 people · 70 points · first shared 2007 · 17 comments on HN
  4. 4
    Tour De Babel -- Rant about programming languages
    5 people · 36 points · first shared 2007 · 38 comments on HN
  5. 5
    Steve Yegge | Ancient Languages -- Perl
    5 people · 7 points · first shared 2008 · 1 comments on HN
  6. 6
    Steve Yegge on ten great books
    3 people · 31 points · first shared 2009 · 11 comments on HN
  7. 7
    You Should Write Blogs
    3 people · 10 points · first shared 2007 · 2 comments on HN
  8. 8
    Steve Yegge's predictions from 2004
    2 people · 124 points · first shared 2009 · 72 comments on HN
  9. 9
    Ten Challenges
    2 people · 31 points · first shared 2010 · 14 comments on HN
  10. 10
    The Emacs Problem (February, 2005)
    2 people · 29 points · first shared 2007 · 11 comments on HN
  11. 11
    Lisp Wins (Steve Yegge article)
    2 people · 19 points · first shared 2008 · 18 comments on HN
  12. 12
    Being the Averagest
    2 people · 8 points · first shared 2007 · 2 comments on HN
  13. 13
    When Polymorphism Fails
    2 people · 5 points · first shared 2008 · 2 comments on HN
  14. 14
    Practicing Programming (Steve Yegge)
    2 people · 5 points · first shared 2007 · 1 comments on HN
  15. 15
    Scheming is Believing (2005)
    1 people · 50 points · first shared 2009 · 20 comments on HN

What HN people wrote when they linked it

icefox · 2010-02-21
Really for most programmers it is a list of 10 books I want to have on my bookshelf so I look important when someone comes over. A list of ten programing books programmers wish they read. Much more useful is the list of "... ten books that I really enjoyed, and that I'd recommend to anyone who's a computer programmer, regardless of their preferred language and platform." http://steve.yegge.googlepages.com/ten-great-books
amix · 2009-12-06
I will reference to Steve Yegge's rant on Perl. It has a lot of examples on Perl operators that are overloaded: http://steve.yegge.googlepages.com/ancient-languages-perl - - and how their man pages isn't a big help. While other languages of course have their special syntax, Perl is very extreme in this regard. This is best illustrated by the following diagram of special Perl operators (where most of them are only found and used in Perl): http://www.ozonehouse.com/mark/blog/code/PeriodicTable.pdf
juliusdavies · 2009-08-26
I like Steve Yegge's archive, especially the original "internal amazon blog" (2004-2005): http://steve.yegge.googlepages.com/blog-rants Planet Apache can be interesting (an aggregator of apache committers). Extreme variation in quality, but James Duncan Davidson and Sam Ruby and a few others make it all worth it: http://planet.apache.org/committers/ Anton Chuvakin for security: http://chuvakin.blogspot.com/
nopassrecover · 2009-07-21
This is a great source of stuff for: function get_smarter(): 1. Am I smart enough yet? (default answer: of course not!) 2. If yes, go make a grillion dollars, or go fishing, or something. (Note: this statement is unreachable). 3. Otherwise: 1. Do various important things, until I have some free time. 2. Pick a book from my book list and read it. 3. If I've read it already, check all the references at the end, and add the ones that look good to my book list. 4. get_smarter() "If your book list is empty, add Gödel, Escher, Bach to it before calling the function for the first time. And with that, I'm off to go finish the book!" http://steve.yegge.googlepages.com/godel-escher-blog
jon_dahl · 2009-04-09
This is fair. For what it's worth, I think PHP kind of sucks, and interesting criticism of any language is worthwhile. I love Steve Yegge's Tour de Babel article (http://steve.yegge.googlepages.com/tour-de-babel), and I even generally enjoy Zed's loud criticism of my day-to-day language. What I don't like is language trolling, which often comes in the form of claiming that one language is better than another. Unless you're looking at a narrow slice of the language (performance, documentation, expressiveness), you can't just say that one language is better than another.
silentbicycle · 2008-08-31
He wrote that article quite a while ago (Sept. 2004), actually, and has a slightly more recent (Feb. 2005) follow-up that covers several more languages here (http://steve.yegge.googlepages.com/language-grubbing). Oddly, he acts as if he has no memory of writing the other thing. He gives a much more informed opinion of Python here, I think. His overall impression is essentially, "Python is a really good language, but I already know Ruby, which is good at the same things, so I'll just stick with that." I feel the same, really, but favoring Python over Ruby.
byrneseyeview · 2008-07-28
"My whirlwind tour will cover C, C++, Lisp, Java, Perl, (all languages we use at Amazon)..." http://steve.yegge.googlepages.com/tour-de-babel Other than that, I'm not sure. I heard that eBay uses C#, though. If you want to put this together, I would recommend looking at their job ads.
iamelgringo · 2008-01-17
Best answer to your question that I've ever read: http://steve-yegge.blogspot.com/2006/03/math-for-programmers.html And, another good article to spur you on: http://steve.yegge.googlepages.com/math-every-day
herdrick · 2007-12-07
Actually, he wrote about Amazon sucking a lot. Like here: "Emacs has the Quality Without a Name ... we have the Quality With a Name -- namely, Suckiness. We suck." (http://steve.yegge.googlepages.com/tour-de-babel) That's a great story in a good essay, by the way.
screwperman · 2009-04-26
I'd second this. In fact, Steve Yegge once said this about K&R ( http://steve.yegge.googlepages.com/ten-great-books ): This is an odd little book. It's frequently mistaken for an introductory programming book, which inevitably leads to frustration. It's not a good way to learn how to program; it expects that you're already familiar with machine architecture, assembly language, compilers, and at least one other high-level language. It's not even a very good way to learn C. The idioms and best-practices for C programming have evolved substantially, even since the second edition was published, and some of the code samples look a bit dated. As the parent said, you'll appreciate C only if you learn about machine architecture and Unix. Diving into a large codebase will get you acquainted with "modern" C. I've found the book C Traps and Pitfalls to be the book to get you to think like a C programmer. The C Puzzle Book is pretty good for exercises, and Expert C Programming does a good job exposing the ugly side of C.
benreesman · 2009-04-22
I'm not singling out Perl for lacking syntactic abstraction, I'm pointing out that a horribly brain-damaged language (sigils dereferencing multiple variable namespaces? don't even get me started) cannot be saved without it. Modern Perl practice seems to always involve CPAN modules that attempt to rewrite the syntax of the language one way or another, frequently with prototypes. I've commented on HN about this before (admittedly less tactfully than I would have liked to), you can read some of my previous comments at: http://news.ycombinator.com/item?id=157183 http://news.ycombinator.com/item?id=157323 For another (slightly more inflammatory but no less valid) view on the subject there's the classic: http://steve.yegge.googlepages.com/ancient-languages-perl I'm not trying to invalidate your argument by insinuating that you are the OP, merely pointing out that only a coward hides behind a shell account to carry out an argument founded in trickery and logical fallacy. If you want another reply from me you will have to show up as yourself, I don't think I'll exchange niceties with your puppet any more.
blakeb · 2009-02-25
Ran across this long after the fact, and I'm not even sure if you'll be aware I posted this, but... I've been wondering the same thing, as C-x is used all the time and seems really uncomfortable. I've found one mention of it, so I thought I'd pass along Steve Yegge's opinion: "Incidentally, if you want to fine-tune this tip to extraordinary levels, then you probably don't want to use your ring-finger for typing the x-key when you hit Ctrl-x. I use my left index finger, since I'm used to it that way, but you're probably better off using your left middle finger. The reason is that your hand isn't technically on home row when your left pinkie is jammed down on the Caps-Lock key that you've turned into Ctrl. The point is to use whatever requires the least amount of stretching, followed by the least amount of finger motion. You should experiment until you find what's most comfortable for you." Found that here: http://steve.yegge.googlepages.com/effective-emacs
gcv · 2008-05-29
A trivial coding problem is essential. I've seen people with 10 years of experience in XML#Java.NETEnterprise2012 who don't understand conditionals, loops, or boolean expressions. For phone screens, I find Steve Yegge's guide a useful starting point: http://steve.yegge.googlepages.com/five-essential-phone-screen-questio… I'm not a fan of asking candidates to reverse a string or to implement atoi or a binary search, because those have corner cases which, under interview pressure, might be too much to ask for. I just ask for an implementation of a gcd (greatest common divisor) function, in any language. I always explain the problem in detail. Only one guy (a PhD in physics) ever gave me Euclid's algorithm (section 1.1 in Knuth's AOCP Volume 1), so I don't expect it. I do expect a trivial loop, and most candidates take 15-20 minutes to come up with it, and need lots of hints. As far as I'm concerned, anyone who can't come up with a trivial loop (or recursive or tail recursive function) for something like this shouldn't be programming for a living. Maybe "developing enterprise solutions," but never programming.
msg · 2008-05-24
Lots of people have probably read these, but Steve Yegge wrote some great posts about interview loops on his old Amazon blog. http://steve.yegge.googlepages.com/five-essential-phone-screen-questio… http://steve.yegge.googlepages.com/why-phone-screens-matter http://steve.yegge.googlepages.com/what-you-need-to-know Here's an excerpt from that last one that is on point: "My point today is that although I don't feel you need to have a Computer Science degree in order to be a good developer, I do believe that there is a set of learnings, which you normally acquire in the course of a CS degree, that I would consider to be part of the core set of ideas that are 'software common sense'. If you don't know them, then I will feel that you lack common sense. "In our CS degree, we saw a lot of proofs, and had to work through many of them by hand. I feel that this was to some extent unnecessary, since it obscured the importance of the things we were proving by putting us all to sleep. Being able to prove something does allow you to reason through it to assure yourself of its correctness, and to derive it from first principles if you've forgotten it. But in everyday programming, you don't need to do proofs. You ought to have a feel for the outline of the proof, the sort of intuitive derivation of a rule, so you can reason through it with yourself and with others. But you don't need to be ultra-formal about it unless you happen to love proofs, as some folks do. "Instead, you need to…
1gor · 2008-05-21
You have two things to consider: Python vs. Ruby and Rails vs. Django. Steve Yegge has made a good write-up on languages: http://steve.yegge.googlepages.com/tour-de-babel. Steve is a top notch programmer with brains and eloquence. He was one of the first hackers at Amazon. Now he works at Google, and Google has chosen Python and JavaScript as company languages. Which has pissed off Steve quite a bit, because he has firmly decided that Ruby is more powerful and rewarding than Python. But he's not allowed to program in Ruby at work. So, Steve has engineered a kind of 'JavaScript on Rails' in order to fit into Google. All to avoid programming in Python. JavaScript is more powerful and elegant than Python, as he sees it. This gives you two clues. One about Ruby and second about the Rails. To be brutally honest, Lisp is the most powerful and beautiful language to approach a programming problem. But List is not the most practical choice because of lack of libraries and dialect balkanisation. Ruby is considered to be an 'acceptable Lisp'. Almost as powerful and much more practical. And very very elegant. You may hear a lot about Ruby being slow. That is true, but that is also changing fast. Make your own research. You'll hear some interesting thoughts about what 'programmers' time' is worth vs. 'processor time' etc. Finally, the frameworks. Rails has been mercilessly hyped, but the fact remains -- it is a framework for programmers. It has digested lots of 'theorizing' from…
kurumo · 2010-03-21
"Some guy" in this case is Steve Yegge. The document in question is http://steve.yegge.googlepages.com/five-essential-phone-screen-questio… It is not a list of questions, it is a list of topics to cover in an interview. Having done over 300 interviews over the last two years, for all levels of experience, I have to say I mostly agree with Steve. His observations at the end are spot on.
neiljohnson · 2010-03-12
I found this post by Steve Yegge to be really helpful, it's aimed at phone screening but you can easily extend it to a face to face interview http://steve.yegge.googlepages.com/five-essential-phone-screen-questio…
dschobel · 2010-02-20
I first learned about this book from Yegge's blog (back when he was still at amazon) where he wrote: "We've been studying the available research, and all roads lead to the same set of conclusions, one of which is that Functional Programming is going to be a necessity in this new world. It's a foregone conclusion. And that, in a roundabout way, brings me to this book by Chris Okasaki. It is absolutely unique. It's the world's first textbook on purely functional data structures — i.e., data structures with no side-effects. I'm not going to explain in this blog why this is such an important topic for Amazon and distributed computing in general, but I will point you to the book in the hopes that you are also interested in finding a solution." http://steve.yegge.googlepages.com/ten-challenges
jodrellblank · 2010-01-06
http://www.defmacro.org/ramblings/lisp-ducati.html http://www.defmacro.org/ramblings/lisp.html """What would you rather do? Learn 16 different languages and frameworks in order to do "simple" log-file and configuration-file processing? Or just buckle down, learn Lisp, and have all of these problems go away forever?""" http://steve.yegge.googlepages.com/the-emacs-problem
gcheong · 2009-12-05
And in a similar vein, Steve Yegge's post on practicing programming: http://steve.yegge.googlepages.com/practicing-programming
mhansen · 2009-11-27
Just adding another data point: Steve Yegge's essay [http://steve.yegge.googlepages.com/ancient-languages-perl] scared me off trying Perl.
ilyak · 2009-09-23
That's like steve yegge's http://steve.yegge.googlepages.com/lisp-wins Except written by a teenager (in the bad meaning of that word).
blogimus · 2009-08-31
For example, Steve Yegge's Five essential phone screen questions: http://steve.yegge.googlepages.com/five-essential-phone-screen-questio…
hvs · 2009-08-01
I use QWERTY, but I always remap Caps Lock to Left Control because I use Emacs (both in Windows and Linux). http://steve.yegge.googlepages.com/effective-emacs
salvadors · 2009-07-31
See also "Area Number Three" in http://steve.yegge.googlepages.com/five-essential-phone-screen-questio… Being able to create that line-noise is, in most cases, significantly more useful than taking 3 months to create a perfectly engineered recursive phone-number finding program.
kirubakaran · 2009-07-21
http://steve.yegge.googlepages.com/you-should-write-blogs [It is also a good example in support of at least one of the points that it itself makes]
krepsj · 2009-01-31
I would quote Stevey's Blog here. It says: "The right way to learn math is breadth-first, not depth-first. You need to survey the space, learn the names of things, figure out what's what." It comes from his own experience. He decided to renew his math skills and declared plan "Math every day". After 15 months he posted another article about results of this experiment. You can read both articles as they are inspirating in many respects. About his motivation: http://steve.yegge.googlepages.com/math-every-day and about his results: http://steve-yegge.blogspot.com/2006/03/math-for-programmers.html I would add that you should really enjoy math. If you only want to quickly understand one particular thing and seek for some miraculous explanation, this approach will surely not work for you.
mechanical_fish · 2008-12-24
Merry Christmas to you! Also, I do kind of like your idea, and I wholeheartedly agree with this: New users aren't going to know what "M-x describe-mode" refers to (or even what "M-x" is). Half the battle in learning Emacs is to get really, really used to all the help commands. You need to play with all of them, and you need to use them a lot, and somehow the documentation didn't really get this through to me at first. (Yegge, to his credit, makes this point 8 in his list of hints: http://steve.yegge.googlepages.com/effective-emacs)
cousin_it · 2008-05-04
I remember Yegge calling Java's "smart" for-loop the "stupid" for-loop, and for good reasons. http://steve.yegge.googlepages.com/next-big-thing

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close