Ingeniería de software: ¿Qué tipo (s) de personalidad particular son los más adecuados para la profesión de programación?

Mi lista:

  • Una atención al detalle maníaca, absoluta, combinada con la implacable compulsión de hacerlo continuamente, ayudada e instigada por un amor tan profundo por el arte que es sin esfuerzo y divertido hacer lo que otros considerarían horriblemente pedante o repetitivo (aburrido).
  • Un tipo específico de capacidad de toma de decisiones independiente, casi imprudente que le permite seguir adelante con una decisión en la que otros sufrirían parálisis de análisis ante una tormenta de opciones de diseño aparentemente similares, empeoradas por el alto grado de incertidumbre que lo acompaña. Lo que se consideraría la “elección correcta” en muchos casos.
  • Una personalidad obsesiva compulsiva.
  • Una sensación casi palpable de indignación ante el código que es ineficiente o fea, pero una indignación que con el tiempo se ve atenuada por un deseo casi despiadado de terminar algo en un tiempo razonable. Como el gran arte, el gran software nunca se termina, solo se abandona.
  • Excelentes habilidades de comunicación. Si no puede explicárselo a los demás, le resultará muy difícil pasar al siguiente proyecto emocionante.
  • Un deseo insaciable que bordea la lujuria absoluta para ver el fascinante sistema en movimiento que actualmente está atrapado en los confines de su imaginación, convertido en una encarnación elegante y viviente de la lógica y la funcionalidad cuidadosamente elaboradas por las yemas de sus dedos bailando rápidamente en su teclado.
  • El deseo de actuar exactamente de la misma manera que lo hace un actor o bailarín , de vivir por la emoción de mostrar algo nuevo e intrigante para el mundo que resulta en elogios y elogios tanto de los usuarios como de los empleadores.
  • ——————– Espéralo —————-
  • Una alegría y felicidad absoluta y absoluta que comienza en el instante en que su programación favorita IDE salta mágicamente a su monitor, provocando esa sonrisa gigante que se extiende de manera incontrolable a través de su cara cuando su alma se enciende porque sabe sin dudarlo que ingresa a la más mágica, poderosa. campo de juego de la creación que este mundo y la civilización han visto jamás . La mejor herramienta para la autoexpresión, nunca.

Hay muchos tipos de trabajos y proyectos de programación, por lo que no es posible generalizar según “adecuado para la profesión de la programación”, pero hay algunas combinaciones comunes.

Si esto se basa en el indicador de tipo de Myers-Briggs, creo que es:

  • Extravertido versus intravertido: la programación que es más profunda en teoría e informática necesitaría un enfoque más interno. La programación con más de un equipo dinámico, como el software empresarial y el desarrollo ágil de software que trabajan con los clientes, necesita más extraversión.
  • Sensación frente a intuición: aquí es donde preguntas como Para ti mismo, ¿crees que la programación es arte? entra – donde el “arte” se inclina hacia la intuición de resolver problemas abstractos o construir cosas. La detección sería más de analizar datos. Así que una tarea de programación puede cambiar entre estos dos.
  • Pensar versus sentir: cuando se trabaja directamente en la computadora, el programador debe “pensar” como: ¿Cómo pueden los programadores concebir y escribir cosas abstractas como programas y códigos de computadora? – Lo cual es muy lógico y literal. Que es lo opuesto a trabajar con personas, como los usuarios, que necesitan empatía.
  • Todos los que dijeron que las personalidades varían tienen razón, pero algunas características son comunes entre los programadores exitosos.

Estos rasgos son tan típicos que los libros de ingeniería de software los señalan. Los dos que vienen a la mente son de The Mythical Man-Month de Fred Brooks y The Psychology of Computer Programming de Gerald Weinberg.

  1. Brooks dijo que todos los programadores son optimistas.
  2. Weinberg cuenta la historia de un grupo de programadores de IBM de principios de los 70 a los que se les realizó una prueba de personalidad, luego se les preguntó si debían usar la misma personalidad para ambas mitades de la prueba.

El punto es: si nada más, los programadores necesitan agilidad mental. La agilidad mental no necesita ser analítica. Como señalan Dee Nixon y Miguel Paraz, la fluidez mental puede ser intuitiva.

  • He visto a todos los tipos de personalidad tener éxito, he visto a todos los tipos de personalidad fallar.

