The Universal Answer

Tags

, , , , , , ,

At some point it strikes you. For some it  happens early in Computer Science class after hearing a professor say it for the umpteenth time. For others it happens when hearing it come from their own mouths for the umpteenth time. The Universal Answer to any (and all) computer (science) question(s).

“It depends.”

Continue reading

Too much specialization!

Tags

, , , , ,

To make this blog (I hope) useful, I have tips and advice and bits of advice. But the initial motivation was wanting to write about programming or software in general — topics too technical for my regular blog. In particular, I wanted a place to document past projects, ideas and personal (but sharable) thoughts about coding. I wanted a place to tell stories.

Today I have a story to tell about a programming project I’m working on.

Continue reading

Always Use Less-Than

Tags

, , , ,

Here’s a simple tip! I can’t begin to count how many potential code bugs this has eliminated. It takes some getting used to but once you make it automatic it’s a real help in keeping code and your thinking correct.

The tip is this: when you write relational expressions, always use less-than, never use greater-than. (Less-than-or-equal is okay, too.)

Continue reading

Naming Things

Tags

, , , ,

One of the things that programmers do a bazillion times during their career is come up with a name for something. Every variable, every sub-routine, every class, every method, every instance, even the program itself and all its supporting files: they all need names. In some cases the naming is obvious and easy, but in others it’s complicated. You can end up creating a big ball of mud if go about it casually.

So one thing you want to start doing is being intentional about naming things.

Continue reading

Rule #2: Source Code is for Humans

Tags

, , ,

When you write code, always remember Rule #2: Source code is for humans. This rule ties to Rule #1 about clarity. You’re writing for humans, so write clearly! The compiler can understand any syntactically correct ball of mud you make, but humans need all the help you can give them. Write for your human readers, not the compiler.

Continue reading

Software Engineer

Tags

, , , , , , , , ,

I don’t like the term Software Engineer. Real engineers have licenses and certifications and prescribed educations. No such exists (currently) for software makers. It is still a new craft in our society (it goes back only to the 1950s or so), and we haven’t caught up to how complex and demanding it really is. Anyone can use the term Software Engineer, so it doesn’t have the meaning it could.

Continue reading

Software Development

Tags

, , , , ,

Software development can be hard to describe or compare because it depends so much on the use of abstraction. One can visualize a continuum of professions based on how much abstraction they tend to require from their workers. Software tends to be on the far end of that spectrum. Not only do programmers deal almost entirely with abstraction, but often with multiple layers of abstraction!

Continue reading

Four Primary Principles for Programmers

Tags

, , , ,

Over the years I’ve come to believe in four basic principles computer programmers should adhere to. They reflect four paths of continuing education programmers walk throughout their career. The bottom line, really, is that you’re going to be doing these things a lot; it will serve you well to learn to do them well and with intention.

Continue reading