Sunday, January 28, 2007

Effective Programmer in SGGS.... Dont Worry just an essay!!!

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(???)

Tuesday, January 23, 2007

me, pratik, 3 nights and its over.......

It was 15th jan. 6:30 pm, coll just over and i was wandering around the campus.....
My favourite ringtone rang.... i saw the no. , It was somthing screwed number.... something like +4404....
Just received the phone to satisfy my curiosity..... It was from Mihir.... One of my senior from SGGS. He was in final year when I was in 1st.
On that phone he asked me to do a project for him. It was the Photo-net project which I supposed to do in 4 days.... Challenging right???
Ya I also thought the same.... and accepted it...
Also assured him the best i can do for him. It is a online photo sharing portal which has to made with two privilege levels, User and administrator. User can upload images, browse images, search images and purchase the images. And administrator has to verify it. He should be able to verify the user, verify the uploaded images and put down his administrative efforts to prevent misuse of the service. One user has paid the anual subscription fees then he is alloted 10 credits and for each download of the image one credit has to be reduced from his account. Also when the user uploads one image , one credit should be rewarded to him after aproval of the image by administrator.
Looks challenging and a bit difficult to impliment at first sight and over this the project has to be developed using the php and MYSQL as database....
The images has to be stored in the database and the thumbnails of those images are to be generated on the fly via programming.....
I decided to jump in the matter.... I was very little experience of developing the applications using PHP and Mysql but I decided to take the chance....
and surprisingly I worked hard like a partial psychotich person day and night, day and night....
Pratik also joined me....
Wah... Hats of this person... I should realy apriciate this person... he is someone having a lot of patience and eager to work.. When I gave him the idea of the project, he imidiately agreed to work with me... I am quite sure that he is having a bright future.... Best of luck Pratik....
1st night I worked on user interface and secure ligin system... Got it done early in the morning with few bugs but still managed to get rid of them....
pratik worked parallaly and found the code for storing the images in the database also reengineered the code to best fit our requirement.... Next day we managed to design the flow of the system and worked out database design. After that I worked out the user privileges where pratik parallaly managed to get the images out of the database and display raw...
Also we managed to generate the thumbnails using the PHP GD library.
twenty percent work over... Next day and night went to fix up the bugs and merge the code that has been written by pratik and me..
After that we worked together to get the critical part done. that is the credit management system and finished late night....
Damn workload...
After a samrt 3 days and horrible 3 nights we managed the system to satisfy bare minimum requirement.
The project is over now and I am writing its documentation.... One of the most boring work...
Now onwards I decided to get the documentation written as soon as the code is written, it will decrease a bit of tenssion of the documentation. Or at least I think so....
Now its time to move forward....
Come on I have accepted the new challenge and ready to face that....
Will stat working from today itself and after the completion of the project will post the expirience here...
I know it is quite torcher to you to read my articles but please bear with me.... I am just practising to writ ethe documentation you know.... The most boring one/....
Till then bye.....