¿Se perderá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% comunicándome) y me enorgullezco de mi capacidad para comunicarme con personas y discutir problemas técnicos (Es decir, interactuar con un equipo). Me encanta esta parte de mi trabajo. Ir a la pizarra para dibujar ideas abstractas y generar ideas.

Sin embargo, por muchas razones, quiero cambiar mi carrera a una empresa de tecnología (ingeniería de software), pero tengo un gran temor de caer en un trabajo de programación estereotipado en el que los programadores codifican con grandes auriculares. Ciertamente, sé que esto es solo un estereotipo, pero he visto 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 carrera con la transición a la ingeniería de software. Me encantaría escuchar cualquier aclaración y / o consejo.

    
pregunta Ryan 19.08.2011 - 01:37

17 respuestas

53

Aquí está el secreto sobre la programación: es casi un 100% de comunicación . Una parte significativa de eso es la comunicación 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 usted siempre está en condiciones de probar que lo que 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 obtener el mensaje correcto para enviar a la computadora. Las fallas en este nivel son mucho más comunes que las fallas 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 a través de correo electrónico o un rastreador de errores, o incluso un mensajero. Todo está sucediendo, de lo contrario no pueden saber qué decirle a la computadora que haga.

Entonces, sí, tus habilidades de comunicación te servirán bien.

    
respondido por el pdr 28.09.2011 - 20:31
23

A los programadores les gustaría programar con los auriculares grandes (bueno, no todos lo hacen), pero eso no significa que no puedan comunicarse, solo significa que no quieren que los molesten en ese momento , no es que nunca se comuniquen.

Las habilidades de comunicación verbal son todavía extremadamente importantes en las reuniones con el resto del equipo, en las reuniones ad-hoc, con los usuarios de negocios, con otros equipos, etc.

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

    
respondido por el FrustratedWithFormsDesigner 15.08.2011 - 20:12
7

Me parece que debes 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 código, si no le gusta, debería Probablemente busques diferentes caminos. HTH.

    
respondido por el S.L. Barth 15.08.2011 - 20:32
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.

    
respondido por el jlnorsworthy 15.08.2011 - 20:07
6

Sostengo 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 subdesarrollada 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ás hablar con alguien que casi no comprende lo que haces, y tendrás que poder venderlo en lo que sea. re haciendo.

Es posible que también deba tratar con los usuarios para reunir los requisitos para una especificación. ¡Ese tipo de escucha especializada (junto con las preguntas y los avisos correctos) también es comunicación!

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

    
respondido por el John N 15.08.2011 - 23:28
4

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

Como parte de esta excelente profesión, creará presentaciones en powerpoint para clientes de nivel I con el texto "Software Stack" escrito en ellas y resumirá los diseños de ingeniería de software muy complejos en bloques rectangulares de diferentes colores, a menudo dispuestos al azar; estas presentaciones se iniciarán desde los principales ingenieros de software en los niveles más altos de R & D, se diluirán hacia la mentalidad del cliente con el denominador más bajo común y, posteriormente, se volverán a pegar en los documentos de requisitos que se presentan a los principales ingenieros de software en el los niveles más altos de R & D como especificaciones de hacer o romper el negocio. Una de tus bonificaciones dependerá del uso liberal de la palabra "nube".

    
respondido por el Jonathan Cline IEEE 15.08.2011 - 23:41
3

Estarás mejor con grandes habilidades de comunicación. Los programadores de cabeza abajo son a menudo los que no se ponen en los proyectos interesantes, ya que sus gerentes podrían no entenderlos también. Esencialmente, si nunca tomas el aire, te encasillarán como "el tipo raro en la esquina".

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

¿Cuánto se comunica usted depende de usted? Sería raro que termines en un equipo lleno de programadores con la cabeza abajo, con nadie que quiera hablar, pero si no estás familiarizado con el humor nerd, prepárate para ser introducido rápidamente. Además, prepárate para los inevitables programadores socialmente torpes. Siempre hay al menos uno.

    
respondido por el Jordan 15.08.2011 - 20:07
3

Podría decirse que la mayoría de los proyectos de software fallan no por problemas técnicos, sino por problemas de comunicación. Escribir un buen 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.

    
respondido por el Mathias 15.08.2011 - 20:16
2

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

Es cierto que mucha programación se hace en solidaridad. Para poder programar bien, NECESITA ese enfoque y privacidad. Sin embargo, ¿realmente crees que la mayor parte de tu tiempo se gasta en programación? Gran parte de su tiempo se dividirá entre reuniones de equipo, charlas de estrategia, caminar, pensar, discutir, etc. En realidad, escribir en su escritorio no será toda su vida. Recuerdo haber leído un estudio en mi curso de ingeniería de software en el que los programadores mejores / más productivos de 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 requieren buenas habilidades de comunicación para aclarar sus tareas, así como para comunicarse con el equipo. Si trabajas hasta llegar a un jefe o gerente técnico, las habilidades de comunicación serán fundamentales para mantener unido al equipo.

