Minhas habilidades de comunicação serão desperdiçadas em uma carreira de engenharia de software? [fechadas]

40

Estou na área de engenharia financeira (depois da BA Math e da BA Computer Science) há cerca de 5 anos (20% de análise / programação, 80% de comunicação) e me orgulho da minha capacidade de me comunicar com pessoas e discutir problemas técnicos (por exemplo, interagir com uma equipe). Eu amo essa parte do meu trabalho. Indo para o quadro branco para desenhar idéias abstratas e debater.

No entanto, por muitas razões, quero fazer a transição da minha carreira para uma empresa de tecnologia (engenharia de software), mas tenho muito medo de cair em um trabalho de programação estereotipada em que os programadores codificam com grandes fones de ouvido. Eu certamente sei que isso é apenas um estereótipo, mas eu já testemunhei ambientes semelhantes antes (nas startups) e me assusta pensar que eu estaria migrando para uma carreira de isolamento.

Adoro codificar e pensar algoritmicamente, mas não quero deixar de interagir com as pessoas. Entendo que ter habilidades de comunicação é apenas positivo, mas estou me preparando para o fracasso na felicidade na carreira ao fazer a transição para a engenharia de software. Eu adoraria ouvir quaisquer esclarecimentos e / ou conselhos.

Ryan
fonte
14
Você percebe que as respostas aqui podem ser um pouco tendenciosas, certo?
JB King
2
Absolutamente, mas as respostas até agora foram ótimas e muito informativas.
21711 Ryan
Espero que você perceba que sua pergunta é estranha para pessoas como eu, que são boas em programação, mas estão sendo evitadas pelo RH (e não estão conseguindo aquele emprego de ouro ...) porque elas estão um pouco ausentes no departamento de comunicações. As habilidades de comunicação são definitivamente uma vantagem, especialmente no contexto de um projeto de equipe (reuniões scrum + standup ...) e trabalho a distância. Você também descobrirá que algumas reformulações ocorrem ao revisar os requisitos. Existem algumas responsabilidades que envolvem menos programação e mais coordenação.
James P.
Absolutamente nenhum ..
Louis Rhys
2
Um engenheiro de software que não pode expressar suas idéias tanto em linguagem falada quanto em linguagem escrita não vale nada.
Ramhound 16/08

Respostas:

53

Aqui está o segredo da programação: é quase 100% de comunicação . Uma parte significativa disso está se comunicando com um ser humano; o resto é comunicar o que você acabou de aprender a um computador.

A última parte é a mais fácil das duas. Os computadores fazem exatamente o que lhes dizem e você está sempre em posição de testar se o que você disse está correto.

O primeiro é outra coisa. Diferenças nas terminologias, no entendimento, nas prioridades, de pessoa para pessoa tornam muito difícil obter a mensagem correta para alimentar o computador. As falhas de comunicação nesse nível são muito mais comuns do que as falhas de comunicação entre um programador e um computador.

Bons programadores são bons em se comunicar com o computador; grandes programadores também são bons em se comunicar com as pessoas, por um meio ou por outro.

Aqueles programadores que você vê que nunca saem dos fones de ouvido? Eles ainda estão fazendo essa comunicação, seja por email, rastreador de bugs ou até mesmo por mensageiro. Está tudo acontecendo, caso contrário, eles não podem saber o que dizer ao computador.

Então, sim, suas habilidades de comunicação irão atendê-lo bem.

pdr
fonte
Bom ponto de comunicação como um todo, mas pode mudar a ênfase nas reuniões pessoais para mais privadas e escritas.
JeffO 15/08/11
Se você realmente acredita que a implementação é a mais fácil das duas partes sugeridas, então você está trabalhando com uma equipe ruim ou a implementação que está fazendo é muito fácil. Conte o número de horas de trabalho gastas na implementação versus conversando sobre a implementação: a implementação deve claramente ser 2/3 do total; caso contrário, seu gerente precisa de uma reunião especial com o chefe.
Jonathan Cline IEEE
6
@ Jonathan: Eu distinguiria fortemente entre difícil e demorado.
quer
3
ao longo do tempo, aprendi que a comunicação com um computador é tão difícil quanto os humanos. A maior parte do código que escrevo é lida mais tarde por outra pessoa (que outra pessoa pode ser eu mesmo um mês depois, o que surpreendentemente não dificulta as coisas) - o que, para mim, essencialmente nos faz voltar à comunicação com os seres humanos, apenas em forma escrita e indireta. Código é uma carta para o futuro, codificador é um escritor. Joyce alguém?
Gnat
Qualquer um pode escrever um código que um computador possa entender, um bom programador pode escrever um código que as pessoas entendam.
Michael Brown
23

