Czy moje umiejętności komunikacyjne zostaną zmarnowane w karierze inżyniera oprogramowania? [Zamknięte]


40

Jestem na arenie inżynierii finansowej (po BA Math i BA Computer Science) przez około 5 lat (20% analiza / programowanie, 80% komunikowanie się) i jestem dumny z mojej umiejętności komunikowania się z ludźmi i omawiania problemów technicznych (tj. Interakcji z zespołem). Uwielbiam tę część mojej pracy. Idę na białą tablicę, aby narysować abstrakcyjne pomysły i burzę mózgów.

Jednak z wielu powodów chcę przenieść moją karierę na firmę technologiczną (inżynieria oprogramowania), ale głęboko się boję, że wpadnę w stereotypowe zadanie programistyczne, w którym programiści kodują z dużymi słuchawkami. Wiem, że to tylko stereotyp, ale widziałem już podobne środowiska (w startupach) i przeraża mnie myśl, że migrowałbym do kariery w izolacji.

Uwielbiam kodować i myśleć algorytmicznie, ale nie chcę rezygnować z interakcji z ludźmi. Rozumiem, że posiadanie umiejętności komunikacyjnych jest tylko pozytywem, ale czy ja przygotowuję się na niepowodzenie w karierze, przechodząc na inżynierię oprogramowania. Chciałbym usłyszeć wszelkie wyjaśnienia i / lub porady.


14
Zdajesz sobie sprawę, że odpowiedzi tutaj mogą być nieco stronnicze, prawda?
JB King

2
Oczywiście, ale jak dotąd odpowiedzi były świetne i bardzo pouczające.
Ryan,

Mam nadzieję, że zdajesz sobie sprawę, że twoje pytanie jest równie dziwne dla ludzi takich jak ja, którzy są dobrzy w programowaniu, ale są odrzucani przez HR (i nie dostają złotej pracy ...), ponieważ brakuje im trochę w dziale komunikacji. Umiejętności komunikacyjne są zdecydowanie zaletą, szczególnie w kontekście projektu zespołowego (scrum + spotkania standup ...) i pracy na odległość. Przekonasz się również, że podczas przeszukiwania wymagań ma miejsce przeformułowanie. Niektóre obowiązki wiążą się z mniejszym programowaniem i większą koordynacją.
James P.

Absolutnie nie ..
Louis Rhys,

2
Inżynier oprogramowania, który nie potrafi wyrazić swoich pomysłów zarówno w języku mówionym, jak i pisanym, nie jest nic wart.
Ramhound

Odpowiedzi:


53

Oto sekret programowania: prawie 100% komunikacji . Znaczna część tego dotyczy komunikacji z człowiekiem; reszta przekazuje komputerowi to, czego się właśnie nauczyłeś.

Ta druga część jest łatwiejsza z dwóch. Komputery robią dokładnie to, co im polecono, a ty zawsze możesz sprawdzić, czy to, co powiedziałeś, jest poprawne.

To pierwsze jest czymś innym. Różnice w terminologii, w zrozumieniu, w priorytetach, od osoby do osoby, bardzo utrudniają uzyskanie prawidłowej wiadomości do komputera. Niewłaściwa komunikacja na tym poziomie jest znacznie częstsza niż nieporozumienia między programistą a komputerem.

Dobrzy programiści potrafią komunikować się z komputerem; świetni programiści są dobrzy w komunikowaniu się z ludźmi, w ten czy inny sposób.

Programiści, których widzisz, nigdy nie wychodzą ze słuchawek? Nadal prowadzą tę komunikację, czy to za pośrednictwem poczty e-mail, narzędzia do śledzenia błędów, czy nawet komunikatora. Wszystko się dzieje, w przeciwnym razie nie mogą wiedzieć, co powiedzieć komputerowi.

Tak, twoje umiejętności komunikacyjne będą ci dobrze służyć.


Dobra uwaga na temat komunikacji jako całości, ale może przesunąć nacisk na osobiste spotkania na bardziej prywatne i pisane.
JeffO

