¿Cómo te convertiste en ingeniero de software, cuáles fueron los pasos que tomaste para convertirte en ingeniero?

No todos pueden convertirse en ingenieros de Google de $ 500K, pero creo que muchas personas pueden convertirse en ingenieros promedio y ganar mucho dinero.

Estos son los pasos que me funcionaron :

  1. Obtener un título en informática. De hecho, conseguí un trabajo antes del título, pero el título me ayuda mucho. Mi título, académicamente hablando, fue en gran medida una pérdida de tiempo. Aprendí mucho más por mi cuenta. Mi programa de clases nocturnas no me enseñó mucho. Pero se ve bien en un currículum. Algunas compañías lo consideran un requisito previo.
  2. Aprende un lenguaje orientado a objetos muy, muy bien. Elegiría Java porque es versátil y muy popular. Use una combinación de libros, tutoriales, retoques, etc. No confíe en un solo método. Una vez que aprenda Java realmente bien, no solo tendrá una gran habilidad para el trabajo real, sino que aprender cualquier otro idioma es solo una cuestión de usar una sintaxis diferente en su mayor parte (la mayoría de los conceptos fundamentales son los mismos en todos los idiomas OOP )
  3. Aprenda sobre la escalabilidad. Este libro [1] me ayudó mucho. Está anticuado y algunos de sus capítulos (como el correo electrónico) se pueden omitir, pero funcionó para mí. Muchos de los conceptos que aprende en él ayudan mucho durante las entrevistas cuando le hacen preguntas sobre el diseño del sistema. Estos principios básicos son básicamente los mismos en Amazon, Google, Facebook, etc.
  4. Aprende algoritmos. No me pareció necesario convertirme en un ninja del código o unirme a sitios de programación competitivos, pero tener un conocimiento sólido del tema te ayudará mucho a conseguir trabajo. Creo que Cracking The Coding Interview [2] es la mejor guía sobre el tema. Nada loco como algunos algoritmos complicados. Solo listas enlazadas, clasificación, árboles, mapas hash, pilas y colas. Simplemente sumérjase en esos conceptos básicos y todas las variadas preguntas de rompecabezas / truco que se pueden resolver con ellos.
  5. Aprende JavaScript. Este es un lenguaje increíble porque puedes abrir Google Chrome e ir a la consola y jugar con él en cualquier momento y experimentar con cualquier concepto. Concéntrese en aprender las llamadas de Ajax a un programa Java back-end. Además, una vez que lo sepa, está en camino de convertirse en un “desarrollador de pila completa” como yo.
  6. Crea un currículum de una página y un buen perfil de LinkedIn (recibo toneladas de solicitudes de reclutador allí). No pierdas tu tiempo en el diseño del currículum. Simplemente use esta plantilla [3] en MS Word y cree un PDF a partir de ella. Es lo que hice.
  7. Consigue una Mac vieja y barata. Olvídate de Windows por ahora. Obtenga una Mac, inicie la terminal, descargue Git y aprenda algunos comandos básicos. No puede ser un programador que se respete a sí mismo sin escribir vim de vez en cuando. Lo uso un poco para sentirme bien. Probé Linux pero es demasiado complicado.
  8. Aprende Regex. No conoces Regex hasta que puedas jugar bien este juego [4]. Esto aparece en el trabajo de vez en cuando (Regex, no el juego).

Honestamente, no tengo idea de cómo sucedió todo, pero he tenido varios trabajos excelentes y algunas entrevistas en las principales empresas de tecnología (incluso trabajo en una). Los dos últimos puntos (7 y 8) son más para obtener un crédito extra de lo absolutamente necesario. Pero de nuevo, así es como lo hice.

Notas al pie

[1] Creación de sitios web escalables: creación, escalado y optimización de la próxima generación de aplicaciones web: Cal Henderson: 0636920102359: Amazon.com: Libros

[2] Descifrando la entrevista de codificación: 189 Preguntas y soluciones de programación: Gayle Laakmann McDowell: 9780984782857: Amazon.com: Libros

