Last week in our compiler construction class Aghav Sir asked us to write an essay about becoming an effective programmer in SGGS environment, I was writing the essay since long but everytime due to some reason I was unable to complete, Sometime lights went off, my hard disk crashed, regular internet problem and blah blah blah...
But today finally I have managed to complete it somehow... and finally it has arrived at its destination... In Aghav Sir's inbox...
Posting the same here for purely general knowledge purpose nothing else so please don't mind..
How to become an effective programmer in SGGS environment??
Effective programmer.... Ok… To whom we can consider effective programmer?? Is that person someone who can write thousands of lines of code… or someone who is a pure programming geek and who finishes all the so called tough academic programming assignments on one night stand? But in my opinion effective programmer is someone who is not only able to write tough code but also he is someone who is able to understand the tough code. Effective programmer should be more accurate on the logic on which the program is standing well. The person should be able to design and implement complex systems. And according to me the effective programmer should posses the team leading qualities, because rather than coding thousand lines by own hands, it is always better to coordinate 10 hands to code thousand lines…
Now, Is there any need to become effective programmer??? Yes, it is the need of time for wannabe Computer Engineers like me to become an effective programmer. I must put my emphasis on effective programming, because when I am studying here all the subjects which are having programming at their heart then it is natural for anyone from outside industry to expect something from me and I am supposed to achieve that something here only and not to my surprise that something is nothing but effective programming…
According to me to be an effective programmer one must understand the core concepts behind whatever thing he/she is programming regardless the tools or the platform he/she is using for the specific purpose. Because as I observed that all the tools and the platforms mainly differ in their syntax and some very basic or some advanced functionalities keeping the core things untouched… That’s why the core logic behind any programming been the same. To explain this thing let me give an example of developing a community portal… Suppose I have to design a community portal using PHP and MySQL then what I have to do first of all is to develop a sound flawless design, That is I should design the logic flow, database relations, and a standers blueprint of what I am supposed to achieve, Instead of putting more emphasis on the coding I should put it on designing and understanding the real problem on design base. If I am able to achieve the sound design then it is the matter of a little syntax studying.
When I am loaded with the right idea and the sound design then I can port it to any platform just studying the platform specific syntax. Now if tomorrow someone comes and wants me to develop the community portal on .NET or JAVA basis then I must be able to do because I know what I am supposed to know and I have the platform independent design ready with me…
Again in order to become an effective programmer, the logistics part of the programming must be achieved. And as per my observations that is the key thing that is always been lacking in almost all academic projects. When I develop something then I must evaluate that on the basis of usability and the need of the situation. I should be able to justify the use of that software and more than use how it is being a profit thing for the user. For example if I am developing a accounting application then it must be able to minimize the user and paper interface. And the user should be convinced that he is able to entertain a handsome amount of savings. Then only it is going to become a success otherwise, you can just predict the place where your software would be after its failure.
After that, In order to become an effective programmer, I should be enough flexible in my knowledge and desire to work… Means I should never say that “Are baba I am a Linux man and you are asking me to work on a .NET project, How come this is possible??” or the pity words like “I used to program on .NET and see JAVA is not my field of interest.” Instead I should be always ready to work on any platform and on any environment then only I can achieve my goal to be an effective programmer.
All the above jargon is about few things that I thought are important for being an effective programmer but still the central question is a bit away from this discussion. That is how to become an effective programmer in SGGS environment??
And here comes the million dollar question what is the SGGS environment??? Generally what do we mean by environment? Environment is something which is totally responsible for the development of the individual. In fact, the environment is everything around the individual. But here the word environment is taken for a little different meaning; it is taken with SGGS so for me the meaning deflects a bit.
When I hear the phrase SGGS environment blindly I think of the surroundings here at SGGS. Surroundings including the IT infrastructure, facilities available, help from the strong standing faculty and last but not the least the programming culture at SGGS. No doubt the IT infrastructure is one of the best available around the state, and then it is mine duty to use the available resources in order to achieve my goal. Using the IT infrastructure support I can keep me updated with whatever is happening around the world. All the information I want lies at my fingertips. Also the well organized library helps me to earn the knowledge stuffed in the printed pages of the books. Here at SGGS I am blessed with the highly qualified, efficient and always ready to help faculty. Then I must take full benefit of them to get the precious guidelines to become an effective programmer.
Another important thing I think here at SGGS is that the friends circle around me. Man is the social animal so it is natural for anyone to be like the community around him. That’s why if I am following my friends who are quit well at programming then there are more chances for me to be an effective programmer.
I think all the above discussed is my interpretation towards the main question, these are the few things that I think would lead the path to be an effective programmer. And I am quit sure that I can be an effective programmer here because it is not that much tough like flag hosting on Everest or diving deep through the depth of the ocean, It is just a matter of strong determination and following some must follow principles.
Hope you enjoyed(???)