¿Cuáles son algunas habilidades blandas que todo programador debe desarrollar?

Habilidad suave # 1: Humor.
La respuesta de Philip Dang a ¿Qué distingue a un gran ingeniero de software de uno bueno?

¡El grande hace grandes bromas!

Sigo pensando que esta respuesta merece más votos porque creo que es totalmente cierta. Cuando estás en una sala llena de programadores que trabajan todos los días, hay mucho silencio entre las reuniones y, a veces, necesitamos un breve descanso para disparar la brisa; El humor es lo que hace que el trabajar todos los días sea mucho más agradable. Si eres divertido, la gente querrá trabajar contigo; Especialmente en tiempos de estrés, descifrar una buena broma puede aliviar nuestra mente.

No hace el trabajo, pero ciertamente lo hace más agradable.

Habilidad suave # 2: Mentorship.
¡Lo que es incluso mejor que un gran programador es uno que ayuda a otros a convertirse en grandes! Trate de encontrar oportunidades para enseñar y ser bueno en eso. Obviamente, esto no lo hará más productivo, pero hará que todo el equipo en general sea mucho más productivo.

Habilidad suave # 3: Comunicación.
El aspecto más importante involucrado como ingeniero de software, en mi opinión, es su comunicación con los clientes, las partes interesadas, etc. Por lo general, son los que toman las decisiones y, si no puede comunicar problemas y soluciones con confianza, prefieren trabajar con alguien. quién puede.

Es desafortunado, pero la comunicación también tiene que ver con la política. A veces solo necesitas decir las cosas correctas en el momento adecuado, a las personas adecuadas. Esta no es una habilidad fácil de desarrollar, pero puede mantener a tu ** fuera del problema y mantener felices a las personas adecuadas.

Explicar sistemas complejos a personas muy inteligentes que no entienden su campo y no necesitan hacerlo. Esto es algo en lo que estoy trabajando. He escuchado sobre esto en una conferencia últimamente y creo que es valioso tenerlo.

No solo dándoles una versión simplificada o simplemente borrándolas, sino presentándoles las piezas relevantes de una manera clara y convincente que les permita conocer cómo funcionan las cosas sin abrumarlas.

Todavía no lo tengo abajo, pero creo que eventualmente lo haré.

¿Cuáles son algunas habilidades blandas que todo programador debe desarrollar?

  • Comunicar información técnica a los compañeros.
  • Comunicar información técnica a personas no técnicas.
  • Estimar con precisión cuánto tiempo tomará el trabajo
  • Asegurarse de que la gerencia sepa lo que estás haciendo
  • Comunicar los riesgos del horario lo antes posible.
  • Reconocer cuando las partes de su producto son frágiles y programar el tiempo para apuntalarlas
  • Ser capaz de decirle a alguien sobre problemas con su trabajo sin ser ofensivo
  • Ser capaz de ser informado sobre problemas con su trabajo sin ofenderse.
  • Ayudando a las personas a completar el conocimiento técnico que faltan.
  • Reconociendo áreas donde tu equipo necesita trabajo; adquirir conocimiento en un área porque nadie más en el equipo está
  • Pensando en los impuestos que paga su equipo y asegurándose de obtener algo apropiado a cambio. (Ejemplo: si escribe documentación XML, ¿es útil? Si es un intento poco entusiasta y en realidad no está generando documentación para nadie, está pagando impuestos y no obtiene beneficios).
  • Flexibilidad: verifique el trabajo en porciones pequeñas y prepárese para cambiar de tareas si tiene que
  • Gestión del tiempo

Comunicaciones escritas. Con eso quiero decir que sabes cómo comunicarte en prosa simple. Siempre ha sido sorprendente para mí que los programadores dediquen 3 horas a descubrir la manera correcta de crear una sola línea de código, pero se demoran 30 segundos en documentarlo en línea o 20 minutos en escribir una especificación de interfaz adecuada para un módulo o biblioteca.

El código que no se puede mantener es un código incorrecto, sin importar qué tan eficiente sea o cuánto creas que la funcionalidad es evidente por el propio código. La escritura técnica no es difícil, en comparación con el aprendizaje de lenguajes de programación.

Un programador definitivamente debería ser bueno haciendo preguntas.

La mayoría de los programadores comienzan escribiendo documentos de diseño y pruebas unitarias (TDD). Aquí se intercambian muchas preguntas de ida y vuelta. Debes poder articular lo que se dice y lo que entendiste.

Al escribir o después de enviar el código, los compañeros de trabajo pueden tener un enfoque diferente para resolver el mismo problema. Nuevamente muchas preguntas aquí. Ser curioso es realmente importante para obtener diferentes perspectivas, ya que muchos programadores se conforman con la primera solución que les viene a la mente. No es eficiente la mayoría de las veces.

Si está utilizando Python, dos puntos, comillas y paréntesis / paréntesis. (“”):

Si no es así, punto y coma y corchetes.

Variables siempre. Memorice qué variable hace qué y POR QUÉ esa variable hace lo que hace; de ​​lo contrario, todo el punto desaparecerá.

Comunicación efectiva.

Ser capaz de abstraer detalles de un problema sin sonar condescendiente.

Ser capaz de permitir a los clientes y al personal no técnico cometer errores al tratar de averiguar qué es un producto sin sentir que los ha menospreciado (tal vez con una sonrisa o una risita).

Ser capaz de defender tus decisiones sin ser grosero y también estar abierto al cambio si es necesario.

Tener sentido del humor mientras se mantiene apropiado para el lugar de trabajo.

Creo que hay dos habilidades importantes que todo desarrollador de software debería tener:

Ser capaz de comunicar sus ideas. Esto incluye la capacidad de expresarse bien en cualquier idioma, como el inglés.

Capacidad para dar y adaptar nuevas ideas.

Capaz y sin miedo de hablar cara a cara con otras personas. Además tomar posesión del producto.

Es posible que el propietario de su producto no siempre sepa cómo describir lo que necesita, usted como desarrollador, el proveedor de la solución, debe tomar posesión y hablar con ellos hasta que comprenda completamente sus problemas. Solo así podrás proporcionar la mejor solución.