Questions to Resolve While Writing Data Synchronization Code

July 7, 2011

My home laptop fell a few days ago and the power button stopped working until I got new parts shipped and replaced. Everything went back to normal or so I thought until I opened Google Chrome on another system I was using, and found that the bookmarks I had added in the last few days […]

Read the full article →

Stops, Not Speed, Determine Programming Velocity

May 23, 2011

Have you had the experience where you estimated the travel time from A to B, in say, 30 minutes, traveled all but one mile in 25 minutes, felt pleased about it and then got stuck in multiple red lights in that last mile and reached your destination 10 minutes late? You might shave a few […]

Read the full article →

True, But Useless Information

May 1, 2011

From an old article by Paul Graham: In a recent talk I said […] that you could get smarter programmers to work on a Python project than you could to work on a Java project. […] I meant that Python programmers are smart. It’s a lot of work to learn a new programming language. And […]

Read the full article →

Improving Programming Productivity

April 30, 2011

Paul Homer has a post listing several ways in which you can waste your time while programming. Much of the waste comes from lack of thought about how to write code, primarily because people jump directly from specs into coding without thinking about how they can structure their code well. I sometimes read articles about […]

Read the full article →

Bottom-Up Design

April 29, 2011

The strangest thing I have read in the recent past (emphasis mine): In his classic “Clean Code” Robert C. Martin describes a great (and widely adopted) way to object oriented programming. He says code should read from top to bottom like prose. Start with the most high-level concepts and break them down into lower-level pieces. […]

Read the full article →

Commented Out Code

April 21, 2011

This post at Visual Studio Magazine by Peter Vogel has invited a lot of contempt (via Rob Conery): I never delete code — you never know when you might want it back. So I spend a lot of time commenting out code. I do this so often, and mousing up to the menu takes so […]

Read the full article →

JavaScript is More Complex and Important than You Realize

April 19, 2011

Kudos to Michael Woloszynowicz for pointing out that the JavaScript experience on the resumes of most people is worthless. If you tried to interview most people on JavaScript beyond the basic stuff, it would be a one-sided monologue. To be fair, these developers are much better at the language they consider their primary one and JavaScript […]

Read the full article →

Refactoring is Not About Reducing Code

April 18, 2011

The first introduction to refactoring for many programmers comes when a senior developer on the team takes a look at what they have written, yells some expletives and starts deleting blocks of code that has probably taken them days to write. After a few such incidents, these programmers start understanding what DRY means. Unfortunately, some […]

Read the full article →

Software for Multiple Customers

January 31, 2011

To follow up on my previous post about fully flexible software, I wrote about projects with a single customer or at least one entity that pays the bill and dictates the requirements. That is, of course, only one type of project, even if it arguably is a huge chunk of the programming market, including consulting […]

Read the full article →

Fully Flexible Software

January 27, 2011

A commenter (Daniel) on my previous post had this to say [summarized from multiple comments]: if you assume that requirements can be well defined and are static for the lifetime of the product, then programming is trivial. I’ve never seen this assumption to be true. […] at the level of programming, what do you have […]

Read the full article →