https://projecteuler.net (more mathy)
https://www.topcoder.com/challenges
https://halite.io (machine learning + game)
https://www.enki.com (coding challenges on mobile)
https://projecteuler.net (more mathy)
https://www.topcoder.com/challenges
https://halite.io (machine learning + game)
https://www.enki.com (coding challenges on mobile)
I wish projecteuler would provide more hints/explanations. Adventofcode problems are fun but are random (not like a curriculum). Other websites are competitive programming focused which I'm not sure is comp-sci enough (correct me if I'm wrong).
1. Read the Algorithm Design Manual.
2. Practice coding simple and then more advanced algorithms on sites like Coderbyte (aimed at beginners -> intermediate) and HackerRank (a bit more mathy).
3. Read as many algorithm explanations and code examples as you can on GeeksforGeeks.
4. Try and implement basic algorithms yourself like: shortest path, minimum spanning tree, DFS/BFS, tree traversals, different sorting algs, min/max heap, etc. and learn their running times.
* Also this article may be helpful for you: https://medium.com/coderbyte/how-to-get-good-at-algorithms-d...
https://flexboxfroggy.com (CSS)
https://www.datacamp.com (data science challenges)
https://www.codingame.com/start (learn to code via fun games)
https://screeps.com (cool MMO AI game w/ JS coding)