¿Cómo destacarse como desarrollador junior para obtener su primer trabajo de desarrollador?

No se puede negar que las expectativas de un desarrollador son mucho más altas hoy en día de lo que era hace 10 años. Hay muchos idiomas diferentes, bases de datos diferentes, marcos diferentes, integración o entrega continua, metodologías ágiles, etc. Entonces, si desea convertirse en desarrollador, ¿cómo se destaca de la multitud para obtener su primer rol de Desarrollador Junior en una compañía increíble?

En esta publicación de blog, voy a hablar sobre mis experiencias en lo que me hizo destacar entre la multitud para recibir 3 ofertas de trabajo, 1 semana después de graduarme de la Academia Makers. Si te estás enseñando a codificar y no quieres pasar por un bootcamp (porque seamos sinceros, puede ser bastante costoso), creo que esta publicación puede ser muy útil para ti, ya que a veces no sabes qué se espera de usted en su primer rol, y como resultado no sabe por dónde comenzar. Antes de comenzar, revelación completa, me temo que algunos de los consejos aquí (como solo una pequeña sección) se aplican al desarrollo de backend, pero creo que todavía encontrará útil esta publicación de blog incluso si está interesado en el desarrollo frontend.

¡Bien, entonces comencemos!

Entonces, ¿hay una lista de lo que debería saber?
Enumeraré todas las cosas aquí con las que creo que debería sentirse cómodo antes de solicitar su primer papel, y si ya las ha logrado, no se moleste en leer esta publicación de blog y envíe su CV a la compañía para la que desea trabajar: ¡como ahora mismo!

Voy a entrar en más detalles para cada uno de los elementos en esta lista más adelante. Asi que aqui esta:
- Control de versiones, específicamente usando Github (o plataformas similares) de manera efectiva.
- Tener confianza en la creación de una aplicación al menos en un idioma (como Ruby o Javascript): no intentes aprender todo, aprende una cosa y aprende bien.
- Crear aplicaciones utilizando TDD (desarrollo basado en pruebas).
- Abraza los marcos.
- Comprender metodologías ágiles.
- Saber buscar en el mar de información en Internet y cuándo pedir ayuda.
- No tener plena confianza en cada biblioteca o base de código que vea.
- CONSTRUIR cosas, como, TODO EL TIEMPO. Hay mucho que puedes aprender de cursos en línea y libros. Experimenta para entender.

1- Control de versiones

La idea aquí es básicamente permitir que usted y su equipo puedan trabajar en su base de código sin alterar el estado actual de su aplicación. En términos básicos, tiene un maestro que probablemente esté en producción, y luego puede ramificarse del maestro y aplicar sus cambios, y luego fusionarlo nuevamente después de que todos estén contentos con su código. Creo que la guía GitHub es probablemente un buen lugar para comenzar si nunca antes usó el control de versiones: https://guides.github.com/ y también el curso git codecademy: https://www.codecademy.com/learn/learn- git

Si está familiarizado con GitHub, eche un vistazo a cómo usarlo (o una plataforma similar) de la manera más eficiente posible, como cómo cambiar sus mensajes de confirmación cuando lo desee, o eliminar confirmaciones o si nota un error eso no estaba allí antes de cómo hacer una investigación sobre qué commit potencialmente rompió su código, y así sucesivamente.

