¿Puede un ingeniero de TI trabajar como desarrollador de software?

SIGA ESTOS 11 PASOS PARA CONVERTIRSE EN INGENIERO DE SOFTWARE DE UN INGENIERO DE TI

PASO # 1: SEA CLARO CON CRISTAL SOBRE SU OBJETIVO FINAL (Y COMPROMÉTASE CON ELLO)

Antes de comenzar, comprenda que los siguientes pasos son específicos para aquellos que buscan un trabajo de tiempo completo (abreviado como FTJ) como ingeniero de software. No son para la persona que es:

  • Practicando el código por primera vez
  • No estoy seguro si la codificación es adecuada para ellos
  • Deseando seguir diseño web, UX, UI o cualquier otro campo relacionado con el diseño
  • Queriendo trabajar a tiempo completo
  • Con la esperanza de comenzar su propio negocio

La transición a una nueva carrera no es fácil. Pero cuando tienes un destino final en mente, es de gran ayuda cuando chocas contra el camino. Un objetivo claro como el cristal se parece a esto:

  • “Quiero trabajar como desarrollador de software en una empresa tecnológica establecida”.
  • “Quiero trabajar en una nueva empresa, como ingeniero de software, en la industria que adoro”.
  • “Quiero construir cosas en un equipo y que me paguen bien por ello”.

No importa los detalles de su sueño, si desea realizar los 11 pasos, DEBE comprometerse con el objetivo final de convertirse en un ingeniero de software a tiempo completo.

PASO # 2: ELIGE UN IDIOMA PARA APRENDER

Al comenzar, muchas personas se quedan atrapadas decidiendo qué idioma (y marco) deben aprender. ¿Ruby on Rails? Python y Django? ¿SIGNIFICA apilar? Tantas opciones, tan poco tiempo.

Aquí está la cosa: una vez que conoce bien un idioma / pila en particular, no es difícil hacer la transición a uno nuevo. Eso significa que cuando te conviertes en un ingeniero de software, en lo que quieres concentrarte es en comprender los fundamentos de la programación. En esencia, aprender a aprender.

Una vez que tenga una base sólida, puede pasar fácilmente a nuevos lenguajes, marcos y tecnologías. Como dice el cofundador de Flatiron School, Avi Flombaum: “El aspecto más importante es que estás aprendiendo a pensar como un desarrollador”.

Dicho todo esto, debe centrarse en un idioma / marco para comenzar.

Con tantos idiomas disponibles, puede ser difícil saber cuál elegir. Recomiendo tomarse un tiempo para aprender sobre los diferentes idiomas. Esta guía para elegir un lenguaje de programación es un excelente lugar para comenzar.

Para muchos, Ruby es un excelente camino a seguir.

Ruby es legible y eficiente, por lo que es mucho más fácil sentirse cómodo que en otros idiomas. También es de código abierto, por lo que tendrá acceso a muchas herramientas y a una comunidad de otros desarrolladores, todo de forma gratuita. Y quizás lo más importante, es flexible: el lenguaje lo utilizan muchas compañías (Airbnb, GitHub, Hulu, Kickstarter, etc.) y le brinda una base sólida para ramificarse a otros idiomas más adelante.

La ex alumna de Learn-Verified Sarah Lichter dice: “Como estaba aprendiendo por mi cuenta y tomando estas decisiones, había leído mucho sobre Ruby y sobre que era amigable, fácil de aprender como primer idioma y tenía una gran comunidad alrededor así que aprender Ruby parecía una gran opción “.

PASO # 3: PRACTICA… Y PRACTICA MÁS

Si bien la pila que aprendes no importa mucho, lo que importa es aprender haciendo. Esto significa dedicar algo de tiempo real a perfeccionar su nuevo oficio. Debe reservar una cantidad significativa de tiempo todos los días, cada semana, para aprender.

No puede convertirse en desarrollador de software después de 10 horas de práctica. Simplemente no es posible.

Algunas personas dicen que se necesitan 10.000 horas para convertirse en un experto. Ahora, no necesita 10,000 horas de práctica para obtener su primer trabajo de desarrollador de software. Pero debes dedicar un tiempo serio.

