to move from 2 star to 5 star

learning

#1

What all things should i be working on as a programmers because their are 100*100 of algorithm to read which is not easy to cover…atleast in terms of competative preparation what should i have primary focus on??
(randomly solving problem will not make me reach the target or will consume lot of time in order to learn ).can u suggest some list to follow or some sort of path in learning,that would be very much helpful.


#2

Competitive programming is very vast. You can’t learn it in a single day. It takes times means too much time and of-course hard work and passion which is very important here.

You can take a reference of geeksforgeeks or other sites like topcoder, hackerearth and our codechef. So if you wanna start from starting then hackerrank has a good domain for this.


#3

HackerEarth practice section is also good. There you can practice all important types of question on data structure and algorithm.


#4

First of all, many great programmers say that solving problems is good and they followed this technique.

And if u want to follow a system approach here r some reasources -

  1. https://www.commonlounge.com/discussion/5d2822257dfa49328d85fd27cf114441/main
  2. https://www.hackerearth.com/practice/
  3. http://codeforces.com/blog/entry/23054
  4. https://discuss.codechef.com/questions/48877/data-structures-and-algorithms
  5. https://www.hackerrank.com/dashboard

#5

Can you become a very good cricketer by just learning to face some type of balls or by learning few shots. You need practice and experience and love. First of all remove from the mindset that investing in practicing might be time consuming.

Start practicing from easy problems and courageously move over to the relatively harder problem. And, yes, do attempt as many contests as you can and give your best in each contest.


#6

I agree with the answers above mine.

Additionally, i wish to stress on the fact that it is EXTREMELY IMPORTANT to PARTICIPATE and learn from contests as well. The reason is that-

  • Keeps you up to date with what topics, algo or problems are important. Eg- after participating in contests, you will find dp comes in almost each of them.
  • Tells you your shortcomings in algos you already practiced.
  • The editorials help you in understanding key concepts, which you find serve as base on which further refinements/optimisations are built.
  • It doesnt matter what rank you get. It shows you where you stand among all. You may solve 50 practice problem but its contest rank which tells how effective it is.
  • You will learn traits like never giving up when you participate in contest with full zeal n enthusiasm

If u need any further help from me, you can mail me at my official mail id.
(Sorry for any typos. Answering via phone. No access to pc, busy with wedding rituals of my brother)


#7

It was the question that I also worried about


#8

It’s already answered.


#9

Don’t focus on individual algorithms, but try to understand the concepts and building blocks behind them. Only the easiest problems are solvable with an unmodified standard algorithm, most problems have a small twist that prevent the use of a standard algorithm or are completely non-standard anyway. However, concepts such as dynamic programming, divide and conquer, preprocessing, greedy are usable on a very wide range of problems. Often you will need to combine them.

The most important concept is likely time and space complexity. For every problem look at the constrains first and figure out what is the maximum complexity that would still get AC. It is easier to find working algorithm then, as you can limit your mental search space.


#10

From seeing ur profile i dont think you have good command over stl containers and you dont give a lot of time for thinking about solution to a problem.

You just think about the question when u sit in front of the screen and then give up, you know what, People think for solutions while they are walking on street, having food, even while watching a movie u just need to have that passion in you for solving problems, i am not saying you dont have but there is something missing in you.

Now the solution : just sit down and solve first four problems of past 3/4 long challenges that solve a few ad-hoc and dp problems from spoj. Then take part in a contest with confidence, believe that i can do it, its just that you are not getting the logic right away and i will eventually get it.

Most importantly solve the questions after the contest reading the editorials and looking through others code you will surely be where you want to be.

Cheers :-) I hope it helps.

#11

I’ll make it simple for you.

  • Make the language part strong. Don’t run for multiple languages. Choose any one and try to understand how everything works in that language. You should not face any problems in implementation in that language.
  • Then comes the part of DS and Algo. I was same confused as you are when I started. Even now I feel same sometimes. But the thing is there is nothing like a sequential process here. You can learn any DS and Algo just randomly by solving problems on various online judges.
  • For starters, I will say try and learn basic Data structures like Stack, queue, linked list, tree, Graph, hash tables, etc. You should be able to implement their basic operations without any problem. Try implementing by using Standard Template Library(STL) also (if you are choosing C++). Because in STL almost every operation is predefined in <algorithm.h> {But you should implement without STL too to clear your basics.}
  • After that comes the part of Algo. Start with Searching and Sorting (they are used in like every question).
  • Then start problem solving on online judges -> SPOJ, CodeChef, CodeForces, Hackerrank, Hackerearth, etc.
    I will personally suggest codechef because it has the most awesome editorials. So, if you face any problems you will be able to read and understand the solution. Hackerrank and Hackerearth don’t have good editorials.
  • Try participating in contests. Codechef long is a must. Because you have 10 days for 10 questions. So, you can learn new concepts and apply them.
  • Read Editorials after contests and try to solve the problems you weren’t able to solve in the contest after going through editorials. (This is an important thing. If you don’t do this, you’ll not be able to learn anything new. Although, it may seem a bit boring to you at first but just imagine you tried a question for 4-5 days and not able to solve. So, after getting editorials you will have the great understanding of the concept. PLEASE DON’T MISS IT. I DID THE SAME MISTAKE TOO)
  • Just last few tips. Don’t get de-motivated if you are not able to solve. Even the greatest people in the world failed at first. Do programming consistently and regularly. Ask questions on CodeChef Discuss if you face any problems.
  • Although, I don’t know much but if you face any issue and feel like contacting someone Do drop me a mail-> vaibhavkhandelwal20[at]gmail.com . I will be happy to help.

Good luck :slight_smile:


#12

but atleast you can tell me types of problems to prepare on,or atleast some common types of problem which frequently occurs based on concept in competitions…


#13

Start with domain of hackerrank. Easy section will contain all relevant problems that you are asking. I did the same thing before coming in the world of Competitive programming so i am suggesting you the same thing


#14

@vijju123 really need to appreciate u. You didn’t have PC access but still u helped.


#15

this has got me no where…from past two year i m practising but didn"t reach any milestone.


#16

thank you for the suggestion…


#17

Thank you @mathecodician :slight_smile:


#18

@l_returns , plz answr this:rofl::rofl::rofl:


#19

@karangreat234
You should also answer this… :joy:
I think people wrote everything…
I would say “participate regularly” and “upsolve”…
Debug people’s code on discuss… (Helps a lot in improving debugging skills)
that’s it…


#20

@vijju123 is always helpful. I used to mail him my queries many times. And every time he reflected back to me with a proper and helpful solution on time.