Tag: software

  • Being a Code Monkey!

    Code Monkey: n, a person who writes computer code for a living.

    The term code monkey generally refers to a computer programmer or other person who writes computer code for a living. More specifically, it refers to a person only capable of grinding out code, but unable to perform the more intellectually complex tasks of software architecture, analysis, and design. The term is thus considered mildly insulting, and is often applied to the most junior people on a programming team.

    That is how wikipedia defines the term. I keep asking my self this question, Am I being a code monkey? I know I am better in converting a business requirement into code, than bother about what it implies to the business. I generally suck at testing. Testing is not my job, I can’t possibly find fault in my code. I write a piece, test it, if it succeeds in the first attempt, rather than delving to fix negative scenarios, I move on to the next requirement. Ipso facto, I am a code monkey.

    I, like most of my friends who work in software companies, just write half baked code for a living. We don’t create; we just fix code, if I have to properly call it. Most of us (software or IT professionals) in India, never realize that we are bad programmers. We have full blown IDE in our office, and we just churn out thousands of lines every day, without ever looking for alternative ways. If something bothers us, there is the ultimate destination, Google; just search, find and then Ctrl + C and Ctrl + V code, never understanding it. I am not blaming those who put effort to understand it before using it. I am just speaking about the mass of the programmers.

    Why don’t we realize? That’s because, we get the job done in time. At the end of the day, what matters is the output. We all try to make the management happy. What they need is delivery on time, and we are very good at it and also in times of crisis. Stay late, complete the work and you end up getting an ‘Exceeded All Expectations’ in your annual appraisal. With that comes a salary hike. What more do we need?

    So why am I complaining? I have a job, I get a decent pay, everyone is happy out there, being a code monkey is not a big thing to worry about, many (I didn’t want to use a most here, and hurt the reader’s ego) of my friends are also code monkeys. Why is there a need for this post then?

    I would have lived in the glory of my ego, if not for reading through the posts of Jeff Atwood and Steve. They are two people whom I admire for their writing on programming and programmers. Jeff admires Eric Lippert and Steve admires Knuth. So to me what are Eric and Knuth, programming Gods!!!

    Steve says in one of his posts

    Almost everyone thinks of their programming ability as being just fine, plenty good enough. They can get by, get the job done, do pretty much anything they’d need to do, given time and patience.

    It’s quite a nasty shock for many of our interview candidates when they find they’re unable to do something as simple as reverse a linked list, or open and write to a text file. They’re not shocked that they can’t do it; they’re shocked that we’d ask. Those are specialty skills, and not their specialty. They haven’t been doing much “low level” stuff like that lately.

    Not all interview candidates are shocked when they can’t do it, because many of them don’t realize they’ve written something that could never work: broken code that’s not even remotely close to a correct solution. These programmers are particularly cheerful, being so clueless that they don’t even know they’re clueless.

    Jeff says in his post,

    There are two “classes” of programmers in the world of software development: I’m going to call them the 20% and the 80%.

    The 20% folks are what many would call “alpha” programmers — the leaders, trailblazers, trendsetters, the kind of folks that places like Google and Fog Creek software are obsessed with hiring. These folks were the first ones to install Linux at home in the 90’s; the people who write lisp compilers and learn Haskell on weekends “just for fun”; they actively participate in open source projects; they’re always aware of the latest, coolest new trends in programming and tools.

    The 80% folks make up the bulk of the software development industry. They’re not stupid; they’re merely vocational. They went to school, learned just enough Java/C#/C++, then got a job writing internal apps for banks, governments, travel firms, law firms, etc. The world usually never sees their software. They use whatever tools Microsoft hands down to them — usally VS.NET if they’re doing C++, or maybe a GUI IDE like Eclipse or IntelliJ for Java development. They’ve never used Linux, and aren’t very interested in it anyway. Many have never even used version control. If they have, it’s only whatever tool shipped in the Microsoft box (like SourceSafe), or some ancient thing handed down to them. They know exactly enough to get their job done, then go home on the weekend and forget about computers. 

    It hit the nail. Once in an interview I was asked to write a program for a linked list, I was dumb struck. The interviewer was a ex-employee of Microsoft. He just posed this question as the first one in the interview. I just drew the Linked List representation and told him this is the algorithm. He wanted me to write the program on paper. I just couldn’t get it done. (It is a different story that I came back home furious about myself and settled down to complete writing the program in one sitting. I could not get it when it mattered.) That is when I knew, I am a terribly bad programmer. 

    I have been living in a Matrix(Movie), like Neo, oblivious of the fact that real programming is not what I do. Real programming is a lot more than what I do. Reading through the writings of Steve and Jeff, I realized I am being presented the red pill. I could either take the red pill and delve deep into the Truth, or just ignore it, and continue my living.

    I am taking the red pill!!!

    There are a few of posts that I would recommend to the curious reader.

    Being the averagest

    Practice Programming

    Skill Disparities in Programmers

    Separating Programming Sheep from Non-Programming Goats

    Mort, Elvis and You

    Two types of programmers

  • A Software Engineer's feelings…..

    I am sharing the content of a email, I received today.  Author unknown. A story about a software engineer. Here it goes:

    It was raining heavily outside. Dark clouds gathered in the sky and nature was in its ominous best. I took a break from my work and went to the pantry to grab a cup of coffee. I had a sip and went near the window to see the rain pouring down heavily outside the glass structure. I was inside our huge office building, unruffled by even the fierceness of the nature.

    Through the heavy transparent glass, I could see a small girl trying to hold on to her umbrella which the wind was snatching away from her. I felt sorry for the girl, and was happy that I was not in a similar pathetic situation. Yes. I take pride for the fact that I am a software engineer.

    I have everything which a common man would envy; money, status, respect, you name it I have it. I always wanted to be software professional and here I am, working for one of the best firms in the world. But then, am I really happy? Now, I could see an imprint of my palm on the other glass window, through which I reminisced my past, basked in the warmth of the sun shine.

    My childhood was so much of fun. I vividly remember those rainy days, when I hugged my mother tightly during sleeping listening to all the stories told by her. Now, I have a big house here, but then it is just a house, not a home. My parents are pretty far away from me now. I have a cell phone to talk to them everyday, but then I really miss those dinners which I had with my family everyday. I could easily afford to taste all the different cuisines these days, but the best of food there, lack the love and affection which is present in the food prepared by my mother.

    I threw a lavish party for my colleagues for my birthday, but then they would never replace the birthdays when my friends secretly brought a cake and at the end, half of the cake would have ended up on my face. The couple of hundred bucks that u save for a long period just to give a treat to your friends in the road side chat shop can never give the pleasure even after spending a few thousand bucks these days.

    The scene of me crying and refusing to have dinner on the day when I fought with my best friend came to my mind. Today, she has gone far away from me, taking away my love and with it my life, but I am sitting and coding here with a false smile on my face. Everyday I meet new people, but then I long ceased to make a new friend.

    It’s true that I have a lot of things now. I have a nice bed, but no time to sleep. Lots of money, but no friends to spend it with. The latest designer clothes, but a worn out body . Awards for technical excellence, but no reward for the crave for peaceful ambience. A confident demeanor, but a reluctant and apathetic mind. Full of rain, but no sunshine even in the farthest distance.

    Now, I could see the small girl on the road enjoying in the rain with her umbrella firmly in her grip. She might not have all the comforts which I have, but then she has the innocence and fun which I lost a long time back.

    I have decided to come out of this false fantasy, even if it is at the expense of losing the tap of the software engineer. I am going to again enjoy my life. I am going to go out in the rain and play with the small kid now. I removed my tie, and went near my computer to shut it down. Just then, I saw a new mail alert in my mail box. I slowly opened outlook and I found a message from my manager with an attachment saying that there was a critical defect in the code and I have to fix it soon. I convinced myself that I am not going to get bogged down again by these pressures and stick to my decision. I ignored the mail and went to the rest room. After a couple of minutes, the software engineer in me came out, his shirt tucked in with the perfect tie knot, sat before the computer, and started typing,

    Hi XYZ,

    I am looking into the defect and will send the patch files before EOD.

    Thats it!