Los rasgos antes mencionados forman los únicos puntos en común. El optimismo puede no ser obvio. Pero piénselo, al menos debe creer que puede escribir un programa para realizar una tarea, o nunca lo intentaría.

No hay rasgos consistentes en todos o incluso en la mayoría de los individuos. He visto casi todos los tipos. Hay mucha variación.

Pero si tuviera que dar algunos rasgos y atributos que ocurrían en los codificadores a tasas significativamente mayores que la población promedio, se vería algo así:

  • Lejos, mucho más propensos a ser introvertidos
  • Es más probable que sea bueno en matemáticas
  • Es más probable que tengan habilidades sociales más pobres o artificialmente mejores (un número son excelentes interlocutores, etc. pero es una habilidad que se aprende conscientemente)
  • La mayoría son bastante relajados en mi experiencia
  • Es más probable que sea libertario.
  • Es más probable que sea extremadamente lógico
  • Es notablemente más probable que sean ateos o no religiosos
  • Es mucho más probable que tenga Asperger (aunque todavía es poco común)
  • La mayoría son naturalmente orientados a los detalles (soy una excepción a esto)

También creo que es menos probable que sea disléxico, debido a que las letras / palabras son un componente clave, y debido a las conversaciones con amigos disléxicos que han tomado algunos cursos de CS. Sin embargo, tienden a maldecir el amor matemático.

En cuanto a la demografía, los programadores tienden a ser abrumadoramente masculinos, y aún más abrumadoramente no son negros. No hay idea de por qué este último. Solo conozco a un desarrollador de software negro, aunque el tío es un genio, probablemente entre las 5 personas más inteligentes que conozco.

He sido desarrollador de software por más de treinta años. Aun así, lo que sigue es solo mi opinión personal: no más que anécdota.

A los desarrolladores de software les gusta analizar, entender, crear. Nos alegra encontrar soluciones elegantes para problemas difíciles. Tenemos que ser buenos solucionadores de problemas. No le tenemos miedo al pensamiento abstracto. A menudo nos sentimos impacientes con las personas que piensan con menos rigor, con menos detalles o de manera más intuitiva de lo que nos hemos entrenado para hacer, o a quienes se nos debe decir algo dos veces. (Y, si existe una página de manual o una pregunta frecuente en cualquier lugar de la red de la empresa o de Internet, consideramos que se le ha informado. No nos gusta el toque personal y no entendemos que la mayoría de las demás personas lo hacen). Tenemos que estar muy por encima del promedio en inteligencia, y muchos de nosotros tenemos poco tiempo para personas de inteligencia simplemente promedio; La estupidez de los demás es un tema común de conversación.

Nuestras habilidades sociales son a menudo indiferentes en el mejor de los casos. Es posible que nos falte la confianza en la configuración social, especialmente cuando estamos rodeados de personas que no están fascinadas con las computadoras. Esta diferencia se expresa a veces como desprecio, pero la realidad es que a menudo enmascara el miedo. A menudo tenemos una visión profunda de las máquinas y muy poca de las personas, incluidos nosotros mismos. Es posible que nos hayan perjudicado la intimidación u otras formas de abuso cuando éramos jóvenes; La programación originalmente nos ha proporcionado un escape del mundo, un lugar de descanso.

Evitamos las políticas de oficina y rara vez somos ambiciosos en nuestras carreras; solo queremos que otras personas dejen de romper nuestro estado de flujo, nos dejen solos y nos dejen escribir código. Aquellos de nosotros que administramos a otros (después de todo, alguien tiene que hacerlo) a menudo preferiríamos volver al rango. A pesar de eso, desarrollamos jerarquías informales, pero se basan en habilidades, compromiso y logros, en lugar de calificaciones y títulos de trabajo. Encontramos que el diseño, la codificación y (si somos buenos) la depuración son tan convincentes que a menudo descuidamos otros aspectos más mundanos de nuestro trabajo, como la gestión de proyectos, la documentación o la capacitación y el soporte. A menudo tenemos un terrible sentido de la vestimenta, y nuestro estándar de aseo personal, la dieta y el ejercicio pueden limitarse a la negligencia propia, porque estas cosas son simplemente aburridas . ¿Por qué perder el tiempo arrastrando un peine por tu cabello cuando podrías estar codificando?

