Are knowledge gained though programming contests gonna help in career at companies like infosys, wipro, TCS, Accenture or is it going to be wasted??
p.s. Not every one is going to big companies like microsoft, facebook, or Google. Please answer keeping this in mind.
Are you kidding !!! Of-course it will help, you’ll pass through interview of any IT company with flying colors.
What you know and want to learn does not depend on the type of company, it depends on your passion.
If you like normal programming/competitive programming, then it will definitely be worth while.
Just think of all the AWESOME things you can do with just a computer, compiler and some googling.
Competitive programming lifts your standard in
- Writing code (you will code way faster compared to others once you found a solution in your
- Mastering algorithms (just think what you can do with DP, backtracking, various trees).
- Problem-solving skills(faster solving gives you an extra edge).
- Compiler/language tricks and loop-holes (like getchar_unlocked() instead of scanf(), scanner vs bufferedReader etc…).
- Efficiency and Runtime reduction (you have fewer bugs from the beginning than your non-programmer colleagues).
- No need to worry about implementation details.
- and many more…
Now back to your question about career at companies like infosys, wipro, TCS, Accenture.
See if you can find any one (or more) of the above not required there.
You must be able to right code and debug your (and others) code. There you have to work in a big project and if you do not know your data-structures and algos then you might uses O(n^2) instead of O(logn) and Space of N^3 instead of N. Or maybe using normal array based approach instead of a segment tree with suffix array for query fetching application. Now a simple insert/read operation in your project will take 2 hours instead of 2 sec.(just take it as an example).
All the above are required and employees are highly desired to posses these set of skills otherwise you will end up doing something other than coding (like maintenance/support etc. which is good if you don’t like programming).
If you want to know some disadvantages
- You get addicted to the programming (winning many free T-shirts ).
- There are no system tests to tell you whether your solution “passed” ( not strictly because there are various testing methods like modular testing, integration, equivalence class partition testing …)
- You get used to a short-term goals and rewards. In a competition, you win in a matter of hours. In real life it can take months before you get rewarded for the project you’re working on.
- In competitions you are the only single problem solver/coder. Even in team competitions, people usually divide the tasks between each other and work on their own. In those companies ( be it TCS or GOOGLE ), not only you have to solve problems TOGETHER, but you also need to share the codebase !!
- You deal with real world scenarios with imperfect information (has both advantages and disadvantages).
Wow, 4 disadvantages (and counting…) !!! But if you look again, these are not actually disadvantages (except 2 maybe). No. 3 teaches you to be patient and 4 makes you a team player.
Keeping the answer short, do it if you like programming contests and competitive programming. It will most definitely help you (in interviews and projects), it has helped me a lot though I am not a good Competitive programmer.
Good question… i have also some doubt in my mind bz there is none of big companies comes in our college like google, de shaw , amazon , facebook, microsoft bt still m regularly participate in programming contest… due of this my pointer also drop down to 7.3 , can I have oppurtunity to work in gud reputed companies if i becomes excellent in problem solving if yes then how ?? bz there is no big companies comes in our college for campus recruitment!!
Yes you can, there are many examples of peoples selected in companies like google, amazon, microsoft … from colleges where such companies do not visit and with low grade point. Just do an online search regarding this.
Their secret is that they are very good at what they do (be it competitive programming or networking or some other domain).
Is 1.5 years is enough to become expert at competitive programming if one do’s his 100% bz i have only 1.5 years left and till i lacks gud algorithmic approach??