Geek on the top – Aashish Barnwal | Make a habit of writing clean, readable, flexible and robust code

Geek on the top is all about success stories of Geeks who are working hard to chase their goals and are inspiration for other geeks.

Aashish is the name associated with GeeksforGeeks from a long time now. He has successfully written and moderated various articles on the site. He is one of the topmost contributor and hails from KIIT University, Bhubaneshwar. He is currently working as a Software Engineer at Microsoft.

Aashish Bernwal

 

 

How did it all start? What made you land into the world of programming?
Math and puzzles were something I couldn’t resist. It was third semester when I had Data Structures course in the syllabus. It was just fun reading about various DS and how they solve real life problems. In fourth semester, I came across ProjectEuler. It basically has a collection of problems which requires both mathematical and programming skills. It boosted my confidence and I started solving more and more problems on online portals.

How did you come to know about GeeksforGeeks?
One of my seniors had cracked Microsoft off-campus. When asked about sources to prepare from, he advised me to practice from GeeksforGeeks. I found GFG articles well explained and its discussion forum quite engaging.

Explain your journey as GeeksforGeeks moderator and how being a moderator helped you achieve your goals.
Today when I look back over my life, I just can’t believe that a person can be that insane to chat 10 hours a day and that too only technical stuffs. Yes, this can happen when two crazy people with similar mindset meet. While solving problems on GeeksforGeeks, there were few articles that were so well compiled and informed that I just couldn’t help myself but to contact that guy.

I shot Venki (GFG moderator) a message on Facebook and this is where we connected. I was very active on GeeksforGeeks. And he was kinda impressed with my thoughts and approaches of solving problems. Our discussion trails were everywhere – Facebook, Gmail, Quora, CareerCup, GeeksforGeeks, StackOverflow. I had never met anyone with so much knowledge, zeal and thirst for coding & problem solving despite the fact that he was an Electronics graduate. For him, problem solving was a time pass. My passion grew with time. Every discussion with him reminded me how little I knew and I needed to manage time smartly and keep my learning curve steep. I started practicing insanely on GeeksforGeeks, CareerCup, LeetCode, SPOJ and other online portals. Few problems took me weeks to solve. I solved problems that were pending since more than 6 months in the discussion forum. That’s when it all started. My solutions started publishing as GFG articles, one after the other.

GeeksforGeeks was growing fast. They were looking for someone who could participate actively in the discussion forum, point out improvements in guest articles and write unique content to enrich the site.

One evening, I got a mail from Sandeep, GFG founder asking if I would like to join the team. I couldn’t think of a single reason why I shouldn’t. GFG was already impacting many lives and it could help me to connect with other geeks. Although it was a non-profit initiative, I was willing to join. I was just 22 and it was the best time to learn and grow.

Being GFG moderator, I made many online friends who shared similar mindset as mine. I was flooded with messages and mails discussing various ideas and approaches to solve problems.  This helped me to learn a lot.

Do you think being from a small town, you have to face hindrances to achieve what you want? If yes, how did you overcome them?
Being from a small town, I didn’t have anyone to guide me. It becomes worse if you are from a college with not so good programming culture. I didn’t know what sources to follow to achieve my goal. Quora was not popular those days. I think I was fortunate to follow my passion which steered my career in right direction.

Today coding contests have undoubtedly opened doors for students from non-IIT/ NIT colleges to go for bigger jobs.

How should a student begin to prepare in order to grab a job in such tech giants?
As per my past experiences, these tech giants look for people with strong coding and problem solving skills. It is good to be proficient in any one programming language and know ins and outs of it.

  1. Read DS thoroughly. Know how and when they should be used.
  2. Know the real life examples where DS and Algos are being used. Google chrome uses Bloom Filter to detect malicious URLs and Text editors use Gap Buffer. It was fun discussing Gap Buffer in my Microsoft interview
  3. Practice problems related to Stack, Queue, Linked List, Tree, Graph, Heap
  4. Practice Advanced Data Structures like Trie, TST, Segment Tree, Suffix Tree/Array, Skip List. Advanced DS section on GFG is pretty good
  5. If you’re targeting Google, practice DP and Graph problems. You should expect at least one DP problem in Google interview
  6. Practice test and design questions
  7. Participate in Competitive Programming. It will improve problem solving skills and ability to perform well under pressure

