software development concepts

blog

What’s Wrong With The Daily WTF

Alex Papadimoulis originally invited me to be a guest editor at The Daily WTF nearly six months ago. I was honored and accepted immediately. Since then, The Daily WTF has been rechristened Worse Than Failure. I’m a big fan of Alex and WTF; his blog is fantastic, and WTF

By Jeff Atwood ·
Comments

programming languages

Top 6 List of Programming Top 10 Lists

Presented, in no particular order, for your reading pleasure: my top 6 list of programming top 10 lists. To keep this entry concise, I’ve only quoted a brief summary of each item. If any of these sound interesting to you, I encourage you to click through and read the

By Jeff Atwood ·
Comments

security

Code Access Security and Bitfrost

The One Laptop Per Child operating system features a new security model – Bitfrost. It’s an interesting departure from the traditional UNIX and LINUX security model. The 1971 version of UNIX supported the following security permissions on user files: * non-owner can change file (write) * non-owner can read file * owner can

By Jeff Atwood ·
Comments

object-oriented programming

Your Code: OOP or POO?

I’m not a fan of object orientation for the sake of object orientation. Often the proper OO way of doing things ends up being a productivity tax. Sure, objects are the backbone of any modern programming language, but sometimes I can’t help feeling that slavish adherence to objects

By Jeff Atwood ·
Comments

programming concepts

Curly’s Law: Do One Thing

In Outliving the Great Variable Shortage, Tim Ottinger invokes Curly’s Law: A variable should mean one thing, and one thing only. It should not mean one thing in one circumstance, and carry a different value from a different domain some other time. It should not mean two things at

By Jeff Atwood ·
Comments

programming languages

FizzBuzz: the Programmer’s Stairway to Heaven

Evidently writing about the FizzBuzz problem on a programming blog results in a nigh-irresistible urge to code up a solution. The comments here, on Digg, and on Reddit – nearly a thousand in total – are filled with hastily coded solutions to FizzBuzz. Developers are nothing if not compulsive problem solvers. It

By Jeff Atwood ·
Comments

programming languages

Why Can’t Programmers... Program?

I was incredulous when I read this observation from Reginald Braithwaite: Like me, the author is having trouble with the fact that 199 out of 200 applicants for every programming job can’t write code at all. I repeat: they can’t write any code whatsoever. The author he’s

By Jeff Atwood ·
Comments

software development concepts

What’s In a Version Number, Anyway?

I remember when Microsoft announced that Windows 4.0 would be known as Windows 95. At the time, it seemed like a radical, unnecessary change – naming software with years instead of version numbers? Inconceivable! How will users of Windows 3.1 possibly know what software version they should upgrade to?

By Jeff Atwood ·
Comments

usability testing

Low-Fi Usability Testing

Pop quiz, hotshot. How do you know if your application works? Sure, maybe your app compiles. Maybe it passes all the unit tests. Maybe it ran the QA gauntlet successfully. Maybe it was successfully deployed to the production server, or packaged into an installer. Maybe your beta testers even signed

By Jeff Atwood ·
Comments

documentation

If It Isn’t Documented, It Doesn’t Exist

Nicholas Zakas enumerates the number one reason why good JavaScript libraries fail: Lack of documentation. No matter how wonderful your library is and how intelligent its design, if you’re the only one who understands it, it doesn’t do any good. Documentation means not just autogenerated API references, but

By Jeff Atwood ·
Comments

certifications

Do Certifications Matter?

Name any prominent software technology, and you’ll find a certification program for that technology. For a fee, of course. It’s a dizzying, intimidating array of acronyms: MCSD, SCJD. RHCE, ACSA. And the company offering the certification is quite often the very same one selling the product. No conflict

By Jeff Atwood ·
Comments

programming languages

The Problem With C++

MIT’s Technology Review recently interviewed Bjarne Stroustrup in a two-part article (part one, part two). You may know Bjarne as the inventor of the C++ programming language. Indeed, he even maintains a comprehensive C++ FAQ that answers every imaginable C++ question. Here are a few select quotes from the

By Jeff Atwood ·
Comments