Coder’s Journey featuring Yash Kodesia (Software Engineer at Amazon)
Coder’s journey covers the experience of programming experts across the globe. With coder’s journey, GeeksforGeeks aims to deliver practical guidance to all young programmers and assist them in launching their dream careers.
Yash is an Engineering Graduate from IIIT Gwalior and is currently working as a Software Engineer at Amazon. He has also worked with Verizon Media(Yahoo) as a Software Development Intern. Yash has also worked with GeeksforGeeks as a Problem Setter Intern, and he created and tested various algorithmic problems for the practice platform. He likes teaching a lot and has been doing so as a Teaching Assistant at Scalar Academy. Apart from programming, Yash likes to read literature and plays a lot of competitive games. He likes to try learning new things outside his comfort zone to grab the best opportunities. Yash believes that success can’t be achieved overnight and hence one should enjoy the process of learning.
Share your ACM ICPC Experience. How did that help you in your programming journey?
Our team went to the Amritapuri Regionals site (2017, 2018) and that was truly a humbling experience. I personally was quite complacent with my skills as I used to view competition inside the college as a metric but never tried weighing the waters of the national competition. All in all the experience was quite wholesome, there were teams from all over India, the aura and environment were quite thrilling and overwhelming. The 5-hour contest was quite intense with occasional sounds of disappointment or cheering from here and there. The USP of the regionals is to get exposure at the national level and meet smart folks from all over the nation. The best thing that I got out of my ACM-ICPC regional journey was the fact that there is no need to limit yourself at a particular level and be happy about it. It’s more like a paradigm shift of mindset that if you are doing something and giving it your time then do it by giving in your best possible efforts and enjoy/chill afterward by the same magnitude. Complacency breeds mediocrity and thus always try to become better day by day in anything you do. Also, Kerala is quite a good state with awesome beaches and a college-sponsored trip there is a perk in itself.
For people starting out their programming journey – Give Contests, and upsolve them!
This is the most important thing if you want to improve effectively and quickly. Try tougher topics and problems and do not rest until you have got it correct or understood it. Also, keep your learning incremental, do not directly jump on advanced topics but increase the difficulty level gradually but do so for sure. Try out Codeforces and become good at it. If I ever get a chance to get back and start all over again I will start with giving contests on codeforces and upsolving them. You can also try SPOJ for tough and interesting pure algorithmic problems. Solve ACM-ICPC Live archive also for quality problems. Also, aim for World Finals and not for regionals as you will naturally put more effort into the former part.
What was your biggest failure and what did you learn from it?
Well everyone encounters failures, and they are quite important to improve and are the best teachers if you don’t turn a blind eye to them and this is what exactly I failed to do and ignored my failures over and over again. Exams/Contests/Live competitive games or anything that requires you to practice before attempting them should be given in ample amounts and without fear. After being unable to perform very well in JEE I was quite distraught and unable to comprehend what happened. Similarly was not able to perform at a very good level at ACM-ICPC. Learning is if you are preparing for something try to give mock tests/exams or contests as much as possible. I used to solve problems offline at my own pace and without pressure but there are many more factors that decide performance under high-pressure constraints. Also take every topic/problem seriously because if it turns up again and if you did not learn from it previously then you effectively failed twice in a single problem, keep your failure occurrence per problem/instance once. In our BTech + MTech program, we need to qualify GATE for receiving a stipend. Thus, there was approximately one month left after I returned from ICPC Regionals’18 for GATE and with my new-found above-mentioned realization, I started preparing quite rigorously and gave as many mock exams as possible and dived into tougher problems. I scored quite well given I had around 20-30 days of preparation time, although it’s not a big achievement, but I was quite happy after seeing improvement after changing my strategy.
If you try to analyze your failures and learn from them it will work miraculously.
How did you bag an offer at Amazon? Could you share some tips for the same?
Amazon visited our campus last year and I had just returned from my internship at Yahoo a few days back so did not have much time for preparation. I Revised core subjects which I prepared during GATE and went through GeeksForGeeks for company related questions as Interview Preparation is quite different from Competitive programming. Call it a stroke of luck or the interviewer’s decision, I was not asked much of typical Interview styled problems (like Trees, linked lists) but questions regarding Graph Theory, Dynamic Programming which I was able to solve and also enjoyed solving and got a direct Full-Time offer.
One of the main points which I cannot stress enough on is to think out loud, let the interviewer know what you are thinking and why you are thinking so. It’s more important than getting the problem correct at one go. There are many resources present on the internet to guide you for interview preparation. Focus on core subjects alongside programming. Practice on GeeksForGeeks, Leetcode for interview preparation, and try giving contests to be able to think clearly under pressure.
What are some of your greatest achievements and what are your future goals?
Achievements are all relative, what I think as achievement may not be an achievement for another person and vice versa. But the best thing that I like is that I got a change in mindset and approach to life or career in general. A person is always in the driving seat of his/her life and nothing is hard to achieve if you plan accordingly and give in the amounts of effort required sincerely.
Eliminating complacency and then putting in efforts will take you places.
Also, balance is important, apart from working on my skills I went on trips almost every sem and enjoyed my college life as much as possible, experienced many things, and mostly did everything that people do during their college lives. I count that as an achievement.
For the future, I aim to implement my learnings from my past failure in everything I do and upskill in various domains. One of my goals is to bring change in how Children are taught programming in their early days, how and when to solve this problem is yet to be decided.
Yash can be reached at LinkedIn
We at GeeksforGeeks have always pushed ourselves to provide quality computer science education to all aspiring students. We will publish your experience as an article that will be shared across our users. In case you are interested, please fill this form.
Let the top geeks inspire other students!!