¿Qué debe aprender un estudiante de CS si quieren trabajar como ingeniero de software de aplicaciones cuando se gradúen?

Todavía decimos aprender primero los fundamentos y aprender bien los fundamentos. Eso incluye principalmente estructura de datos, programación, sistemas operativos, bases de datos y posiblemente redes de datos. Puede agregar Cloud computing a la lista.

La segunda cosa más importante es ser un programador práctico. Comience a escribir programas temprano, cree sus propias aplicaciones y siga haciéndolo. Nada es más poderoso que mostrar sus propias aplicaciones y si las aplicaciones se hacen bien, los empleadores harán cola para contratarlo.

Lo tercero es no dejar de aprender. En una disciplina que cambia rápidamente, debe estar en contacto con las últimas tecnologías a medida que surgen.

Desafortunadamente, la mayoría de estos pueden no enseñarse en sus clases. Las universidades están ocupadas completando el programa de estudios y debes tomar la iniciativa para aprender estas cosas por tu cuenta.

Mejor

[email protected]

Aquí hay algunos:

La comunicación, en diversas formas, constituye una gran parte de lo que hacen los ingenieros. Entonces, debes aprender a dar discursos y presentaciones; celebrar reuniones de colaboración, lluvia de ideas y toma de decisiones; escribir notas y documentos para explicar y persuadir; elija nombres de variables / funciones / clases para que sea fácil entender su propósito; participar en la escucha activa para ayudar a los compañeros de trabajo a resolver sus problemas; y así.

El desarrollo de software real hace uso de herramientas y procesos que a menudo no se enseñan como CS, tales como: control de versiones, sistemas de compilación, seguimiento y clasificación de problemas, recopilación de requisitos, revisiones de código / arquitectura. Es posible que no se le requiera saber todo esto antes de comenzar su primer trabajo real, pero ayuda tener la mayor exposición posible.

Tiene que ser un administrador de sistemas competente para el sistema operativo para el que está escribiendo código. Pero esto rara vez se enseña en las clases de CS.

Aquí hay una lista de temas que desearía haber aprendido en mi programa de licenciatura de CS, pero fueron cosas que aprendí por mi cuenta o no. No formaban parte del plan de estudios en ningún caso:

  • Fuente de control
  • Examen de la unidad
  • Prueba de carga
  • Editores de código e IDEs
  • Habilidades de depuración
  • Herramientas de compilación de software, desde make hasta gradle
  • Herramientas para crear instaladores y paquetes.
  • Diseño API
  • Diseño orientado a objetos
  • Diseño arquitectónico
  • Inicio sesión
  • Cifrado y hashing (y cómo son diferentes)
  • Claves ssh, TLS y certificados
  • Herramientas de virtualización
  • Herramientas de integración continua como Jenkins
  • Programación multiproceso
  • Conjuntos de caracteres y colaciones
  • Procesamiento de imágenes

Otra cosa en la que realmente tomé una clase, pero fue algo inusual:

  • Escritura técnica

More Interesting

¿Cuáles son algunos programas que todo programador debe hacer al menos una vez?

¿Qué proporción de su tiempo pasan los grandes gerentes de ingeniería de software trabajando en el equipo, en comparación con el equipo y en todo el equipo?

¿Por qué los competidores de software simplemente no copian / pegan código cuando su rival agrega una nueva característica exitosa y la modifica un poco para evitar las leyes de derechos de autor?

¿Cómo fue su experiencia trabajando con desarrolladores que obtuvieron un título en Ingeniería de Software versus aquellos que obtuvieron un título en CS?

¿Es necesaria la programación orientada a objetos para la programación integrada?

¿Cuál es el problema matemático más difícil que puedes resolver como ingeniero de software?

¿Qué se debe hacer para preparar una entrevista para el ingeniero de software asociativo?

Si los 'buenos programadores encuentran que la programación es divertida', ¿cómo es que tantos programadores se quejan de corregir errores?

¿Cuáles son ejemplos de excelentes carteras para desarrolladores web e ingenieros de software?

¿Cómo contrata Airbnb a los pasantes de ingenieros de software?

¿Cuál puede ser la razón para obtener un rechazo de una entrevista de Amazon por un puesto en SDE-2?

¿Qué tipo de análisis se puede hacer con los datos de IoT?

¿Silicon Valley es amigable con los ingenieros de software indocumentados?

¿Qué capacitación / calificaciones se pueden obtener durante la carrera como ingeniero de software después de la universidad?

¿Cómo hacen uso los diferentes tipos de ingenieros de la creatividad en su trabajo?