This week I read a post called, “9 truths that computer programmers know that most people don’t.“, by Macleod Sawyer .
Below is a summary of Mr. Sawyer’s nine points about programmers and programming, and by the way, he is 17 years old.
1. …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.
2. 25% of the time involved in programming …we have to sit back and think of how the end-user will end up MESSING it up. (Macleod used an unneeded explicative term, I kindly replaced it and hope in the future he chooses to reserve these for serious situations).
3. 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.
4. 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, it’s 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.
5. 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.
6. Ever wondered why programmers are known as nightbirds? 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.
7. 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.
8. Programs are written like a hierarchy. With the parent managing the processes below them.
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.
When I read these, and all the comments, I realized that I agreed with 100% of the points. I also saw many other experienced programmers commenting and agreeing. These points apply to any type of work related to programming or systems design.
As I pondered these, I reflected on education and curricula. I asked myself, as I am now asking YOU, “does [my] your school and curriculum actually facilitate students being able to work and solve problems?”
It is clear that the requirements are time, space, and distraction. The requirements do not fit into a schedule, yet, programmers work on intense personal deadlines.
In the past few years there have been massive initiatives related to programming. For example in Estonia, they are starting all students in programming from year 1. Next year in the U.S. State of Arkansas they are requiring programming at all public schools at the high school level. The question is, do these initiatives actually allow students to go beyond simple in-class programming structures and actually make something? Do they allow them to experience the horror and magic of putting a piece of code out into the world to watch it live, die, or thrive?
Anytime a student speaks-up like this, everyone needs to listen. In his article he has some good quotes to connect his thoughts to professional practice. For the before morning coffee crowd, that means he did research.
His 17 year old world view on this topic, is my view. I go to work every morning. Do I work? Yes. I do certain things in the morning so that I can actually start being creative in the late afternoon or evening. I can’t write a line of code, even HTML, before 10 am unless I have stayed-up all night and am wired in.
From 8PM – 3AM I can do more productive work than I can in 16 hours of a normal work cycle.
Admittedly, I only have to do programming certain times of the month. I have a diverse job, so I do not mind the schedule, and I work with people who must be ready to work by 7:30 am, so if I am to support them I have to be alert and ready.
I save big programming projects for holidays and weekends because I need to be able to slide out of the constraints of my contract and get lost in the problem. I wonder what would happen if just a few students had that flexibility and were allowed to see the whole year of curriculum in June (assuming an August start)? What if the solved it, did it all in the summer, and did it well? It is something to consider.
Also, most of YOU cannot count. When I help students with math, I tell them to count from 0-1. I also tell them if they do it correctly it will take them forever. I learned this from programming, and that single concept helps me reach students more than any other.
Enjoy contemplating that.