¿Se desperdiciarán mis habilidades de comunicación en una carrera de ingeniería de software? [cerrado]


40

He estado en el campo de la ingeniería financiera (después de BA Math y BA Computer Science) durante aproximadamente 5 años (20% análisis / programación, 80% comunicación) y me enorgullezco de mi capacidad para comunicarme con la gente y discutir problemas técnicos (es decir, interactuar con un equipo). Amo esta parte de mi trabajo. Ir a la pizarra para dibujar ideas abstractas y generar ideas.

Sin embargo, por muchas razones, quiero hacer la transición de mi carrera en una empresa de tecnología (ingeniería de software), pero me temo profundamente que caeré en un trabajo de programación estereotípico donde los programadores codifican con auriculares grandes. Ciertamente sé que esto es solo un estereotipo, pero he sido testigo de entornos similares antes (en las startups) y me da miedo pensar que estaría migrando a una carrera de aislamiento.

Me encanta codificar y pensar algorítmicamente, pero no quiero dejar de interactuar con las personas. Entiendo que tener habilidades de comunicación es solo positivo, pero me estoy preparando para el fracaso de la felicidad profesional al hacer la transición a la ingeniería de software. Me encantaría escuchar cualquier aclaración y / o consejo.


14
Te das cuenta de que las respuestas aquí pueden ser un poco sesgadas, ¿verdad?
JB King

2
Absolutamente, pero las respuestas hasta ahora, han sido geniales y muy informativas.
Ryan

Espero que se dé cuenta de que su pregunta resulta extraña para personas como yo que son buenas con la programación pero que RR.HH. (y no consiguen ese trabajo de oro ...) las rechazan porque les falta un poco en el departamento de comunicaciones. Las habilidades de comunicación son definitivamente una ventaja, especialmente en el contexto de un proyecto de equipo (scrum + reuniones de pie ...) y el trabajo a distancia. También encontrará que se produce una reformulación al revisar los requisitos. Hay algunas responsabilidades que implican menos programación y más coordinación.
James P.

Absolutamente no ..
Louis Rhys

2
Un ingeniero de software que no puede expresar sus ideas tanto en un lenguaje hablado como en un lenguaje de computadora escrito no vale nada.
Ramhound

Respuestas:


53

Aquí está el secreto sobre la programación: es casi un 100% de comunicación . Una parte importante de eso es comunicarse con un humano; el resto es comunicar lo que acabas de aprender a una computadora.

La última parte es la más fácil de las dos. Las computadoras hacen exactamente lo que se les dice y siempre está en condiciones de comprobar que lo que le dijo es correcto.

Lo primero es otra cosa. Las diferencias en las terminologías, en la comprensión, en las prioridades, de persona a persona, hacen que sea muy difícil transmitir el mensaje correcto a la computadora. Las malas comunicaciones a este nivel son mucho más comunes que las malas comunicaciones entre un programador y una computadora.

Los buenos programadores son buenos para comunicarse con la computadora; los grandes programadores también son buenos para comunicarse con las personas, por un medio u otro.

¿Esos programadores que ves que nunca salen de sus auriculares? Todavía están haciendo esta comunicación, ya sea por correo electrónico o un rastreador de errores, o incluso por mensajería. Todo está sucediendo, de lo contrario no pueden saber qué decirle a la computadora que haga.

Entonces sí, sus habilidades de comunicación le servirán bien.


Buen punto sobre la comunicación en su conjunto, pero puede cambiar el énfasis en las reuniones personales a más privado y escrito.
JeffO

Si realmente cree que la implementación es la más fácil de las dos partes sugeridas, entonces está trabajando con un equipo malo o la implementación que está haciendo es demasiado fácil. Cuente la cantidad de horas de trabajo dedicadas a la implementación versus hablar sobre la implementación: la implementación debe ser claramente 2/3 del total; si no, su gerente necesita una reunión especial con su jefe.
Jonathan Cline IEEE

66
@ Jonathan: Distinguiría bastante entre difícil y lento.
pdr

3
Con el tiempo aprendí que comunicarse con una computadora es tan difícil como para los humanos. La cosa es que la mayoría del código que escribo es leído por otra persona más tarde (que otra persona puede ser yo mismo un mes después, lo que sorprendentemente no lo hace menos difícil), lo que para mí esencialmente nos devuelve a comunicarnos con los humanos, solo en forma escrita e indirecta El código es una carta para el futuro, el codificador es un escritor. Joyce alguien?
mosquito

