April 12, 2014

 

Some thoughts on programming

What is programming, how and why to learn it?

When I imagine someone who is complete novice for programming starting to learn it, for some reason I think of text mode editor with large clear white or green letters and command line. Or even Basic. But does anyone learn Basic today? I fear no. Then what environment do people start from?

When you have little environment (text and dark-screen graphics mode) and some book (or simple in-IDE docs), you can set simple goals and reach them with much pleasure. An example of such environments are QBASIC and VS installed with MSDN.

But what if one starts developing web apps with its almost indefinite features of JS frameworks (and even infinite number of frameworks themselves)? I don't event want to think of server-side part set-up and configuration: for novice it can be a nightmare (comparing to VS/QBASIC set-up, for example). The web app stack is just big and have many tactical questions: app layer, app server layer, HTTP transport layer (it's not so simple with its compatibility issues) and the very complex network layer, then client side browser with its issues, and OS aroma. This is not whole list of things web programmer must think about. Others are startegic questions: stability, high load, logging, security. Of course, one can use ready framework and LAMP out-of-the-box server setup, but no cheap real product can be completed without understanding underneath stack issues.

So does it help to learn programming when you have rich envoironment? Or is it better to have poor environment with more reachable goals? I don't know exactly :)

The other thing is motivation and energy.

For me, in programming I receive energy for completing the goals I set for myself. Of course, I had formal courses in school and university, and of course if the external goal was worth interest, I had real pleasure completing it.
But sometimes this is like living in a parallel world: goals I set for myself did not always correlate to some real-world valuable (for money) tasks. For example, I remember I sat the whole weekend optimizing image-scaling algorithm. Good thing, but not for what money was paid that time. Although I was able to speed-up that 70x comparing to straight-forward implementation and I was very proud of it :)

I believe that in programming the emotional feedback is the most important thing. Although programming itself is actually very unemotional and even sometimes boring subject.

But I believe programming is great and almost the most interesting profession, maybe after nuclear physics :-)

Labels:

This page is powered by Blogger. Isn't yours?