Le mie capacità comunicative saranno sprecate in una carriera di ingegneria del software? [chiuso]

40

Sono stato nell'arena di ingegneria finanziaria (dopo BA Math e BA Computer Science) per circa 5 anni (20% di analisi / programmazione, 80% di comunicazione) e sono orgoglioso della mia capacità di comunicare con le persone e discutere problemi tecnici (cioè interagendo con una squadra). Amo questa parte del mio lavoro. Andare al white board per disegnare idee astratte e brainstorming.

Tuttavia, per molte ragioni, voglio passare la mia carriera in una società tecnologica (ingegneria del software) ma temo profondamente di cadere in un lavoro di programmazione stereotipato in cui i programmatori codificano con grandi cuffie. Sicuramente so che questo è solo uno stereotipo, ma ho visto ambienti simili prima (alle startup) e mi spaventa pensare che sarei migrato verso una carriera di isolamento.

Adoro programmare e pensare in modo algoritmico, ma non voglio rinunciare ad interagire con le persone. Capisco che avere capacità comunicative sia solo un aspetto positivo, ma mi sto preparando per il fallimento della felicità di carriera attraverso la transizione all'ingegneria del software. Mi piacerebbe sentire qualsiasi chiarimento e / o consiglio.

    
posta Ryan 19.08.2011 - 01:37
fonte

17 risposte

53

Ecco il segreto della programmazione: è quasi al 100% di comunicazione . Una parte significativa di ciò è comunicare con un umano; il resto è comunicare ciò che hai appena imparato su un computer.

L'ultima parte è il più facile dei due. I computer fanno esattamente quello che dicono e tu sei sempre in grado di verificare che quello che hai detto sia corretto.

Il primo è qualcos'altro. Le differenze nelle terminologie, nella comprensione, nelle priorità, da persona a persona rendono molto difficile ottenere il messaggio corretto da alimentare al computer. Le comunicazioni a questo livello sono molto più comuni delle comunicazioni errate tra un programmatore e un computer.

I bravi programmatori sono bravi a comunicare con il computer; I grandi programmatori sono bravi a comunicare anche con le persone, con un mezzo o un altro.

Quei programmatori che vedi non escono mai dalle loro cuffie? Stanno ancora facendo questa comunicazione, che si tratti di email o di un bug tracker o addirittura di un messenger. Succede tutto, altrimenti non possono sapere cosa dire al computer.

Quindi sì, le tue capacità comunicative ti saranno utili.

    
risposta data 28.09.2011 - 20:31
fonte
23

I programmatori potrebbero voler programmare con le cuffie grandi (beh, non tutti lo fanno), ma ciò non significa che non possano comunicare, significa solo che non vogliono essere disturbati a quel momento - non che non comunicheranno mai.

Le capacità di comunicazione verbale sono ancora estremamente importanti negli incontri con il resto del team, in riunioni ad hoc, con utenti aziendali, con altri team, ecc.

Le capacità di comunicazione scritta saranno molto importanti anche quando invii email ai tuoi colleghi con grandi cuffie in modo che possano rispondere in seguito.

    
risposta data 15.08.2011 - 20:12
fonte
7

A me sembra che dovresti cercare un lavoro come consulente tecnico. Spesso implica la programmazione, ma richiede anche molte comunicazioni - con i clienti, con colleghi, consulenti di altre aziende ... OTOH significa anche risolvere molti problemi tecnici senza effettivamente scrivere codice, se non ti piace dovresti probabilmente cerca percorsi diversi. HTH.

    
risposta data 15.08.2011 - 20:32
fonte
6

Le capacità di comunicazione sono estremamente importanti per uno sviluppatore di software. Da qualche parte c'è una statistica (forse accanto alla statistica che dice che il 68% di tutte le statistiche sono composte) che dice che la maggior parte dei progetti software falliscono a causa della scarsa comunicazione. Essere la persona in grado di comunicare con il business (e capire il business) su un team di sviluppo software deve essere un buon posto dove stare.

    
risposta data 15.08.2011 - 20:07
fonte
6

