9 truths that computer programmers know that most people don’t [Archived]

This piece was originally published at macleodsawyer.com on March 6, 2015 — 

Computer programs know far more about computers and code than the average person does, and honestly some of it’s scary.

Fact #1

“Under the hood, most critical software you use every day (like Mac OS X, or Facebook) contains a terrifying number of hacks and shortcuts that happen to barely fit together into a working whole. It would be like taking apart a brand-new 747 and discovering that the fuel line is held in place by a coat-hanger and the landing gear is attached with duct tape.” — Ben Cherry

That’s the funny thing about code, the website or program may work beautifully, it may run smoothly, and it may be absolutely beautiful on the front-end side (what the user sees). But, behind everything that makes it work it will have so many errors, and work arounds that barely work and that shouldn’t work, but do for some strange reason.

Fact #2

“That about 25% of the hours spent writing an application are spent figuring out ways the end user will do something wrong.” — Brian Humes

Everytime we build something, we have to sit back and think of how the end-user will end up fucking it up. What they will click on, what they will write, the phrasing of questions, the language used, and how what we write could be interpreted differently. If we wrote the code like how we would use the project, well then there will be so many issues because we know how the program works, and the end user doesn’t.

Fact #3

“A programmer is not a PC repair man.” — Ritesh Kumar Gupta

A programmer is one who deals with algorithms and design principles, not the one who repairs a computer. We may know how the internal workings of a computer work, how code fits together (or rather hacked together as I explained in Fact #1). But, that does not mean we know how to fix hardware. That does not mean we know how to fix that issue you’re having with chrome that makes it crash everytime you open it, or why you’re computer is always overheating and the battery dying. Computers programmers, at the least know how to program computers, not fix them.

Fact #4

“Programming is thinking, not typing.” — Casey Patton

Most of programming is spent sleeping, walking around, staring out the window, or doing anything else that helps you relax and think. Relaxing is a major key to programming, its not just sitting down and writing a thousand or more lines or code, and pushing out a program or app. We have to sit down, walk around, and just think. We need to think about how to come up with the concept, fix the issues with it, find a way to make it work, how it’s going to work. Relaxation is the only way we can fix the issues the best way we can.

Fact #5

Counting starts from zero, not one.

This is important in every programmers life. Counting starts at 0, your “1" is my “0", your “10" is my “9". The reason why this is because computer programming is all about efficiency, and even small improvements in efficiency can make big differences at scale.

And yes, counting from zero is slightly more efficient than starting at 1. Computers are built on a 0 and 1 numbering system that makes up everything (hello binary!). Counting from 0, is just easier and creates efficiency. (you can read more here)

Fact #6

“Programming is best done “in the zone” — a (pleasant) state of mind where your focus on the task is absolute and everything seems easy. This is probably much like “the zone” for musicians and athletes.” — Morgan Johansson

Ever wondered why programmers are known as night birds? Why we stay up all night? Because it allows us to get into the zone, it allows us to focus on one thing and not have to worry about being interrupted by someone — because they are all asleep. It’s a long stretch of the day where no one is up and no one is calling or trying to talk to us. It’s a great time to program, and think.

Fact #7

Sleeping with a problem, can actually solve it.

If you have a problem you are told to sleep on it, forget it, put your mind at rest. But, with programmers its the go to way to solve the problem not because it gets us away from it, but because it for whatever reason helps us solve the problem with our code. Many times I have come across an issue, spent hours and hours of work on it, just trying to fix what should should be a simple problem with a simple fix. But, by going to sleep for 20 minutes, an hour, six hours, twelve hours, we can wake up and immediately know the answer to the problem.

Fact #8

A parent may kill its children if the task assigned to them is no longer needed

Not something you would like to hear someone say while out, now is it? (and if it is, you should seriously check into a mental health facility, or turn yourself into your local police department).

It’s not as gory as one would think, programs are written like a hierarchy. With the parent managing the processes below them.

An example of the parent-child relationship.

When a parent no longer needs a child they kill it, meaning when a program no longer needs to do something (say send an email), they kill the connections to the server as its not needed, basically killing the child.

And finally, fact #9

Just as you’re usually not impressed when we brag about how much we know about computers, we’re not impressed when you brag about how little you know about them.

Seriously. Just stop, please it’s annoying. We don’t care. We really really don’t care how proud you are of not wanting to learn new things. Now, its understandable if you are just saying “I don’t know much about computers” or “I’m not really interested in computer programming” but bragging about how much you dont know about computers is just annoying. Stop.

Hey thanks for reading my post, it means a lot to me! Why don’t you share it with your friends, or comment how you feel about this? (if there are any issues please alert me in the comments, that would be of great help!)

[[This article was archived from my past blogs, comments have disapeared sadly but you can find quite a few of them here on HackerNews: https://news.ycombinator.com/item?id=9164665]]