Points to consider for Competitive Programming
- Having a strong Competitive Programming profile helps you get interview calls much easier. Referrals are given on basis of your resume and having recognition in CP in various platforms always gives you an upper edge.
- It helps you to build strong concepts, problem-solving skills, logical thinking ability.
- It helps to write efficient and optimised code; you start thinking like an actual developer who is working to making the application experience smoother and efficient.
- Definitely help you to clear interview rounds, along with machine coding rounds. Getting comfortable with CP gives you an upper hand in passing the coding round and pair programming round.
- Winning CP contests over various sites give a boost to your confidence like Codechef, Codeforces, Hackerrank, Top Coder, etc. and you can also win prizes and interview opportunities with leading companies and even PPI opportunities.
Points to consider for Projects
- Projects like web development, application development or Machine Learning etc teaches you how stuff workaround in a software company.
- The design pattern is an important topic, building projects help in developing design concepts which might be an edge in interviews.
- For a fresher, this might not be the best an interview will be looking for and hence if you have a good development project then you can surely expect some tables to turn.
- Getting in open-source development and participating in GSOC, etc. open-source development competitions will provide you recognition in this field and hence also in the industry.
- Real projects give you experience with diverse technologies. Real projects will not help to get past the placement interviews because most interviews concentrate on data structures and algorithms. But they will help you in building your resume.
- Participating in Hackathons will always add value to your resume.
Which one to go for?
Well now we have seen which thing helps for what. If you are someone in your college years and want to get placed in some good company then personally, I would suggest to work side by side on both giving slightly more focus on developing problem solving skills, learning about data structures and algorithms. If you are an experienced individual then I would suggest to make your data structure and algorithms strong using Leetcode and various other sites as you already have a good amount of project exposure.
Having both of them side by side will not only help you understand Software development cycle but also you can experiment by adding your optimized codes in your projects for solving a design problem.
To be straight forward Competitive Programming will help you increase your problem-solving skills, getting your confidence high in coding rounds and technical rounds whereas projects will help you thereafter in the technical rounds to demonstrate your ability to build something. So, it’s always a better idea to keep both sides by side and work for your passion.
If you are doing both for getting placed into some company, it is better to not continue any as both will require quite of dedication and patience. But if you are already passionate about creating something, or getting excited about your solutions getting accepted in online judges in contests then it will be a blessing for you. It will not only help you as a developer but also as an efficient engineer.
I am also attaching few sites for competitive coding and development contests.
Competitive Programming sites:
Development Contest:
- https://summerofcode.withgoogle.com/
- https://www.esa.int/Enabling_Support/Space_Engineering_Technology/SOCIS_The_ESA_Summer_of_Code_in_Space
You can also consider our competitive programming course to give your career an edge over others!