5 habilidades útiles de aprender si quieres ser Front-End (además de HTML/CSS/JS)
Vamos a suponer que has estudiado mucho, y ahora eres todo un gurú de HTML, CSS y Javascript, al punto tener la confianza necesaria para traducir cualquier wireframe y mock-up prototipo a código de producción.
¿Ahora qué? Bueno si te sientes estancado, aquí tienes 5 temas que puedes ir estudiando, y aunque no son relacionados directamente al trabajo de front-end para web, la experiencia me dice que dominarles te sacarán de un apuro en más de una vez.
1.- Terminal Linux/Unix
Saber manejar la terminal es tan elemental para un programador, como para un chef manejar un horno. En un principio puede intimidarte, pero con el paso del tiempo te acostumbrarás y no imaginarás tu flujo de trabajo sin teclear comandos.
Si no sabes por donde iniciar, puedes iniciar con cosas sencillas, buscando como manejar: cat,cd,chmod,chown,clear,cp,curl,df,du,ln,ls,man,mkdir,mv,pwd,rm,ssh,su,sudo,tar,touch,who y de ahí a aprender a manejar algún editor en terminal como emacs, vim o nano.
Si usas Windows no te sientas discriminado, existen programas de terceros como Cygwin que emula una terminal «unix-like»; además Microsoft está trabajando en crear un shell Bash que corra en paralelo con windows. Otra alternativa es instalar VirtualBox, usar una distribución linuxo o BSD y desde ahí aprender.
2.- Git
No importa si trabajas solo o en equipo, un sistema de control de versiones ya no es un lujo en estos tiempos, si no un requerimiento básico. Una vez que pierdas el miedo a usar la terminal, git no te será muy difícil de manejar, y créeme, usar git es algo que tu yo del futuro y compañeros del trabajo presente van a agradecer.
3.- Deploy básico
Si vas a apostar por un proyecto grande ya en producción, lo mejor es que busques a alguien que sepa de administración de servidores. Pero si lo que buscas es algo personal y básico (como un server de pruebas), sería bueno que supieras manejar tu propio server.
Aprender sobre SSH, firewalls, configuración de puertos, administración de usuarios, importación/creación de respaldos, instalación de software desde repositorios o compilación es algo que no viene mal.
4.- Conceptos de DNS y HTTP
DNS y HTTP son parte de las tecnologías más básicas con las que está cimentada la web. Una se encarga de decirnos a que servidor acceder, mientras que la otra es el protocolo por el cual se nos entregan los archivos. Si bien a nivel técnico pueden llegar a ser conceptos muy complejos, no sobra conocer lo básico.
Por ejemplo en el caso de HTTP sería bueno que conocieras que es REST. Además de que implicaciones tiene HTTPS y más recientemente HTTP/2.
En cuanto a DNS, es importante que aprendas como dirigir un dominio a una ip, o a otro dominio. Esto lo puedes hacer buscando las diferencias entre si un dominio es A, AAAA, CNAME, TXT, así como configuración de registros MX para que puedas usar tu propio dominio al estilo micorreo@midominio.com. Si puedes aprender cosas más avanzadas como configuración de BIND y búsqueda DNS inversa pues que mejor.
5.- Regex
Regex en un principio parece feo, pero una vez que le encuentras sabor no le puedes dejar. No solo sirve para javascript, sino para prácticamente cualquier lenguaje inventado por la humanidad. Además te puede sacar de varios apuros, dado que editores como Sublime Text, Atom y otros cientos de IDEs, te permiten hacer búsquedas/remplazo en regex.
Por supuesto las cosas no se limitan a lo citado aquí, pero espero sirva de guía para quienes quieren ir aprendiendo habilidades que les serán muy útiles al corto plazo. Si bien lo anterior va va muy del lado técnico (a lo cual le podríamos agregar cosas como «Aprender el {framework de moda»), también hay otros conceptos más abstractos como principios de diseño gráfico, UX, user testing y marketing, los cuales siempre pueden ser útiles.