Programar es ser capaz de expresar la solución a un problema, de manera que se aproveche efectivamente el lenguaje de programación empleado y, quizás mucho más importante, otra persona pueda entender lo que estás tratando de hacer. Esa persona muchas veces eres tú en el futuro.
Para eso, tienes que tener dominio del idioma en el cual recibes la definición de los problemas. Sea español, inglés, o cualquier otro idioma. Porque si no eres capaz de comprender la especificación, y hacer las preguntas adecuadas, tu programa no será una solucion completa. Para dominar un idioma, tienes que leer y escribir, con buen vocabulario, mejor gramática, y efectivamente. Nuestra inteligencia está limitada por los conceptos abstractos que podemos imaginar, y la capacidad de convertirlos en una historia. Lee y escribe, de todo. Escuchar historias acompañadas de imágenes explícitas no es lo mismo que leer una historia y construir imágenes mentales. Saber contar una historia es la destreza fundamental que demuestra la inteligencia.
La única forma de saber que se domina un tema, es ser capaz de explicárselo a cualquier persona, con cualquier nivel de preparación, y lograr que haya aprendizaje proporcional. Escoge el tema que te interesa, estúdialo, y trata de explicarlo a otra persona: repite hasta que la otra persona entienda. Haces eso con los temas que te interesen, y te irá bien.
Si bien vas a comenzar por aprender algún lenguaje de programación, probablemente el «popular» en tu entorno o sugerido por otros, o «el futuro del desarrollo» (ja ja ja) es importante que aprendas varios lenguajes de programación. Con diferentes estilos de programación: imperativo, declarativo lógico, declarativo funcional, reactivo. Eso mejora tu manera de enfrentar los problemas, de la misma forma que tener mejor vocabulario te permite expresar ideas complejas de forma sucinta.
Para que tus programas sean mejores, tienes que estudiar la técnica. Eso se logra estudiando y practicando estructuras de datos, algoritmos, y cualesquiera conceptos en el área de interés, por ejemplo, programación paralela y concurrente. Muchas veces, la mejor solución para un problema no es obvia, pero alguien ya la encontró y está en un libro. Es más importante saber cuál libro, que improvisar.
Así, programar es escribir un discurso en algún lenguaje de programación. Con el paso del tiempo, encontrarás formas que son subjetivamente mejores que otras, según tus capacidades, y métodos que son objetivamente mejores que otros, según su base técnica. La manera de abandonar lo subjetivo por lo objetivo es tener experiencia, y eso sólo se logra invirtiendo tiempo: leer mucho, equivocarse mucho, aprender cosas difíciles porque terminan siendo mucho mejores que las fáciles, y no teniendo miedo a huir de la comodidad de las chuletas.
Si estás buscando una receta corta para programar bien, me temo que después de casi 40 años programando, no la conozco. Escribe programas, lee e insiste -- es divertido.
View more