Jeśli naprawdę uważasz, że wdrożenie jest łatwiejsze z dwóch sugerowanych części, oznacza to, że albo pracujesz ze złym zespołem, albo wdrażanie jest zbyt łatwe. Policz liczbę godzin pracy poświęconych na wdrożenie w porównaniu do rozmowy na temat wdrażania: wdrożenie powinno wyraźnie wynosić 2/3 całości; jeśli nie, twój menedżer potrzebuje specjalnego spotkania ze swoim szefem.
Jonathan Cline IEEE

6
@Jathanathan: Rozróżniałbym dość mocno od trudnych i czasochłonnych.
pdr

3
z czasem dowiedziałem się, że komunikacja z komputerem jest tak trudna jak dla ludzi. Chodzi o to, że większość kodu, który piszę, jest później czytana przez kogoś innego (że ktoś inny może być sobą miesiąc później, co zaskakująco nie czyni tego wcale trudniejszym) - co w zasadzie przywraca nas do komunikowania się z ludźmi, tylko w forma pisemna i pośrednia. Kod to list do przyszłości, programista to pisarz. Joyce ktoś?
komar

Każdy może napisać kod zrozumiały dla komputera, dobry programista może napisać kod zrozumiały dla ludzi.
Michael Brown

23

Programiści mogą chcieć kodować z włączonymi dużymi słuchawkami (cóż, nie wszyscy tak robią), ale to nie znaczy, że nie mogą się komunikować, to po prostu oznacza, że ​​nie chcą w tej chwili przeszkadzać - nie że nigdy się nie komunikuje.

Umiejętności komunikacji werbalnej są nadal niezwykle ważne podczas spotkań z resztą zespołu, spotkań doraźnych, użytkowników biznesowych, innych zespołów itp.

Umiejętności w zakresie komunikacji pisemnej będą również bardzo ważne, gdy wysyłasz do współpracowników wiadomości e-mail z dużymi słuchawkami, aby mogli odpowiedzieć później.


1
Całkowicie się z tym zgódź. Wkładam słuchawki tylko, aby wskazać, że jestem zajęty.
Ivan

7

Wydaje mi się, że powinieneś szukać pracy jako konsultant techniczny. Często wymaga programowania, ale wymaga również dużej komunikacji - z klientami, współpracownikami, konsultantami innych firm ... OTOH oznacza także naprawę wielu problemów technicznych bez pisania kodu, jeśli nie podoba ci się to powinieneś prawdopodobnie szukam różnych ścieżek. HTH.


2
Czy jesteś nawet programistą?
CenterOrbit

2
Tak, jestem. Od pewnego czasu też jestem konsultantem technicznym. Co cię tak denerwuje z powodu mojej odpowiedzi?
SL Barth - Przywróć Monikę

Konsultant techniczny jako osoba fizyczna, która idzie na spotkanie z klientem?
James P.

@James P. Tak właśnie miałem na myśli, tak - i to zrobiłem, kiedy byłem konsultantem technicznym. Udanie się do biura klienta i pomoc w rozwiązaniu problemów technicznych. Oczywiście programiści potrzebują również silnych umiejętności komunikacyjnych, ale inni już tutaj o tym szeroko dyskutowali.
SL Barth - Przywróć Monikę

6

Umiejętności komunikacyjne są niezwykle ważne dla programisty. Gdzieś istnieje statystyka (być może obok statystyki, która mówi, że 68% wszystkich statystyk jest utworzona), która mówi, że większość projektów oprogramowania kończy się niepowodzeniem z powodu złej komunikacji. Będąc osobą, która może komunikować się z biznesem (i rozumieć biznes) w zespole programistów MUSI być dobrym miejscem.


6

Mocno utrzymuję, że moją największą przewagą konkurencyjną nad innymi programistami i typami IT, które znam, jest moja zdolność do komunikowania się z ludźmi, którzy nie biegle posługują się koncepcjami IT. Jest to jedna z najbardziej niedocenianych i słabo rozwiniętych umiejętności przeciętnego członka społeczności IT, a jednak jest jedną z najważniejszych.

W prawie każdej roli, jaką można sobie wyobrazić, w pewnym momencie będziesz musiał porozmawiać z kimś, kto prawie nie ma pojęcia o tym, co robisz, i będziesz musiał być w stanie sprzedać je za to, co robisz.

Być może będziesz musiał poradzić sobie z użytkownikami w celu zebrania wymagań dotyczących specyfikacji - ten specjalistyczny rodzaj odsłuchu (w połączeniu z odpowiednimi podpowiedziami i pytaniami) to także komunikacja!

