ACM Wiki

Improve your skills with the right tutorials.

Code Fights

Codefights is a great place to go for a variety of programming related objectives. You can go practice your coding skills while solving fun puzzles through their Arcade mode, make a plan to review for your upcoming interview, or even challenge your friends in fun code battles.


Coursera offers a ton of top quality courses from various prestigious universities. One course that may be of interest is Princeton’s Algorithm series, split into two parts (which are both free). It contains video lectures, reading, and actual homework that will be graded by the instructors. While Stanford and UC San Diego also have good algorithm courses, they are not free.


GeeksforGeeks has a lot of information on anything computer science related. Whether you are looking to learn algorithms, data structures, or a specific programming language, GeeksforGeeks has a tutorial for you. This site is definitely a good place to go if you want to have a quick understanding of how a certain algorithm works or if you want to see an example of how to implement a certain data structure.


HackerRank is where a lot of the weekly problems that we discuss in the ACM meetings come from. This place is highly recommended for if you want to start practicing the algorithms you have learned. They have a whole track solely designated to algorithms. HackerRank won’t give you all the theory behind the algorithms, but it will give you a lot of practice using the ones you know.


Just like HackerRank, this is where another chunk of the weekly problems that we discuss in the ACM meetings come from. It has a lot of problems to prepare for competitions or just for general practice. It’s a little harder to navigate than HackerRank, but it’s definitely worth checking out the resources they have here.


Kattis is a great source if you want to find problems from past competitions. For example, if you want to see the problems that the teams from the ACM ICPC world finals has to solve, you can check it out here, and you can try to solve them yourself. Kattis has a ton of problems and other good resources, be sure to visit this site sometime.