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


40

Sono stato nell'arena dell'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 di problemi tecnici (cioè interagire con una squadra). Adoro questa parte del mio lavoro. Andare alla lavagna 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 che cadrò in un lavoro di programmazione stereotipato in cui i programmatori programmano con le cuffie grandi. So sicuramente che questo è solo uno stereotipo, ma ho già 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 smettere di interagire con le persone. Capisco che avere abilità comunicative sia solo un aspetto positivo, ma mi sto preparando per un fallimento della felicità professionale passando all'ingegneria del software. Mi piacerebbe ricevere chiarimenti e / o consigli.


14
Ti rendi conto che le risposte qui potrebbero essere un po 'di parte, giusto?
JB King,

2
Assolutamente, ma le risposte finora, sono state fantastiche e molto istruttive.
Ryan,

Spero che tu ti renda conto che la tua domanda è strana per le persone come me che sono brave con la programmazione ma sono evitate dalle risorse umane (e non ottengono quel lavoro d'oro ...) perché mancano leggermente nel dipartimento delle comunicazioni. Le capacità comunicative sono sicuramente un vantaggio, specialmente nel contesto di un progetto di gruppo (scrum + riunioni stand-up ...) e lavoro a distanza. Scoprirai anche che alcune riformulazioni avvengono quando si superano i requisiti. Ci sono alcune responsabilità che implicano meno programmazione e maggiore coordinamento.
James P.

Assolutamente no ...
Louis Rhys,

2
Un ingegnere del software che non può esprimere le sue idee sia in una lingua parlata che in una lingua scritta non vale nulla.
Ramhound,

Risposte:


53

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

L'ultima parte è la più semplice delle due. I computer fanno esattamente ciò che viene loro detto e tu sei sempre in grado di verificare che ciò 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 errate 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, in un modo o nell'altro.

Quei programmatori che vedi che non escono mai dalle loro cuffie? Stanno ancora facendo questa comunicazione, sia via e-mail o un bug-tracker, o addirittura un messenger. Sta succedendo tutto, altrimenti non possono sapere cosa dire al computer di fare.

Quindi sì, le tue capacità comunicative ti serviranno bene.


Buon punto sulla comunicazione nel suo insieme, ma può spostare l'enfasi sugli incontri personali a più privati ​​e scritti.
JeffO,

Se credi davvero che l'implementazione sia la più semplice delle due parti suggerite, allora stai lavorando con una squadra cattiva o l'implementazione che stai facendo è troppo facile. Conta il numero di ore di lavoro impiegate per l'implementazione rispetto a quelle relative all'implementazione: l'implementazione dovrebbe essere chiaramente i 2/3 del totale; in caso contrario, il tuo manager ha bisogno di un incontro speciale con il suo capo.
Jonathan Cline IEEE,

6
@Jonathan: distinguerei abbastanza fortemente tra difficile e che richiede tempo.
pdr,

3
nel corso del tempo ho imparato che comunicare con un computer è difficile tanto quanto gli umani. La cosa è la maggior parte del codice che scrivo viene letto in seguito da qualcun altro (che qualcun altro potrebbe essere me stesso un mese dopo, il che sorprendentemente non lo rende meno difficile) - che per me essenzialmente ci riporta alla comunicazione con gli umani, proprio in forma scritta e indiretta. Il codice è una lettera per il futuro, il programmatore è uno scrittore. Joyce qualcuno?
moscerino il

Chiunque può scrivere codice che un computer può capire, un buon programmatore può scrivere codice che la gente capisce.
Michael Brown,

23

Ai programmatori potrebbe piacere codificare con le cuffie grandi (beh, non tutte lo fanno), ma ciò non significa che non possano comunicare, significa solo che non vogliono essere disturbati in quel momento - non che non comunicherà mai.

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

Le abilità comunicative scritte saranno anche molto importanti quando invii un'email ai tuoi colleghi con cuffie grandi in modo che possano risponderti in seguito.


1
Completamente d'accordo con questo. Metto solo le cuffie per indicare che sono occupato.
Ivan,

7

Mi sembra che dovresti cercare un lavoro come consulente tecnico. Spesso comporta la programmazione, ma richiede anche molta comunicazione: con i clienti, con i colleghi, i consulenti di altre società ... OTOH significa anche risolvere molti problemi tecnici senza effettivamente scrivere codice, se non ti piace che dovresti probabilmente cerca percorsi diversi. HTH.


2
Sei anche un programmatore ??
CenterOrbit

2
Sì, lo sono. Sono stato un consulente tecnico anche per un po '. Cosa ti rende così arrabbiato per la mia risposta?
SL Barth - Ripristina Monica il

Consulente tecnico come individuo che va a incontrare un cliente?
James P.

@James P. Questo è ciò che intendevo, sì - ed è quello che ho fatto quando ero un consulente tecnico. Andare in ufficio del cliente e aiutarli a risolvere i loro problemi tecnici. Ovviamente, gli sviluppatori hanno bisogno anche di forti capacità comunicative, ma questo è già stato discusso a lungo da altri qui.
SL Barth - Ripristina Monica il

6

Le capacità di comunicazione sono estremamente importanti per uno sviluppatore di software. Da qualche parte c'è una stat (possibilmente accanto alla stat che dice che il 68% di tutte le statistiche sono inventate) che dice che la maggior parte dei progetti software fallisce a causa della scarsa comunicazione. Essere la persona che può comunicare con l'azienda (e comprenderla) in un team di sviluppo software DEVE essere un buon posto dove stare.


6

Sono fermamente convinto che il mio più grande vantaggio competitivo rispetto ad altri programmatori e tipi IT che conosco sia la mia capacità di comunicare con persone che non parlano fluentemente i concetti IT. È l'abilità più sottostimata e sottosviluppata dal membro medio della comunità IT, eppure è una delle più importanti.

In quasi tutti i ruoli immaginabili, ad un certo punto, avrai bisogno di parlare con qualcuno che non ha quasi alcuna comprensione di ciò che fai, e dovrai essere in grado di venderli su ciò che stai facendo.

Potrebbe anche essere necessario avere a che fare con gli utenti per raccogliere i requisiti per una specifica: anche quel tipo di ascolto specializzato (abbinato alle giuste istruzioni e domande) è comunicazione!

Naturalmente ha un ulteriore vantaggio: le buone capacità comunicative rendono molto più facile ottenere un lavoro in primo luogo.


4

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

Come parte di questa sterile professione, creerai presentazioni powerpoint per i clienti di livello I con il testo "Software Stack" scritto su di essi e astraggerai progetti di ingegneria del software molto complessi in blocchi rettangolari di diversi colori, spesso disposti a casaccio; queste presentazioni saranno avviate dai principali ingegneri del software ai massimi livelli di ricerca e sviluppo, saranno 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 ai massimi livelli di ricerca e sviluppo come specifiche "fai o rompi-il-business". Uno dei tuoi bonus dipenderà dall'uso liberale della parola "nuvola".


Va notato che i tecnici delle applicazioni in genere fanno in media dal 20% al 30% in più rispetto ai progettisti allo stesso livello. Questo solo perché, come comunicatori migliori, sono in grado di richiedere una retribuzione più elevata; mentre il tipico ingegnere progettista, in quanto cattivo comunicatore, in genere non richiede di più. Quindi è stato fissato lo standard e App Engrs ride fino in banca, il tutto lasciando il lavoro prima dei designer su base giornaliera. E ho menzionato i pranzi fuori sede costosi, a prezzi più alti, mentre gli sviluppatori sono fortunati a mangiare la pizza da asporto in una sala conferenze?
Jonathan Cline IEEE,

3

Starai meglio con grandi capacità comunicative. I programmatori a testa in giù sono spesso quelli che non sono coinvolti in progetti entusiasmanti, dal momento che i loro manager potrebbero non capirli. In sostanza, se non vieni mai in aria, verrai incantato come "il tipo strano nell'angolo".

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

Quanto comunichi dipende da te. Sarebbe raro che tu finissi in una squadra piena di programmatori a testa in giù con nessuno che volesse parlare, ma se non sei parente dell'umorismo da secchione, preparati ad essere introdotto rapidamente. Inoltre, preparati per gli inevitabili programmatori socialmente imbarazzanti. Ce n'è sempre almeno uno.


3

Probabilmente, la maggior parte dei progetti software non fallisce 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à di comunicazione sono una risorsa enorme per un team e sono anche più difficili da migliorare rispetto alle capacità di programmazione.


2

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

È vero che molta programmazione è fatta per solidarietà. Per programmare bene, AVETE BISOGNO di quella concentrazione e privacy. Tuttavia, pensi davvero che la maggior parte del tuo tempo sia dedicato alla programmazione? Gran parte del tempo sarà suddiviso tra riunioni di gruppo, discussioni strategiche, camminate, pensieri, discussioni, ecc. In realtà sedersi alla scrivania non sarà la tua intera 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 uscenti e NON gli introversi.

I bravi programmatori possono comunicare bene con il loro team. Ottenere e comprendere i requisiti da un responsabile tecnico o manager spesso non è un compito facile. Sono necessarie buone capacità comunicative per chiarire i tuoi compiti e per comunicare con il team. Se ti avvicini al capo tecnico o al manager, le abilità comunicative saranno fondamentali per tenere unita la squadra.

Anch'io sono qualcuno 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) Rifiutando di pranzare da solo 2) Fare pause palestra / basket con gli amici

Un lavoro di programmazione non dovrebbe essere antisociale.


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. È necessaria una comunicazione efficace con il cliente (o il responsabile del progetto) per garantire che gli sforzi non vengano sprecati e che si traducano effettivamente in ciò che è richiesto. Inoltre, sarai in grado di spiegare più facilmente il tuo lavoro, i potenziali problemi di progettazione, le implementazioni più semplici, ecc. A coloro che non hanno familiarità con la programmazione. Infine, durante la programmazione di software interattivo per l'utente, le capacità di comunicazione sarebbero molto utili nella progettazione di un'interfaccia utente che ottenga le informazioni corrette in un modo intuitivo che sarà compreso. Ti aiuterà anche a ottenere le informazioni corrette dall'utente per eseguire il lavoro.


1

Sono d'accordo con tutti coloro che sostengono che la comunicazione sia fondamentale nella programmazione informatica. Onestamente penso che da quanto descritto, diventerai un grande programmatore principale o più del tipo di "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, dato che sono molto socievole e orientato verso il team, ora sono il programmatore principale di due progetti. Scoprirai che più sarai in alto nella catena di programmazione, più lavagna bianca e risoluzione dei problemi inizierai a fare.

Se la tua personalità ha il carattere di "leadership" (che è ciò a cui stai suggerendo), salirai in cima molto velocemente. Basta che ti trovi in ​​un'azienda che ti consenta di crescere in quel modo.

Le abilità sociali, la risoluzione dei problemi e una buona programmazione sono spesso più rare di quanto si pensi. I datori di lavoro uccidono per quel tipo di abilità. Penso che tu sia sulla buona strada. Continuate così!


1

Concordo con tutti gli altri che affermano che lo sviluppo del software offre molte comunicazioni e aggiungerò che anche scrivere un buon codice richiede buone capacità comunicative.

Scrivere un codice corretto è importante; scrivere codice che altre persone possono capire è probabilmente molto più importante. Se il tuo codice contiene alcuni bug, ma è scritto in modo tale da poter facilmente capire 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 capirlo, non posso davvero essere sicuro che sia corretto e le probabilità che potrò modificarlo correttamente in futuro sono molto più basse .


1

Naturalmente una buona comunicazione è importante! Quello su cui mi concentrerei sarebbe diventare un insegnante eccellente. I programmatori veramente efficaci possono spiegare le basi di qualcosa che ha impiegato anni a comprendere in una telefonata di 15 minuti. Nella stessa conversazione è necessario spiegare i dettagli in termini non tecnici in modo che la persona all'altro capo della linea possa prendere una decisione ponderata che sia la migliore per la propria attività per un lungo periodo di tempo.


1

Dipende da dove vai. Conosco una società di trading quantistica in cui trascorreresti molto tempo sulla lavagna, facendo brainstorming con i dottorandi. Conosco una prestigiosa società di consulenza in cui anche tu faresti molto per comunicare, ma con persone che non avevano un background tecnologico ... Conosco una grande società non software Fortune 100 in cui faresti anche molto di comunicare, ma sarebbe principalmente giocare a politica.

OTOH, molte start-up e aziende produttrici di software hanno bisogno di persone per la codifica diretta. Certo, ne comunichi alcuni, ma alzarsi per offrire una presentazione che vende la tua azienda è molto diverso dal parlare semplicemente con altri programmatori ...

L'unica area in cui la comunicazione entra davvero in gioco è l'ingegneria delle vendite / consulenza tecnica / ecc ... Ecco dove, se sei davvero un eccellente comunicatore (e non solo un ingegnere SW che non è socialmente imbarazzante), otterrai pagato bei soldi. Ci sono anche delle vendite coinvolte lì.


0

Oh, beh, dal punto di vista delle persone che provengono dall'esterno ... Non posso davvero dire (come fanno tutti gli altri) che la programmazione riguarda la comunicazione.

Non è davvero normale la comunicazione quotidiana basata sul rispetto reciproco , gli interessi e le poste in gioco ... riguarda più la lettura della mente , il tipo di assistenza infermieristica e alcune discussioni sono certamente implicate. Ci sono anche molte negoziazioni , ma non del tipo a cui probabilmente sei abituato.

In realtà non vende sh-t per i programmatori, è necessario gioco di loro, o li sedurrà con prove pesanti e fatti. Anche se questo può sembrare giusto per questioni rilevanti di importanza cruciale per la missione , applicalo a piccoli fastidi che nessuno, nemmeno quello che lo ha sollevato, avrebbe davvero dovuto preoccuparsi, e ... benvenuto all'inferno della comunicazione .

Se hai un byte nel mondo esterno (roba da vendere / concludere affari / stringere la mano) è davvero difficile adattarsi al tipo di esperienza dei programmatori di interazione (un po 'giovanile, un po' accademico) attraverso i cubicoli.

La parte aziendale del tuo curriculum verrà sprecata pesantemente , a meno che non trovi un modo per salire la scala di gestione più velocemente di un gatto in fiamme.


0

Le abilità comunicative sono utili, ma la competenza tecnica vince su tutto ciò che è scritto agli sviluppatori.

Probabilmente saresti più felice come ingegnere applicativo, cioè un ingegnere che aiuta i clienti ad adattare e utilizzare il prodotto software prodotto da sviluppatori "a testa bassa". In questo modo lavori con il software, ma trascorri la maggior parte della giornata a parlare.


0

Dal momento che hai separato la programmazione dalla tua interpretazione della comunicazione (discutere con le persone) e vuoi parlare con le persone l'80% delle volte, la programmazione non è una buona scelta. Forse se ti trovi in ​​una situazione in cui puoi essere un analista, un architetto, un manager o un cliente a tempo pieno (Puoi parlare con clienti e programmatori, sei l'interprete (Mi dispiace un po 'di umorismo Office Space.).

Ci sono fasi di progetti in cui puoi passare l'intera giornata alla lavagna, ma alla fine devi scrivere il codice. È una forma di comunicazione, ma non come hai descritto. Forse in un negozio di programmazione in 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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.