¿Cuáles son algunas de las habilidades que todas las especialidades en ciencias de la computación deben saber para obtener su primer trabajo de la universidad?

Creo que en realidad hay dos rasgos críticos en los que todos los estudiantes de CS deberían trabajar cuando salgan de la escuela.

  1. Trabajo en equipo
    Muchas veces usted trabaja en grupos durante su especialidad, pero se ve principalmente como un medio para lograr su calificación y completar el proyecto. Cuando trabaje para una empresa, trabajará con un equipo las 24 horas todos los días. En algún momento estará dentro de un equipo de ingeniería y otras veces tendrá que trabajar en un equipo de habilidades múltiples (piense en un equipo de proyecto ágil donde el marketing, la ingeniería e incluso las ventas son un equipo).

    En estas situaciones, el trabajo en equipo efectivo es absolutamente crítico. Esto significa que tienes que practicar la escucha activa. Debes ser respetuoso con otras opiniones y puntos de vista porque es esa diversidad de pensamiento lo que realmente puede hacer que los equipos sean poderosos.

  2. Comunicación
    He trabajado con suficientes desarrolladores que carecían de este conjunto de habilidades, y, francamente, fue lo más doloroso de lo que me separé.

    No importa qué tan bueno de desarrollador creas que eres, las organizaciones viven y mueren por su intercomunicación. Esto retroalimenta el trabajo en equipo, pero realmente es un rasgo en sí mismo porque es crítico. Si no puede comunicarse de manera efectiva, es decir, no puede mantener a las personas actualizadas sobre lo que está haciendo, no logra articular claramente sus problemas e ideas, y no se comunica, respectivamente, con sus compañeros. Entonces el equipo se desmorona y también lo hace la organización.

Comunicación (en el sentido más amplio).

Debido a que la programación no se trata realmente de escribir código, se trata de traducir un conjunto complejo de requisitos / ideas (las especificaciones de lo que quiere que haga el programa) de una manera que una computadora pueda entender (la parte del código).

Comunicación con el usuario, sus compañeros de trabajo, su gestión. No subestimes eso, es la falla más grande de la mayoría de los programadores que he conocido. Dígale a su gerente lo que está haciendo, no permita que lo vean solo como un engranaje, explique lo que ha hecho, muestre su interés (pagué un alto precio en mi primera empresa por ignorar eso).

El aspecto técnico es importante, ¡pero inútil si no sabes lo que debes hacer! La mayoría de los proyectos fracasan debido a problemas de comunicación en primer lugar.

Un problema relacionado: una de las diferencias MÁS GRANDES entre un programador / mal programador “vaquero” y un profesional serio es que el profesional se preocupa por la documentación (en código y código externo).

Por último, pero no menos importante, véndete. Especialmente para sus gerentes (ver arriba). Si solo haces tu trabajo en tu cubículo / habitación / lo que sea, ¡ nunca sabrán lo que traes a la compañía, lo que significa adiós aumentos o promociones!