software development concepts

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
Your Code: OOP or POO?

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
Curly’s Law: Do One Thing

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
FizzBuzz: the Programmer’s Stairway to Heaven

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
What’s In a Version Number, Anyway?

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
Low-Fi Usability Testing

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
If It Isn’t Documented, It Doesn’t Exist

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
Do Certifications Matter?

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

user experience

The Power of Defaults

In Typing Trumps Pointing, I extolled the virtues of the full-text search included in Vista’s new Start Menu. As many commenters pointed out, the feature itself is nothing new: I love keyboard searching, but basically you say you are installing Vista, an entire operating system, just so you don’

By Jeff Atwood ·
Comments