aprender a ser programador

Si estás leyendo esto es porque quieres aprender a ser programador y estarás aprendiendo a programar ya seguramente. Pero esto es sólo el principio.

Un programador pasa la mayor parte del tiempo programando pero saber programar nada más no te va a llevar muy lejos en el mundo del desarrollo de software. Lo que hace un programador es automatizar tareas manuales o crear otras formas automáticas de hacer algo que seria muy complejo de forma manual.

Esto es muy importante a la hora de crear software. Tienes que saber hacer algo manualmente antes de poder automatizarlo. Debes saber exactamente qu├ę quieres hacer antes de ponerte a programar o no vas a conseguir buenos resultados. Y eso lo consigues gracias a los algoritmos.

┬┐Qu├ę es un algoritmo?

Lo primero que hay que entender es lo que es un algoritmo. Un algoritmo en programaci├│n es la secuencia de pasos l├│gicos que hay que dar para solucionar el problema que queremos resolver.

Por ejemplo, si queremos hacer un programa que divide 2 n├║meros, los pasos podr├şan ser los siguientes:

  • Preguntar por el primer n├║mero
  • Almacenar el primer n├║mero en una variable
  • Preguntar por el segundo n├║mero
  • Almacenar el segundo n├║mero en una variable
  • Dividir el primer n├║mero entre el segundo n├║mero
  • Escribir el resultado en pantalla

Esto que hemos hecho es escribir el algoritmo en pseudo c├│digo de nuestro programa. Ya tenemos un punto de partida y a partir de aqu├ş podemos empezar a escribir el c├│digo.

algoritmo
Christina Morillo at Pexels

Escribir buen c├│digo no es sencillo

Una vez que tenemos el pseudo c├│digo podemos pasar a escribirlo en el lenguaje de programaci├│n que hayamos decidido. Cualquiera puede escribir c├│digo, pero no todo el mundo puede escribir buen c├│digo y si quieres aprender a ser un programador, mejor que seas de los buenos.

Hay muchos libros donde puedes aprender a hacer que tu c├│digo sea mejor. Esta es mi selecci├│n personal de 3 libros que todo el mundo deber├şa leer al menos una vez en su vida:

  • El libro de referencia y la biblia del buen c├│digo, Clean Code de Robert C. Martin. Es sin duda el mejor libro para aprender c├│mo hacer mejor c├│digo. Si tuviera que comprarme un solo libro sobre programaci├│n, sin duda ser├şa este. Te dejo los enlaces a Amazon tanto en su versi├│n en ingles como en espa├▒ol para que puedas pedirlo cuanto antes.
  • Otro gran libro donde aprender mucho es The Pragmatic Programmer de David Thomas y Andrew Hunt. Sin duda un libro esencial a la hora de aprender muchas cosas sobre el mundo del desarrollo de software. Debajo tienes el enlace a Amazon por si quieres comprarlo.

  • Y por ├║ltimo pero no menos importante, el libro del gran maestro Martin Fowler, Refactoring. Es la navaja suiza de la refactorizaci├│n, de la cual hablaremos en otro art├şculo. Tambi├ęn dejo el enlace a Amazon para que puedas comprarlo.

* En calidad de Afiliado de Amazon, obtengo ingresos por las compras adscritas que cumplen los requisitos aplicables

Testear el c├│digo

La ├║nica forma de saber si lo que has hecho funciona es probarlo. Es lo que se llama testear el c├│digo.

Ya sea de forma automática o a mano debes probar que tu programa hace lo que tiene que hacer y que lo hace exactamente como quieres que lo haga.

Hay muchas metodolog├şas para hacer las pruebas y asegurarte que tu c├│digo funciona bien pero las pruebas hay que hacerlas s├ş o s├ş. Y no s├│lo las que creas que son necesarias, si no, todas las combinaciones que se pueden dar.

Volviendo a nuestro ejemplo, tendr├şas que probar que pasa cuando se usan n├║meros enteros, n├║meros decimales, una mezcla de ellos, cuando se intenta dividir por cero, cuando el resultado es decimal… No es sencillo pero poco a poco iremos viendo t├ęcnicas que hacen que todo sea mas f├ícil de probar. Sobre todo, haciendo hincapi├ę en la forma de escribir el c├│digo para luego poder testearlo de forma m├ís ├│ptima.

Desplegar la aplicaci├│n

Una vez probado hay que desplegar la aplicaci├│n. Desplegar una aplicaci├│n es ponerla a disposici├│n de otros usuarios para que puedan usarla, ya sea en un servidor web, en una app store o incluso enviarla por correo.

Ya ahondaremos en esto porque es una de las grandes disciplinas de esta profesi├│n. Y quiz├ís siendo un programador est├ęs pensado que eso no es parte de tu trabajo y no debas preocuparte de ello, pero cada vez m├ís se impone la cultura DevOps, que mezcla la parte de desarrollo con la de operaciones, es decir la parte del despliegue de esas aplicaciones. As├ş que has de pensar no solo en c├│mo hacer que tu c├│digo funcione bien, si no c├│mo se va a desplegar de forma sencilla y correcta.

┬┐C├│mo compartir c├│digo con otros programadores?

