How to learn step by step to be a good programmer !!!
Difference between en1 and en2, changed 13 character(s)
Hello everybody , how are you ? Today I am going to describe some contents (programming) Which can be helpful for contestants.↵

At first I assume that you all know about C/C++ language . But It doesn't matter . I think you also know about conditional logic , loop , datatype(input/output) , strings, array, function , basic bitwise operation etc . I think then you should learn lots of Mathematical terms such as :↵

Prime number , GCD , LCM , Eular's Totirnt Function , Bigmod , Modular inverse , Extended GCD , combinatorics,
combination , permutation , combination , inclusion exclusion principle ,probability , Expected value , Base conversation , Big integer , cycle , Gawssian elimination etc etc........↵

**Then.....**↵

you have to learn about sorting and searching . like : Insertion sort , bubble sort , merge sort , selection sort , merge sort , county sort etc . ↵
NOTE : THERE IS A THING NAMED "qsort" function is C language.....don't use it . There is an algorithm named "anti-qsort" . If you use it in codeforces , anyone can easily hack your solution because anti-qsort algorithm generates worst case for qsort and in the worst case , it's time complexity will be O(n^2) . But you can use Standerd Template Library . ↵

**Then........**↵

You have to learn Binary search , Backtraking , ternary search etc...↵



**Then.......** ↵

you have a task to learn lots of data structures . Such as : Linked list , Stack,Queue,heap , vector,graph,tree,segment tree , binary search tree , sqare root segmentation , disjoint set union , Lazy with proposition , lazy without proposition , Binary indexed tree , map , set , pair etc etc....↵



**Then........**↵
You habe to learn greedy technique , Dyanamic programming , Graph algorithm , Flow , Adhoc , Geometry etc etc , I have summarized the contents bellow : ↵
1. Dynamic Programming↵
2. Greedy↵
3 .Complete Search↵
4 . Flood Fill↵
5 . Shortest Path↵
6 . Recursive Search Techniques↵
7 . Minimum Spanning Tree↵
8 . Knapsack↵
9 . Computational Geometry↵
10 .Network Flow↵
11 . Eulerian Path↵
12 . Two-Dimensional Convex Hull↵
13 . BigNums↵
14 . Heuristic Search↵
15 . Approximate Search↵
16 . Ad Hoc Problems↵



If you clearup all those above , you will find a great programmer inside you , but mind it , It is not an easy tusk....You have to practice a lot . If you don't practice , you will never be able to be a good programmer .....!!!↵


SO , NO MORE TODAY ,,,, STAY WELL EVERYBODY,,,,ALWAYS TRY TO HELP OTHERS...HAPPY CODING ! ↵
 

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en3 English Ahnaf.Shahriar.Asif 2017-08-25 21:16:25 4 Tiny change: '......**\nYou habe to learn' -> '......**\n\nYou haVe to learn'
en2 English Ahnaf.Shahriar.Asif 2017-08-25 21:14:57 13 Tiny change: 'inatorics,combination , permutat' -> 'inatorics, permutat'
en1 English Ahnaf.Shahriar.Asif 2017-08-25 21:13:47 2568 Initial revision (published)