Yo también soy alguien que ama ser extrovertido. Debo admitir que, al principio, encontré la cantidad de solidaridad en mi trabajo de programación un poco deprimente. Aunque di algunos pasos para hacer que el trabajo fuera más social, principalmente: 1) Negarse a comer solo 2) Tomar descansos de gimnasia / baloncesto con amigos

Un trabajo de programación no debe ser antisocial.

    
respondido por el Casey Patton 15.08.2011 - 20:17
2

Las habilidades de comunicación definitivamente no serán desperdiciadas. Incluso si pasa el 80% de su tiempo escribiendo el código del programa, debe tener claro qué hace el código. La comunicación efectiva con su cliente (o líder del proyecto) es necesaria para garantizar que sus esfuerzos no se desperdicien, y en realidad resulten en lo que se requiere. Además, podrá explicar su trabajo, posibles problemas con el diseño, implementaciones más simples, etc., más fácilmente para 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 entender y que se entienda. También le ayudará a obtener la información correcta del usuario para realizar el trabajo.

    
respondido por el yoozer8 15.08.2011 - 21:01
1

Estoy de acuerdo con todos los que están 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, pasé a ser programador, ya que soy muy social y estoy orientado hacia el equipo. Ahora soy el programador líder en dos proyectos. Encontrará que cuanto más alto llegue a la cadena de programación, más pizarrón y solución de problemas empezará a hacer.

Si tu personalidad tiene el rasgo de "liderazgo" (que es lo que estás insinuando), subirás a la cima muy rápido. Solo teniendo en cuenta que está en una empresa que le permite aumentar 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!

    
respondido por el CenterOrbit 15.08.2011 - 20:49
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 el código correcto es importante; Escribir un 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 pueda entender fácilmente lo que está pasando, 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 menores. .

    
respondido por el Caleb 15.08.2011 - 21:02
1

¡Por supuesto que una buena comunicación es importante! En lo que me enfocaré es en ser un excelente maestro. Los programadores realmente efectivos pueden explicar la base de algo que tardó años en entenderse 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.

    
respondido por el Dylan Valade 15.08.2011 - 21:29
1

Depende de a dónde vayas. Conozco una empresa de comercio cuantitativo en la que pasarías mucho tiempo en la pizarra, haciendo una lluvia de ideas con los doctores. Conozco a una prestigiosa firma de consultoría en la que también se comunicaría mucho, pero con personas que no tenían experiencia en tecnología ... Conozco a una gran firma de Fortune 100 que no tiene un programa en el que también estaría haciendo mucho de comunicarse, pero sería principalmente jugar a la política.

OTOH, una gran cantidad de empresas de inicio y de productos de software necesitan personas para la codificación con la cabeza hacia abajo. Claro, usted se comunica , pero levantarse para entregar una presentación que venda a su empresa es muy diferente a solo hablar con otros programadores ...

El área en la que la comunicación realmente entra en juego es la ingeniería de ventas / consultoría técnica / etc ... Ahí es donde, si usted es verdaderamente , un excelente comunicador (y no solo un ingeniero de SW que no es socialmente torpe), recibirás un buen dinero pagado. También hay algunas ventas involucradas allí.

    
respondido por el red-dirt 16.08.2011 - 14:01
0

Oh, bueno, desde el punto de vista de las personas que vienen de fuera ... Realmente no puedo decir (como hacen todos los demás) que la programación tiene que ver con la comunicación.

No es realmente normal la comunicación diaria basada en el respeto recíproco, y los intereses , y apuestas . ... es más sobre lectura de la mente , tipo de enfermería , y algo de discusión ciertamente está involucrado. También hay mucho negociación , pero no del tipo al que probablemente estás acostumbrado.

Realmente no vendes sh-t a los programadores, debes jugarlos , o seducirlos con evidencias y hechos pesados. Si bien esto puede parecer justo para temas relevantes de misión crítica , aplíquelo a las pequeñas molestias que nadie, ni siquiera el que lo planteó, realmente debería haberse preocupado, y. .. bienvenido al infierno de la comunicación .

Si tienes un byte en el mundo exterior (el material de venta / cierre de acuerdos / mundo de la mano) es realmente difícil adaptarse al tipo de > (algo juvenil, algo académico) la experiencia de los programadores en cubículos.

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

    
respondido por el ZJR 16.08.2011 - 03:34
0

Las habilidades de comunicación son útiles, pero la competencia técnica supera a todos 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 los desarrolladores de 'heads down'. De esa manera usted trabaja con software, pero pasa la mayor parte del día hablando.

    
respondido por el Jim In Texas 16.08.2011 - 04:08
0

Ya que ha separado la programación de su interpretación de la comunicación (hablar 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 metes en una situación en la que puedes ser analista a tiempo completo, arquitecto, administrador o coordinador de clientes (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 la pizarra, pero eventualmente, tienes que escribir el código. Es una forma de comunicación, pero no como la describiste. Tal vez en una tienda de programación de pares puedes chatear mucho mientras codificas. La mayoría de las veces, necesitas concentrarte en el teclado. Usar audífonos significa que estás rodeado de demasiadas personas que no lo están.

    
respondido por el JeffO 28.09.2011 - 21:07

Lea otras preguntas en las etiquetas