Please tell us about yourself: Introduction
Hi, I am Divanshu Garg. I am an alumnus of IIIT Allahabad from 2015 batch. I obtained my bachelors degree from the institution majoring in Information Technology. After graduating from college, I worked as a Software Engineer at Google Sydney for more than an year. Presently, I am working in a similar role at Google, Mountain View. I am enthusiastic about learning new technologies and building anything cool using them. I am particularly interested in machine learning, competitive programming and Android development.
What was your first impression about the college?
The first day at college is always a memorable event for anyone and IIIT Allahabad made it even more so. I was fascinated by the beauty of the campus and the college infrastructure. The hostel quickly became an eternal part of my life. Right from the first day, I met so many great friends over there who made four years look short. Apart from batchmates, the seniors were also very helpful and provided guidance whenever I needed one.
Best experience in college?
‘Hostel life’ would be the college experience which I miss the most. The life was so different over there. Staying awake all night doing random stuff, hanging out with friends all day, playing cards for hours and hours, watching movies and the list goes on and on. Parallel to all the crazy fun, the coolest thing about hostel life is that you keep on learning something new every single day without even realizing. The interactions that you have, the group learning efforts you put in - everything contributes to your knowledge bank. No matter how much I want to, it’s almost impossible to get those times back.
What was the best thing you did in college which helped you grow in your line of work?
I think the thing which helped me the most was keeping the attitude that you can learn anything if you actually want to. With easy access to an entire world full of knowledge in the form of internet, you can easily start learning new areas and build things that fascinate you. As part of competitive programming, I learned a lot about algorithms and data structures to consolidate my fundamentals over which the world of software resides. Apart from this, I expanded my knowledge in different areas like website development, Android development and image processing. Since I am quite passionate about games, I always tried to blend my learning with my passion. That is the reason why most of my learning projects surrounded around this theme.
How was your experience in ACM?
I would like to call my ACM experience a long and beautiful journey. I was introduced to the world of competitive programming at a very early stage in my college life. I began solving problems on various online judges like SPOJ and Codechef. After failing to solve the majority of problems, I came across ‘Introduction to Algorithms by CLRS’. The book is really well written. It starts right from the basics and helps you learn thoroughly myriad of algorithms. As my knowledge developed, I could realize that I am able to solve much harder problems and think in the right direction.
I started participating actively in all the major periodic programming competitions hosted by TopCoder, Codechef and Codeforces. It’s quite different to actually participate in a competition rather than doing practice. The time constraint imposed during the competition pushes you to the limit and some really nice ideas evolve. Once I was well versed with the basics across different topics, I began learning more and more comprehensively about a specific topic at a time. This actually helped in tackling some medium-hard problems in that respective topic. So, the right approach according to me for acing in competitive programming is to begin with a breadth-first approach and shift over to a depth-first approach once you have a good hold over the basics.
Lastly, the experience changed my attitude towards approaching a problem completely. It taught me to be much more persistent and to not give up early. Even years later, it helps me to gain a much more deeper insight into the problems that I explore today.
What was your stepping stone towards your success?
The stepping stone to success in my life was the moment when I was unable to qualify for the ACM regionals in second year. It taught me that failure is a perpetual part of success. The only thing to keep in mind is to come out even stronger from a failure. You need to introspect and draw conclusions from every failure and apply them in future to emerge as a better individual. Nothing is a better growing experience than failing.
What is the best thing about working in Google?
The best thing about working at Google is the people you meet here and collaborate with. Google is well known for recruiting some of the best minds in the industry. To be actually there and work with those minds is absolutely amazing. You meet people who have been in the industry for decades of years who would share their experiences. You meet people who are researchers and have excellent theoretical knowledge. And, you also meet people who are from non-CS background telling anecdote about what fascinated them and diverged their career from some other industry to the programming industry. It is indeed a very rich experience.
On the non-learning front, Google is crazy with all the perks they offer to their employees. They care a lot about employee comfort and providing the best work environment. Quickly I came to realize that a better working environment could actually increase your productivity manifold.
Best places to learn according to you?
The places to learn varies a lot based on the technology or thing that you are learning. In my experience, there is no single place where you can find all the resources that you want even for a single topic. Let’s say for competitive programming, I had to explore across hundreds of different websites, books and references. It’s hard to pick the best out of those since different resources excel at different topics. But on a broader note, I believe learning comes best when you practically do something. Always ensure that you are implementing the things in some form that you learn. In the process of implementing it, you would learn a hundred different more things naturally.
Things you shouldn’t miss in college?
College life offers you four years of freedom. This is the time when you should have both fun and learning at its peak. Striking the right balance between the two is a must. The way you invest this time will define your future. You should have loads of fun but at the same time, broaden your knowledge by getting your hands dirty in different aspects of software development. Until and unless you understand the basics of a thing, it’s quite hard to judge whether you are actually fascinated by it or not. Taking a broad bag of knowledge from your college life would definitely help you excel in your career in subsequent years.
What is your next career goal?
I am not a very great future planner. I try to focus on things in the present and how to make the most out of it. Expanding my knowledge is something I always keep focussing on. Currently, learning more about machine learning and its real-world applications is intriguing me. This is also aligning quite well with the work that I am doing at Google which is based around improving search and intelligence efforts in Google Apps (Gmail, Drive, Calendar).
Any advice you would like to give us?
The only advice that I would like to give is “Follow your passion and work hard to make your dreams come true”. Every person is unique with different interests. You should not follow something because someone else is doing it. You should follow something because you have a passion towards achieving it. You will realize very soon that once your interests match with what your goals are, it’s only a matter of time and hard work before you achieve them. Never be afraid to dream big!