Cualquiera puede escribir código que una computadora pueda entender, un buen programador puede escribir código que la gente entienda.
Michael Brown

23

A los programadores les gustaría codificar con auriculares grandes (bueno, no todos lo hacen), pero eso no significa que no puedan comunicarse, solo significa que no quieren ser molestados en ese momento , no es que Nunca se comunicará.

Las habilidades de comunicación verbal siguen siendo extremadamente importantes en las reuniones con el resto del equipo, en reuniones ad-hoc, con usuarios comerciales, con otros equipos, etc.

Las habilidades de comunicación escrita también serán muy importantes cuando envíe un correo electrónico a sus compañeros de trabajo con auriculares grandes para que puedan responderle más tarde.


1
Completamente de acuerdo con esto. Solo me pongo los auriculares para indicar que estoy ocupado.
Ivan

7

Me parece que deberías buscar un trabajo como consultor técnico. A menudo implica programación, pero también requiere mucha comunicación: con clientes, colegas, consultores de otras empresas ... OTOH también significa solucionar muchos problemas técnicos sin escribir realmente el código, si no te gusta, deberías Probablemente busque diferentes caminos. HTH.


2
¿Eres incluso un programador?
CenterOrbit

2
Sí lo soy. También he sido consultor técnico durante un tiempo. ¿Qué es lo que te molesta tanto de mi respuesta?
SL Barth - Restablece a Monica el

¿Consultor técnico como individuo que va a conocer a un cliente?
James P.

@ James P. Eso es lo que quise decir, sí, y eso fue lo que hice cuando era consultor técnico. Ir a la oficina del cliente y ayudarlo a resolver sus problemas técnicos. Obviamente, los desarrolladores también necesitan fuertes habilidades de comunicación, pero eso ya ha sido discutido extensamente por otros aquí.
SL Barth - Restablece a Monica el

6

Las habilidades de comunicación son extremadamente importantes para un desarrollador de software. En algún lugar hay una estadística (posiblemente junto a la estadística que dice que el 68% de todas las estadísticas están compuestas) que dice que la mayoría de los proyectos de software fallan debido a una mala comunicación. Ser la persona que puede comunicarse con la empresa (y comprender la empresa) en un equipo de desarrollo de software TIENE que ser un buen lugar para estar.


6

Mantengo firmemente que mi mayor ventaja competitiva sobre otros programadores y tipos de TI que conozco es mi capacidad para comunicarme con personas que no dominan los conceptos de TI. Es la habilidad más subestimada y menos desarrollada por el miembro promedio de la comunidad de TI, y sin embargo, es una de las más importantes.

En casi todos los roles imaginables, en algún momento, necesitará hablar con alguien que casi no tiene conocimiento de lo que hace, y deberá poder venderles lo que está haciendo.

También es posible que deba tratar con los usuarios para reunir los requisitos para una especificación: ¡ese tipo especializado de escucha (junto con las preguntas y preguntas correctas) también es comunicación!

Por supuesto, tiene un beneficio adicional: las buenas habilidades de comunicación hacen que conseguir un trabajo sea mucho más fácil.


4

Felicidades. Tiene un futuro brillante como ingeniero de aplicaciones y luego como gerente de ingeniería de aplicaciones (FAE Manager).

Como parte de esta excelente profesión, creará presentaciones de powerpoint para clientes de nivel I con el texto "Software Stack" escrito sobre ellos y abstractos diseños de ingeniería de software muy complejos en bloques rectangulares de diferentes colores, a menudo organizados al azar; Estas presentaciones serán iniciadas por los ingenieros de software principales en los niveles superiores de I + D, se diluirán en la mentalidad de cliente con el denominador común más bajo y posteriormente se pegarán nuevamente en los documentos de requisitos que se presentan a los ingenieros de software principales en los niveles superiores de I + D como especificaciones de hacer o romper el negocio. Uno de sus bonos dependerá del uso liberal de la palabra "nube".


Cabe señalar que los ingenieros de aplicaciones generalmente ganan en promedio de 20% a 30% más que los diseñadores del mismo nivel. Esto es solo porque, como mejores comunicadores, están en mejores condiciones de exigir un salario más alto; mientras que el ingeniero de diseño típico, como comunicador deficiente, no suele exigir más. Por lo tanto, se ha establecido el estándar, y App Engrs se ríe hasta el banco, todo mientras deja el trabajo antes que los diseñadores a diario. ¿Y mencioné los almuerzos fuera de la oficina con gastos, más caros, mientras que los desarrolladores tienen la suerte de comer pizza para llevar en una sala de conferencias?
Jonathan Cline IEEE

