I wrote this a long time ago and published it here on Academia. Now, based on how useful I still find this concept to be, I have decided to republish it here for you to see. I called it “the impossible mind of the computer programmer” and you will soon find out what I mean by that. In addition, you will see what I also call “output-oriented learning”.
Since I began my journey through computer programming, there has been a lot I have learnt. Beginning with the basics all by myself was a journey I would never say was easy. However, computers and programming have been an area I have always been fascinated in, probably because it generally bears so much semblance to real human life and experiences.
Life and Computer share many things in common, and understanding the computer can help improve many areas of your life. One fundamental principle of the computer that can enhance your performance generally is that of “garbage-in, garbage-out”, in which case, what you see is a result of what you gave.
Programming is an interesting computer discipline, but much more interesting are the lessons you’d learn from it for the rest of your personal and productive life. Here, I will reveal to you what I call the impossible mind of the programmer. Additionally, there is one approach to learning that can facilitate your learning process and productivity, and this is what I’d call output-oriented learning.
My Early Programming Days and Experience
In my early programming days, I had to start with the basic web designing programming languages, HTML and CSS. Trust me, at the start, learning programming can be as boring as you’d ever imagined.
Programming is not actually a difficult skill, but in the absence of a tutor or prior exposure, it can be a hell of a job, but I was able to scale through the hurdles of discouragements anyways.
The Period of Abandonment
If you think I would be a hundred per cent right to say that learning programming is not a difficult feat, or that my experience was always fun, that would be your most wrong assumption ever. Even to date, I still encounter difficulties yet not unsurmountable. When you become a computer programmer, these interregnums come, but they don’t become the end of your programming career.
When I began coding about 10 years ago, my progress was halted at a point for about 3-4 years, but this later gave way to a phase where programming became sweeter for me. When I resumed after the long gap of inactivity, this ‘output-oriented programming’ enabled me to get faster in my learning process, and I am also willing to share that in this post. But before we see that, let’s see what it means when I say the “impossible mind of the programmer”
The Impossible Mind of a Programmer
Here comes the meat of the whole matter. “The impossible mind of the computer programmer”, I called it, but then, so many things run through your mind when you hear it. My goal is to help you decipher the meaning of “the impossible mind”, and clear your every doubt.
One thing that makes programmers greatly exceptional is how they focus on things we normally call ‘impossibilities’. The mind of the programmer is a mind of impossibilities, not in the sense that you now imagine it, but in the sense that, they do not believe impossibilities really exist in the world of programming.
The many feats that have been achieved through the computer in recent years owe it to the relentless, impossible mind of computer programmers. What do you imagine? Just imagine it, programming can make it possible no matter what it is.
One of the greatest assets of mankind is, in fact, the invention of the computer. Since its invention, it has made jobs easier, virtual realities, artificial intelligence, and virtual assistants have become man’s most consistent companions and aids both at work and in social life. To the ordinary mind a few years ago, these feats would be considered impossible tasks that can never be accomplished but “the mind of the programmer” is already ‘too possible’ to still consider any impossibilities. In other words, there are no impossibilities.
When I knew this, I realized the many more great things that I could do. I realized that there is more to be achieved. Now, let us look at the second concept of ‘output-oriented programming’ and how it applies to real-life scenarios.
Output-oriented programming makes you the true master of anything you are doing. Knowing the formulae, methods and processes makes you understand how to go about your art but focusing more on output makes you exceptional and to gain mastery. There is the temptation to stick to exact processes as you had learnt and never go an inch away but I tell you, that only limits the scope of your learning and productivity.
After knowing about this concept, I experienced my first visible improvement with “CSS rules” as they may be referred to in programming, and that gave me great satisfaction and fulfilment that I was making progress. It gave me a strong foundation to continue on. Severally, I adjusted my codes based on the output I wanted to see, I would adjust them to fit my imagination. This gave me an extra boost and self-confidence in my journey through programming.
One’s ability to apply theoretical knowledge in an output-oriented manner makes one better, and the best surgeons, if you are ever interested in an analogy with medicine, are those who focus more on the ‘surgical output’ they desire, rather than just the systematic methods of the procedure. The best musicians, likewise, are those who focus on the musical effect they want to achieve, rather than just the fixed or stereotyped method of producing it. This goes on and on for different professions and skills, and when you understand this concept and apply it, you will notice drastic improvements in your skill and creativity.
Finally, it is not as though you have to totally ignore the methods, processes, and formulae you have learnt or that you were taught but the output-oriented learning or practice helps you place your end result in mind, and opens you up to finding ways to get there. This mental image of what you want to achieve, learn, and produce, not only makes it learning and work easier for you but also makes it more fun and interesting.
When you have a mental picture of what you want to achieve even before you start working, you get better results than when you simply follow formulae with the hope that they would yield the desired output.
Leave a Reply