Os programadores podem gostar de codificar com fones de ouvido grandes (bom, nem todos sabem), mas isso não significa que eles não podem se comunicar, apenas significa que eles não querem ser incomodados naquele momento - não que eles nunca se comunicará.

As habilidades verbais de comunicação ainda são extremamente importantes em reuniões com o restante da equipe, em reuniões ad-hoc, com usuários de negócios, com outras equipes etc.

As habilidades de comunicação por escrito também serão muito importantes quando você enviar um email para seus colegas de trabalho com fones de ouvido grandes, para que eles possam responder mais tarde.

FrustratedWithFormsDesigner
fonte
11
Concordo totalmente com isso. Só uso fones de ouvido para indicar que estou ocupado.
19411 Ivan
7

Parece-me que você deveria procurar um emprego como consultor técnico. Geralmente envolve programação, mas também requer muita comunicação - com clientes, colegas, consultores de outras empresas ... OTOH também significa corrigir muitos problemas técnicos sem realmente escrever código, se você não gosta disso, deve provavelmente procure caminhos diferentes. HTH.

SL Barth - Restabelecer Monica
fonte
2
Você é mesmo um programador?
CenterOrbit 15/08
2
Sim, eu sou. Também sou consultor técnico há um tempo. O que faz você ficar tão chateado com a minha resposta?
SL Barth - Restabelece Monica
Consultor técnico como indivíduo que vai ao encontro de um cliente?
James P.
@ James P. Foi o que eu quis dizer, sim - e foi o que fiz quando era consultor técnico. Ir ao escritório do cliente e ajudá-lo a resolver seus problemas técnicos. Obviamente, os desenvolvedores também precisam de fortes habilidades de comunicação, mas isso já foi discutido extensivamente por outras pessoas aqui.
SL Barth - Restabelece Monica
6

As habilidades de comunicação são extremamente importantes para um desenvolvedor de software. Em algum lugar, existe uma estatística (possivelmente ao lado da estatística que afirma que 68% de todas as estatísticas são compostas) que afirma que a maioria dos projetos de software falha devido à falta de comunicação. Ser a pessoa que pode se comunicar com a empresa (e entender a empresa) em uma equipe de desenvolvimento de software TEM QUE ser um bom lugar para se estar.

jlnorsworthy
fonte
6

Eu mantenho firmemente que minha maior vantagem competitiva sobre outros programadores e tipos de TI que eu sei é a minha capacidade de me comunicar com pessoas que não são fluentes nos conceitos de TI. É a habilidade mais subestimada e subdesenvolvida do membro médio da comunidade de TI e, no entanto, é uma das mais importantes.

Em quase todas as funções imagináveis, em algum momento, você precisará conversar com alguém que não tem quase nenhuma noção do que você faz, e precisará vendê-las do que está fazendo.

Você também pode precisar lidar com os usuários para reunir requisitos para uma especificação - esse tipo especializado de escuta (juntamente com as solicitações e perguntas certas) também é comunicação!

É claro, ele tem mais um benefício - as boas habilidades de comunicação facilitam muito a obtenção de um emprego.

John N
fonte
4

Parabéns. Você tem um futuro brilhante como engenheiro de aplicação e depois como gerente de engenharia de aplicação (FAE Manager).

Como parte dessa profissão destacada, você criará apresentações em powerpoint para clientes de nível I com o texto "Pilha de software" escrito por toda parte e abstrairá projetos muito complexos de engenharia de software em blocos retangulares de cores diferentes, geralmente organizados ao acaso; essas apresentações serão iniciadas pelos principais engenheiros de software nos níveis mais altos de P&D, serão diluídas na mentalidade do cliente de menor denominador comum e subsequentemente coladas novamente nos documentos de requisitos que são apresentados aos principais engenheiros de software nos níveis mais altos de P&D como especificações do tipo "faça ou quebre o negócio". Um de seus bônus dependerá do uso liberal da palavra "nuvem".

Jonathan Cline IEEE
fonte
Deve-se notar que os engenheiros de aplicação normalmente ganham em média 20% a 30% mais do que os projetistas do mesmo nível. Isso ocorre apenas porque, como melhores comunicadores, eles são mais capazes de exigir salários mais altos; enquanto o engenheiro de projeto típico, como um comunicador ruim, normalmente não exige mais. Portanto, o padrão foi definido e os App Engrs riem até o banco, deixando o trabalho mais cedo do que os designers diariamente. E mencionei os almoços fora do escritório, caros e com preços mais altos, enquanto os desenvolvedores têm sorte de comer pizza em uma sala de conferências?
Jonathan Cline IEEE
3