Ritengo fermamente che il mio più grande vantaggio competitivo rispetto agli altri programmatori e ai tipi di IT che conosco sia la mia capacità di comunicare con persone che non conoscono perfettamente i concetti IT. È l'abilità più sottovalutata e sottosviluppata dal membro medio della comunità IT, eppure è una delle più importanti.

In quasi ogni ruolo immaginabile, a un certo punto, avrai bisogno di parlare con qualcuno che non ha quasi nessuna comprensione di quello che fai, e dovrai essere in grado di venderli su quello che sei tu " stai facendo.

Potresti anche aver bisogno di trattare con gli utenti per raccogliere i requisiti per una specifica - che il tipo specializzato di ascolto (insieme ai prompt e alle domande giusti) sia anche la comunicazione!

Ha anche un ulteriore vantaggio, ovviamente: buone capacità di comunicazione rendono il lavoro in un primo momento molto più semplice.

    
risposta data 15.08.2011 - 23:28
fonte
4

Congratulazioni. Hai un futuro brillante come ingegnere applicativo e poi come direttore tecnico dell'applicazione (FAE Manager).

Come parte di questa professione di sterlina, creerai presentazioni powerpoint per i clienti di livello I con il testo "Software Stack" scritto su di esse e disegni di ingegneria software molto complessi in blocchi rettangolari di colori diversi, spesso disposti a casaccio; queste presentazioni saranno avviate dai principali ingegneri del software ai livelli più alti della R & D, verranno annacquate nella mentalità del cliente con il minimo comune denominatore e successivamente incollate nei documenti dei requisiti che verranno presentati ai principali ingegneri del software presso il i migliori livelli di R & D come specifiche make-or-break-the-business. Uno dei tuoi bonus dipenderà dall'uso liberale della parola "cloud".

    
risposta data 15.08.2011 - 23:41
fonte
3

Starai meglio con ottime capacità di comunicazione. I programmatori a testa bassa sono spesso quelli che non sono inseriti nei progetti eccitanti, dal momento che i loro manager potrebbero non capirli. In sostanza, se non vieni su per aria, verrai classificato come "il tipo strano nell'angolo".

Ancora una volta, stiamo lavorando su stereotipi, e non tutti gli ambienti sono così, ma per lo meno, buone capacità di comunicazione ti aiutano a capire meglio il business e le persone intorno a te, così sarai meglio equipaggiato per gestire complessi problemi nel tuo dominio particolare.

Quanto comunichi dipende da te. Sarebbe raro che tu finissi in una squadra che è piena di programmatori a testa in giù con nessuno che vuole parlare, ma se non sei affine all'umorismo da nerd, preparati a essere presentato rapidamente. Inoltre, sii preparato per gli inevitabili programmatori socialmente imbarazzanti. Ce n'è sempre almeno uno.

    
risposta data 15.08.2011 - 20:07
fonte
3

Probabilmente, la maggior parte dei progetti software non riesce a causa di problemi tecnici, ma a causa di problemi di comunicazione. Scrivere un ottimo codice è certamente importante per un ingegnere del software, ma le buone capacità comunicative sono un enorme vantaggio per un team e anche più difficile da migliorare rispetto alle capacità di codifica.

    
risposta data 15.08.2011 - 20:16
fonte
2

Attualmente sto programmando con grandi cuffie. Beh, stavo solo programmando. Chiaramente sono ora su StackExchange ... anywho:

È vero che molta programmazione è fatta in solidarietà. Per programmare bene, è necessario concentrarsi su questo aspetto e sulla privacy. Tuttavia, pensi davvero che la maggior parte del tuo tempo sia speso nella programmazione? Gran parte del tuo tempo sarà suddiviso tra riunioni di gruppo, discussioni di strategia, camminare, pensare, discutere ecc. In realtà sedere alla scrivania digitando non sarà tutta la tua vita. Ricordo di aver letto uno studio nel mio corso di ingegneria del software che i programmatori migliori / più produttivi di una squadra sono quelli in uscita e NON gli introversi.