GFG is a bible of problems. I would suggest to learn the fundamentals first before jumping to GFG to avoid getting lost. Once your basics are clear, you can start practicing by choosing various topics.

Gayle’s book “Cracking the Coding interview” is a good read.

What did you do in your summer internship, how did it help you later?
During my time, no company visited college campus for internship. I was devastated. I had applied twice for Microsoft intern but didn’t get interview call. I, finally decided to continue contributing to GFG and solving problems on online portals. It gave me more exposure to problems without losing focus. I developed few android apps to showcase my ideas and time-to-market skills. This helped because this is what companies do – Fixing bugs, implementing user feature requests and optimizing performance.

What should one keep in mind when beginning to pursue the Competitive Programming and job preparation?
Practice, dedication and hard work are the keys. There is no secret ingredient. Just have faith and never give up. There will be times when it will take a lot of time to solve a problem. But you will get better with time and practice. CGPA plays very little role in landing jobs in top MNCs.

Don’t rush for solutions. Try to solve problems on your own. Prepare well for behavioral questions as well. Interviewers ask questions like “What is the most challenging problem you faced while developing projects?”. Your answer tells them two things.

  1. Did you really work in the project?
  2. What, according to you is the definition of a challenge?

Try to understand patterns. If you know a solution of an existing problem, you can extend it to solve newer problems.Know speed and maintainability tradeoff. Sometimes, we sacrifice time for the sake of reusability and flexibility.Make a habit of writing clean, readable, flexible and robust code. Practice on pen and paper to see how you perform without a compiler.

Apart from coding and problem solving, there are other things which are also necessary-  Are you a good team player? Are you a quick learner?

Students are becoming serious day by day and lacking sports, sense of humor and physical activities. What’s your take on that? What are your hobbies?
Never compromise your health for the sake of anything. If you’re not healthy, you won’t be able to work towards your goal with much efficiency. Physical activities and sense of humor help you ease stress and become more productive. We are humans not robots.

I write songs & poems, play piano, do landscape & wedding photography and sometimes dance. Apart from this, I love adventures. I have experienced sky diving, bungee jumping, sea walking, para sailing and scuba diving.

What would you say was the turning point of your life because of which you are here?
I think it was knowing that programming is mostly about mathematics and logic, which grew my passion.

What’s your advice to students who aim to become excellent programmer like yours?
Practice, practice and practice. Get addicted to coding. This is necessary because you’ll be spending next many years of life doing it.Don’t be afraid of failures. Embrace it. Harder you fail, harder you work and sweeter the success will be. Participate in discussion forums as much as you can. Stay hungry. Stay foolish.
Do’s and Don’ts in interviews:

  1. Stay calm. Think before answering any question in interviews. Your answer can generate many questions
  2. Clarify the question first
  3. Write clean, reusable, readable and robust code
  4. Don’t forget to handle corner test cases
  5. Think out loud
  6. Don’t sound aggressive

Aashish can be reached at  Facebook , Linkedin  , Quora blog , Personal blog , About me 

Aashish’s Achievements:

  1. Secured 2nd position among 200 teams in Noesis 2011, a coding competition in tech fest of Silicon Institute, Bhubaneswar
  2. Among top 1% in TCS Code-Vita 2012 at national level
  3. Problem Setter in coding competition Advaita 2013 in IIIT – Bhubaneswar

Few articles at GeeksforGeeks written by Aashish:

If you know a top Geek whose interview should also be published, please drop an e-mail to contribute@geeksforgeeks.org.

Let the top geeks inspire other students!!

 

 

GATE CS Corner    Company Wise Coding Practice





Writing code in comment? Please use code.geeksforgeeks.org, generate link and share the link here.