programming languages

software development concepts

The Years of Experience Myth

I recently received an email from Andrew Stuart of the Australian firm Flat Rate Recruitment. Andrew related their technical phone screen process, which is apparently quite similar to the one outlined in Getting the Interview Phone Screen Right. I'm glad to hear it works. A proper phone screen

By Jeff Atwood ·
Comments

ruby

What Can You Build in 600 Lines of Code?

Joseph Cooney reminds us that, in January 2005, 37signals went live with a product they built in 579 lines of code [http://jcooney.net/archive/2007/08/16/54435.aspx]: > You read that right, not 60,000 or 600,000 but instead a commercial project written in less than

By Jeff Atwood ·
Comments

programming languages

The Enduring Art of Computer Programming

I saw on reddit that today, January 10th, is Donald Knuth's seventieth birthday. Knuth is arguably the most famous living computer scientist, author of the seminal Art of Computer Programming series. Here's how serious Mr. Knuth is – his books are dedicated, not to his wife or

By Jeff Atwood ·
Comments

programming languages

Size Is The Enemy

Steve Yegge's latest, Code's Worst Enemy, is like all of his posts: rich, rewarding, and ridiculously freaking long. Steve doesn't write often, but when he does, it's a doozy. As I mentioned a year ago, I've started a cottage industry

By Jeff Atwood ·
Comments

perl

Nobody Cares What Your Code Looks Like

In The Problems of Perl: The Future of Bugzilla, Max Kanat-Alexander* laments the state of the Bugzilla codebase: Once upon a time, Bugzilla was an internal application at Netscape, written in TCL. When it was open-sourced in 1998, Terry (the original programmer), decided to re-write Bugzilla in Perl. My understanding

By Jeff Atwood ·
Comments

programming languages

On The Meaning of "Coding Horror"

In a recent web search, I found the following comment in a programming.reddit.com thread from eight months ago, completely by accident: I think prog.reddit will continue to move in phases... a couple of days ago, someone complained about a drop-off in Haskell articles, today there were 4

By Jeff Atwood ·
Comments

sorting algorithms

Sorting for Humans : Natural Sort Order

The default sort functions in almost every programming language are poorly suited for human consumption. What do I mean by that? Well, consider the difference between sorting filenames in Windows explorer, and sorting those very same filenames via Array.Sort() code: Explorer shell sort Array.Sort() Quite a difference. I

By Jeff Atwood ·
Comments

programming languages

Gifts for Geeks: 2007 Edition

In case you hadn't noticed, it's that time of year again: let the wholesale buying of crap begin! As a technology enthusiast with a bad impulse purchase habit, I get a lot of complaints that I am difficult to buy for. That's sort of

By Jeff Atwood ·
Comments

algorithms

The Danger of Naïveté

In my previous post on shuffling, I glossed over something very important. The very first thing that came to mind for a shuffle algorithm is this: for (int i = 0; i < cards.Length; i++) { int n = rand.Next(cards.Length); Swap(ref cards[i], ref cards[n]); } It'

By Jeff Atwood ·
Comments

programming languages

Mort, Elvis, Einstein, and You

Earlier this week I wrote about The Two Types of Programmers. Based on the huge number of comments, it seemed to strike a nerve. Or two. This surprised me, because it was never meant to be the inflammatory, provocative diatribe that many people interpreted it as. It got so out

By Jeff Atwood ·
Comments

programming languages

The Two Types of Programmers

Contrary to myth, there aren't fourteen types of programmers. There are really only two, as Ben Collins-Sussman reminds us. There are two "classes" of programmers in the world of software development: I'm going to call them the 20% and the 80%. The 20% folks

By Jeff Atwood ·
Comments