Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=aec17318-e869-41d7-89d7-7512928dbc1b

¿Qué es lo que realmente necesito aprender y hacer para convertirme en un programador de software insuperable?

¿Has oído alguna vez los términos "desarrollador de automóviles insuperable", o "desarrollador de edificios insuperable", o "desarrollador de carreteras insuperable", o "desarrollador de cisternas insuperable", o "desarrollador de aviones insuperable", o algo por el estilo? Yo no, no se hacen series como Mr. Robot pero sobre desarrolladores de caminos... 😃

No te voy a mentir, he conocido a muy pocos desarrolladores de software estrellas del rock (por no decir que solo he conocido a uno). Convertirse en el "Messi" de la programación para cualquier organización es extremadamente difícil ya que es muy raro encontrarse con alguno... ¿Por qué? Pues porque para llegar a serlo se tienen que dar un cúmulo de circunstancias excepcionales.

Habiendo dicho esto, todos tenemos derecho a soñar y a ser la mejor versión de nosotros mismos, ¿no?

Un desarrollador insuperable 😃, foto de Jono en Unsplash CC0

Hay mucha desinformación

Las "masas" están mal informadas sobre lo que realmente es el desarrollo de software. Y de ello daría las gracias a todas las películas que muestran a un adolescente haciendo algo increíble en su ordenador mientras la audiencia piensa "¡guau!" y cuela, o cuando un medio de comunicación sensacionalista que solo busca clics difunde información engañosa, como que un niño de 9 años ha desarrollado un software increíble o ha hackeado un sitio web, o un desarrollador de software ha creado una aplicación increíble.

Ahora bien, si es tan fácil, ¿por qué IBM tiene 450.000 empleados, por qué Indra, TCS, CTS, INFOSYS, y demás emplean a cientos de miles de personas? ¿Es que son tontos? Y este párrafo lo he escrito para que pienses en ello unos segundos...

¿Qué es un desarrollo?

Ahora, concentrémonos en el término "desarrollo". Simplemente significa que no se está inventando algo, sino que se está creando algo a partir del conocimiento, la habilidad, la materia prima y el esfuerzo que ya hay en ese momento.

El desarrollo de software es algo similar. Se aprenden lenguajes de programación, se aprende la estructura de datos, se aprenden técnicas de análisis de complejidad de los algoritmos, se aprenden las mejores prácticas seguidas por la industria y se aprende a trabajar en equipo.

Si tienes todo esto bajo control, eres un desarrollador de software normal, sin más. Ahora bien, durante el período en el que se aprende y se identifica cuál es el problema que hay que resolver, cuál es la solución y, a continuación, cuáles son las herramientas necesarias para resolverlo, uno se convierte en un buen desarrollador de software.

Cuando sabes cómo manejar cada aspecto del proceso de desarrollo de software en un tiempo muy reducido, eres un desarrollador de software muy competente.

Sin embargo, un programador excelso, inmejorable, insuperable, eso es otra cosa.

Los programadores más competentes del mundo se centran en saber, desde mi modesto punto de vista, únicamente estas tres cosas (¡casi nada!):

  • El código del software apropiado para la solución de un problema,
  • la eficacia del código del software que se ha escrito y,
  • cuán bien se comportará la solución cuando se escale y se adapte a una gran base de usuarios.

Como ya he mencionado en la introducción de este artículo, esta especie de programador no es muy común, pero sí se puede llegar a este nivel si se dan una serie de circunstancias bastante improbables 😉

De todos modos, sí puedo asegurar que no todos los programadores son iguales y los mejores destacan por su capacidad de tomar buenas decisiones en poco tiempo con un margen de error muy pequeño (aunque sí se equivocan, pero mucho menos...).

¿Qué tienes que hacer?

Aprender y aprender y aprender. ¿Aprender qué? Cualquier lenguaje (o lenguajes) de programación que te permite escribir código (preferiblemente con cierta demanda laboral). El lenguaje de programación en concreto no es demasiado importante, ya que en verdad es indispensable conocer varios lenguajes por muchos motivos, incluso aquellos que se usan más los fines de semana. Lo más importante que hay que aprender son cosas como:

  • Estructuras de Datos,
  • Algoritmos,
  • Arquitectura Informática,
  • Matemáticas
  • Y unos dos o tres o cuatro lenguajes de programación para tener más recursos a la hora de solucionar problemas.

Rasgos de personalidad

Los rasgos de personalidad más importantes para ser un gran programador de software comprenden, y aunque no todos se tienen, se pueden desarrollar a base de trabajo y esfuerzo y con la experiencia que dan los años de trabajo:

  • Pensamiento analítico
  • Visión creativa
  • Visión para los negocios
  • Paciencia
  • Capacidad para trabajar en equipo, ya sea en una oficina o de forma remota.
  • Disciplina
  • Atención al detalle

En su día hicimos un repaso al conjunto de habilidades tecnológicas y no tecnológicas que se deberían tener para los próximos 5-10 años como programador de software. Y no todas, ni mucho menos, son puramente técnicas.

Esfuerzo y motivación

Esto supone mucho trabajo, probablemente se necesitan más de 5 años de trabajo enfocado principalmente a mejorar y a aprender, y otros 10 años o más de experiencia laboral, y lo ideal es hacerlo en paralelo a base de mucho esfuerzo.

Uno de los grandes desafíos será establecer metas y medir el progreso, porque el proceso es tan largo que se puede perder la motivación. Los cursos ofrecidos por campusMVP para desarrolladores de software son una forma eficaz de estructurar tus estudios mientras trabajas, ya que al ser online son muy fácil de compatibilizar con estudios, proyectos personales y profesionales.

Te animo a que los pruebes, ya sea para incrementar tu repertorio como desarrollador, para reciclarte o para empezar de cero en este fascinante mundo de la programación de software. ¿Quién sabe? A lo mejor pasas por este post en 15 años y nos comentas que te has convertido en un programador x10.

Manuel A. Lores Manuel A. Lores González es licenciado en Derecho, especializado en la modalidad económico-empresarial. Tiene mucha experiencia como formador de trabajadores en activo y también como técnico de marketing en empresas del sector del software. En los últimos años además se ha especializado en la creación de contenidos para diversas publicaciones online. Ver todos los posts de Manuel A. Lores
Archivado en: DevFacts

¿Te ha gustado este post?
Pues espera a ver nuestro boletín mensual...

Suscríbete a la newsletter

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.