I bravi programmatori possono comunicare bene con il proprio team. Ottenere e comprendere i requisiti da un responsabile tecnico o manager non è spesso un compito facile. Occorrono buone capacità comunicative per chiarire i tuoi compiti e per comunicare con il team. Se lavori per diventare lead o manager tecnico, le capacità comunicative saranno fondamentali per tenere unita la squadra.

Anch'io sono una persona che ama essere estroverso. Devo ammettere, all'inizio, ho trovato la quantità di solidarietà nel mio lavoro di programmazione un po 'deprimente. Ho fatto alcuni passi per rendere il lavoro più sociale, principalmente: 1) Rifiutarsi di pranzare da solo 2) Fare pause palestra / basket con gli amici

Un lavoro di programmazione non dovrebbe essere antisociale.

    
risposta data 15.08.2011 - 20:17
fonte
2

Le abilità comunicative non saranno sicuramente sprecate. Anche se passi l'80% del tuo tempo a scrivere il codice del programma, devi essere chiaro su cosa fa il codice. Una comunicazione efficace con il cliente (o il capo progetto) è necessaria per garantire che i tuoi sforzi non vengano sprecati e che in realtà ciò che viene richiesto. Inoltre, sarai in grado di spiegare il tuo lavoro, i potenziali problemi con la progettazione, le implementazioni più semplici, ecc. Più facilmente a coloro che hanno meno familiarità con la programmazione. Infine, quando si programma un software interattivo per l'utente, le capacità di comunicazione sarebbero molto utili nella progettazione di un'interfaccia utente che raccolga le informazioni corrette in un modo intuitivo che sarà compreso. Ti aiuterà anche a ottenere le informazioni corrette dall'utente per eseguire il lavoro.

    
risposta data 15.08.2011 - 21:01
fonte
1

Sono d'accordo con tutti qui che sostiene che la comunicazione è fondamentale nella programmazione di computer. Onestamente penso che da quanto descritto, farai un grande programmatore capo o più del tipo 'ingegnere del software'. Ho iniziato come IT generale in un'azienda e non appena sono stato in grado di dimostrare le mie capacità di programmazione sono passato al programmatore, essendo molto socievole e orientato al team, ora sono il programmatore principale di due progetti. Scoprirai che più alto è il numero della catena di programmazione, più lavagna bianca e problem solving inizierai a fare.

Se la tua personalità ha il tratto di "leadership" (che è ciò a cui stai suggerendo), salirai in cima molto velocemente. Ti basta fornire che ti trovi in un'azienda che ti consente di salire in quel modo.

Le abilità sociali, il problem solving e la buona programmazione sono spesso più rari di quanto si possa pensare. I datori di lavoro uccidono per questo tipo di abilità. Penso che sia sulla strada giusta. Continua così!

    
risposta data 15.08.2011 - 20:49
fonte
1

Sono d'accordo con tutti gli altri che dicono che c'è molta comunicazione nello sviluppo del software, e aggiungerò che anche scrivere un buon codice richiede buone capacità di comunicazione.

Scrivere codice corretto è importante; scrivere codice che altre persone possano capire è probabilmente molto più importante. Se il tuo codice contiene alcuni bug, ma è scritto in modo che io possa capire facilmente cosa sta succedendo, non sarà difficile per me trovare e correggere i bug. Se il tuo codice è completamente corretto ma scritto in modo tale da non essere così sicuro di averlo capito, allora non posso essere certo che sia corretto, e le probabilità che io possa modificarlo correttamente in futuro sono molto inferiori .

    
risposta data 15.08.2011 - 21:02
fonte
1

Ovviamente una buona comunicazione è importante! Quello su cui vorrei concentrarmi è diventare un eccellente insegnante. I programmatori davvero efficaci possono spiegare le fondamenta di qualcosa che ha richiesto anni per essere compreso in una telefonata di 15 minuti. Nella stessa conversazione devi spiegare i dettagli in termini non tecnici in modo che la persona all'altro capo della linea possa prendere una decisione istruita che sia la soluzione migliore per la loro attività per un lungo periodo di tempo.

    
risposta data 15.08.2011 - 21:29
fonte
1

