Top 10 sites to practice programming
HackerRank is currently my favourite programming site. There is a lot of exercises and they are split in different categories – Algorithms, Java, Functional programming, Databases, etc. Everyone will find something interesting. In many cases solutions can be submitted using different languages – solve one in Java and then try the same in a functional language!
I really like one thing about this site – they show output (even incorrect) of submissions. This one, small feature helps a lot figuring out what is wrong with the submitted code. Compare that with terse “Wrong Answer” on other sites.
This site has a collection of very interesting problems and learning resources. Of course, there is a bunch of pure algorithmic problems, like on other sites, but the most interesting part is their collection of bioinformatics problems to solve with helpful learning resources. It’s very cool site where one can see how algorithms can be used to solve real world challenges!
- SPOJ – Sphere Online Judge
Very known site with plenty of algorithmic problems. SPOJ also allows to use different programming languages, even very esoteric. These days I visit it less often, but it’s still a good site.
- SQL Exercises
Most other sites with programming contests and exercises focus on algorithmic problems that should be implemented in C-like language. This one is different, it will lift your SQL skills from to incredibly high level! After solving a number of SQL Exercises there you will creating complex multi table joins will be a breeze. The skills are also useful when working with Hibernate/JPA.
It’s one of the oldest contests sites. At the beginning there were only algorithmic competitions, but with time they’ve added other type competitions – software design, testing, graphical design, etc.
TopCoder is the only site I know of, where one can earn some money in programming contests.
- We Chall
We Chall is not a programming/contest site by itself, but it keeps a global ranking from many security contests sites (often Capture The Flag type). Very interesting challenges that require broad IT knowledge. One site which I like but is not on We Chall is Backdoor – Security platform.
In Clojure community the site is very well known. It contains (ATM) 156 problems ranging in difficulty from easy to hard. By solving them you can learn quite a lot of nice tricks in Clojure and feel the beauty of the language. Don’t forget to enroll to code golf league! :-)
Contrary to mosts programming sites that focus around algorithms and such, CodeKata has a list of problems that will exercise you in different directions. The katas set goals that will make you think about modeling of problem domain, different trade offs, etc.
exercism.io is very interesting and unusual site with programming exercises that aid in learning a new language. It has at least two things that make the site exceptional:
- Command line client for fetching and submitting solutions.
- Programmers are encouraged to Code Review other solutions. IMHO being able to see how others have solved the same problem is a great way to learn a language. Just try it! :-)
- Code Fights
I discovered Code Fights just recently, but found their approach to the competetive programming quite amusing. In other places you can take your time and solve problems slowly, here the time runs really fast and your competitor is trying to solve the same problems faster than you. It’s like playing coding game! :-)
And where do you practice programming? Let us know in the comments!