2- Tener confianza en la creación de una aplicación al menos en un idioma
Cuando comencé mi transición a un desarrollador, quería aprender todo. Quería dominar Ruby, Javascript, Elixir, React, Node y estaba leyendo libros y mirando cursos en línea como una persona loca. Y llegó un punto en el que sabía un poco de todo, pero no confiaba en crear una aplicación desde cero en ninguno de los marcos o idiomas que aprendí. Así que decidí hacer una cosa y hacerlo bien. Elegí dominar a Ruby y entenderlo bien. Leí libros como Diseño orientado a objetos prácticos en Ruby de Sandi Metz, Rubyist bien fundamentado de David A. Black y Rubí elocuente (Addison-Wesley Professional Ruby Series). También me inscribí en un gran curso en línea sobre Ruby on Rails (un marco para Ruby) y Ruby by Thoughtbot, que mejoró mi conocimiento sobre Ruby y el desarrollo de aplicaciones Rails usando TDD. Solo después de un año, ahora voy a descubrir otros lenguajes como Python. Así que supongo que mi sugerencia sería comenzar con un lenguaje que sea indulgente y que también tenga una buena comunidad de apoyo, como Ruby. Con Ruby puedes entender cómo funcionan los lenguajes orientados a objetos, y luego quizás puedas pasar a un lenguaje un poco más complicado como JavaScript. Y, obviamente, si desea comenzar con otro idioma, definitivamente hágalo; su punto principal de esta sección debe ser aprender una cosa y aprenderla bien.

3- Construye aplicaciones usando TDD
Si has estado leyendo mis publicaciones de blog anteriores, probablemente notes que estoy un poco obsesionado con TDD. Entonces, ¿qué es TDD y qué lo hace mágico, y por qué tienes que saber esto para conseguir un trabajo?

TDD es un desarrollo basado en pruebas y, como su nombre lo indica, usted escribe una prueba para el código que desea tener, luego ve que su prueba falla, escribe el código y ve su pase de prueba. Hay un par de razones por las cuales esto es muy útil cuando recién estás comenzando como desarrollador:

- Ayuda con el diseño de su código. A veces, cuando comienza a escribir pruebas de cómo planeó inicialmente su aplicación, puede darse cuenta de que podría no ser la mejor manera de cambiar su diseño.
- Ayuda a escribir código limpio y refactorizable. Su código es comprobable desde el principio, y cuando prueba secciones poco a poco, construye su aplicación en fragmentos manejables en lugar de un fragmento masivo de una sola vez. También puede refactorizar su código sin preocuparse por romper su aplicación.

Si está utilizando Ruby, el curso de Thoughbot que mencioné en la sección anterior debería ayudarlo a comenzar con TDD :) De lo contrario, si busca cómo TDD en el idioma que le interesa, estoy seguro de que encontrará muchos recursos.

Esto es importante para abrir el camino para su primer trabajo porque TDD es una práctica ampliamente aceptada en la comunidad tecnológica. No es algo fácil de dominar, por lo que comenzará temprano y comprenderá por qué es bueno y cómo le está ayudando a desarrollar su aplicación será una ventaja para usted.

4- Abraza los marcos
Cuando inicialmente comienza a crear aplicaciones en un idioma que está aprendiendo, puede ser bastante difícil descubrir cómo conectar los puntos para tener una aplicación funcional. ¡Y llega el marco!

Los marcos como Ruby on Rails (Ruby), Django (Python), Meteor (Javascript) ayudan a los desarrolladores a construir sus aplicaciones más rápido, ya que no tienen que lidiar con la configuración y las configuraciones. ¿Qué significa esto para un junior? Significa que no tiene que pasar años intentando descubrir cómo configurar su servidor, sus rutas o su base de datos. ¡Todos estos marcos lo ayudarán con eso y lo pondrán en marcha de inmediato, para que pueda concentrarse en construir cosas! Una vez que cree suficientes aplicaciones, comenzará a comprender por qué los marcos están configurados de la manera en que están y posiblemente continuará construyendo sus aplicaciones sin la ayuda de marcos :)

5- Comprender metodologías ágiles
¿De qué ágil sigo hablando? El significado del diccionario es poder hacer algo rápida y claramente. Entonces, ¿qué es el desarrollo de software ágil? Probablemente lo hayas adivinado; desarrollando aplicaciones rápidamente con comentarios claros. Antes de que se introdujera el desarrollo ágil, las empresas solían ser una "cascada", que es construir una aplicación hasta que sea perfecta, lanzarla al mundo y potencialmente darse cuenta de que nadie quiere usarla. Agile ayuda a superar este problema y desarrolla su teoría sobre MVP (producto mínimo viable). Construye una aplicación lo más simple posible, la lanza al mundo, obtiene comentarios y luego la mejora o la cambia. Por lo tanto, no gasta todos sus recursos y tiempo en una aplicación que las personas no necesitan o desean.

