Geek on the top is all about success stories of Geeks who are working hard to chase their goals and are the inspiration for other geeks.
Jeel Vaishnav is pursuing his graduation in Computer Science with Nirma University. He is a competitive programmer and works as a summer analyst in Goldman Sachs. He likes to share his knowledge of data structures and algorithms and has worked as a trainer in various coding camps. As a competitive programmer, he believes that Motivation is one of the key drivers for pursuing Competitive programming.
How does it feel to work with Goldman Sachs? How did you bag such a good offer?
I got the offer from Goldman Sachs(GS) through the campus placement at my college. The interview rounds mainly revolved around algorithms, data structures, and eminent puzzles. My passion for Competitive Programming and resulting exhaustive experience since the second year of my bachelors were some of the prime factors which help me to grab this offer. Mock interviews helped me to improve my self-confidence during interviews.
It gives me an enlighten breeze to work at Goldman Sachs. The work at GS gives me an insight into the professional aspects of coding and enhances my technical skill. It has helped me to understand the importance of various Computer Science(CS) concepts which may not be possible by just theoretical reading. This is only possible due to invariable help from people at GS who are always ready to help. Working for GS has been a great opportunity for me to develop my professional and technical skills.
What should one keep in mind when beginning to pursue Competitive Programming & job preparation?
There are a large number of algorithms and data structures to be learned in the beginning. This may seem to be overwhelming. Hence, it is quite important to break things down and start learning bit by bit. Moreover, only learning algorithms is not sufficient. It is quite essential to learn the usage of the algorithms in solving different problems. While doing Competitive Programming(CP), it is essential that we get maximum learning benefit from each problem. Firstly, one should understand the problem and think of the possible solutions of the same. Then one should check the actual solution. Finally, analyze the missed concepts and key ideas, new algorithms and data structures that were used to solve the problem and the mistakes made while thinking about the problem and writing the code (if any). This can help in improving faster and effectively. Although CP and job preparation are quite aligned with each other, one should also focus on CS concepts for job preparation. Hence, if preparing for jobs, CS concepts should not be neglected.
Being a Competitive coder, what according to you is the most important skill for competitive coding?
Obviously, mathematics, problem-solving, algorithms and data structures are some of the skills needed for Competitive Programming. According to me, people learn those skills eventually by practice. Although, the more important skills while pursuing Competitive Programming is dedication and not getting overwhelmed by failures. Sometimes, doing Competitive Programming can be intimidating but that shouldn’t be a reason to leave it. Communicating with other competitive programmers to understand how they remain motivated in such situations is important. Motivation is one of the key drivers for pursuing CP. While doing CP, sometimes we fail miserably (especially in the beginning). Instead of considering it as a reason to leave CP, consider it to be a reason to practice harder. This passion helps us in achieving goals. As Confucius told “Our greatest glory is not in never failing, but in rising every time we fail”.
How did you come to know about GeeksforGeeks? How has it helped you in your career so far?
When I started competitive programming, I used to google the algorithms and data structures that I wanted to learn. Most of the times, the top result was GeeksforGeeks (GFG). Also, when I used to ask my seniors for resources to learn some concepts, they used to mostly refer GeeksForGeeks. GeeksForGeeks has helped me a lot to learn data structures. When I started competitive programming, I wanted to learn the basic data structures like stack, queue, etc. I found out that GFG had an entire section dedicated to data structures and the articles were quite easy to understand. This lead me to read the data structures section from GFG. Apart from that, GFG has helped me a lot for my interviews, as it has various interview experiences shared by different people working in remarkable companies. Moreover, GeeksForGeeks also helped me to understand different CS concepts by providing various easy to understand articles.
College life has always been considered an amazing life by students. What is your catch on that? How should one utilize the time while in college?
I think the years you go through college are the most awesome years. The college years provide training to come out from the protected atmosphere of school days and become a matured personality. In college, you meet a number of like-minded people from different regions of the world, some of them become friends for the rest of your life. The time you spend with your friends would become memories for life. You get the exposure to a different culture, psychology, and attitude of different people. Also, these are the last carefree years before you face the real world and start taking responsibilities. In this way, with the enjoyment of free bird life, the training to shape your career in a realistic world is envisaged in college days.
As your development in college years decides your first job, one should take care of learning professional and technical skills at college. As the technical and other subjects of the curriculum provide the base of your future professional development, the proper learning of them is quite essential. Apart from that, one should develop extra technical skills of own choice. If a person targets a job in IT, it is essential that one learns various algorithms and data structures.
What is that one thing you wish to say to students pursuing engineering?
Follow your dreams! You must have a passion for your dreams. Don’t just do something because most of the people’s inclination is there to do it. If you do something without interest, there is a lesser chance of success. Even if you get success, you won’t like what you do. On the other hand, if you do what you like, there are higher chances of succeeding while enjoying the work you do. With the enjoyment of tension-free college life, enough time should be spared to shape your career. Always keep learning and explore the knowledge of different fields as per own interest. As a software engineering student, one should learn different algorithms and data structures as most of the interviews will have questions based on that. Competitive programming provides an enjoyable way to learn algorithms and data structures. Moreover, it develops problem-solving skills which will help in the development of a professional career.
What subjects you think are most important in the curriculum?
I would say that the core computer subjects like Object Oriented Programming, Operating System, Database Management, Data Structures, etc. are the most important. Understanding the concepts of these subjects in college itself can help greatly during the interviews as well as while working as a software engineer. Students generally do not like noncore courses like communication skills and organizational behavior. At present, as I have experience of working with an organization, I surely suggest understanding the importance of the above noncore courses as they develop your professional behavior and communication ability.
If you know a top Geek whose interview should also be published, please drop an e-mail to firstname.lastname@example.org.
Let the top geeks inspire other students!!
- Sumeet Varma - Geek on the Top | Actual fun begins when you solely concentrate on finding algo to solve a problem
- Ayush Jaggi - Geek on the top | Get frustrated by TLEs and WAs, Higher the frustration - better the code
- Rodrigo San Martin Monroy - Geek on the Top | Extract common topics from previously asked interviews of the company you want to join
- Harshil Shah - Geek on the Top | Solving lots of easy problems are not as beneficial as practicing some hard problems
- Nafis Sadique - Geek on the Top | Seniors should take the responsibility to introduce the junior students to the world of programming
- Vaibhav Gosain - Geek on the Top | It is important to solve problems which are a bit above your current level
- Aashish Barnwal - Geek on the top | Make a habit of writing clean, readable, flexible and robust code
- Vicky Tiwari - Geek on the top | Don't forget to read editorials and upsolve problems after each contest
- Aditya Gupta - Geek on the Top | Participating alone increases your level, no matter you win or not
- Rachit Belwariar - Geek on the top | The best part at writing GeeksforGeeks were the questions asked by other users on my articles
- Abhishek Verma - Geek on the top | "Think Big to Achieve Big"
- Pratul Kumar - Geek on the top | Learning is not a race, so it should not be treated like same
- Shashank Pathak - Geek on the top | Don’t let your mind get diverted to the consequences of not solving a problem
- Sahil Garg - Geek on the top | "First Solve the Problem, then Write the code"
- Rachit Jain - Geek on the top | "Stop starting, start finishing: Don't just give up on things and then start doing something else"