Ma oczywiście jeszcze jedną zaletę - dobre umiejętności komunikacyjne znacznie ułatwiają znalezienie pracy.


4

Gratulacje. Masz świetlaną przyszłość jako inżynier aplikacji, a następnie menedżer inżynierii aplikacji (FAE Manager).

W ramach tego profesjonalnego zawodu będziesz tworzyć prezentacje Powerpoint dla klientów I poziomu z wypisanym na nich tekstem „Software Stack” i abstrakcyjnymi bardzo złożonymi projektami inżynierii oprogramowania w prostokątne bloki o różnych kolorach, często rozmieszczone przypadkowo; prezentacje te zostaną zainicjowane przez głównych inżynierów oprogramowania na najwyższych szczeblach badań i rozwoju, rozwodnione w mentalności klienta o najniższym wspólnym mianowniku, a następnie wklejone z powrotem do dokumentów wymagań, które zostaną przedstawione z powrotem głównym inżynierom oprogramowania na najwyższych poziomach badań i rozwoju jako specyfikacje typu make-or-break-the-business. Jeden z twoich bonusów będzie zależał od swobodnego używania słowa „chmura”.


Należy zauważyć, że inżynierowie aplikacji zwykle zarabiają średnio 20% do 30% więcej niż projektanci na tym samym poziomie. Dzieje się tak tylko dlatego, że jako lepsi komunikatorzy mogą lepiej żądać wyższych wynagrodzeń; podczas gdy typowy inżynier projektu, jako słaby komunikator, zwykle nie wymaga więcej. Tak więc ustalono standard, a App Engrs śmieją się do samego banku, a na co dzień odchodzą z pracy wcześniej niż projektanci. I czy wspomniałem o drogich, droższych posiłkach poza biurem, podczas gdy deweloperzy mają szczęście jeść pizzę na wynos w sali konferencyjnej?
Jonathan Cline IEEE

3

Lepsze będą ci umiejętności komunikacyjne. Główni programiści często nie angażują się w ekscytujące projekty, ponieważ ich menedżerowie również ich nie rozumieją. Zasadniczo, jeśli nigdy nie wybierzesz powietrza, zostaniesz zaszufladkowany jako „dziwny facet w kącie”.

Ponownie pracujemy nad stereotypami i nie każde środowisko jest takie, ale przynajmniej dobre umiejętności komunikacyjne pomagają lepiej zrozumieć biznes i ludzi wokół ciebie, dzięki czemu będziesz lepiej przygotowany do radzenia sobie ze złożonymi problemami w twoim konkretna domena.

Ile komunikujesz zależy od Ciebie. Rzadko zdarza się, byś znalazł się w zespole pełnym programistych programistów, z nikim, kto nie chciałby rozmawiać, ale jeśli nie jesteś spokrewniony z humorem, przygotuj się na szybkie wprowadzenie. Przygotuj się także na nieuniknionych społecznie niewygodnych programistów. Zawsze jest co najmniej jeden.


3

Prawdopodobnie większość projektów oprogramowania kończy się niepowodzeniem nie z powodu problemów technicznych, ale z powodu problemów z komunikacją. Pisanie świetnego kodu jest z pewnością ważne dla inżyniera oprogramowania, ale dobre umiejętności komunikacyjne są ogromnym atutem dla zespołu - a także trudniejsze do ulepszenia niż umiejętności kodowania.


2

Obecnie programuję z dużymi słuchawkami. Właśnie programowałem. Oczywiście jestem teraz na StackExchange ... gdziekolwiek:

Prawdą jest, że wiele programów odbywa się solidarnie. Aby dobrze programować, POTRZEBUJESZ tego skupienia i prywatności. Czy naprawdę uważasz jednak, że większość czasu spędzasz na programowaniu? Dużo czasu poświęcisz na spotkania zespołu, rozmowy strategiczne, spacery, myślenie, dyskusje itp. W rzeczywistości pisanie przy biurku nie będzie całym życiem. Pamiętam, jak czytałem studium z mojego kursu inżynierii oprogramowania, że ​​najlepszymi / najbardziej produktywnymi programistami w zespole są ci wychodzący, a NIE introwertycy.