Debido a que no estamos orientados al cliente, a menudo mantenemos horarios extraños. (Culpable según lo acusado, señor). Los buenos empleadores toleran este capricho y nos permiten trabajar cuando somos más productivos, en lugar de horas fijas, siempre que entreguemos los bienes y mostremos nuestras caras en la oficina de vez en cuando. Después de todo, esas caras no son exactamente bonitas, muchas veces.

Estos rasgos evitan que muchos de nosotros encontremos una realización romántica. Eso nos lleva de vuelta a nuestros teclados, completando el círculo vicioso.

Los desarrolladores que superan el promedio por lo general tienen habilidades lingüísticas superiores al promedio y, incluso si son anglófonos, pueden hablar uno o más idiomas extranjeros.

Los buenos empleadores aíslan a los desarrolladores de los clientes (quienes los intimidan, los interrumpen y les impiden realizar cualquier trabajo) y aíslan a los clientes de los desarrolladores (quienes les hablarían con una jerga que no entendían).

Los buenos empleadores encuentran maneras de reconocer y recompensar a los buenos desarrolladores sin requerirlos, a menos que lo deseen, convertirse en gerentes. Aunque los desarrolladores deben ser administrados por desarrolladores (tanto por su propio bien como por la cordura técnica del proyecto), una persona que es tanto un buen desarrollador como un buen gerente es una bestia rara.

La mayoría de lo que he dicho aquí se aplica principalmente a los desarrolladores masculinos. Las mujeres desarrolladoras parecen (en mi experiencia) ser más completas: se ven, actúan y hablan como personas normales, y tienen el nivel habitual de empatía y confianza para las mujeres. Podrías conocer a la mayoría de las mujeres desarrolladoras sin preguntarte qué fue lo que las hizo diferente. No así, los hombres.

Personalmente, he visto que todos los tipos de caracteres tienen un valor en la ingeniería de software, la profesión de TI.

Sin embargo, cuando se trata de la profesión de la programación, la clave es la aptitud para resolver los problemas, la capacidad para conocer el problema, analizar y ofrecer soluciones, trabajar con equipos para ofrecer soluciones elegantes, aceptar problemas / errores y mejorar el código mejor. Capacidad para entender el código escrito por otra persona para ajustarlo, en caso de que necesite mantenerlo.

Esto significa que debe tener una mezcla de diferentes tipos de personalidad para dominar esta combinación de arte y ciencia conocida como programación. Un extrovertido podría ser una persona muy buena para proyectos de programación de ingeniería de producto donde se necesita una gran cantidad de diseño de productos y discusiones comerciales. Introvertido, analítico, maestro artesano puede ser el arquitecto cincelador para un mejor diseño de programación.

En pocas palabras, no creo que una solución se ajuste a todos los tipos de roles de programación. Un rasgo clave de la personalidad que todos los programadores deben tener es la combinación Flexibilidad -> Adaptabilidad -> Agilidad para ir en conjunto con su destreza de programación.

¡Espero que esto ayude!

No estoy seguro de que sea un tipo, pero los mejores programadores con los que he trabajado han sido los músicos. Bateristas de rock, teclistas, incluso un clarinetista entrenado en Julliard. Todos se consideraban músicos que programaban para vivir, no programadores que tocaban un instrumento.

No estoy seguro de los “tipos” de personalidad, pero los TRAITS de personalidad que son necesarios o, al menos, muy útiles incluyen la capacidad de pensar de manera lógica, precisa y sistemática. La capacidad general de resolución de problemas es una necesidad. La paciencia y la persistencia son útiles también.

Aparte de los rasgos específicos que son necesarios / útiles, los “tipos” de personalidad en general pueden variar bastante. Incluso los rasgos mencionados anteriormente no son característicos de TODOS los buenos programadores, algunos de los cuales son más intuitivos que sistemáticos.

Debe ser capaz de construir castillos en la nube.

Esto significa que deben tener la capacidad mental para realizar secuencias completas y la estructura de su trabajo en sus mentes.

Uno debe poseer habilidades analíticas exigentes con atención al detalle junto con el impulso sin fin para mejorar continuamente.
Por lo general, para obtener un empleo remunerado, se reorganizan completamente sus habilidades técnicas cada 5 a 10 años en promedio.
Programar no es un juego para hombres jóvenes, pero uno tiene que adoptar continuamente nuevas tecnologías, ya que las habilidades tecnológicas antiguas pierden su valor en el lugar de trabajo en poco tiempo.