technical practices

programming concepts

The Monopoly Interview

Reginald Braithwaite's favorite interview question is an offbeat one: sketch out a software design to referee the game Monopoly.* I think it's a valid design exercise which neatly skirts the puzzle question trap. But more importantly, it's fun. Interviews are a terror for the

By Jeff Atwood ·
Comments

programming languages

Vive la Programming Revolution!

Jonathan Edwards' Manifesto of the Programmer Liberation Front [http://alarmingdevelopment.org/index.php?p=5] is an inspiring call to arms for programmers who are fed up with the status quo of Java and C#. Maybe it is time to open your window, stick your head out and yell,

By Jeff Atwood ·
Comments

software maintenance

The Noble Art of Maintenance Programming

Mention the words "maintenance programming" to a group of developers and they'll, to a man (or woman), recoil in horror. Maintenance programming is widely viewed as janitorial work. But maybe that's an unfair characterization. In Software Conflict 2.0 : The Art and Science of

By Jeff Atwood ·
Comments

refactoring

Code Smells

I'm often asked why the book Refactoring [http://www.amazon.com/exec/obidos/ASIN/0201485672/codihorr-20] isn't included in my recommended developer reading list [https://blog.codinghorror.com/recommended-reading-for-developers/]. Although I own the book, and I've read it twice, I felt it was too

By Jeff Atwood ·
Comments

software development concepts

Egoless Programming: You Are Not Your Job

The concept of egoless programming, as described by Johanna Rothman [http://www.jrothman.com/]: > Twenty-five years ago, Jerry Weinberg published The Psychology of Computer Programming [http://www.amazon.com/exec/obidos/ASIN/0932633420/codihorr-20]. I discovered the book in 1977, and decided I wanted to work as an egoless

By Jeff Atwood ·
Comments

egoless programming

The Ten Commandments of Egoless Programming

The Ten Commandments of Egoless Programming, as originally established in Jerry Weinberg's book The Psychology of Computer Programming [http://www.amazon.com/exec/obidos/ASIN/0932633420/codihorr-20]: 1. Understand and accept that you will make mistakes. The point is to find them early, before they make it into

By Jeff Atwood ·
Comments

software development concepts

Following Instructions for Dummies

James Bach responded to my recent post, Are You Following the Instructions on the Paint Can?, with Studying Jeff Atwood's Paint Can. Being under Bach's intensive analytical microscope feels a lot like an interview with Hannibal Lecter. It's flattering, but it's also

By Jeff Atwood ·
Comments

software development concepts

Fail Early, Fail Often

Scott Hanselman thinks signing your name with a bunch of certifications [http://www.hanselman.com/blog/ScottHanselman11SuccessfulLargeProjects3OpenSourceApplications1CollossalFailure.aspx] is gauche [http://wordnet.princeton.edu/perl/webwn?s=gauche]: > If it's silly to suggest putting my SATs on my resume, why is … Scott Hanselman, MCSD, MCT, MCP, MC*

By Jeff Atwood ·
Comments

programming languages

Keeping Up and "Just In Time" Learning

Do you ever feel like you're buried under umpteen zillion backlogged emails, feeds, books, articles, journals, magazines, and printouts? Do you ever feel that you're hopelessly behind, with so much new stuff created every day that you can never possibly hope to keep up? Well, you&

By Jeff Atwood ·
Comments

best practices

Best Practices and Puffer Fish

James Bach's seminal rant, No Best Practices, is a great reality check for architecture astronaut rhetoric. It's worth revisiting even if you've read it before. Some might say Bach's viewpoint is pessimistic, even cynical: The way to get rich in this world

By Jeff Atwood ·
Comments

programming languages

How Not To Become a Rockstar Programmer

Tom's criticism of Mikael Grey's article, How to Become a Rock Star Programmer, starts off promisingly enough: Let's start with the title. There is no such thing as a "Rock Star Programmer," so if you want to become one, you already have

By Jeff Atwood ·
Comments

software development

Everything You Know Will Be Obsolete in Five Years

One of the peculiarities of software development is how rapidly knowledge becomes obsolete. Dan Appleman cited a parable from Lewis Carroll's Through the Looking Glass which illustrates this wonderfully: 'Now! Now!' cried the Queen. 'Faster! Faster!' And they went so fast that at last

By Jeff Atwood ·
Comments