Dipende da dove vai. Conosco una società di trading quantitativa in cui trascorrerai un sacco di tempo sulla lavagna, facendo brainstorming con i dottori di ricerca. Conosco una prestigiosa società di consulenza in cui faresti anche parecchia comunicazione, ma con persone che non avevano un background tecnologico ... Conosco una grande azienda Fortune 100 non-software in cui anche tu faresti molto di comunicare, ma giocherebbe principalmente la politica.

OTOH, molte startup e aziende di prodotti software hanno bisogno di persone per la codifica head-down. Certo, comunichi alcuni, ma alzarti per consegnare una presentazione che vende la tua azienda è molto diverso rispetto al semplice parlare con altri codificatori ...

L'unica area in cui la comunicazione entra davvero in gioco è l'ingegneria commerciale / la consulenza tecnica / ecc ... Ecco dove, se sei veramente un comunicatore eccellente (e non solo un ingegnere SW che non è 'socialmente imbarazzante', ti verranno pagati bei soldi. Ci sono anche alcuni venditori coinvolti.

    
risposta data 16.08.2011 - 14:01
fonte
0

Oh, beh, dal punto di vista delle persone che arrivano da fuori ... Non posso davvero dire (come tutti gli altri fanno) che la programmazione riguardi solo la comunicazione.

Non è realmente normale comunicazione giorno per giorno basata su rispetto reciproco, interessi e stakes . .. è più su lettura della mente , una specie di infermieristica , e alcuni argomentare sono sicuramente coinvolti. Ci sono anche molti negoziati , ma non il tipo a cui sei probabilmente abituato.

Non vendi davvero sh-t ai programmatori, devi giocare o sedurli con prove e fatti pesanti. Anche se questo può sembrare equo per questioni critiche rilevanti per la missione , applicare ciò a piccole insidie nessuno, nemmeno quello che l'ha sollevato, avrebbe dovuto davvero preoccuparsene, e. .. benvenuto all'inferno di comunicazione .

Se hai un byte nel mondo esterno (il materiale di vendita / offerte di chiusura / mondo di mani tremanti) è davvero difficile adattarsi al tipo di (in qualche modo giovanile, un po 'accademico) esperienza di programmatori di interazione attraverso i cubicoli.

La parte aziendale del tuo curriculum verrà sprecata pesantemente , a meno che non trovi un modo per scalare il ladder di gestione più rapidamente di gatto in fiamme.

    
risposta data 16.08.2011 - 03:34
fonte
0

Le capacità di comunicazione sono utili, ma le competenze tecniche superano tutto ciò che riguarda gli sviluppatori.

Probabilmente sarai più felice come ingegnere di applicazioni, ovvero un ingegnere che aiuta i clienti ad adattare e utilizzare il prodotto software prodotto dagli sviluppatori "a testa bassa". In questo modo lavori con il software, ma trascorri la maggior parte della giornata a parlare.

    
risposta data 16.08.2011 - 04:08
fonte
0

Dato che hai separato la programmazione dalla tua interpretazione della comunicazione (discutendo con le persone) e vuoi parlare alla gente l'80% delle volte, la programmazione non è una buona scelta. Forse se ti trovi in una situazione in cui puoi essere un analista a tempo pieno, un architetto, un manager o un client (puoi parlare con i clienti e i programmatori, sei l'interprete (mi dispiace un po 'di umorismo da ufficio).

Ci sono fasi di progetti in cui puoi passare l'intera giornata alla lavagna, ma alla fine, devi scrivere codice. È una forma di comunicazione, ma non come hai descritto. Forse in un negozio di programmazione di coppia puoi chattare molto mentre scrivi il codice. Il più delle volte, devi essere concentrato sulla tastiera. Indossare le cuffie significa che sei circondato da troppe persone che non lo sono.

    
risposta data 28.09.2011 - 21:07
fonte

Leggi altre domande sui tag