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.
Odpowiedzi:
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ć.
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło
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”.
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło
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ę!
źródło
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 .
źródło
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.
źródło
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ż .
źródło
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.
źródło
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.
źródło
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ą.
źródło