Assuming you are using android phone*:
- GeeksforGeeks
- HackerEarth
Learning from web:
- Algorithms - GeeksforGeeks
- Notes on HackerEarth
- Code Monk - Be a better programmer
Practicing:
- CodeChef
- TopCoder
- Interviewbit
- CodeFights
- HackerRank
- HackerEarth
- LeetCode
Recently, I am very active on CodeFights and interviewbit.
CodeFights, addictive! You will increase your coding and thinking speed. But you won’t learn much on algorithms. But it is definitely a good place to spend time.
Interviewbit is good for learning data structure and its closely related direct problems. It gets your data structure understanding in your finger tips.
TopCoder/CodeChef, pratice and praticipate in weekly/monthly tournaments. Mi error y el de muchos otros es que muchos participan pero nunca vuelven a ver cómo lo han resuelto los demás e intentan resolver todos los problemas del torneo.
Me he dado cuenta de mis dos errores (errores comunes que todo el mundo comete):
- Mira la solución de los demás: Resolver el problema y ver cómo lo han resuelto los demás, entender su solución.
- Resolver todos los problemas en cualquier evento en el que participes: Después del torneo, resuelve todos los problemas que hubo en el torneo.
- Resuelve problemas difíciles: No sigas resolviendo sólo problemas fáciles, resolver 1000 problemas fáciles no hará que alguien mejore.
- Haz amigos online/offline. Resuelvan juntos, discutan y enseñen.
*Eventualmente añadiré más a esta lista.
*He probado estas aplicaciones sólo en teléfonos android. En otras plataformas solo en google.