Since I began my journey through computer programming, there has been a lot I have learnt. Beginning with the basics all by myself is a journey I would never say is easy. However, computer and programming have been one area I have always been fascinated in, probably because it generally bears so much semblance with real human life and experiences. Life and Computer shares many things in common and understanding the computer can help improve many areas of your life. One fundamental principle of the computer is that of "Garbage-In, Garbage-Out", in which case what you see is a result of what you gave.
Programming is really interesting computer discipline and much more interesting are the lessons you'd learn for the rest of your personal life and productive life. Here, I will reveal to you what I call the impossible mind of the programmer and additionally, there is one approach that facilitates learning and productivity that I call the "output-oriented learning".
My Early Programming DaysIn my early programming days, I have had to start with the basic web designing programming languages, HTML and CSS. Trust me, it can be as boring as you'd ever imagined. Programming is not 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 anyway.
The Period of AbandonmentIf you think I'm a hundred per cent right by saying it was always fun, that would be the wrongest assumption ever. Even till date, I still have difficulties yet non-surmounted. When you become a programmer, these interregnums come but they don't become the end of your career.
When I began 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, the 'output-oriented programming' enabled me to get faster in my learning process and that I am also willing to share in this post.
The Impossible Mind Of A ProgrammerHere 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 on this. My goal is to decipher the meaning and clear your every doubt.
One thing that makes programmers greatly exceptional is when they focus on the impossibilities. The mind of the programmer is a mind of impossibilities, not in the sense that you now see it, but in the sense that they do not believe impossibilities really exists in the world of programming.
To the ordinary mind, these feats may be considered impossible tasks but "the mind of the programmer is already too possible to still consider impossibilities". In other words, there are no impossibilities.
When I knew this, I realised the great more things that I could do. I realised that there is more to be achieved.
Output-Oriented ProgrammingOutput-oriented programming makes you the true master of anything you are doing. Knowing the formulae, methods and processes makes you know how to do what you want to do in any art. But focusing more on the output makes you better and gain mastery.
There is the temptation to stick to the exact processes as you would learn and never go an inch away but I tell you, that only limits the scope of your learning and productivity.
I began doing some visible work by the most basic "CSS rules" that I learnt then and that gave satisfaction that I was improving. It gave me a good foundation to build on. I adjusted my codes based on what I wanted on display, such that, I would adjust them to fit what I imagined. This gave me an extra boost in my learning of programming.
Ones' ability to apply theoretical knowledge in an output-oriented manner makes you better. The best surgeons are those that focus more on the medical output they desire rather than just the systematic methods, the best musicians likewise, focus on the musical effect they want to produce than just the systematic method of producing it. This goes on and on for different professions and skills. When you understand this concept and apply it, you will notice drastic improvements in your skills and creativity.
It is not as if you totally ignore the methods, processes and formulae you have already learnt. But you are able to work bearing your result in mind. When you have a mental picture of what you want to achieve on your mind even before you start working, you get better results than when you simply follow formulae with the hope that they should yield the desired output.