Normalmente es muy raro que la aplicación la desarrolle un solo programador por lo que en algún momento tendrás que compartir lo que tú haces con lo que hacen otros programadores. Esto normalmente se hace mediante un sistema de control de versiones.

Tranquilo, ya llegaremos a este punto tambi├ęn y ver├ís que no es algo tan complejo. Hay varias opciones a la hora de compartir el c├│digo, pero sin duda la m├ís extendida a d├şa de hoy es Git.

┬┐C├│mo almaceno datos de mi aplicaci├│n?

Cuando empiezas a manejar datos llegará un momento en que quieras guardarlos. Desde el nombre del usuario, a su email o los productos de la tienda on-line que estás haciendo. Todo esto se suele hacer con bases de datos, aunque hay otras alternativas.

Ya definiremos que tipos de bases de datos hay, cuales son las m├ís comunes y qu├ę caracter├şsticas tienen unas que las hacen mejores que otras en ciertas tareas.

┬┐C├│mo arreglo los fallos de mi programa?

Y por ├║ltimo, cuando tengamos que buscar los fallos que pueda haber en nuestra aplicaci├│n, tendremos que depurar el c├│digo. Esto es ir paso a paso por nuestro algoritmo buscando d├│nde est├í el fallo que hace que no funcione el c├│digo como nosotros lo hab├şamos planteado.

Quizás, la mejor definición de este proceso es la que dio el creador de uno de los algoritmos mas famosos:

Si depurar es el proceso de quitar los errores de software, entonces programar debe ser el proceso de ponerlos.

Edsger W. Dijkstra

Pero, ┬┐qu├ę m├ís falta?

Si despu├ęs de haber visto esto a├║n no te has asustado falta una ultima cosa: LA NUBE. Ese ente abstracto que hoy en d├şa hace que funcione desde tu m├│vil hasta tu coche o incluso tu calefacci├│n.

La nube es un concepto para definir los centros de datos donde se encuentran los servidores que hacen que todo esto funcione. Ya sea una nube privada que contratas a una empresa de centros de datos o una nube p├║blica, como la de Amazon por ejemplo, s├ş s├ş, ese Amazon donde te compras tus cosas.

Cada d├şa es m├ís importante saber manejarse en la nube, o al menos, tener la idea clara de c├│mo hacer las cosas mas b├ísicas dentro de la nube. Esto en s├ş mismo es una rama muy grande del desarrollo de software que a su vez se puede dividir en otras ramas, pero ya llegaremos a ello.

Espero haberte ayudado y que tengas una idea mas clara de que hace falta para aprender a ser programador y que sepas que si quieres ser un programador, mejor que seas un buen programador. Como ya te dije en el articulo de ¿Como ser desarrollador de software? son los que las empresas están deseando tener en su plantilla y los que no tienen problemas de encontrar el proyecto que más feliz les hace.

­čćś Si quieres saber c├│mo te puedo ayudar con tu carrera en el mundo del software, reserva GRATIS y sin compromiso una llamada conmigo


Todo sobre Desarrollo Profesional

  • Hasta que no ense├▒as algo realmente no lo has aprendido
    En el mundo de la programaci├│n y del desarrollo de software pasamos mucho tiempo aprendiendo. Siempre hay nuevos frameworks, nuevas tecnolog├şas y nuevos servicios que debemos aprender. Ya sea para llevar a cabo un proyecto o para progresar en nuestra carrera es inevitable aprender cosas nuevas. Es por eso que aprender de una forma r├ípida […]
  • Ingeniero Cloud: ┬┐Qu├ę es y c├│mo convertirse en uno?
    Seguro que si has visto ofertas de trabajo ├║ltimamente te habr├ís fijado que se busca en muchas cubrir puestos de Ingeniero Cloud. Pero realmente, ┬┐qu├ę es un Ingeniero Cloud? ┬┐Qu├ę hace que sea una profesi├│n cada vez mas demandada?. En este art├şculo voy a definirte qu├ę es (para m├ş) un Ingeniero Cloud, cu├íles son sus […]
  • ┬┐C├│mo cambiar de profesi├│n y triunfar en el mundo del software?
    Quiz├ís llegues aqu├ş desde alg├║n post en Facebook, o desde Google buscando cambiar de profesi├│n en estos tiempos tan dif├şciles, o incluso que te lo haya pasado alg├║n conocido. Lo que es seguro es que si est├ís aqu├ş es porque quieres cambiar de profesi├│n y entrar de lleno al mundo del software. Si te est├ís […]
  • Aprender a ser programador no es solo programar
    Si est├ís leyendo esto es porque quieres aprender a ser programador y estar├ís aprendiendo a programar ya seguramente. Pero esto es s├│lo el principio. Un programador pasa la mayor parte del tiempo programando pero saber programar nada m├ís no te va a llevar muy lejos en el mundo del desarrollo de software. Lo que hace […]
  • ┬┐C├│mo ser desarrollador de software?
    Esta es una de las preguntas que m├ís me hacen algunos de mis conocidos, ┬┐C├│mo ser desarrollador de software? ┬┐C├│mo empiezo en el mundo del desarrollo del software? ┬┐C├│mo puedo aprender a programar?. Bueno esa, y ┬┐cu├ínto ganas al mes? Pero a la respuesta de esta ya llegaremos mas adelante. Cuando empece en esto del […]