3

Estará mejor con excelentes habilidades de comunicación. Los programadores de cabeza a cabeza son a menudo los que no se ponen en los proyectos emocionantes, ya que sus gerentes podrían no entenderlos también. Esencialmente, si nunca sale a tomar el aire, será encasillado como "el tipo extraño en la esquina".

Nuevamente, estamos trabajando en estereotipos, y no todos los entornos son así, pero al menos, las buenas habilidades de comunicación lo ayudan a comprender mejor el negocio y las personas que lo rodean, por lo que estará mejor equipado para manejar problemas complejos en su dominio particular

Cuánto te comunicas depende de ti. Sería raro que termines en un equipo que esté lleno de programadores descarados con nadie que quiera hablar, pero si no te gusta el humor nerd, prepárate para ser presentado rápidamente. Además, prepárate para los inevitables programadores socialmente incómodos. Siempre hay al menos uno.


3

Podría decirse que la mayoría de los proyectos de software fracasan no por problemas técnicos, sino por problemas de comunicación. Escribir un gran código es ciertamente importante para un ingeniero de software, pero las buenas habilidades de comunicación son un gran activo para un equipo, y también son más difíciles de mejorar que las habilidades de codificación.


2

Actualmente estoy programando con auriculares grandes puestos. Bueno, solo estaba programando. Claramente, ahora estoy en StackExchange ... anywho:

Es cierto que mucha programación se realiza en solidaridad. Para programar bien, NECESITA ese enfoque y privacidad. Sin embargo, ¿realmente crees que pasas la mayor parte del tiempo programando? Gran parte de su tiempo se dividirá entre reuniones de equipo, charlas estratégicas, caminar, pensar, discutir, etc. En realidad, sentarse en su escritorio escribiendo no será toda su vida. Recuerdo haber leído un estudio en mi curso de ingeniería de software que los mejores / más productivos programadores en un equipo son los extrovertidos y NO los introvertidos.

Los buenos programadores pueden comunicarse bien con su equipo. Obtener y comprender los requisitos de un líder técnico o gerente a menudo no es una tarea fácil. Se necesitan buenas habilidades de comunicación para aclarar sus tareas, así como para comunicarse con el equipo. Si te abres camino a líder técnico o gerente, las habilidades de comunicación serán fundamentales para mantener unido al equipo.

Yo también soy alguien que ama ser extrovertido. Tengo que admitir que, al principio, la cantidad de solidaridad en mi trabajo de programación me pareció un poco deprimente. Sin embargo, tomé algunas medidas para hacer que el trabajo fuera más social, principalmente: 1) Negarme a almorzar solo 2) Tomar descansos en el gimnasio / baloncesto con amigos

Un trabajo de programación no debería ser antisocial.


2

Las habilidades de comunicación definitivamente no serán desperdiciadas. Incluso si pasa el 80% de su tiempo escribiendo código de programa, debe tener claro qué hace el código. Es necesaria una comunicación efectiva con su cliente (o líder del proyecto) para garantizar que sus esfuerzos no se desperdicien y realmente den como resultado lo que se requiere. Además, podrá explicar su trabajo, problemas potenciales con el diseño, implementaciones más simples, etc. más fácilmente a aquellos menos familiarizados con la programación. Por último, al programar un software interactivo para el usuario, las habilidades de comunicación serían muy útiles para diseñar una interfaz de usuario que transmita la información correcta de una manera fácil de usar que se entienda. También lo ayudará a obtener la información correcta del usuario para realizar el trabajo.


1

Estoy de acuerdo con todos aquí que argumentan que la comunicación es clave en la programación de computadoras. Sinceramente, creo que por lo que se describe, será un gran programador líder o más del tipo de "ingeniero de software". Comencé como TI general en una empresa y tan pronto como pude demostrar mis habilidades de programación, hice la transición a programador, ya que soy muy sociable y orientado al equipo, ahora soy el programador líder en dos proyectos. Descubrirá que cuanto más alto llegue a la cadena de programación, más pizarra y resolución de problemas comenzará a hacer.

Si su personalidad tiene el rasgo de 'liderazgo' (que es lo que está insinuando), alcanzará la cima muy rápido. Solo con la condición de que esté en una empresa que le permita crecer de esa manera.

Las habilidades sociales, la resolución de problemas y la buena programación a menudo son más raras de lo que piensas. Los empleadores matan por ese tipo de habilidad. Creo que estás en el camino correcto. ¡Sigan con el buen trabajo!


