¿Qué debo saber / esperar antes de unirme a mi primer trabajo como ingeniero de software?

Creo que la mayor diferencia entre programar en la escuela y programar en una empresa es cómo trabajas con otras personas.

En el mundo real, es extremadamente raro que seas el único ingeniero en un proyecto / producto. Incluso si lo es, y el proyecto no depende o está estrechamente relacionado con el trabajo de otra persona, deberá tener en cuenta el hecho de que, en el futuro, otra persona mantendrá su código. Esto significa dos cosas:

1. Su código debe ser de alta calidad:

  • Debe ser legible (por otras personas, su propio código siempre parece legible para usted)
  • Los métodos deben estar lo más desacoplados posible y seguir la Ley de Demeter, es decir, los métodos deben depender de su entorno lo menos posible. Esto aumenta la capacidad de reutilización y significa que un método roto no romperá otros 4 métodos que dependen de él.
  • Estoy seguro de que hay otras buenas prácticas de codificación que estoy olvidando, pero entiendes el punto.

2. Debes practicar trabajar con otros. No estoy hablando de sentarme en una habitación con otra persona y compartir archivos en Dropbox. Me refiero a usar herramientas profesionales como Github y herramientas de gestión de proyectos como Asana. En el mundo real, los equipos podrían distribuirse para que no puedas tocar a alguien en el hombro cuando quieras chatear.

  • Tendrá que codificar de una manera que reduzca el conflicto: confirmaciones pequeñas y frecuentes, trabajando solo en un problema a la vez y realizando pruebas para asegurarse de que todo funcione antes de presionar.
  • Debe practicar hacer revisiones de código y esperar que su código sea revisado antes de fusionarse con master.

El proceso de programación es diferente cuando trabajas en el mundo real, pero creo que si practicas esas dos cosas estarás muy por delante de tus otros colegas de nivel de entrada.

Descargo de responsabilidad: todo lo que escribí aquí lo aprendí en Dev Bootcamp. Es un programa de capacitación de 9 semanas para ingenieros. Se centran intensamente en la máxima empleabilidad, lo que significa enseñar buenas prácticas de programación para trabajar en empresas. En este momento estoy en mis últimas 3 semanas, y el foco está en simular condiciones del mundo real; es decir, trabajamos en proyectos grupales de varios días y tenemos que usar Github para colaborar.

La programación como ingeniero de software es muy diferente de la programación como estudiante universitario.

  • Su código debe ser legible por su colega. Los comentarios no son tan importantes, pero es muy importante tener nombres significativos de variables, clases y métodos. Recuerde que los códigos se leerán con mucha más frecuencia de lo que se escribe. Por lo tanto, vale la pena pasar más tiempo escribiendo código, para que sea más fácil de leer.
  • Principio de responsabilidad única (SRP). Asegúrese de que cada unidad de su código (método, clase) haga una cosa, una sola cosa, y hágalo bien. No mezcle diferentes responsabilidades en la misma unidad.
  • No te repitas (SECO). En mi opinión, la duplicación es el mayor pecado en la ingeniería de software, junto con el código ilegible. Si encuentra que dos ubicaciones comparten código o lógica similar, refactorícelas. Es divertido y lo encontrará útil a largo plazo.
  • Lea el principio KISS y no lo va a necesitar. Su objetivo debe hacer que el código sea lo más simple posible. La codificación excesiva o la ingeniería excesiva es un pecado importante que vi cometer demasiados graduados nuevos. Un código que intenta manejar una docena de posibilidades extrañas y no probadas no es inteligente. Escribir un algoritmo complicado para obtener una optimización de rendimiento menor tampoco es bueno. Escribir código donde hay una API que puede hacer exactamente eso no es genial.

Debe saber todo lo que debe saber sobre ingeniería de software, ingeniería, desarrollo e implementación porque, en pocas palabras, de eso se trata la ingeniería de software.

More Interesting

La mayoría de los graduados de MBA en India usan iimjobs.com para posibles oportunidades de trabajo. Personalmente y entre mis amigos, nunca he visto a nadie conseguir un trabajo a través de este sitio web. ¿Alguien aquí alguna vez consiguió un trabajo a través de este sitio?

¿Cómo responde un reclutador que dice que la oferta de trabajo está disponible solo si reduce las expectativas salariales?

Como gerente de ingeniería, ¿cuál es la mejor manera de informar a sus informes directos que estoy dejando mi trabajo actual?

¿Es bueno unirse a un banco del sector público después de dejar de ser consciente?

Si un ingeniero industrial sabe un poco de todo, ¿por qué una empresa no contrataría a un profesional en todos los campos?

¿Qué puedo hacer fuera de mi trabajo para ganar dinero?

¿Cómo puede un chico de tercer año de B.Tech CSE de una universidad promedio desviar su carrera profesional para convertirse en un banquero de inversión?

¿Deben los artistas vender sus obras con un contrato para obtener un porcentaje de la primera reventa?

¿Cuánto tiempo permanecen los escritos en su archivo en su trabajo?

Cómo sobrevivir en la industria como un buen tipo de I + D en el campo integrado

¿Cuánto debe estudiar un ingeniero mecánico?

¿Fue aceptado en un programa de pasantías de verano en Microsoft? Me llevarán allí para vivir y trabajar. ¿Cómo puedo convencerlos de que me den una primera clase?

¿En qué estado de EE. UU. Es barato vivir y tiene más oportunidades de trabajo?

¿Debo asistir a una entrevista de otra compañía durante mi período de prueba?

¿Qué tipo de trabajo debería obtener mientras espero que comience la escuela de posgrado?