Comprende JS: Introducción

Bruno Pineda
sngular-devs
Published in
4 min readSep 13, 2018

Parte I de la serie Comprende JS.

Prefacio

Como parte de mi retribución a esta gran empresa sngular, quiero compartir con ustedes lo poco que mi experiencia me ha dejado, ya que como siempre he pensado:

“El conocimiento solo es una virtud, cuando es compartido”

Quiero comenzar por agradecer a todos y cada uno de mis colegas y compañeros de trabajo, de los que he y seguiré aprendiendo mucho, esto lo hago meramente como una forma de expresión pero a la vez como una forma de agradecimiento por la oportunidad que me han brindado de seguir compartiendo con ustedes lo poco que he aprendido.

Bien, pues trataré de hacer esto lo mas ameno posible, quizás haga de esto una formación pero mientras no quiero lucrar demasiado con el conocimiento, entonces, decidí comenzar esta serie para sentirme libre de toda culpa a causa mi lado capitalista.

¿De que va la serie?

Javascript es un lenguaje increíble y hermoso, no lo digo solo porque sea mi principal lenguaje de dominio, también lo declaro porque cuando conoces el “underhood” del lenguaje, conoces mas acerca de sus bondades y debilidades… entonces lo aprendes a amar.

De eso va el objetivo de esta serie, aprender a amar JS sus debilidades, partes raras y bondades, para ello necesitamos comprender como funciona, es decir, comprender el porque es como es.

“Felicidad no es hacer lo que uno quiere, sino querer lo que uno hace” — Jean Paul Sartre.

Introducción a la serie

Mas que una introducción esto es una breve descripción de porque debemos continuar con la serie.

Primero que nada aquí no vas a encontrar ejemplos de como otros implementaron alguna solución para un problema similar al tuyo, ejemplos de eso hay muchos y los encontrarás, seguro, pues es fácil copiar y pegar soluciones y es valido, pero… cuantas veces te detienes a comprender lo que estas copiando, recuerda cuantas veces te preguntaste si quiera si esa solución es la mejor y porque.

Antes de comenzar con el primer tema, quiero que tengas en cuenta que siempre es bueno que exista comunidad que soporte un lenguaje, pues así es mas fácil encontrar soluciones a problemas similares o comunes, pero es mejor que comprendas dichas soluciones y con bases, determines cual es la mejor para copiar y pegar e incluso para mejorar y eso lo logras comprendiendo que estas haciendo, comprendiendo el lenguaje y su funcionamiento, lo he puesto en otros artículos pero es importante recalcar.

“Comprende, no imites”

¿Como es que lo conociste?

“Dime de dónde me conociste y te dire que tanto me conoces”

Recuerdas en que momento conociste este lenguaje o mejor aun cuando y como fue que escribiste tu primera linea de código, pongamos a trabajar un poco la memoria y recordemos como llegamos a este punto, tal vez desde sus inicios como LiveScript, lo que significa que eres un veterano o tal vez con jQuery que es donde la mayoría de la generación millennial partimos, quizás con la aparición de Angular, React o Vue.

Realmente no importa donde lo conociste siempre y cuando lo conozcas, la cuestión es que en la mayoría de los casos se aprende un framework o librería escrita en Javascript sin saber Javascript, el verdadero problema es que no te das a la tarea de conocer Javascript.

Si bien, dichos frameworks y librerías están hechos para facilitarnos el desarrollo en tiempo y esfuerzo, eso puede ser una arma de dos filos, porque mientras aprendes muy bien un framework o librería, realmente el no comprender como trabaja por debajo la funcionalidad de dicha librería, es como tocar un instrumento sin saber música, cualquiera puede aprender a tocar una guitarra, batería, bajo y hacerlo de manera empírica y la música puede sonar igual a la emitida por alguien que sabe nota y música, “algo que me pasa hoy en día en la actualidad con la música de hecho”, pero el músico que sabe nota y los fundamentos de ella, tiene mucho menos probabilidad de equivocarse en los ritmos o compases que lleva un tipo de música a uno que lo hace de manera empírica, eso lo podemos resumir a “saber lo que estamos haciendo”.

Lo mismo sucede con la programación, puedes programar sin problema ignorando los fundamentos o sin comprender como funciona un lenguaje, pues hay mucha comunidad detrás que nos puede sacar de un apuro y los resultados pueden parecer los mismos, pero no del todo… no no.

Si inspeccionamos un código hecho de manera empírica podemos detectar fallas no funcionales pero que son importantes, como anti patrones, anidaciones innecesarias, entre otros.

Cuantas veces no te has encontrado con errores que solucionaste despues de tanto buscar y la razon de dicho error era relacionado a como funciona cierto lenguaje, errores facil de resolver pero dificiles de debuggear.

Por ejemplo:

En el ejemplo anterior hay un problema derivado del desconocimiento de la coercion, que últimamente hemos visto en otro articulo, ya que al validar si el index de la persona buscada esta dentro de la lista, nos olvidamos o desconocemos que si el index es 0 entonces coerciona a false

A ese tipo de errores nos referimos, los podemos evitar, comprendiendo el lenguaje. Y como ese hay mas.

Conclusión.

Este es el primer paso, saber donde estamos parados realmente para poder decidir si continuamos o no con la serie.

siguiente espisodio >>

--

--