1

Estoy de acuerdo con todos los demás que dicen que hay mucha comunicación en el desarrollo de software, y agregaré que incluso escribir un buen código requiere buenas habilidades de comunicación.

Escribir código correcto es importante; escribir código que otras personas puedan entender es posiblemente mucho más importante. Si su código contiene algunos errores, pero está escrito de tal manera que puedo entender fácilmente lo que está sucediendo, no será difícil para mí encontrar y corregir los errores. Si su código es completamente correcto pero está escrito de tal manera que no estoy tan seguro de entenderlo, entonces no puedo estar seguro de que sea correcto, y las probabilidades de que pueda modificarlo correctamente en el futuro son mucho más bajas .


1

¡Por supuesto que la buena comunicación es importante! En lo que me enfocaría es en convertirme en un excelente maestro. Los programadores realmente efectivos pueden explicar la base de algo que tardó años en comprender en una llamada telefónica de 15 minutos. En la misma conversación, debe explicar los detalles en términos no técnicos para que la persona en el otro extremo de la línea pueda tomar una decisión informada que sea la mejor para su negocio durante un largo período de tiempo.


1

Depende de a dónde vayas. Conozco una empresa comercial cuantitativa en la que pasarías mucho tiempo en la pizarra, haciendo una lluvia de ideas con doctorados. Conozco una prestigiosa empresa de consultoría en la que también se comunicaría mucho, pero con personas que no tenían experiencia en tecnología ... Sé de una gran empresa Fortune 100 que no es de software, donde también estaría haciendo mucho de comunicarse, pero sería principalmente jugar a la política.

OTOH, muchas nuevas empresas y compañías de productos de software necesitan personas para la codificación directa. Claro, comunicas algo, pero levantarte para hacer una presentación que venda tu empresa es muy diferente a solo hablar con otros codificadores ...

El área donde la comunicación realmente entra en juego es la ingeniería de ventas / consultoría técnica / etc ... Ahí es donde, si realmente eres un excelente comunicador (y no solo un ingeniero de software que no es socialmente incómodo), obtendrás Pagó buen dinero. Hay algunas ventas involucradas allí también.


0

Oh, bueno, desde el punto de vista de las personas que vienen de afuera ... Realmente no puedo decir (como todos los demás) que la programación se trata de comunicación.

En realidad, no es una comunicación normal del día a día basada en el respeto recíproco , los intereses y las apuestas ... se trata más de la lectura de la mente , el tipo de enfermería y algunas discusiones ciertamente están involucradas. También hay mucha negociación , pero no del tipo al que probablemente estés acostumbrado.

En realidad, no vende sh-t para los programadores, debe juego , o les seduce con evidencias pesados y hechos. Si bien esto puede parecer justo para asuntos relevantes de misión crítica , aplique eso a las pequeñas molestias que nadie, ni siquiera el que lo planteó, realmente debería haber importado, y ... bienvenido al infierno de la comunicación .

Si tienes un byte en el mundo exterior (el mundo de la venta de cosas / cerrar tratos / estrechar la mano) es realmente difícil adaptarse de nuevo al tipo de interacción (algo juvenil, algo académica) que experimentan los programadores entre cubículos.

La parte comercial de su plan de estudios se desperdiciará en gran medida , a menos que encuentre una manera de ascender en la escalera de administración más rápido que un gato en llamas.


0

Las habilidades de comunicación son útiles, pero la competencia técnica triunfa sobre todo para los desarrolladores.

Probablemente sería más feliz como ingeniero de aplicaciones, es decir, un ingeniero que ayuda a los clientes a adaptar y utilizar el producto de software producido por desarrolladores "descarados". De esa forma trabajas con software, pero pasas la mayor parte del día hablando.


0

Como ha separado la programación de su interpretación de la comunicación (discutir con la gente) y desea hablar con la gente el 80% del tiempo, la programación no es una buena opción. Tal vez si te encuentras en una situación en la que puedes ser analista, arquitecto, gerente o enlace de clientes a tiempo completo (puedes hablar con clientes y programadores, eres el intérprete (lo siento un poco de humor de Office Space).

Hay fases de proyectos en los que podrías pasar todo el día en el tablero, pero eventualmente, tienes que escribir código. Es una forma de comunicación, pero no como la describiste. Tal vez en una tienda de programación de pares puedas chatear mucho mientras codificas. La mayoría de las veces, debe centrarse en el teclado. Usar auriculares significa que estás rodeado de demasiadas personas que no lo están.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.