Para dar un ejemplo, el currículo de Aprendizaje de Desarrollo Web Full Stack de la Escuela Flatiron es de aproximadamente 600-800 horas en total. A la mayoría de los estudiantes les lleva entre cuatro y diez meses lograrlo, dependiendo de cuántas horas dediquen al programa cada semana.

PASO # 4: UTILICE HERRAMIENTAS QUE LOS DESARROLLADORES REAL UTILIZAN

Si bien los recursos gratuitos como Codecademy son geniales, no estás en un entorno del mundo real cuando los usas. En cambio, está escribiendo directamente en el navegador web y obteniendo una puntuación basada en una prueba u otro tipo de actividad interactiva.

En el mundo real, no vas a trabajar así. Entonces, lo que quiere hacer desde el principio es construir cómo construyen los ingenieros reales. Desea utilizar las herramientas que utilizan. En el futuro, esto hará que sea mucho más fácil hacer la transición a un rol de tiempo completo y unirse a un equipo.

Pero es difícil construir cómo se desarrollan los desarrolladores reales, y usar las herramientas que usan los desarrolladores reales, cuando recién estás comenzando. (Si eres como yo, es difícil saber por dónde empezar).

La buena noticia es que existen programas que le enseñan cómo usar estas herramientas, como el programa en línea de Flatiron School, Learn-Verified.

El plan de estudios de Learn-Verified se basa en las herramientas y procesos que los ingenieros reales usan todos los días, como:

  • Git y GitHub
  • Trabajando en su terminal
  • Desarrollo basado en pruebas
  • Proyectos grupales / colaboración

Esto le permitirá ajustarse mucho más rápido una vez que esté en un trabajo real, en lugar de tener que dominar otra curva de aprendizaje empinada.

PASO # 5: LEA EL CÓDIGO DE OTRAS PERSONAS

Otro aspecto importante de convertirse en un ingeniero de software es aprender a leer el código de otras personas. Puede hacerlo navegando por los repositorios de GitHub y mirando la documentación.

A veces, la documentación puede estar equivocada … pero el código fuente nunca miente. Al aprender a leer ese código, podrá comprender lo que está sucediendo y cómo funciona un programa. (Esta habilidad también es importante cuando se trata de depurar, porque podrás identificar qué parte del código no debería estar allí).

Esta es a menudo una habilidad que se pasa por alto, pero realmente puede beneficiarlo ver cómo los desarrolladores experimentados hacen las cosas. No solo hagas un vistazo superficial del código, tampoco. Profundice, aprenda los entresijos, mapee la funcionalidad y, finalmente, vuelva a crearla si puede. De esta manera, podrá realizar ingeniería inversa de un programa existente, lo que le ayudará a comprender mucho mejor cómo crear uno propio.

PASO # 6: ENCUENTRE UNA COMUNIDAD

Encontrar una comunidad para aprender puede hacer o deshacer su éxito como ingeniero de software, especialmente cuando recién está comenzando. Cuando está rodeado de una comunidad de personas de ideas afines, tiene un sistema de apoyo automático: un grupo de personas a las que puede llamar cuando se atasca o pierde la motivación. (¡Ambos pueden pasarle a lo mejor de nosotros!)

Existen grupos en persona, pero puede ser difícil coordinarlos y no son accesibles en todas las áreas. Pero cualquiera puede unirse a una comunidad en línea, y son igual de útiles.

Mientras aprende con Learn-Verified, obtiene acceso a un grupo Slack. Este grupo permite a los estudiantes unirse y trabajar a través de lecciones o temas en un video chat y un canal privado de Slack. Los estudiantes también pueden configurar o unirse a grupos de estudio en línea adicionales con sus compañeros. Todos los niveles de experiencia pueden participar; de hecho, más del 40% de las preguntas formuladas son respondidas por otro estudiante. Sin embargo, ¡también hay desarrolladores experimentados en el grupo para ayudarte!

PASO # 7: CONSTRUYE PROYECTOS

No solo lea tutoriales y mire videos, ponga en práctica sus habilidades. Resuelva problemas en el camino, tal como lo hacen los desarrolladores de software cotidianos. Cuando hace esto, no solo promueve su aprendizaje, sino que también muestra a los empleadores potenciales que puede hackearlo. (Porque el objetivo final es conseguir un trabajo, ¿verdad?)

Puede crear proyectos en solitario o con un grupo.