Você ficará melhor com excelentes habilidades de comunicação. Programadores de baixo escalão geralmente são aqueles que não são colocados em projetos interessantes, já que seus gerentes podem não entendê-los também. Essencialmente, se você nunca for ao ar, será rotulado como "o cara estranho no canto".

Mais uma vez, estamos trabalhando em estereótipos, e nem todos os ambientes são assim, mas, pelo menos, boas habilidades de comunicação ajudam a entender melhor os negócios e as pessoas ao seu redor, para que você fique melhor equipado para lidar com problemas complexos em seu ambiente. domínio particular.

Quanto você se comunica depende de você. Seria raro você terminar em uma equipe cheia de programadores com ninguém que queira conversar, mas se você não gosta do humor dos nerds, prepare-se para ser apresentado rapidamente. Além disso, esteja preparado para os inevitáveis ​​programadores socialmente desajeitados. Sempre há pelo menos um.

Jordânia
fonte
3

Indiscutivelmente, a maioria dos projetos de software falha não por problemas técnicos, mas por problemas de comunicação. Escrever um bom código é certamente importante para um engenheiro de software, mas boas habilidades de comunicação são um grande trunfo para uma equipe - e também são mais difíceis de melhorar do que as habilidades de codificação.

Mathias
fonte
2

Atualmente, estou programando com fones de ouvido grandes. Bem, eu estava apenas programando. Claramente, agora estou no StackExchange ... anywho:

É verdade que muita programação é feita em solidariedade. Para programar bem, você precisa desse foco e privacidade. No entanto, você realmente acha que a maior parte do seu tempo é gasta em programação? Muito do seu tempo será dividido entre reuniões de equipe, conversas sobre estratégias, caminhadas, pensamentos, discussões etc. Na verdade, ficar sentado à mesa digitando não será a sua vida inteira. Lembro-me de ler um estudo no meu curso de engenharia de software que os melhores / mais produtivos programadores de uma equipe são os de saída e NÃO os introvertidos.

Bons programadores podem se comunicar bem com sua equipe. Obter e entender requisitos de um líder técnico ou gerente geralmente não é uma tarefa fácil. É preciso ter boas habilidades de comunicação para esclarecer suas tarefas e para se comunicar com a equipe. Se você chegar ao líder técnico ou gerente, as habilidades de comunicação serão fundamentais para manter a equipe unida.

Eu também sou alguém que gosta de ser extrovertido. Eu tenho que admitir, no começo, achei a quantidade de solidariedade no meu trabalho de programação um pouco deprimente. Tomei algumas medidas para tornar o trabalho mais social, principalmente: 1) Recusando almoçar sozinho 2) Fazendo intervalos de ginástica / basquete com os amigos

Um trabalho de programação não deve ser anti-social.

Casey Patton
fonte
2

As habilidades de comunicação definitivamente não serão desperdiçadas. Mesmo se você gasta 80% do seu tempo escrevendo o código do programa, precisa ser claro sobre o que o código faz. A comunicação eficaz com seu cliente (ou líder do projeto) é necessária para garantir que seus esforços não sejam desperdiçados e, na verdade, resultem no que é necessário. Além disso, você poderá explicar seu trabalho, possíveis problemas com o design, implementações mais simples etc. com mais facilidade para aqueles menos familiarizados com a programação. Por fim, ao programar software interativo para o usuário, as habilidades de comunicação seriam bastante úteis no design de uma interface do usuário que obtém as informações corretas de uma maneira amigável e compreensível. Também o ajudará a obter as informações corretas do usuário para executar o trabalho.

yoozer8
fonte
1

Concordo com todos aqui que argumentam que a comunicação é fundamental na programação de computadores. Sinceramente, acho que, pelo que é descrito, você será um ótimo programador líder ou mais do tipo 'engenheiro de software'. Comecei como TI geral em uma empresa e, assim que pude provar minhas habilidades de programação, mudei para programador, sendo muito sociável e orientado para equipes, agora sou o programador líder em dois projetos. Você descobrirá que, quanto mais alto você chega na cadeia de programação, mais quadro branco e solução de problemas você começará a fazer.

Se sua personalidade tem a característica de 'liderança' (que é o que você está sugerindo), você chegará ao topo muito rapidamente. Apenas desde que você esteja em uma empresa que permita que você cresça dessa maneira.

Habilidades sociais, resolução de problemas e boa programação geralmente são mais raras do que você imagina. Os empregadores matam por esse tipo de habilidade. Eu acho que você está no caminho certo. Apenas mantenha o bom trabalho!

CenterOrbit
fonte
1

