How to ask a good Stack Overflow question.

Before I dive into my own opinions about how to ask a good question, it’s probably important to note that Stack Overflow has provided a guide on this exact topic.  I can think of no better starting point than here.  If you think the Stack Exchange community is full of elitists and you’re mad because […]

Unit Tests Don’t Prevent Bugs

… but you should still be writing them. Given the following set of test cases:

We can quickly verify whether or not our  isPrime() function is working for the numbers one through nine.  But we can’t guarantee that our  isPrime() function has no bugs.  Do we know whether or not it returns the right value for ten or […]

The Ten Commandments of Programming

Thou shalt use braces. Thou shalt use source control. Thou shalt not optimize prematurely. Thou shalt honor thy language’s conventions. Thou shalt use the right tool for the job. Thou shalt include necessary context when seeking assistance. Thou shalt write automated tests. Thou shalt not compare floating-point numbers using == . Thou shalt write readable code. Thou […]

Does Not Work

One of my biggest pet peeves is listening to other programmers claim that a particular piece of source code simply “does not work” when they are seeking debugging help. Claiming something “does not work” isn’t what one programmer says to another programmer.  The phrase “does not work” should be reserved for when you’re taking your […]

Developing User Interfaces

It used to be that software was written strictly for desktop computers.  And although people had different monitors and video cards that provided some variety of resolutions, there weren’t that many different resolutions.  Moreover, there was even less variety in aspect ratios. In the world of desktops, it hasn’t really changed that much.  The variety […]

How do you eat an elephant?

One of the largest struggles novice programmers have difficulty with is disassembling large problems into a logical set of smaller, solvable problems. There is no code that is hard to write.  Writing code is not the hard part about being a programmer.  Take any problem and break it down into small enough sub-problems so that they’re solvable, […]

Programming, Objectively

Most of today’s most popular programming languages are object-oriented. Whether you’re writing in .NET, Java, or within the Apple realm (Objective-C and Swift), you’re writing in an object oriented language. And if you’re not writing a command line application, then you’re almost certainly using some amount of object oriented code for your user interface code, […]

ALL YOUR SOURCE ARE CONTROL BY US

In today’s day and age of software development, there’s no excuse for not putting your source code under some form of source control. Source control (also known as “revision” or “version” control) is primarily used to make developing software in a team less of a nightmare.  And when you’re working with a team, the source control repository […]

There are 10 types of people in this world…

Ah, the age old nerd adage: “There are 10 (correctly pronounced ‘two’) types of people in this world, those who understand binary and those who do not.”  So, besides knowing that  10  is the binary representation of the decimal number  2 , how well do you know binary?  And do you put this knowledge to use in your every […]

Writing Readable Code

With some regularity, I will see programmers reference this Stack Overflow answer as their defense for having no comments in their code. Comments should be very rare and valuable, almost always expressing the “why” and never the “how” (the exception being when the how is complex and not easily discernible from the code). Every comment […]