Al final de Learn-Verified, tendrás muchos proyectos para presumir. Creará 3-5 aplicaciones en todo el programa, seguido de un proyecto final. Y no solo son proyectos aburridos de “completar los espacios en blanco”: usted tiene la opción de construir lo que le interesa.

Además, la forma en que se configura el programa Learn-Verified, usted hace todo en GitHub. Esto actúa como una gran base y una forma de mostrar lo que puede hacer a posibles empleadores.

PASO # 8: CULTIVA TU RED PROFESIONAL

A medida que aprende a codificar, construir proyectos, etc., debe cultivar su red profesional de manera lenta pero segura. Porque cuando se trata de encontrar un gran trabajo, se necesita más que solo solicitar trabajos en línea (que, en estos días, puede ser una pérdida de tiempo).

En cambio, quieres construir una red fuerte. Para empezar, confíe en sus conexiones existentes. Según Jobvite, el 40% de las nuevas contrataciones provienen de referencias de empleados, por lo que es la forma más común.

Más allá de aprovechar su red de primer grado, también puede obtener introducciones a sus conexiones de segundo grado (amigos de amigos). El objetivo es organizar reuniones informales de café con personas conectadas a empresas para las que le gustaría trabajar, lo que crea conexiones y, a veces, conduce a entrevistas reales.

Algunas otras formas de hacer nuevas conexiones sin tener un amigo en común:

  • Ir a reuniones
  • Mantener un blog (que le dará exposición)
  • Voluntario
  • Habla en eventos

Participe y contribuya a la comunidad, y casi inevitablemente, se le presentarán oportunidades.

Nuevamente, el plan de estudios de Verificación de Aprendizaje cubre todo esto, desde cómo conectarse en red, enviar correos electrónicos fríos, mantener un blog de codificación y más.

Además, tienen una garantía de trabajo que los compromete a ayudarlo a USTED a conseguir un trabajo. Si no recibe una oferta de trabajo dentro de los 6 meses posteriores a la certificación, le devolverán su dinero. Básicamente, ponen su dinero donde está su boca.

PASO # 9: DOMINA TUS ESENCIALES PREVIAS A LA ENTREVISTA

Después de comenzar a establecer conexiones con compañeros e influyentes en el campo, será hora de prepararse para postularse a los trabajos. (Sin embargo, si establece una conexión sólida, ¡puede saltear este paso por completo!)

Pero antes de enviar solicitudes o solicitar referencias directas, deberá dominar tres cosas: currículums, cartas de presentación y su presencia en línea.

Incluso en un mundo modernizado, los currículums son necesarios. Los gerentes de contratación aún los miran para obtener una instantánea de sus habilidades y experiencia. Del mismo modo, se necesitan cartas de presentación al solicitar trabajos en línea; son tu oportunidad de llamar la atención de alguien y causar una buena impresión.

Esos son conceptos básicos en todas las industrias. Pero más allá de los currículums y las cartas de presentación, también debe considerar su presencia en línea. Esto es increíblemente importante para cualquier persona en la industria de la tecnología, y es algo que debería construir y mantener con el tiempo. Su huella digital es importante porque es lo que verán los reclutadores y los gerentes de contratación cuando busquen su nombre en Google antes de invitarlo a una entrevista.

Su presencia en línea, como desarrollador de software, se compone de algunas cosas:

  1. Perfil de Linkedin
  2. GitHub
  3. Gorjeo
  4. Sitio web personal (o sitio de cartera)
  5. Blogging (que puede ser una adición a su sitio web personal)

Los empleadores verificarán esto y formarán impresiones suyas en función de lo que vean. ¡Así que asegúrese de que esas impresiones sean buenas!

PASO # 10: ACE SU ENTREVISTA DE TRABAJO

Finalmente, está la entrevista en sí. La mayoría de las empresas comienzan con una entrevista de selección, generalmente realizada en línea, en casa. Después de eso viene una entrevista telefónica. Si logras superar esos dos, conseguirás la entrevista en el sitio.

Además de las preguntas estándar de “mayor fortaleza / debilidad, etc., etc.”, deberá estar preparado para las preguntas técnicas y de comportamiento. Es posible que se le pida que cree un proyecto o trabaje a través de un desafío de código, o describa cómo ha manejado situaciones difíciles en el pasado.

