Nadal jestem w szkole i wiem, że mam problemy z innymi ludźmi.
Nie jestem zły, nieśmiały ani inny, po prostu lubię pracować po swojemu i mając swoje opinie szanując innych, mam wielką ciekawość i głód wiedzy, ale brakuje mi praktyki i myślę, że ludzie nie chcą pracować ze mną, ponieważ mogliby się obawiać, że porozmawiam o jakimś morale. (Na przykład zacząłem uczyć się programowania przy użyciu systemu Linux zamiast Windows, nawet jeśli często używam systemu Windows. I mam Mac).
Co dzieje się z programistami, którym brakuje pracy zespołowej? Gdzie zaczynają się problemy? Czy bycie dobrym programistą kompensuje choć trochę? Czy to normalne, że programista ma wizję swojej pracy zamiast robić to, co mu powiedziano?
Odpowiedzi:
Twoje zachowanie jest dość powszechne w twoim wieku. Byłem jak ty.
Dobra wiadomość jest taka, że przez większość czasu rozwija się w dobrym kierunku. Dowiesz się, jak zintegrować się w zespole. Będzie Ci się podobało! Ale spotkałem ludzi, którzy nie byli w stanie tego zrobić, a teraz utknęli w depresji.
W zależności od stylu zarządzania firmą zostaniesz odrzucony przez zespół lub po prostu zwolniony po pewnym czasie. Musisz być przygotowany na pewne trudności.
Najpopularniejszy styl zarządzania we Francji opiera się na strachu i karach. To nie jest dla ciebie dobra wiadomość, ponieważ zachęci do indywidualizmu. To zachęci twoje zachowanie.
To powiedziawszy, już wiesz, że jest z tobą problem, więc jest to całkiem dobra wskazówka, że masz wszystko, czego potrzebujesz, aby ewoluować bez pomocy z zewnątrz. Pierwszym krokiem jest bycie świadomym. Drugi, najtrudniejszy, działa na niego.
źródło
Zależy od tego, czego wymaga praca. Czasami nawet nie będziesz mieć zespołu do niektórych zadań. Ale przez większość czasu będziesz mieć menedżera.
Ponadto posiadanie zespołu naprawdę pomaga od czasu do czasu przypomnieć ci, że piszesz bzdury. :
Co oznacza, że posiadanie zespołu ułatwi naukę rzeczy szybciej! Bycie samotnikiem uczyni cię pustelnikiem;)
źródło
Wtedy trudno jest pracować nad projektami, które są zbyt duże dla jednego programisty. Trudne dla programisty solo i trudne dla reszty zespołu.
Wszystkie rodzaje miejsc. Obecnie mamy jednego programistę, który źle pracuje w zespole. Ma tendencję do wprowadzania skrótów, które mają zły wpływ na resztę aplikacji, ponieważ zbyt wąsko koncentruje się na naprawianiu błędu przed sobą. Lub pisanie nowej funkcji w taki sposób, aby nie była kompatybilna z resztą aplikacji. Musimy tak zmienić układ, aby każde jego sprawdzenie kodu było sprawdzane przez resztę zespołu. Ale aby go nie wyróżnić, sprawdzamy również kody wszystkich innych osób, więc wraz z porannym spotkaniem o statusie nie wykonujemy żadnej pracy aż do lunchu. W naszym biurze oznacza to, że 4 osoby tracą 1/2 dnia pracy każdego dnia, ponieważ jeden facet jest kiepski w pracy zespołowej. Nie mogę powiedzieć, że jest to poprawa w stosunku do poprzednich przygód, ponieważ moglibyśmy losowo stracić dzień lub tydzień (zwykle goniąc za nowymi błędami) z jego odpraw, które psują rzeczy (nazywamy te „robstacles”). Niektóre poprawki w jego kodzie spowodują usunięcie pół tuzina błędów z powodu splątanej i niechlujnej aplikacji (moje zalecenie donuke z orbity i zacznij od nowa, ponieważ to jedyny sposób, aby upewnić się, że nie został zaakceptowany).
Kiedy jesteśmy w hojnym nastroju, nazywamy go „programistą z głową w dół”. Ma tendencję do spoglądania w dół na klawiaturę i szybkiego pisania. Nie zwraca uwagi na to, co robią inni.
Nie. Większość programistów, którzy są złymi graczami zespołowymi, ma bardzo wysoką opinię na temat swoich umiejętności, co nazywa się efektem Dunninga-Krugera . PDF z papieru.
Może: solowy programista musiałby być znacznie lepszy niż reszta zespołu. Ale to tylko oznacza, że nikt inny nie może zachować tego, co robi; a kiedy tak się dzieje, prawdopodobnie oznacza to, że solowy programista nie jest wcale lepszy od reszty zespołu - on (i prawie zawsze jest facetem) jest po prostu lepszy w oszukiwaniu wszystkich.
W zakresie tworzenia oprogramowania biznesowego firma będzie istnieć długo po twoim odejściu. Programy zostały najprawdopodobniej napisane przed rozpoczęciem i będą utrzymywane długo po twojej nieobecności. Jeśli piszesz rzeczy, które są tak wyjątkowe i niesamowite, że nikt inny ich nie rozumie, to kończy się sytuacja, w której znajduje się Naughty Dog - ich główny programista zrezygnował, nikt inny nie rozumie prawnie zastrzeżonego języka programowania, który napisał (i napisał) facet rzeczy w), więc teraz muszą zmienić wszystko na C ++.
To jest powszechne - jak korek drogowy lub cukrzyca. Nie nazwałbym tego normalnym. W świecie korporacyjnym jest wiele innych rzeczy do rozważenia; silne ego, które ma wielu programistów, zazwyczaj powoduje, że deweloper myśli, że nic innego się nie liczy. Ten „brak dopasowania” i brak uwzględnienia dla reszty firmy powoduje, że tak wielu typów menedżerów dochodzi do wniosku, że ciężko jest pracować z programistami.
źródło
To umiejętność, której można się nauczyć. Możesz uczyć się teraz (po prostu próbując współpracować z innymi) lub uczyć się na własnej skórze, w pracy. (Sugerowałbym ten pierwszy.)
Jeśli nie możesz pracować z innymi ludźmi, nie możesz budować dużych systemów. Nie możesz także pracować z ludźmi mądrzejszymi od siebie, co oznacza, że nie możesz nauczyć się tyle lub tak szybko.
źródło
Bycie dobrym programistą zrekompensuje trochę, ale tylko trochę. Przez szesnaście lat w branży wszyscy najlepsi programiści, z którymi współpracowałem, mogli nawiązać kontakt z ludźmi - być może nie przyszli do nich naturalnie, ale poradzili sobie z tym i była to absolutnie kluczowa umiejętność. Tych, którzy nie mogli, byli tolerowani, ale szczerze mówiąc niewiele więcej.
Dla mnie najważniejsza jest umiejętność współpracy z innymi, to użytkownicy i analitycy. Nie ma znaczenia, jak dobrze potrafisz kodować, jeśli kodujesz niewłaściwy kod. Kluczem do tego jest dobra współpraca z ludźmi, którzy definiują produkt.
Pierwszym krokiem może być lepsze zrozumienie siebie. Mówisz, że z przyjemnością szanujesz opinie innych, ale czy to naprawdę prawda? Jeśli tak, to dlaczego sugerujesz, że masz skłonność do zajmowania stanowisk moralnych w kwestiach (które są wręcz przeciwne do szanowania poglądów innych)?
Ogólnie rzecz biorąc, kontaktowanie się z innymi zwykle polega na ignorowaniu tego, kto ma rację, a kto się myli (który w to wierzy lub nie ma znaczenia w 80% sytuacji) i koncentruje się na robieniu tego, co posuwa projekt do przodu.
źródło
Profesjonalne tworzenie oprogramowania dzisiaj jest przede wszystkim wysiłkiem zespołu. Najlepsze oprogramowanie powstaje dzięki dzieleniu się nowymi pomysłami i wysokiej współpracy, a nie majstrowaniu w samotności. Kowboj koder ideału jest znanym przeszkodą dla zespołów. W rzeczywistości jest z definicji całkowitym przeciwieństwem pracy zespołowej.
Więc tak, słabe umiejętności drużynowe w otoczeniu drużynowym są bardzo złe. Ale jeśli naprawdę chcesz z nim pracować, nie ma powodu, dla którego ostatecznie nie będziesz świetnym współpracownikiem zespołu (z dużymi umiejętnościami programowania)!
źródło
Inni opisali już większość tego, co chciałem powiedzieć, więc dodam to: tylko dlatego, że masz opinię lub wizję, nie oznacza, że masz rację lub że twoje podejście jest najlepsze. Wiele możesz się nauczyć od innych, jeśli otworzysz umysł na możliwość, że mają oni także opinię i / lub wizję.
Praca zespołowa polega na połączeniu wszystkich tych opinii w coś, co opiera się na zbiorowym doświadczeniu zaangażowanych osób i rozwiązuje problemy, których jedna osoba może nie wziąć pod uwagę.
To była jedna z pierwszych lekcji, których nauczyłem się podczas pracy, a potem stałem się lepszym programistą.
źródło
Jeśli nie możesz współpracować z innymi i nie jesteś urodzonym geniuszem kodującym z natury, zasadniczo blokujesz się przed pracą nad jakimkolwiek nietrywialnym projektem, ponieważ dla nich potrzebujesz zespołu, jeśli tylko obniżenie współczynnika autobusu.
Jeśli po prostu nie lubisz kontaktu fizycznego, ale dobrze pracujesz z telepracą lub na listach dyskusyjnych typu open source, musisz specjalizować się w umiejętnościach pozwalających na taką pracę.
źródło
Niestety może to stanowić pewien problem, ponieważ rzadko pracuje się nad dużymi projektami i nie musi pracować w zespole. Nawet jeśli pracujesz nad projektem współzależnie, na ogół zauważysz, że musisz bliżej współpracować z użytkownikami końcowymi, którzy wszyscy wracają do pracy zespołowej, więc jest to bardzo ważne.
To powiedziawszy jednak, jak zauważyli inni, jest to umiejętność do nauki (do pewnego stopnia) i jeśli włożysz w to wysiłek. Istnieją większe kursy, które można odbyć tutaj w Stanach Zjednoczonych w większych miastach, aby rozwinąć umiejętności przywódcze; jednak częścią bycia dobrym liderem jest także bycie dobrym naśladowcą, więc te umiejętności również są rozwijane. Podobnie, umiejętność skutecznego komunikowania się w miejscach publicznych jest czasem umiejętnością, z którą ludzie muszą ćwiczyć i jest związana z umiejętnościami pracy w zespole, ale czasami jest nadużywana - ktoś, kto nie jest w stanie skutecznie komunikować się, może być cytowany jako nie będący „graczem zespołowym” wystarczy trochę popracować nad umiejętnościami komunikacyjnymi.
Jednak duża część pracy z zespołem polega na tym, że do pewnego stopnia poznajesz siebie i czujesz się dobrze zarówno ze sobą, jak i z innymi osobami, więc czasem nie ma nic złego w rozmowie z psychologiem lub doradcą, aby sprawdzić, czy można coś poprawić w odniesieniu do pracy z innymi.
Jeśli chodzi o twoją karierę jako całość, tutaj, w Stanach Zjednoczonych, reputacja „bycia trudnym do pracy” lub „nie bycia graczem zespołowym” może być bardzo niekorzystna dla twoich długoterminowych perspektyw kariery i zaryzykowałbym przypuszczenie że byłoby tak samo w większości innych krajów. Jest to również trudna do zniesienia reputacja, gdy zostanie ustanowiona bez przeprowadzki do innej firmy lub nawet innej branży, w zależności od dziedziny, w której pracujesz.
źródło
Ponieważ jesteś dobrym uczniem, powinieneś nauczyć się jeszcze jednej rzeczy, o której niektórzy już wiedzą.
Są chwile na bycie niezależnym i są chwile, by się połączyć. Oba są ważne.
Ponieważ jesteś w szkole, możesz ćwiczyć ciekawość i szukać nowych i różnych sposobów działania. To jest dobra rzecz.
Współpracując z zespołem oprogramowania, możesz przekazać swoje dobre pomysły. Niektóre zostaną zaakceptowane. Niektórzy nie. Następnie wszyscy „przykładacie ramię do kierownicy” i wykonacie pracę. To też dobrze.
Moje doświadczenie w projektach polega na tym, że na początku morale grupy jest niskie, kiedy ludzie wciąż starają się skupić na szerszej perspektywie. Następnie morale stale rośnie, gdy postęp jest osiągany w kierunku celu. Pod koniec jest bardzo wysoka, gdy twoje „dziecko” zaczyna się „rodzić”. To coś, czego nie chcesz przegapić.
źródło
Mogę wymyślić wielu doskonałych programistów, którzy są (przez wielu) uważani za „dość trudnych w pracy”:
W tej branży uważam, że spora część z nas oczekuje i zakłada, że kompetencje i umiejętność wyrażania naszych kompetencji są kluczowe. W końcu idziemy do pracy, aby wykonać pewne zadania, aby zarabiać pieniądze, nawiązywanie przyjaźni jest drugorzędne.
W pewnym momencie swojego życia zdasz sobie sprawę z jednej z dwóch rzeczy:
Jesteś w stanie być tak złośliwy, wycofany, aspołeczny, cyniczny lub niegrzeczny, jak chcesz, ponieważ pomimo twojego zachowania twoje umiejętności (i umiejętność wyrażania swojej wiedzy) kończą wszystkie argumenty.
Jesteście jak wszyscy inni i musicie być w stanie pracować w zespole, jednocześnie znosząc (i wybieranie mózgów) złośliwe, wycofane, aspołeczne, cyniczne i niegrzeczne zachowania od innych, których umiejętności i biegłość w artykułowaniu wiedzy kończą większość argumentów.
Jeśli kwestionujesz to, myślę, że widzisz pewną wartość uczestniczenia w zgodzie w zespole i być może „robienie tego ze względu na robienie tego” jest wystarczająco dobrą wymówką, aby zbadać tę możliwość.
Jestem też bardzo podobny do ciebie. Nienawidzę zakłóceń, zajęło mi prawie pięć lat, aby nauczyć się, jak nie przeszkadzać i zwalniać ludzi. Pracowałem również w zespołach, w których nauczyłem się więcej w ciągu miesiąca, niż sam mogłem w ciągu roku. Czy to nie dziwne, że chcesz mieć wokół siebie ludzi tylko wtedy , gdy masz coś ciekawego do pokazania lub dyskusji?
Jeśli jeszcze go nie widziałeś, obejrzyj film „ Prawdziwy geniusz ”. Zwróć szczególną uwagę na Lazlo Hollyfelda . Wskocz do drużyny z otwartym umysłem i pożycz moją piżamę.
źródło
Nie ma nic złego w posiadaniu silnych opinii na temat tego, jak powinno być. Każdy świetny programista ma ich wiele. Musisz jednak zadać sobie pytanie: dlaczego piszę ten kod?
Jeśli jest to dla twojej własnej rozrywki i możesz sam wykonać całą pracę, zrób wszystko, co chcesz. Jeśli jednak robisz to, aby inni mogli z niego korzystać, lub potrzebujesz pomocy, lub jeśli oczekujesz, że inni programiści utrzymają ją po tym, jak się nudzisz, musisz zacząć brać pod uwagę potrzeby i wyobrażenia innych osób.
Wizja jest w porządku. Ale to naprawdę robi różnicę tylko wtedy, gdy możesz przekonać innych ludzi do podzielenia się twoją wizją. Gates, Jobs i Torvalds zdołali urzeczywistnić swoje wizje, tworząc produkty, które służyły wielu ludziom, i zachęcając ich do kupowania ich. Praca wyłącznie na swój sposób jest czystsza i bardziej satysfakcjonująca, ale wiąże się z pewnymi kosztami. Możesz, jak powiedział Voltaire, pozwolić, by doskonały był wrogiem dobra („Le mieux est l'ennemi du bien”).
źródło
Praca zespołowa jest ważną częścią inżynierii oprogramowania. Jeśli pracujesz sam, możesz nie przejmować się tym, jak inni są i czego ludzie od ciebie oczekują. Ale jeśli pracujesz z inną osobą, współpraca naprawdę się liczy. Jeśli chodzi o oprogramowanie, to, co rozumiesz przez pracę zespołową, to naprawdę „ dobra komunikacja ”. Po prostu uszanuj swojego kolegę i bądź tolerancyjny wobec wszystkich pomysłów. Powinno być dobrze.
źródło
Jeśli w coś wierzysz, powiedz to i masz na myśli, ale raz udowodniono, że jest źle lub przewyższało, zaakceptuj to i wyciągnij z tego wnioski. Praca zespołowa nie polega na ciągłym uzgadnianiu, ale na znalezieniu najlepszego rozwiązania w danej sytuacji i czasie.
źródło
Ponieważ właśnie przygotowujesz się do wejścia na rynek pracy, zamierzam wskazać coś innego.
Programiści na poziomie podstawowym nigdy nie są gwiazdami. Nie możesz podjąć pracy, myśląc, że jesteś lepszy niż wszyscy inni, ponieważ w oczywisty sposób nie jesteś. Konkurowałeś z innymi ludźmi na swoim poziomie, więc możesz pomyśleć, że jestem lepszy od tych ludzi, muszę być świetnym programistą.
Ale ktoś świeżo po szkole nie wie, co wie osoba z dziesięcioletnim doświadczeniem zawodowym. Po prostu jeszcze tego nie wiesz. Teraz przyznaję, że nie każdy z dużym doświadczeniem jest gwiazdą, a samo bycie na poziomie podstawowym nie oznacza, że nie można być porządnym programistą. Nie oznacza to nawet, że nie możesz zostać gwiazdą z mniejszą ilością przypraw niż niektórzy inni ludzie (cóż, niektórzy nigdy nie będą gwiazdami, ale to też OK).
Ale nie będziesz mieć wiarygodności, aby wdrożyć swoje pomysły, dopóki nie będziesz kimś innym niż młodsza osoba w zespole. Aby uzyskać tę wiarygodność, musisz być graczem zespołowym. Musisz dowiedzieć się o domenie biznesowej i o tym, jak działają firmy. Musisz zrozumieć, że Twoje osobiste potrzeby i pragnienia są nieistotne w większości miejsc pracy. Zostaniesz zatrudniony do wykonania określonej pracy i uzyskania wyników. Dopóki nie wyprodukujesz niektórych z nich, ludzie będą sceptycznie nastawieni do wszystkiego, co sugerujesz, nawet jeśli masz rację. Musisz iść spacerem, zanim zaczniesz mówić.
źródło
Skończysz pracując sam.
Korzyści z pracy w zespole:
1- Interaktywna pomoc: nie utkniesz w problemie przez wiele godzin / dni.
2- Nauczysz się rzeczy, których nie znajdziesz w książkach / samouczkach online, na forach.
3- Konkurs: zwiększy twoją motywację do pokonania członków drużyny.
4- Dyskusje: co jest lepsze niż godziny czytania książek i blogów.
źródło