Is competitive programming compulsory for cracking technical Interview as a fresher ?




If you are reading this post, you are one of the students aspiring to become a software developer in a big MNC.And like most of the other aspirants, you are unclear of what exactly you should do for achieving it. You are unable to decide whether to work to get an internship, excel in competitive programming, focus on developing projects or learn new technologies.

I have been asked this question many times, so I thought to put together my views in this post.

Well, If you are looking for short answer . 





It's not mandatory to do competitive programming to crack technical interviews.


But, here is the twist .

It will help you in cracking one.



So, let's start with the basics....


What is competitive programming?


According to Wikipedia,

Competitive programming is a mind sport usually held over the Internet or a local network, involving participants trying to program according to provided specifications. Contestants are referred to as sport programmers. Competitive programming is recognised and supported by several multinational software and Internet companies, such as Google and Facebook.

A programming competition generally involves the host presenting a set of logical or mathematical problems, also known as puzzles, to the contestants (who can vary in number from tens to several thousands), and contestants are required to write computer programs capable of solving each problem.


So, it helps you in sharpening problem-solving skills using data structures and algorithms, most of which are applied in real-life situations, combining two or more solutions to solve complex problems. You will find questions based on research papers which is quite interesting. There are many competitions held all over the world. So, if you perform well, you can travel to other places. Clearly, it's not just about solving problems for sport.


What is asked in technical interviews?

The questions asked in technical interviews can be categorised in three portions.

1. Coding

A . Data structures and Algorithms
Questions related to  basic data structures and algorithms and their applications in various questions. The  topics asked  are mostly standard which are included as part of engineering syllabus.
B. Programming language
The questions are mainly related to the programming language you have worked on.
Also questions related to C programming language are common, since it expected from you to know that.
C. Any internships, projects worked on.
Questions here are basically to test out your knowledge in technology you  have used, how deep you have gone to solve the issues you have faced, and most importantly to understand if you have actually worked on the project.

2. Subject related


A. Object oriented concepts

B. Database management systems 

C. Operating Systems

There are standard topics on  which questions  are asked for these subjects.

3. Miscellaneous


A. Puzzles
This differs from company to company, some companies it include this in part of their  interview process, some do not.


These most important portion is  coding. 


Most of the  technical interviews will revolve around that.It is generally the deciding factor.Almost all the  technical interviews will begin with one or more coding questions, in which your problem solving skills will be determined,  followed by any other portion like Operating Systems to understand the theoretical knowledge you have gained. 

How do you connect the two ?

Let's see where does coding questions fit within competitive coding.


In general, if you do competitive coding, you become more proficient in solving problems. Apart from helping you understand data structures and algorithms better, it strengthens your ability to implement them efficiently. You learn to combine data structures with efficient algorithms to reach required solutions. Believe me, that's what makes the difference.
Knowing an algorithm and  being able to implement it are two very different things, and sometimes this can be the deciding factor in a technical interview.


Is that all ?

Competitive programming is not all about helping you learn and understand stuff so that you perform well in your interviews.It has lot of other benefits.

1. It helps you gain recognition by other aspirants, communities, companies.
2. It definitely makes a positive impact on the resume.
3. It makes you focused and helps in solving complex problems in lesser time.
4. Most importantly, It's fun!!


Comments

  1. Great kunal, you really presented in a beautiful way. You have explained everything in a very clear and decent manner, anyone can understand. This is very helpful for people who think competitive coding will not be beneficial for their career.

    ReplyDelete
  2. thankyou so much sir! this is a good avdive

    ReplyDelete

Post a Comment

Popular posts from this blog

How I cracked my SDE Interview at Amazon and how you can too.

Beginning with competitive programming series : Chapter 1

Beginning with competitive programming series : Chapter 0