Dobrzy programiści mogą dobrze komunikować się ze swoim zespołem. Uzyskanie i zrozumienie wymagań od kierownika technicznego lub kierownika często nie jest łatwym zadaniem. Potrzeba dobrych umiejętności komunikacyjnych, aby wyjaśnić swoje zadania, a także komunikować się z zespołem. Jeśli dojdziesz do stanowiska kierownika technicznego lub kierownika, umiejętności komunikacyjne będą miały kluczowe znaczenie dla utrzymania zespołu razem.

Ja też jestem kimś, kto uwielbia być towarzyskim. Na początku muszę przyznać, że solidarność w mojej pracy programistycznej była nieco przygnębiająca. Podjąłem jednak pewne kroki, aby praca była bardziej towarzyska, głównie: 1) odmawiając samodzielnego jedzenia lunchu 2) robienia przerw na siłownię / koszykówkę z przyjaciółmi

Praca programistyczna nie powinna być antyspołeczna.


2

Umiejętności komunikacyjne na pewno nie zostaną zmarnowane. Nawet jeśli 80% czasu spędzasz na pisaniu kodu programu, musisz jasno wiedzieć, co robi kod. Skuteczna komunikacja z klientem (lub kierownikiem projektu) jest niezbędna, aby zapewnić, że wysiłki nie zostaną zmarnowane i faktycznie doprowadzą do tego, co jest wymagane. Ponadto łatwiej będzie ci wyjaśnić swoją pracę, potencjalne problemy z projektowaniem, prostsze implementacje itp. Osobom mniej obeznanym z programowaniem. Wreszcie, podczas programowania oprogramowania interaktywnego dla użytkownika, umiejętności komunikacyjne byłyby bardzo pomocne w projektowaniu interfejsu użytkownika, który przekazuje prawidłowe informacje w przyjazny dla użytkownika sposób, który zostanie zrozumiany. Pomoże to również uzyskać prawidłowe informacje od użytkownika do wykonania zadania.


1

Zgadzam się ze wszystkimi, którzy twierdzą, że komunikacja jest kluczem w programowaniu komputerowym. Szczerze sądzę, że z tego, co zostanie opisane, zrobisz świetnego głównego programistę lub więcej typu inżyniera oprogramowania. Zaczynałem jako informatyk w firmie i jak tylko mogłem udowodnić swoje umiejętności programistyczne, przeszedłem na programistę, ponieważ jestem bardzo towarzyski i zorientowany na zespół, jestem teraz głównym programistą w dwóch projektach. Przekonasz się, że im wyżej uzyskasz łańcuch programowania, tym więcej tablicy i rozwiązywania problemów zaczniesz robić.

Jeśli twoja osobowość ma cechę „przywództwa” (do czego masz na myśli), bardzo szybko awansujesz na szczyt. Tylko pod warunkiem, że jesteś w firmie, która pozwala ci powstać w ten sposób.

Umiejętności społeczne, rozwiązywanie problemów i dobre programowanie są często rzadsze niż myślisz. Pracodawcy zabijają za tego rodzaju umiejętności. Myślę, że jesteś na dobrej drodze. Po prostu kontynuujcie dobrą robotę!


1

Zgadzam się ze wszystkimi, którzy twierdzą, że w tworzeniu oprogramowania jest dużo komunikacji i dodam, że nawet pisanie dobrego kodu wymaga dobrych umiejętności komunikacyjnych.

Ważne jest pisanie poprawnego kodu; pisanie kodu zrozumiałego dla innych osób jest znacznie ważniejsze. Jeśli twój kod zawiera kilka błędów, ale jest napisany w taki sposób, że mogę łatwo zrozumieć, co się dzieje, nie będzie mi trudno znaleźć i naprawić błędy. Jeśli twój kod jest całkowicie poprawny, ale napisany w taki sposób, że nie jestem pewien, czy go rozumiem, to tak naprawdę nie mogę być pewien, że jest poprawny, a szanse, że będę mógł go poprawnie zmodyfikować w przyszłości, są znacznie niższe .


1

Oczywiście ważna jest dobra komunikacja! To, na czym chciałbym się skupić, to zostać doskonałym nauczycielem. Naprawdę skuteczni programiści potrafią wyjaśnić podstawy czegoś, czego zrozumienie zajęło lata w 15 minutowej rozmowie telefonicznej. W tej samej rozmowie musisz wyjaśnić szczegóły w kategoriach nietechnicznych, aby osoba na drugim końcu linii mogła podjąć świadomą decyzję, która będzie najlepsza dla jej firmy przez długi okres czasu.


