Será que 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 (isto é, interagindo com uma equipe). Eu amo essa parte do meu trabalho. Indo para o quadro branco para desenhar idéias abstratas e brainstorm.

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 estereotipado em que os programadores codificam com grandes fones de ouvido. Eu certamente sei que este é apenas um estereótipo, mas eu já presenciei ambientes semelhantes antes (em startups) e me assusta pensar que eu estaria migrando para uma carreira de isolamento.

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

    
por Ryan 19.08.2011 / 01:37
fonte

17 respostas

53

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

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

O primeiro é outra coisa. Diferenças nas terminologias, na compreensão, nas prioridades, de pessoa para pessoa tornam muito difícil obter a mensagem correta para alimentar o computador. As falhas de comunicação neste 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 são bons em se comunicar com pessoas também, por um meio ou outro.

Esses programadores que você vê nunca saem de seus fones de ouvido? Eles ainda estão fazendo essa comunicação, seja via e-mail ou um bug-tracker, ou até mesmo messenger. Está tudo acontecendo, caso contrário, eles não podem saber o que dizer ao computador para fazer.

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

    
por 28.09.2011 / 20:31
fonte
23

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

As habilidades de comunicação verbal ainda são extremamente importantes em reuniões com o resto 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 e-mails para seus colegas de trabalho com fones de ouvido grandes, para que eles possam responder mais tarde.

    
por 15.08.2011 / 20:12
fonte
7

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

    
por 15.08.2011 / 20:32
fonte
6

As habilidades de comunicação são extremamente importantes para um desenvolvedor de software. Em algum lugar há um stat (possivelmente próximo ao stat que diz que 68% de todas as estatísticas são inventadas) que diz que a maioria dos projetos de software falham devido à má comunicação. Ser a pessoa que pode se comunicar com a empresa (e entender o negócio) em uma equipe de desenvolvimento de software deve ser um bom lugar para se estar.

    
por 15.08.2011 / 20:07
fonte
6

Mantenho firmemente que minha maior vantagem competitiva em relação a outros programadores e tipos de TI que conheço é a minha capacidade de me comunicar com pessoas que não são fluentes em conceitos de TI. É a habilidade mais subestimada e subdesenvolvida pelo membro médio da comunidade de TI e, no entanto, é uma das mais importantes.

Em quase todos os papéis imagináveis, em algum momento, você precisará conversar com alguém que quase não entende o que você faz, e você precisará poder vendê-lo naquilo que você é. está fazendo.

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

Ele tem mais um benefício, é claro - boas habilidades de comunicação facilitam bastante a obtenção de um emprego.

    
por 15.08.2011 / 23:28
fonte
4

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

Como parte dessa profissão, você criará apresentações em powerpoint para clientes de nível 1 com o texto "Software Stack" escrito em todas as partes e abstrairá projetos de engenharia de software muito complexos em blocos retangulares de cores diferentes, muitas vezes organizados ao acaso; essas apresentações serão iniciadas a partir dos principais engenheiros de software nos níveis mais altos de P & D, serão enfraquecidas na mentalidade de menor denominador comum do cliente e, posteriormente, serão coladas em documentos de requisitos que são apresentados aos principais engenheiros de software da os níveis mais altos de P & D como especificações de fazer ou quebrar o negócio. Um de seus bônus dependerá do uso liberal da palavra "nuvem".

    
por 15.08.2011 / 23:41
fonte
3

Você ficará melhor com ótimas habilidades de comunicação. Os programadores heads-down são frequentemente aqueles que não são colocados nos projetos empolgantes, já que seus gerentes podem não entendê-los também. Essencialmente, se você nunca procura ar, você será rotulado como "o cara esquisito no canto".

Mais uma vez, estamos trabalhando em estereótipos, e nem todo ambiente é assim, mas, no mínimo, boas habilidades de comunicação ajudam você a entender melhor os negócios e as pessoas ao seu redor. problemas em seu domínio específico.

O quanto você se comunica depende de você. Seria raro para você acabar em uma equipe cheia de programadores de heads-down com ninguém que queira falar, mas se você não é parente de humor nerd, prepare-se para ser apresentado rapidamente. Além disso, esteja preparado para os inevitáveis programadores socialmente desajeitados. Sempre tem pelo menos um.

    
por 15.08.2011 / 20:07
fonte
3
Provavelmente, a maioria dos projetos de software falha não por causa de problemas técnicos, mas por causa de problemas de comunicação. Escrever um código excelente é certamente importante para um engenheiro de software, mas boas habilidades de comunicação são um grande trunfo para uma equipe - e também mais difícil de melhorar do que as habilidades de codificação.

    
por 15.08.2011 / 20:16
fonte
2

Atualmente estou programando com fones de ouvido grandes. Bem, eu estava apenas programando. Claramente estou agora 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 tempo é gasto em programação? Muito do seu tempo será dividido entre as reuniões da equipe, conversa de estratégia, caminhar, pensar, discutir etc. Na verdade, sentar-se à sua mesa de digitação não será toda a sua vida. Lembro-me de ler um estudo no meu curso de engenharia de software que os melhores / mais produtivos programadores em uma equipe são os que saem e não os introvertidos.

