software development concepts

user experience

Zoomable Interfaces

Asa Raskin, the son of the late Jef Raskin, recently gave a presentation at Google on the work his company, Humanized, is doing. It’s largely a continuation of the work of his father. One of the most interesting aspects of Jef’s work was zoomable user interfaces. Asa’s

By Jeff Atwood ·
Comments

microsoft

Giving Up on Microsoft

Although I am generally platform agnostic, I make no secret of the fact that I am primarily a Microsoft developer. In a way, I grew up with Microsoft – as a teenager, I cut my programming teeth on the early microcomputer implementations of Microsoft BASIC. And I spent much of my

By Jeff Atwood ·
Comments

programming languages

Your Favorite Programming Quote

My all-time favorite programming quote has to be this Nathaniel Borenstein bon mot: It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a

By Jeff Atwood ·
Comments

programming languages

Basic Design Principles for Software Developers

In my previous post, I urged developers to learn a mainstream graphics editing program. This is purely a mechanical skill, so it seemed reasonable for developers to give it a shot. If we can absorb extremely complex development environments, compilers, and databases, why not a graphics editor? But as a

By Jeff Atwood ·
Comments

programming languages

Programming Tip: Learn a Graphics Editor

One lesson I took from MIX is that software development and graphic design are increasingly interrelated disciplines. Although they are very different skillsets, its important for developers to have some rudimentary design skills, and vice-versa. There’s a lot of useful cross-pollination going on between developers and designers. You can’

By Jeff Atwood ·
Comments

programming languages

Welcome to Dot-Com Bubble 2.0

The dot-com bubble was a watershed event for software developers. You simply couldn’t work in the field without having something miraculous or catastrophic happen to you. Or both at once. The “dot-com bubble” was a speculative bubble covering roughly 1995 — 2001 during which stock markets in Western nations saw

By Jeff Atwood ·
Comments

programming languages

Apparently Bloggers Aren’t Journalists

I ran across this blog entry while researching Microsoft’s new Silverlight Flash competitor. It makes some disturbing complaints about the limitations of Silverlight, in bold all-caps to boot: This is where I threw my hands up in disgust. What in the holy name of Scooby-Doo are those people thinking?

By Jeff Atwood ·
Comments

software development concepts

When In Doubt, Make It Public

Marc Hedlund offered some unique advice to web entrepreneurs last month: One of my favorite business model suggestions for [web] entrepreneurs is to find an old UNIX command that hasn’t yet been implemented on the web, and fix that. To illustrate, Marc provides a list of UNIX commands with

By Jeff Atwood ·
Comments

programming languages

The Pernicious Issue of Software Patents

A reddit user recently invoked link necromancy on a 1994 Donald Knuth letter to the U.S. Patent Office: When I think of the computer programs I require daily to get my own work done, I cannot help but realize that none of them would exist today if software patents

By Jeff Atwood ·
Comments

software development concepts

Pick a License, Any License

I hate software licenses. When I read a software license, what I see is a bunch of officious, mind-numbing lawyerly doublespeak. Blah, blah, blah... kill me now. If I had my way, everything would be released under the WTFPL. Over time, I’ve begrudgingly come to the conclusion that, like

By Jeff Atwood ·
Comments

programming languages

Software Projects as Rock Climbing

If you accept the premise that software development is a cooperative game, then you might wonder: what kind of game is it? Alistair Cockburn believes the closest analog to a software project is the cooperative game of rock climbing: * Technical. The novice can only approach simple climbs. With practice, the

By Jeff Atwood ·
Comments

programming languages

Learning on the Battlefield

I occasionally get emails from people asking how to prepare for a career in software development. Some are students wondering what classes they should take; others have been bitten by the programming bug and are considering their next steps. I always answer with the same advice. There’s no substitute

By Jeff Atwood ·
Comments