The first leader I met and lessons I learned…

This is a story that I wanted to write for a long time. When I joined the industry from college all I knew was programming, coding and little bit of communication skill. I didn’t know these terms leader, leadership, manager, management, team, team member, team dynamics, team culture etc.,  I learned them over time from different teachers (in my opinion, everyone who teaches you something is a teacher). Now let me come to the story. I joined a software development company in Chennai (l-cube)  through campus placement.

Once all my joining formalities were done, I reported for my first assignment. And to my surprise I was asked to create some MS Access Reports in 2 days. I neither knew VBA nor MS Access UI development. I knew MS Access only as a database. In those days internet was still a set of GeoCities pages with blink and scrolling marquee, yahoo search was still a thing, google was cool, MSDN came in a CD, we were running windows 98SE, Pentium machines with 128 MB of  RAM & Javadoc was offline. We were dependent on books and people for knowhow. As a first option, I searched for a book. I found the famous “Microsoft Access 97 Bible”. It had 1536 pages.

I understood my situation now, reading the book, understanding it and creating them in 2 days is not possible. As second option, I approached one of my senior developer, S Rajesh (shortly called as SRJ). He is the hero for this story. Ok lets continue. He explained how a report was created and gave me a sample code snippet. As a Programmer I could pickup VBA faster because I started with GW BASIC as my first programming language. I created the reports by drag/drop and some VBA code in the code behind. All worked fine, we took the software and my senior SRJ showed the demo to our manager. And I didn’t know that our manager was a passionate MS Access Geek. He looked at the reports and opened the code behind. His face became red and he asked “who wrote this?” SRJ asked  “why? what is the problem?” The manager showed the code.  SRJ could see the blunder that I had done. I copy pasted the code snippet for each of the report. It looked something like this

  • Open connection to database
  • Connect the report elements to database elements
  • Query data
  • Close connection to database

Now all seasoned software developer know opening/closing DB connection is a costly operation. And me being a newbie didn’t know that. Our manager was furious because of this reason. I was standing in the same room. I was very nervous and tensed. My heart beat went over the roof.

SRJ answered in a very cool way. I will fix this issue for you in a moment, for now forget about the author. The manager insisted to know the author. I am still present in the same room, wondering why he is not giving away my name and taking all the blame, in spite of helping me. SRJ again answered, forget the author lets fix the issue. I think our manager had high regards for SRJ. He left the room in disappointment. I felt really bad for SRJ. He came to me and explained what was the issue. Fixed it and moved on as if nothing happened. I reported to him for 2.5 years in that company and stayed together in Bangalore as room mates for a long time. He was the first leader I met in my professional life. And the lessons I learned are from that instance were

  • To allow your team members to make mistakes and provide them a safe place to learn.
  • In case something goes wrong, you own up as a leader and safe guard your team member.
  • When everything is fine, bring the team member to lime light and give the credit to the team member.
  • Don’t underestimate the technical capabilities of your manager Winking smile.

Even now if SRJ asks me to do something I will do it blind folded. I wish him all success..

Know what I don’t know

By June 2021 I completed 21 years in the software industry. As a child when people asked me what would I become, I always said, I would become an aeronautical engineer. And that didn’t happen. I am not sad about that. I chose computer science as an elective after my high school because I hated biology and artistic drawings. All I could ever draw was lines, squares, rectangles and diamonds. And with that decision, I entered the fascinating world of programming. I started with GW BASIC. Then I did FORTRAN, COBOL, C, PASCAL, C++, Java, JavaScript, HTML, CSS, XML, C#… the list goes on. I enjoyed each one of them in some way. And I still enjoy programming.  Le me come to the story now, I wanted to create a portfolio web site for myself and list the items that I had worked on. I postponed this idea thinking I have not done enough to create web site for myself. This year after two decades I created a portfolio website https://ferosekhanj.in . I coded this myself and while doing it I thought of using something modern like React. I checked the React tutorials.

JavaScript Uncle

Once I started reading the tutorials I discovered the fact that I don’t know the JavaScript language anymore. The JavaScript that I know and write is still valid, and is not the state of the art anymore. I am not a cool JavaScript dev anymore but a JavaScript uncle. And I list that as a technology that I know in my resume/portfolio. I checked the other technologies like C++, Java, HTML, CSS and Python. All of them has moved on and has lot of major changes. Some of the old gotchas are gone. The new syntax at times looks elegant and at times looks like black magic. I was in a dilemma now, should I do the portfolio web site or should I learn the modern technologies and do the website. I decided to go ahead with creating the website first, using the technology I knew.

Learning takes time

Once I finished the  web site I took the challenge and wanted to learn modern JavaScript. It took me roughly 6 months to complete the learning path. I am a cool JavaScript kid now. I started to learn one step at a time from the beautiful JS tutorial https://javascript.info . Even after so many changes, one thing didn’t change. That is, the time one needs to learn something new. There are no shortcuts here. I have to read the concept, understand that, write sample code, run it, fix errors while doing it and take notes. Do this for each one of the concept. It is tedious, but as I said before there are no other alternatives. I feel bad about those full stack developers who are expected to know the front end technologies, backend technologies, cloud, DEVOPS pipelines, automation and operations. Each one of those requirements need time, effort, focus, attention, trial/error,practise, blood, tears and sweat.

Take out your developer passport

In real world we stay in some place and once in while get a visa, travel to some place and explore. And sometimes we revisit the same place after some years and marvel at all those changes. If we don’t travel and  stay back, over time we will stagnate and boredom kicks in.

I feel being a developer, I have some basic understanding of programming and software development concepts. That is like a passport. I should take that passport decide on a technology, go there and explore. Sometimes I should just revisit the same technology to see what has changed? And this helps me to know what I don’t know. But one thing is for sure, I cannot be an expert. Things are changing all the time.

If you have read this far, you can visit my website https://ferosekhanj.in to know about the technologies that I knew once, but may be don’t know now.