Leer.
No, de verdad, lee.
Lea todo sobre algoritmo y diseño que pueda encontrar. Hay libros fenomenales por ahí. Los libros de algoritmos de Sedgewick son buenos. El Manual de diseño de algoritmos de Skiena también es bueno. Juntos, estos libros me siguen en cada estantería en cada trabajo al que voy, junto con The Mythical Man-Month.
Entonces pregunta.
Habla con las personas que respetas. Pregúnteles qué puntos de decisión tenían y por qué tomaron las decisiones que tomaron. Los buenos siempre podrán decirte "Elegí hacer X porque es mejor que A, B de esta manera. Podría haber ido con C, pero sentí que era una mejor opción debido a esto".
A continuación, hazlo.
Construye cosas. Construye cosas que nunca usarás. Construye cosas que nunca necesitarás. Ve a escribir un programa que resuelva un rompecabezas de Sudoku. Ahora ve a hacerlo de nuevo. Y otra vez. Construirlo de 5 maneras completamente diferentes. Crea un programa que genere rompecabezas de Sudoku y aliméntalo con los solucionadores. Encuentra qué solucionador es el más rápido. Y entonces...
Averigua porque.
El "qué" casi nunca es importante. Quiero decir, sí, es fundamental para terminar el proyecto en cuestión, pero al final si sabes el "qué" sin saber el "por qué", es mejor que nunca lo hayas hecho. Tienes una viñeta en tu currículum. Ve por una galleta y felicítate. El "por qué" es mucho más importante que el "qué".
Y para que conste, el Sudoku fue un ejemplo. Pasé mucho tiempo libre haciendo ese ejercicio con un montón de acertijos lógicos en Kongregate y aprendí mucho en el camino.
http://www.amazon.com/Bundle-Algorithms-Parts-1-5-Fundamentals/dp/020172684X/
http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1848000693/
http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/