Un recurso útil para consultar es el libro Cracking the Coding Interview .

Afortunadamente, cuando use Learn-Verified, no tendrá que prepararse por sí solo: tendrá acceso a su plan de estudios integral de carreras diseñado para asegurarse de que esté listo para la entrevista. (De hecho, ¡ayudé a escribir algo de eso!)

Todos los estudiantes de Learn-Verified reciben una entrevista simulada de RR.HH. / comportamiento con comentarios para ayudar a refinar sus habilidades blandas y dar a conocer ahora a los profesionales de RR. Además, los estudiantes reciben una entrevista técnica simulada con un desarrollador.

Finalmente, el equipo del programa Learn-Verified de Flatiron School se compromete a conseguirle un trabajo. (¡Lo garantizan!) Pero recuerda, obtienes lo que pones en él.

PASO # 11: ACEPTA LA OFERTA DE TRABAJO

¡Felicidades, lo hiciste!

Después de completar una serie de entrevistas y demostrar sus nuevas habilidades, es solo cuestión de tiempo antes de recibir una oferta. Y sí, puede ser de nivel de entrada al principio, ¡pero tienes que comenzar en alguna parte! A medida que continúe aprendiendo y creciendo como desarrollador, continuará subiendo la escalera profesional a posiciones más grandes y mejores.

TODOS ESTO SONENAN COMO MUCHO TRABAJO, ¿VERDAD?

Respuesta corta: sí. No es fácil, y puedo garantizar que te sentirás frustrado a veces. Pero es absolutamente factible. Y probablemente incluso puedas lograrlo todo por tu cuenta. Muchas personas hacen una transición exitosa al desarrollo de software utilizando solo el trabajo duro.

Si ese ingeniero de TI aprende a desarrollar software, entonces sí.

Una buena ruta es DevOos y cosas como crear scripts de Terraform y automatización de pruebas.

DevOos comparte algunos conocimientos comunes con redes y operaciones, y comienza a usar software para automatizar eso.

Cosas como AWS y las nubes de Azure están muy de moda en estos días en DevOps, y ese es un buen punto de partida del ingeniero de TI

Una vez que aprende la programación (ver Teach Yourself Computer Science) y algunos lenguajes de programación.

Ciertamente es posible. Es un camino bastante estándar para comenzar. Es algo así como la industria de la música. Te concentras en conseguir un éxito y dar a conocer tu nombre de todas formas. Luego, cuando esté establecido, puede concentrarse en un determinado género.

Bueno, supongo que si tu conjunto de habilidades es lo suficientemente diverso, entiendes el Código, entonces sí.

No dibujo líneas duras, en términos de profesión, lo veo como que una persona, si comprende algo, puede funcionar como dicho papel.

La mejor de las suertes.

More Interesting

¿Cómo puedo gestionar mejor un desarrollador de software remoto?

¿Cómo es el mercado laboral para un administrador de sistemas en Canadá?

¿Por qué los servicios de desarrollo de software offshore se están volviendo populares?

En India, ¿qué tan difícil es para alguien trabajar como desarrollador de software si los antecedentes familiares de generaciones han estado en el negocio?

¿Cuáles son las características más importantes que un desarrollador de software debe tener en cuenta al diseñar un sistema?

¿En qué equipo de Amazon debería elegir trabajar como desarrollador de software?

Cómo conseguir trabajo en Google New York como desarrollador de software o para aprendizaje automático justo después de la universidad

¿Cómo coordinan sus esfuerzos los desarrolladores de software con diferentes niveles de experiencia?

¿Existe algún sistema de calificación para desarrolladores de software?

¿Es una señal de alerta si la publicación de trabajos de desarrollador de software enumera uno de los requisitos como "capaz de hacer malabarismos con múltiples tareas"?

Cómo definir una obra maestra en el desarrollo de software

¿Es el semestre de primavera demasiado tarde para conseguir un trabajo como desarrollador de software de nivel básico?

¿Cuáles son los detalles técnicos detrás de las aplicaciones o extensiones que bloquean los anuncios?

¿Qué habilidad es más importante cuando se busca un puesto de desarrollador de software de nivel de entrada? Pruebas de software o conceptos básicos de Oracle

¿Qué es lo que más tienes al desarrollar software?