¿Es mejor aprender primero los algoritmos y luego buscar problemas o simplemente elegir un problema aleatorio y luchar?

Recomiendo aprender primero un conjunto de algoritmos comunes y clases de algoritmos. Esto le dará un conjunto de herramientas para resolver problemas. A veces, uno de los algoritmos lo resolverá directamente. A veces será posible reformular el problema para que sea solucionable con el algoritmo. A veces le dará el conocimiento para buscar algo adecuado a su problema. A veces lo expondrá al principio que utilizará para crear su propio algoritmo para el problema en cuestión.
No puede reproducir todo el conocimiento de las humanidades de los algoritmos usted mismo. Muchos de ellos fueron desarrollados por personas muy inteligentes a lo largo de muchas décadas de investigación. No tiene más sentido resolverlo todo desde cero que renunciar al aprendizaje de la física y tratar de resolverlo por su cuenta. Claro, puedes aprender cosas así, y desarrollarás habilidades útiles, pero no aprenderás / nuevas / cosas. Es mejor pararse sobre los hombros de gigantes.