Hello fellow readers,
In this post I’ll discuss what programming and computing are for me.
Computers are tools. Their functions can be summed to entertainment,
utility, and information. It’s common to find persons loosing themselves
to a tool, slave to their creation.
Programming is something useful. It’s a big domain where you learn languages to instruct a machine to take actions. Those instructions can range from outputting things (maybe screen pixels but not limited to that), taking inputs from the outside world (not necessarily a keyboard or mouse), doing calculations at very high speed, storing data, and transferring data.
There are two kinds of programmer dilemmas: the ones who build parts for other programmers to use and the ones who build for end-users programs to solve problems. It’s common to find persons that forget to whom their tool is, frightening others with jargons and technical issues they don’t care about.
While building something as the first kind of programmer no real accomplishment is made. Success is rare. It’s hard to innovate and satisfy others. Even programmers themselves don’t care about the implementation details. Those programmers should be humble, brave, and patient. The K&R duo is a fine example of this. They are the authors of the C programming language and UNIX operating system on which run almost every platform today. Yet, who of your non-techie friends has ever heard their names. Ask them about Steve Jobs or Bill Gates instead.
It’s common to find persons that seek attention for building blocks, craving the look of others because they aren’t fulfilled by humble work. Things are build for someone to use and this someone is yourself most of the time. It’s common to find persons that build things they would never use.
Let’s not forget the essential. Programming is an immense power, it makes you a creator. It’s satisfying to see ideas taking concrete shape and becoming real. On the path to the goal there are obstacles taking the form of learning experiences. Motivation for the end goal helps you climb the mountain.
It’s common to find persons that have replaced the whole idea of programming by the techniques. They forget that it’s a mean to an end. Nevertheless, it’s exciting, but not very useful on its own, to learn and be able to do things only a few can. It’s not contributing to anyone’s life. Even researchers don’t do that. They have goals and projects that innovates. It’s common to find persons that are learning simply to brag to their peers. There should be something driving you to code and learn, curiosity, or the pleasure of creation, or anything else.
It’s not all logic, imagination is deeply involved in the process. If someone ever says that programming is strict and requires a head full of algorithms and maths, that person is wrong. Programming is asking a sculptor for a piece. Every sculptor has his own technique, his touch, his peculiar way of thinking, and imagination. Does the person asking for the beautiful piece of art care about what he was thinking while sculpting, in what manners he held the tools, and what he has been taught by his teacher to be able to sculpt this way? Probably not. Maybe a bit if the person is also a sculptor. Would the sculptor enjoy his work if it only was about techniques and books? Probably not. The sculptor enjoys taking a bit from all the techniques he has learned and found, mix them together, make them his own, to create brand new master pieces that bring joy to the community. Pieces that bring smiles.
Who would want to stay near a sculptor that only talks about his techniques? Who would want to stay near a sculptor that only talks about how much money he can make out of his work? And behind every sculptor there are carpenters and other workers preparing the tools.
Programmers are not alone in the field of computing, it’s an ecosystem. We have our immune system, the hackers and pentesters, we have our artists, the graphic designers, we have our engineers, we have our cleaners, we have our business man, we have from everything.
I’m no mathematician. I’m no crazy PhD dude who spends hours to
explain simple ideas using complex words. I’m no graphic designer,
even though I try to make my programs look visually appealing. I’m no
graphic programmer, I can’t make raster graphics or analyse the graphics
and special effects of video games. I’m no frontend-nodejs.io genius,
my webpages are simple. I’m not a low-level, kernel, operating system
developer, even though I really enjoy Unix boxes.
In fact, I’m almost nothing. I’m not defined by what I do. I’m more than that. I’m best at what I do worse and I’m happy with it.
See you around folks!
UPDATE (2020-02-08): Here’s another article with the same spirit: https://letterstoanewdeveloper.com/2020/01/27/software-is-about-people-not-code/
If you want to have a more in depth discussion I'm always available by email or irc.
We can discuss and argue about what you like and dislike, about new ideas to consider, opinions, etc..
If you don't feel like "having a discussion" or are intimidated by emails then you can simply say something small in the comment sections below and/or share it with your friends.