We love apps. We love our mobile games. We love Facebook! And Google is our savior… all the time! Yet we know so little about these things we use.
Did you know that a simple search you perform on Google involves several layers of complicated functions? Seems simple on the surface, right?
But of course, programmers know exactly how Google or Facebook, or your favorite app works (well, not exactly). And much more….
“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
“My code works, I have no idea why. My code doesn’t work, I have no idea why either.” So they say. Indeed, that’s the strange thing about codes. Macleod Sawyer says, a “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 (sic) that barely work and that shouldn’t work, but do for some strange reason”. Strange, indeed.
“That about 25% of the hours spent writing an application are spent figuring out ways the end user will do something wrong.” — Brian Humes
In a survey by Logentries, they found out that for programmers, security concerns are more related to user error (15%) than brute-force attack (9%). Meaning, they are more concerned about how end users will screw the system up.
So, programmers spend a lot of time thinking about how users will use whatever it is they are building – what they will write, how they will phrase their queries, the languages they would use, and what they will click on. Why? Well, according to Macleod Sawyer, “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.”
“A programmer is not a PC repair man.” — Ritesh Kumar Gupta
Guilty as charged. I used to think that computer programmers can somehow fix my computer’s hardware problems, because I assumed that because they know how to make it work, then they know how to fix it as well. I was wrong.
Programmers deal with algorithms and design principles, and not hardware. They deal with the internal workings of the computer and how code fits together. Thus, they program computer and not fix them.
“Programming is thinking, not typing.” — Casey Patton
When we say “programmer”, we imagine a person who has been cooped up all day sitting in front of their computer writing codes. Well, that’s not an accurate depiction.
Programming isn’t easy. When you program, you think of a concept, think of the logic of making it work, and figure out fixes for what might go wrong with it. In other words, it requires a lot of thinking. So, a programmer would not spend their day sitting and tapping on their computer. They’ll also spend time thinking, perhaps while walking around the park, or simply relaxing. As a matter of fact, relaxing is very important for them.
“Counting starts from zero, not one.” – Macleod Sawyer
Inside a programmer’s head, counting really starts at “0”. Why is this so? Kenneth Ramos, our Digital Marketing Officer, says ‘computers start counting from 0 and not 1, unlike humans’. Computers are also built on a 0 and 1 numbering system (the Binary System).
But why would a computer start counting from 0? “It’s all about efficiency; small changes in value can make big differences at scale”, Ken added. Now if you would like to know more about how counting from 0 is more efficient than counting from 1, you can proceed here: Why Programmers Start Counting at Zero .
“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
You know what a stereotypical programmer is like – a major nerd or a would-rather-be-alone dude. I am not saying these stereotypes are right or correct, or even just. But you know, anyone who loves their craft is going to be a major nerd – invested and dedicated (nerd is <3, folks).
Most nerds stay up late at night (or don’t go to sleep at all). Why? Because the serenity of the night allows them to get into that “zone”. Programmers are also like that (they say). At night, most people are sleeping. So, there’s less distraction. Nobody would call you, nobody would text you, basically, there’s nobody awake who’ll bother you. This gives them focus. This gives them the best chance to get “in the zone”.
“A parent may kill its children if the task assigned to them is no longer needed.” – Macleod Sawyer
Okay, chill. It’s not as horrible as you think.
I asked around (since I’m surrounded by programmers here) and I found out that programs are actually written like a hierarchy (just like our governments and bureaucracies). There’s a central authority commanding the overall processes of the bureaucracy. In programming, they call this “parent” and it manages the processes below it – the children.
Now, 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, or sound an alarm (I do this on my Mac using Apple’s Automator), they kill the connections to the server as it’s not needed. It’s not actually killing the child, but in a sense, yes, it does.
And, “a zombie is a child process that has died, but the parent is still unaware of it.” – Robin Thomas
“A zombie process is basically a defunct process. Meaning, it has already completed its execution but ‘still has an entry in the process table”, explains our Web Designer and Developer, Brandon Mandria.