por http://alphatechglobal.com/agile_development.html

Se han desarrollado varias metodologías ágiles para que los equipos de tecnología ayuden con el desarrollo ágil de software. No voy a entrar en detalles sobre esto, pero aquí hay una buena lectura sobre algunas metodologías y qué es Agile: http://agilemethodology.org/

6- Saber buscar en internet y cuándo pedir ayuda
Cuando comencé a programar, quería resolver todos los desafíos a los que me enfrentaba. No hay necesidad de decir que esto no es genial. Tienes visión de túnel y desmotivado. Cuando se enfrente a un problema que no puede resolver, busque soluciones en Internet, intente resolverlo usted mismo durante una o dos horas como máximo. Y luego pregúntele a alguien, si es un amigo, o a través de una publicación en algún lugar como Stack Overflow, obtenga ayuda. Es muy probable que te falte algo pequeño como un punto y coma. Por supuesto, puede ser más complicado, pero independientemente no tengas miedo de pedir ayuda. Todos pasan por los mismos desafíos, y a la comunidad tecnológica le encanta ayudar.

Mencioné saber cómo buscar en Internet, ¿cómo es esto relevante? Bueno, es algo importante. Si no hace las preguntas correctas, no obtendrá las respuestas correctas. Saber qué preguntar generalmente viene con la creación de aplicaciones. Cuanto más construya y más comprenda, mejor será en la búsqueda de soluciones en Internet. Esto es bastante importante para su posible empleador. No quieren contratar a alguien a quien necesiten para cuidar a los bebés todo el tiempo, y responder con una cuchara. Por supuesto, lo ayudarán cuando esté atrapado, pero debe mostrar iniciativa y explicar lo que intentó antes y lo que buscó para facilitar el proceso. Tenga confianza en la búsqueda de soluciones.

7- No tener plena confianza en cada biblioteca o base de código que ves
Con todo lo que acaba de comenzar a aprender, generalmente confía en todos los recursos que utiliza. Bueno, no deberías. Todos somos humanos y nadie es perfecto. Me he encontrado con muchas bibliotecas o aplicaciones que no fueron escritas tan bien como podrían ser, y pronto me di cuenta de que es mejor leer, investigar y experimentar más para encontrar lo que es bueno y limpiar el código. ¿Porque es esto importante? No desea confiar en una compañía de terceros que tiene 500 dependencias, o está escrita en 100 líneas cuando puede hacer lo mismo de manera más efectiva en 10. Piense en cómo este código puede afectar su aplicación: podría ralentizarlo, podría romperlo, podría no ser seguro. No confíes en cada fragmento de código o biblioteca que veas por ahí. Obtener su código en Internet o crear una biblioteca no cuesta nada.

8- Construye cosas, todo el tiempo
Como mencioné, hay mucho que puedes aprender leyendo libros, y asistiendo a cursos en línea o incluso asistiendo a talleres. Necesitas ensuciarte las manos. No tengas miedo de crear aplicaciones que nadie usará. Úselos para aprender cómo funcionan las cosas. Incluso si no termina su solicitud, piense en las cosas que ha aprendido que no sabía antes. Cada pequeño conocimiento que obtienes al experimentar es una ganancia masiva para tu primer rol de desarrollador.

Una ultima nota
Quería terminar esta publicación de blog con algunos buenos consejos de mi mentor increíble, Stephen Best:

"No se preocupe por la forma en que las personas experimentadas crearían una aplicación. Concéntrese en cómo lo construiría y luego obtenga comentarios. Consume menos y produce más ".

¡Gracias por tomarse el tiempo de leer! Si crees que fue útil para ti, comparte esta publicación de blog con personas que podrían beneficiarse :)