arrow_back Volver
Inicio keyboard_arrow_right Artículos keyboard_arrow_right Artículo

Lo importante es que funcione

Eduardo Ismael Garcia

Full Stack Developer at Código Facilito.

av_timer 4 Min. de lectura

remove_red_eye 11004 visitas

calendar_today 12 Septiembre 2017

Este artículo va dirigido principalmente a personas que están comenzando en el mundo de la programación (Estudiantes principalmente).

Cuando me encontraba estudiando la universidad una frase muy común con la cual yo me topaba era: lo importante es que funcione, lo comentaban tanto estudiantes de nuevo ingreso, como de grados superiores. Era una frase la cual de cierta forma no compartía.

Conforme iba avanzando de grados comprendí el porqué de la frase. Las personas encargadas de evaluar tu programa (comúnmente, los profesores), se basan en una serie de puntos, los cuales, el alumno debe cumplir para obtener una calificación aprobatoria, desafortunadamente, en esos puntos, comúnmente se olvida la evaluación del código.

Recuerdo un debate con un compañero, era un problema "muy sencillo".

def sum(v1, v2):
 res = v1 + v2
 return res

El debate consistía en que podíamos reducir las líneas de código de esta función hasta llegar a ser una, además, de usar nombres correctos en nuestras funciones y variables.

Mi idea era que quedará de cualquiera de las siguientes formas (aprovechando que estábamos usando Python)

def suma(valor1=0, valor2=0):
 return valor1 + valor2

suma = lambda valor1=0, valor2=0 : valor1 + valor2

Es importante que cuando aprendamos un nuevo lenguaje de programación, además de la sintaxis, también aprendamos los tipos de nomenclaturas que podemos usar.

El debate se cerró con la frase lo importante es que funcione.

En primera instancia podemos decir, está bien, es solo una variable demás, ¿y los nombres?, bueno, si usas un poco tu imaginación comprenderás que hace el código; Sin embargo, si esa idea la llevamos a un programa relativamente mediano (Quizás un punto de venta) les puedo asegurar que tendremos un programa con un performance muy malo y que a la larga será muy difícil de mantener.

Es inevitable que cuando comenzamos a programar cometeremos estos tipos de "errores", vaya, estamos comenzando. Algunas personas nos cuesta más que a otras, sin embargo, si algo nos apasiona y queremos ser buenos en ello (lo que sea) no nos queda de otra que practicar, dedicarle tiempo y ser constantes. Con el paso del tiempo nuestras habilidades mejorarán si o si.

¿Quieres saber si mejoraste como programador? solo ve a tu cuenta de github y mirá el código que escribiste hace un par de meses, el ¿que estaba yo pensando? saldrá por sí solo.

En el tiempo que llevo como programador he notado que existen dos formas en las cuales un programador puede mejorar sus habilidades (como programador).

  • Trabajando en proyectos personales.
  • Trabajando con un equipo de desarrollo.

Mejora tus habilidades

Sin duda alguna, en nuestro paso por la escuela recabaremos muchísima información que nos será de mucha ayuda para cuando nos encontremos trabajando en alguna empresa o startup, sin embargo, en muchos casos, esos conocimientos no bastarán para que podamos realizar tareas complejas, de alto impacto para el cliente final.

Poco a poco nos daremos cuenta que esto:

protected Boolean conectadoRedMovil(){
  ConnectivityManager connectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivity != null) {
      NetworkInfo info = connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
      if (info != null) {
        if (info.isConnected()) {
          return true;
        }else{
          return false
        }
      }else{
        return false
      }
    }else{
      return false;
    }  
  }

puede ser reducido a esto (inclusive a menos):

protected Boolean IsConnectedMobileNetwork(){
 ConnectivityManager connectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
 if (connectivity == null)
   return false

 NetworkInfo info = connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
 return info != null && info.isConnected()
}

Nuevamente, con el paso del tiempo iremos mejorando, pero, ¿No podemos acelerar esto?, la respuesta es sí.

Cuando estemos comenzando a programar nos enfoquemos en que nuestro programa no solo funcione, si no funcione bien, nos olvidemos de la frase lo importante es que funcione.

Programar es un arte y para que podamos desarrollar un producto bien hecho necesitaremos de la ayuda de más personas (programadores o no).

Creo firmemente que en la escuela aprenderemos cosas importantísimas, pero creo que aprenderemos más cosas realizando proyectos propios e/o incorporandonos a equipos de trabajo (Ya sea en tu misma escuela).

Verán, cuando tenemos un producto el cual es usado por decenas, cientos o miles de usuarios sin duda tendremos la necesidad de agregar ciertas funcionalidades para retener a los usuarios que ya tenemos, así como atraer a nuevos, esto implicará mucha investigación, tomar cursos, leer libros, leer blogs, ver vídeos tutoriales etc ... con lo que sin duda mejoraremos.

De igual forma es arreglando los Bugs que nuestro proyecto tenga, si, todos nuestros proyectos tendrán bugs, es inevitable, los programas son desarrollados por personas, las cuales distamos mucho de ser perfectos.

Nos nos enfoquemos a crear programas perfectos, solo con la menor cantidad de errores que podamos.

El trabajo en equipo es otra forma en la cual mejoraremos, nosotros, no lo sabemos todo, es una realidad. Trabajando en equipo podemos aprender de los demás, desde cómo miden su tiempo, como organizan sus labores, como programan, como investigan etc... Esto funciona más cuando nos incorporamos a un equipo donde nosotros somos los que tenemos menos conocimientos (Vaya somos los "tontos").

Al principio puede ser abrumador, ver como tus compañeros dominan las tecnologías, como hablan de términos que para nosotros son desconocidos o simplemente como realizan sus tareas en poco tiempo, lo que a nosotros nos llevaría un par de horas, ellos lo tienen listo en un par de minutos, mucho mejor hecho y con menos errores; Lo se, porque me paso.

Pero no te preocupes, en la mayoría de los equipos siempre habrá quienes estén dispuestos a ayudarte a mejorar, ya sea explicando ciertas cosas, haciéndote ver en que fallastes, diciéndote cómo mejorar tu código etc... Si no es así, esfuérzate el doble, para que el día de mañana puedas apoyar a alguna persona nueva y la curva sea menor para él/ella.

Por dónde comenzar

Me gustaría colocar ciertas áreas donde podemos mejorar desde el ya, sin embargo, eso casi imposible (más, si es en un solo artículo) debido a que existen diferentes "ramas" en las cuales nos podemos especializar (Móviles, Web, Servidores, Escritorio etc..)

Algo en lo que concluyó junto con otros desarrolladores y reclutadores es que debemos de aprender a trabajar con pruebas unitarías.

Conclusión

Mi conclusión es bastante sencillas, no nos conformemos con tener proyectos que unicamente funcionen, sino que funcionene correctamente. Es cierto es más barato comprar más memoria RAM que invertir tiempo desarrollador para arreglar un programa lleno de bugs y con un performance lamentable, sin embargo eso no dará resultados a largo plazo.

Si podemos mejorar desde el Ya, lo hagamos, no lo pospongamos para el siguiente lunes (como las dietas).