[3] Así es como debería verse un buen currículum

[4] Crucigrama Regex

  • Nací en Argentina, hace mucho, mucho tiempo, cuando la superficie de la Tierra todavía era cálida.
  • Quería ser ingeniero civil, desde que tenía 5 años. (Y astronauta, vendedor de hardware y héroe de guerra).
  • En mi último año en la escuela secundaria (1981), tuve un curso de introducción a las computadoras y la programación. Fue un curso para gerentes, no tan profundo, pero muy informativo seguro. Incluyó los conceptos básicos sobre programación. Teníamos nuestra propia terminal 3270 en el aula. (Era una escuela muy especial, seguro. Tuve mucha suerte de estar allí).
  • Durante mi período obligatorio en el ejército, conocí a muchos estudiantes de ingeniería que tomaron mucho tiempo para completar sus estudios. No quería pasar tanto tiempo en la universidad.
  • Cuando me inscribí en la Escuela de Ingeniería, vi que la ingeniería de software era más corta que la ingeniería civil, y me gustó lo que aprendí en la escuela. Lo tomé.
  • En medio de mi tiempo en la universidad, un colega en un grupo de estudio nos contactó con un antiguo empleador. Hicimos un trabajo de análisis y diseño para él, utilizando las nuevas técnicas que todavía se tomaban con escepticismo en la industria. Un año después de eso, 4 de los 6 miembros del grupo estaban trabajando en esa compañía.
  • Dos años después estaba liderando mi primer equipo de desarrollo.
  • Durante los últimos dos años de estudio, participé, como estudiante, en la elaboración del nuevo plan de estudios para nuestra carrera. Investigué mucho sobre los planes de estudio en diferentes lugares del mundo, para comprender lo que estaba sucediendo. Aprendí mucho entonces.
  • Catorce años y dos trabajos después, dejé un puesto de gerente de desarrollo y me mudé a Alemania con mi familia.
  • Mientras tanto, actualicé mis conocimientos tanto como pude. Cursos, conferencias, membresía en SADIO (equivalente argentino a US ACM o IEEE). Y probando todo alrededor.
  • He sido un orgulloso ingeniero de software. Y aún lo estoy.
  • Tomó una clase de programación en la secundaria
  • Aprendí javascript y php por mi cuenta. Intenté hacer sitios web para personas que conocía.
  • Hice una programación competitiva por poco tiempo (TopCoder).
  • Fui aceptado en la universidad y fui a estudiar informática.
  • Comenzó a trabajar a tiempo parcial durante el coloquio como desarrollador web (resultó ser muy útil para comenzar una carrera más adelante).
  • Encontró un trabajo en la industria después de la universidad trabajando en backends de aplicaciones web

Sendero bastante simple y directo. Puedes hacerlo.

  1. Comencé a programar cuando tenía 11 años. Obtuve ayuda de mis amigos que también se enseñaron a programar. Comenzamos con Apple II y luego fuimos a VIC-20 y Commodore 64.
  2. Obtuve un título de 4 años con especialización en informática.
  3. Durante la universidad tuve 2 pasantías en una compañía Fortune 500.
  4. Recién salido de la universidad conseguí un excelente trabajo remunerado con otra compañía F500, pero no encajaba bien. Me fui después de 6 meses.

Creo que mis pasantías jugaron un papel importante en conseguir un trabajo.

Todo lo que siempre quise ser desde los 12 años era un ingeniero de software. Siempre había trabajado en la industria desde los 17 años, pero después de la universidad logré mi objetivo, trabajando como ingeniero de software para una gran empresa de investigación de ingeniería.

¡Después de 18 meses lo detestaba! No era como si los proyectos en los que estaba trabajando fueran aburridos, ni mucho menos, pero lo encontré completamente frustrante y poco gratificante.

Me mudé a otro departamento trabajando en enlaces de datos, ¡lo cual fue mucho mejor!

Mi consejo es seguir tu sueño, pero si no te gusta, tu título te dará opciones de retroceso como el mío