Concordo com todo mundo que diz que há muita comunicação no desenvolvimento de software, e acrescentarei que mesmo escrever um bom código requer boas habilidades de comunicação.

Escrever código correto é importante; escrever código que outras pessoas possam entender é sem dúvida muito mais importante. Se o seu código contiver alguns bugs, mas estiver escrito de tal maneira que eu possa entender facilmente o que está acontecendo, não será difícil encontrar e corrigir os bugs. Se o seu código está completamente correto, mas está escrito de tal maneira que não tenho tanta certeza de que o entendo, então não posso ter certeza de que está correto, e as chances de modificá-lo corretamente no futuro são muito menores. .

Caleb
fonte
1

Claro que uma boa comunicação é importante! O que eu focaria em se tornar um excelente professor. Programadores realmente eficazes podem explicar a base de algo que levou anos para entender em uma ligação telefônica de 15 minutos. Na mesma conversa, você deve explicar os detalhes em termos não técnicos, para que a pessoa do outro lado da linha possa tomar uma decisão educada que seja melhor para os negócios durante um longo período de tempo.

Dylan Valade
fonte
1

Depende de onde você vai. Conheço uma empresa de comércio de quantias em que você passaria muito tempo no quadro branco, fazendo brainstorming com PhDs. Conheço uma empresa de consultoria de prestígio onde você também se comunica bastante, mas com pessoas que não têm formação técnica ... Conheço uma grande empresa da Fortune 100 que não seja de software, na qual você também estaria fazendo muito de se comunicar, mas seria principalmente jogar política.

OTOH, muitas empresas iniciantes e de produtos de software precisam de pessoas para a codificação inativa. Claro, você comunica alguns, mas levantar-se para fazer uma apresentação que vende sua empresa é muito diferente do que apenas conversar com outros codificadores ...

A única área em que a comunicação realmente entra em jogo é a engenharia de vendas / consultoria técnica / etc ... É aí que, se você é realmente um excelente comunicador (e não apenas um engenheiro de SW que não é socialmente desajeitado), você terá pagou um bom dinheiro. Há algumas vendas envolvidas lá também.

sujeira vermelha
fonte
0

Bem, do ponto de vista das pessoas que vêm de fora ... Não posso dizer (como todos os outros) que a programação é toda sobre comunicação.

Não é realmente normal, a comunicação cotidiana com base na reciprocidade respeito e interesses , e estacas ... é mais sobre a leitura da mente , tipo de enfermagem , e alguns argumentando está certamente envolvida. Também há muita negociação , mas não do tipo com o qual você provavelmente está acostumado.

Você realmente não vende sh-t para programadores, precisa jogá- los ou seduzi-los com fortes evidências e fatos. Embora isso possa parecer justo para questões relevantes de missão crítica , aplique isso a pequenos incômodos que ninguém, nem mesmo quem o criou, realmente deveria ter se importado, e ... bem-vindo ao inferno da comunicação .

Se você recebeu um byte no mundo exterior (o mundo das vendas / acordos de fechamento / mundo das mãos trêmulas) , é realmente difícil se adaptar ao tipo de interação (um pouco juvenil, um tanto acadêmica) que os programadores experimentam nos cubículos.

A parte comercial do seu currículo será muito desperdiçada , a menos que você encontre uma maneira de subir a escada da gerência mais rapidamente do que um gato em chamas.

ZJR
fonte
0

As habilidades de comunicação são úteis, mas a competência técnica supera tudo o que está errado para os desenvolvedores.

Você provavelmente ficaria mais feliz como engenheiro de aplicativos, ou seja, um engenheiro que ajuda os clientes a adaptar e utilizar o produto de software produzido por desenvolvedores "de cabeça para baixo". Dessa forma, você trabalha com software, mas passa a maior parte do dia conversando.

Jim In Texas
fonte
0

Como você separou a programação da sua interpretação da comunicação (discutindo com as pessoas) e deseja conversar com as pessoas 80% das vezes, a programação não é uma boa escolha. Talvez se você se deparar com uma situação em que possa ser analista em tempo integral, arquiteto, gerente ou ligação com clientes (você começa a conversar com clientes e programadores, você é o intérprete (desculpe um pouco do humor do Office Space).

Existem fases de projetos em que você pode passar o dia inteiro no quadro, mas, eventualmente, você precisa escrever um código. É uma forma de comunicação, mas não como você descreveu. Talvez em uma loja de programação em pares você possa conversar bastante enquanto codifica. Na maioria das vezes, você precisa se concentrar no teclado. Usar fones de ouvido significa que você está cercado por muitas pessoas que não o são.

JeffO
fonte