Of late I have been observing a lot of my friends (many who were collegemates) that I know are taking a view of coding to be unsavoury. I find this trend a little disturbing. Maybe we need to distinguish between coding & programming. I could say coding = programming minus all the fun aspects of programming. I was prompted to come at this definition by looking at the way coding ( aka ctrl+C, ctrl=V ) is done in most of the services companies, I guess I maybe wrong and would like to be proven that way.
[ It is really wierd most of the time I keep saying that geeks live in their silos and they need to open up for a better world for everyone but here I am saying that people are not geeky enough ]
I am not an ace programmer as some of my hardcore geeky friends but I find a lot of challenge and satisfaction in programming & I love to do it. Though I talk a lot at the abstract, architectural & strategic level(atleast here in my blog) but building a system( be it hardware or software) end to end excites me a lot and I guess that is what programming is about.
You are right , coding = programming – “fun”
Though its not entirely Ctrl-C, Ctrl-V..but it still lacks “fun”.
For real coders/programmers, coding is like an art, much like writng a novel. Unfortunately, in many services companies, the deadlines are so tight and work load so heavy, that most engineers end up just blindly cranking out code without getting an oppurtunity to appreciate the finer points of software engineering.
There are tight deadlines in product companies as well but I guess it is the attitude of looking at programming/coding that is hugely different in services companies and product companies.
Rajan, in product companies, deadlines are set by the product team keeping in mind (and taking in account) how long it will take to write GOOD code. In services, deadlines are driven by clients. When there are several companies bidding for the same project, it is natural that deadlines get squeezed. And code quality is easiest to compromise upon 🙂 Even in product companies, when management sets unrealistic deadlines, code quality takes a hit.
You are right about the attitude though. In many services companies, the approach is short sighted as team members and project managers are eager to finish the project and move on to something else. With products, you know you have to live with the code for many years and maintain it as well.
I concur, you put it very aptly.