Bons programadores podem se comunicar bem com sua equipe. Obter e entender os requisitos de um líder técnico ou gerente muitas vezes não é uma tarefa fácil. É preciso ter boas habilidades de comunicação para esclarecer suas tarefas, bem como para se comunicar com a equipe. Se você trabalhar com o 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, eu 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-se a almoçar sozinho 2) Fazer pausas na academia / basquete com amigos

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

    
por 15.08.2011 / 20:17
fonte
2

As habilidades de comunicação definitivamente não serão desperdiçadas. Mesmo se você gastar 80% do seu tempo escrevendo código de programa, você precisa ter clareza sobre o que o código faz. Uma 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ê será capaz de explicar seu trabalho, possíveis problemas com design, implementações mais simples, etc, mais facilmente para aqueles menos familiarizados com a programação. Por fim, ao programar software interativo com o usuário, as habilidades de comunicação seriam bastante úteis para projetar uma interface de usuário que obtenha as informações corretas de uma maneira amigável ao usuário e que seja entendida. Ele também ajudará você a obter as informações corretas do usuário para executar o trabalho.

    
por 15.08.2011 / 21:01
fonte
1

Concordo com todos aqui que argumentam que a comunicação é fundamental na programação de computadores. Acredito sinceramente que, do que é descrito, você será um grande programador líder ou mais do tipo "engenheiro de software". Comecei como TI geral em uma empresa e assim que pude comprovar minhas habilidades de programação, transicionei para o programador, sendo que sou muito social e orientado para a equipe. Agora sou o principal programador em dois projetos. Você descobrirá que quanto mais alto você chegar na cadeia de programação, mais a resolução e a resolução de problemas começarão a ser feitas.

Se a sua personalidade tem o traço de 'liderança' (que é o que você está insinuando), você chegará ao topo muito rapidamente. Apenas informando que você está em uma empresa que permite que você cresça dessa maneira.

Habilidades sociais, resolução de problemas e boa programação costumam ser 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!

    
por 15.08.2011 / 20:49
fonte
1

Concordo com todos os outros que dizem que há bastante comunicação no desenvolvimento de software e acrescentarei que até 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 contém alguns bugs, mas está escrito de forma que eu possa entender facilmente o que está acontecendo, não será difícil encontrar e consertar os bugs. Se o seu código está completamente correto, mas escrito de tal forma que eu não estou tão certo de que entenda, então eu não posso realmente ter certeza de que está correto, e as chances de que eu possa modificá-lo no futuro são muito menores .

    
por 15.08.2011 / 21:02
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 ser entendido em um telefonema 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 instruída que seja melhor para o seu negócio por um longo período de tempo.

    
por 15.08.2011 / 21:29
fonte
1

Depende de onde você vai. Eu conheço uma empresa de negociação quântica onde você gastaria muito tempo no quadro, fazendo brainstorming com PhDs. Eu conheço uma empresa de consultoria de prestígio onde você também faria muita comunicação, mas com pessoas que não têm experiência em tecnologia ... Eu conheço uma grande empresa não pertencente à área de software da Fortune 100, onde você também faria muito de comunicação, mas seria principalmente jogar política.

OTOH, muitas startups e empresas de produtos de software precisam de pessoas para codificação heads-down. Claro, você comunica alguns, mas levantar-se para fazer uma apresentação que venda sua empresa é muito diferente do que conversar com outros programadores ...

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

    
por 16.08.2011 / 14:01
fonte
0

Oh, bem, do ponto de vista das pessoas vindas de fora ... eu não posso dizer (como todos os outros fazem) que programação é toda sobre comunicação.

Não é realmente uma comunicação do dia-a-dia com base no recíproco respeito , interesses e limites . .. é mais sobre leitura da mente , tipo enfermagem , e algumas discussões certamente estão envolvidas. Há muita negociação também, mas não do tipo que você provavelmente está acostumado.

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

Se você tem um byte no mundo exterior é muito difícil se adaptar ao tipo de > (um pouco juvenis, um tanto acadêmicos) os programadores de interação experimentam através dos cubículos.

A parte empresarial do seu currículo será desperdiçada muito , a menos que você encontre uma maneira de subir a hierarquia de gerenciamento mais rapidamente do que gato em chamas.

    
por 16.08.2011 / 03:34
fonte
0

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

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

    
por 16.08.2011 / 04:08
fonte
0

Como você separou a programação da sua interpretação de comunicação (discutindo com as pessoas) e deseja conversar com as pessoas 80% do tempo, a programação não é uma boa escolha. Talvez, se você entrar em uma situação em que possa ser analista em tempo integral, arquitetos, gerentes ou liasons de clientes (você pode conversar com clientes e programadores, você é o intérprete).

Existem fases de projetos onde você pode passar o dia todo no quadro, mas eventualmente, você tem que escrever código. É uma forma de comunicação, mas não como você descreveu. Talvez em uma loja de programação de pares você possa conversar muito 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 são.

    
por 28.09.2011 / 21:07
fonte