Trabajar como programador hoy en dia es muy complicado, tenemos a nuestra disposición muchísimas herramientas que aprender. Años atras era mas facil.
2010:
- linux
- apache
- mysql
- php
2015:
- mongoDB
- AWS , Azure
- HTML5, CSS , JS
- ExpressJS
- NGINX
- SASS
- AngularJS,
- UX, UI
- NodeJS
- Big, Data, Scrapping, Metricas, MEAN , LAMP
- SEO y SEM
- Algo de hardware
- Mobile technologies
- etc, etc.
Y aun con todas las herramientas a nuestras disposición hay personas que se hacen llamar “Full stack Developer” lo cual considero que no es algo que se deba decir muy a la ligera.
Hace tiempo atrás las empresas contrataban “Full Stack developers” porque la mayoría estaban creando un producto por primera vez, lo que significaba que no sabían que cosas podían surgir en el camino, por lo que era mejor tener ingenieros flexibles que supieran de todo que personas que solo supieran hacer una sola cosa. Pero como vez con los años la cosa a cambiado.
Si miramos la lista de tecnologías y herramientas anterior es realmente complicado manejar todo este conocimiento, por lo que tienes que tener mucho cuidado cuando dices que eres un “Full stack Developer” por que puede significar 2 cosas:
¿ Que tienes conocimiento sobre todos estos temas ? ó ¿ Eres un experto en todos estos temas ?
Cómo ves la lista es enorme y si estás aspirando a puesto puedes meter la pata, hay que tener mucho cuidado con lo que en realidad quieres dar en entender. Para poder describir mejor que tipo de desarrollador eres tienes que identificar primero tus hablidades.
¿ Eres mejor backend que frontend ?
Prueba este juego para darte una idea: http://www.dungeonsanddevelopers.com/
Por ejemplo puedes ser alguien experto en backend pero tienes los conocimientos para trabajar en algo de frontend, lo que te da la posibilidad de trabajar con alguien que sea experto en frontend pero que tenga poco conocimientos en backend. Estas dos personas pueden complementarse y formar un gran equipo.
Las mayoria de las empresas estan deacuerdo que la mas importante habilidad que un “full stack developer” debería tener es: “la habilidad para aprender” , en lugar de “yo se hacer todo”
Tener la habilidad de aprender y mantenerte actualizado con los constantes cambios en las tecnologías es lo más importantes para las empresas. Tener un personal que pueda adaptarse a los cambios rápidos de tecnología es lo más valioso hoy en dia. Basta de decir:
- Yo uso linux
- Yo uso mac
- Yo uso sublime text
- Odio Microsoft
- NodeJs es lo debes aprender
- Phyton es mejor que php
Olvídate de eso, tienes que ser capaz de adoptar nuevas tecnologías con más facilidad que nunca, las tecnologías cambian y tu necesitas cambiar con ellas.
“Full stack developer” significa tener la mente abierta hacia nuevas tecnologías, ensuciarte las manos con cada una de ellas , entender como una aplicacion web puede ser hecha desde el concepto hasta el producto final terminado.
Al final lo que más importa es ser capaz de trabajar con otras personas, hay muchos “full stack developer” por ahí diciendo que no necesitan trabajar con otras personas que ellos pueden hacerlo solos. El asunto es que nadie puede ser master en todo y lo que se espera de un “full stack developer” es que sea una especie de conector entre equipos.
Por ejemplo puedes saber mucho de backend pero poco de frontend, entonces parte de tu trabajo es encaminar el proyecto de tal manera que el experto en frontend lo reciba sin ningun problema, el sabra como continuar el trabajo y aportar sus habilidades, de esta manera lo que se buscan dentro de las empresa es que los programadores sepan hacer de todo, que se sean multifuncionales.
Y ahí es la parte donde los “full stack developer” son realmente muy valiosos, Trabajando en equipos que manejan diferentes tecnologías entre si.
"Ninguna tecnología hará brillar o decaer tu carrera, mejor enfocate en ser un maestro en adaptarse y aprender cosas nuevas" @slicknet
links:
http://andyshora.com/full-stack-developers.html
http://www.laurencegellert.com/2012/08/what-is-a-full-stack-developer/