1

To zależy od tego, gdzie idziesz. Znam firmę handlującą ilościami, w której spędzasz dużo czasu na tablicy, burząc mózg z doktoratami. Znam prestiżową firmę konsultingową, w której również dużo się komunikujesz, ale z ludźmi, którzy nie mają wykształcenia technicznego ... Znam dużą nie-programową firmę z listy Fortune 100, w której ty również dużo robisz komunikowania się, ale grałaby głównie w politykę.

OTOH, wiele startupów i firm tworzących oprogramowanie potrzebuje ludzi do bezpośredniego kodowania. Pewnie, komunikujesz trochę, ale wstawanie w celu przedstawienia prezentacji, która sprzedaje twoją firmę, jest czymś zupełnie innym niż rozmowa z innymi programistami ...

Jedynym obszarem, w którym komunikacja naprawdę wchodzi w grę, jest inżynieria sprzedaży / doradztwo techniczne itp. To właśnie tam, jeśli naprawdę jesteś doskonałym komunikatorem (a nie tylko inżynierem SW, który nie jest niezręczny społecznie), dostaniesz zapłacił niezłe pieniądze. W grę wchodzi także sprzedaż .


0

No cóż, z punktu widzenia ludzi przybywających z zewnątrz ... Naprawdę nie mogę powiedzieć (tak jak wszyscy inni), że programowanie polega na komunikacji.

To naprawdę nie jest normalna codzienna komunikacja oparta na wzajemnym szacunku , zainteresowaniach i stawkach ... chodzi bardziej o czytanie w myślach , rodzaj opieki i na pewno w grę wchodzi dyskusja. Jest też dużo negocjacji , ale nie w tym, do którego prawdopodobnie jesteś przyzwyczajony.

Naprawdę nie sprzedajesz sh-t programistom, musisz je zagrać lub uwodzić ciężkimi dowodami i faktami. Chociaż może się to wydawać sprawiedliwe w przypadku problemów istotnych z punktu widzenia misji , zastosuj to do drobnych uciążliwości, nikt, nawet ten, który je poruszył, naprawdę powinien był się o to troszczyć i ... witaj w piekle komunikacji .

Jeśli masz bajt w świecie zewnętrznym (sprzedaż rzeczy / zamykanie transakcji / uścisk dłoni) , naprawdę trudno jest wrócić do rodzaju (nieco młodocianego, nieco akademickiego) doświadczenia programistów interakcji w różnych kabinach.

Firma częścią programu zostanie zmarnowany ciężko , chyba że znajdziesz sposób, by wspiąć się po drabinie zarządzania szybciej niż kot w ogniu.


0

Umiejętności komunikacyjne są pomocne, ale kompetencje techniczne przebijają wszystko, co jest w posiadaniu programistów.

Prawdopodobnie byłbyś szczęśliwszy jako inżynier aplikacji, czyli inżynier, który pomaga klientom w adaptacji i wykorzystaniu oprogramowania wytwarzanego przez twórców „z głową w dół”. W ten sposób pracujesz z oprogramowaniem, ale spędzasz większość dnia na rozmowach.


0

Ponieważ oddzieliłeś programowanie od interpretacji komunikacji (rozmowy z ludźmi) i chcesz rozmawiać z ludźmi przez 80% czasu, programowanie nie jest dobrym wyborem. Może jeśli wpadniesz w sytuację, w której możesz zostać pełnoetatowym analitykiem, architektem, menedżerem lub pracownikiem klienta (rozmawiasz z klientami i programistami, jesteś interpretatorem (przepraszam za odrobinę humoru w Office Space).

Są etapy projektów, w których możesz spędzić cały dzień na tablicy, ale ostatecznie musisz napisać kod. Jest to forma komunikacji, ale nie tak, jak to opisałeś. Może w sklepie z programowaniem par możesz dużo rozmawiać podczas pisania kodu. Przez większość czasu musisz skupić się na klawiaturze. Noszenie słuchawek oznacza, że ​​otacza Cię zbyt wiele osób, które ich nie mają.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.