News & Events
Learning Life Skills with Programming
Learning life skills with programming
I am in software development for the past 12 years, and yet there is not a single day that I can think of when I had been bored or regretted this decision. Programming has changed my thought process, my perspective towards life, religion, society. Everything. And I have 3 incidents that are etched in my memory.
Today I play the role of an architect, but it all had started from being a developer. My first assignment was to create classes corresponding to all master tables in a payroll DB. The DB was huge and I was looking at 200 tables and I was given 4 days to complete the assignment. For a fresher, the task was not that complex but the volume was staggering. And at the end of 2 days, I was not even half way through. Desperate times had called for desperate measures and with hope a miracle in my heart, I had dropped a help plea in all possible forums. The next day and the 3rd day of my assignment, I remember walking down the puddle filled road to my office, knowing that I had to declare to my lead, that it won’t be complete and was getting ready for a nasty comment. I checked my email and found a reply from an unknown email address. It had been from a very senior developer. He had shared an exe with me. To use the exe, one had to point to a DB and its tables and all the corresponding classes would be created. I instantly thanked him, completed by task, added touches of personalisation (comments, copyright sections, namespaces etc..) and submitted the assignment. The best feeling was to see the jaw of my lead to literally drop. That day I learnt 4 things in life – i) you need to understand when you need help ii) never feel ashamed because you need help iii) never fail to extend help when you can iv) believe and miracles may just happen.
Couple of years later, for a project I was trying to understand the concept of garbage collection but it was not working out for me. This was the time in my life when I had just lost my 38-year-old cousin to cancer and I was depressed because between my work and travels and due to our age gap, I had missed the opportunity of spending time with my cousin. Neither me or him had known each other as adults. And his unexpected departure had left this void that nothing can ever fill. May be depression suppresses one’s ability of reasoning, I was not able to understand the concept of Mark and Sweep in Garbage collection at all. I had tried reading various articles but nothing could help me understand it in depth. On the 13th day of my cousin’s departure, I decided to visit a temple. That day in the temple, a puja was being held for Khatu Shyam ji. Pandit ji was narrating the story of Khatu Shyam or Barbarik – the son of Ghatotkach. He had the power to change the fate of Mahabharat with his 3 arrows – 1 to mark all things that he wanted to kill, 1 to mark all things that he wanted to save and 1 to make the kill. And all at once, the concept of Mark and Sweep was clear as crystal. From the concept of GC I also understood, if my god is the one who is the GC of life, then we need to keep referencing our loved ones, so that we do not lose them and get the “object reference not set to an instance” exceptions. I learned to appreciate the people in life, and the time we share with them. We need to appreciate the time spent together and let not petty differences come in the way of what could be a meaningful and enriching relationship. I also learnt that knowledge and inspiration can come from any place, time or form. The right thing is to accept it and value it.
In one of my recent projects, during BAT, a whole lot of bugs came into picture. I estimated that it would take around 1 week to fix, retest and deploy the build for BAT. But client was insisting that we fix it earlier. I had asked my team members to come on a Saturday (we normally do not request anyone to come). But 2 of the members said that they have some personal work and will not be able to make it. And other 2 members said there was some family functions. They insisted that they would fix the bugs by the end of the day. I decided to come over the weekend anyhow and check the fixes. And when I opened the code, it seemed I had opened a can of worms. The code was clear case of adding patch work to already existing bad piece of code. I cleaned up the code, made the fixes so that the team was ready to make a release. It was almost evening, when I was getting ready to leave, when I checked my FB and found, that 4 members of my team just posted a picture of Goa trip. I was stumped and felt betrayed. My first instinct was to post a comment on the picture but I controlled myself. When the team came in on Monday, and they suspected that I already knew, they started creating stories and reasons and none of that really made sense. They were conflicting each other’s version. I realised that their lies were just like the make shift solutions to the bugs. It was cluttered, crude and hardly made sense. It also left an option when they may have to add further layers to an already tough situation. I learnt that lies are to life is what bugs are to your software. If you choose to keep them then – you must maintain different versions for different audience, always be on the edge as to when one appears and always be on toes to explain yourself if someone counters. Thus, I have decided that my code will be bug free and life will be lie free.
I know that I will come up with new challenges every day, but I believe as long as I am into programming, I will get answers for life and vice versa