Czy lepiej jest specjalizować się w jednym polu, który mi się podoba, czy też rozszerzyć na inne, aby poszerzyć swoje horyzonty? [Zamknięte]


31

To dylemat, o którym myślałem od dłuższego czasu.

Jestem doktorantem, a moje zainteresowania obejmują projektowanie języka programowania, analizę kodu, kompilację itp. Do tej pory ta dziedzina była dla mnie bardzo interesująca i satysfakcjonująca, więc zastanawiałem się nad znalezieniem pracy w tej dziedzinie i kontynuowaniem specjalizować się w tym. Wydaje mi się, że jest to stosunkowo solidne pole, które w najbliższym czasie „nie wyjdzie z mody”. Zawsze myślałem, że w tak złożonych dziedzinach lepiej być prawdziwym ekspertem niż tylko innym facetem, który powierzchownie rozumie, o czym mówią eksperci.

Z drugiej strony czuję, że specjalizując się w ten sposób, naprawdę ograniczam swoją przyszłą opcję. Zawsze wierzyłem w multidyscyplinarne podejście do problemów. Może powinienem poszukać ogólnej pracy programistycznej, w której mógłbym zdobyć doświadczenie w innych dziedzinach, a także od czasu do czasu zastosować moją ulubioną dziedzinę do rozwiązywania problemów. Specjalizacja tylko w jednym lub dwóch dziedzinach może powstrzymać mnie od myślenia poza schematem i spowodować stagnację.

Naprawdę chciałbym usłyszeć więcej opinii na temat tego wyboru. Prawda jest taka, że ​​już skłaniam się ku jednemu z tych wyborów, więc podstawowa psychologia mówi, że nic nie zmieni mojego zdania, ale nadal chciałbym usłyszeć jakieś opinie.


Dobrze idzie. Gwarantuję za ciebie. Chciałbym również zobaczyć inne komentarze
PradeepGB

Specjalizujemy się w programowaniu ORAZ czymś innym, co nie zniknie, takim jak prawo, podatki, język, biologia lub matematyka. Podczas gdy umiejętności informatyczne stają się zbyt szybko bezwartościowe, niektóre inne umiejętności pozostają w pobliżu. Trudno jest znaleźć (na przykład) programistę mówiącego po włosku + chińsku, który specjalizuje się w podatkach. Po prostu mądrze stawiaj zakłady. Pomyśl o tym: w ciągu następnych 20 lat jako programista (mam nadzieję) będziesz musiał nauczyć się o wiele więcej rzeczy niż potrzeba do ukończenia pracy doktorskiej. Z tej perspektywy kolejne 2 lata nauki w czymś „bardziej statycznym” nie wydają się okropnym pomysłem.
Job

Odpowiedzi:


21

Specjalizuj się, jeśli ci się spodoba

Jak wiesz, jeśli się specjalizujesz, automatycznie ponosisz koszty alternatywne, ponieważ nie będziesz od razu kwalifikował się do innych technologii (np. Programiści Java często nie są natychmiast przyjmowani do zadań optymalizacji kompilatora). Musisz jednak zrównoważyć to zamiłowaniem do złożoności właściwej dla wybranej dyscypliny.

Mówisz, że chcesz być ekspertem - śmiało i poświęć czas na naukę wybranej dyscypliny. Jako społeczność zawsze potrzebujemy nowych ekspertów. Jednak radzę postępować zgodnie z zaleceniami programisty „Naucz się nowego języka każdego roku” . W ten sposób, gdy zajmujesz się głęboką analizą leksykalną kodowania algorytmicznego, możesz także stworzyć małą aplikację iPhone, która Cię interesuje. Nigdy nie wiadomo, krzyżowe zapylenie różnych paradygmatów może dać ci wgląd, który rozszerzy twoją specjalizację na nowe obszary.


Jeśli chodzi o twoje pierwsze zdanie - istnieje również obawa, że ​​pewnego dnia zmęczy mnie to, co kocham, a potem, jako specjalista, trudno będzie zmienić dziedzinę. Z drugiej strony moje zainteresowanie tą dziedziną rośnie od wielu lat.
Oak

1
@Oak, nigdy nie możesz przewidzieć, kiedy się zmęczysz, więc wybierz pole, z którego jesteś pewien, że jesteś zadowolony i maksymalnie. Jeśli czujesz, że dochodzi do wypalenia zawodowego, skieruj uwagę na inną pracę. Jeśli wybrana przez ciebie dziedzina jest wystarczająco zaawansowana (i na pewno brzmi tak, jakby była), powinieneś mieć wystarczającą liczbę umiejętności, aby móc cokolwiek podnieść. OK, będziesz noobem, ale poświęć się i wkrótce będziesz latać.
Gary Rowe,

2
Ponieważ Oak interesuje się językami i projektowaniem języków, założę się, że już zna mnóstwo języków, a nauka nowych języków zasadniczo należy do jego specjalizacji (mniej więcej). Dla kogoś już zainteresowany języków, proponuję robić coś nowego i nietrywialne w języku wiesz: spróbować swoich sił w AI lub uczenia maszynowego lub NLP lub pisania OS ...
Tichon Jelvis

20

Myślę, że to zależy od tego, czego chcesz od kariery ...

Na poziomie technicznym : bycie waletem wszystkich transakcji oznacza, że ​​możesz ubiegać się o szerszą gamę ról niż osoba wyjątkowo wyspecjalizowana. Jeśli chcesz być elastyczny i poruszać się, a nie być przywiązany do konkretnej niszy, prawdopodobnie nie jest tak źle. Minusem jest jednak to, że prawdopodobnie ograniczysz się do stosunkowo młodszego / średniego poziomu ról, chyba że zagłębisz się głębiej w konkretny obszar.

Specjalizacja w danym obszarze jest wręcz przeciwna do powyższej. Prawdopodobnie będziesz w stanie uzyskać wyższy status i wyższe dochody (jeśli jesteś w dobrej niszy z dużym popytem, ​​oczywiście), ale prawdopodobnie zostaniesz w dużym stopniu zaszufladkowany do tej specjalności.

Tak więc w szerokim sensie te dwa są wyborami na poziomie technicznym.

Na poziomie politycznym : jeśli mówisz o „postępie kariery” w kwestii przejścia do zarządzania i tym podobnych, to na ogół nie ma znaczenia, co robisz technicznie. Praktycznie każdy, kogo znam, który przeszedł z zarządzania na stanowisko programisty, zrobił to bardzo dobrze, poznając ludzi i procesy biznesowe w swojej organizacji. Niektórzy byli specjalistami, a niektórzy byli generalistami (pod względem technologii, z którą pracowali) - ale WSZYSCY byli bardzo głęboko zakorzenieni w organizacji, dobrze znali ludzi i procesy i po prostu logiczne stało się, że zaczęli przejmować te obowiązki.

Tak więc w podstawowym sensie, jeśli chcesz rozwijać swoją karierę pod względem awansu do hierarchii zarządzania, chodzi o grę polityczną. Bycie generalistą kontra specjalistą nie ma tak dużego znaczenia (być może tylko stanie się specjalistą od procesów i technologii, którymi będziesz zarządzać).


4
Nie jestem do końca pewien, dlaczego musisz być bardzo wyspecjalizowany, aby zostać sklasyfikowanym jako starszy.
Jon

@Jon: Dobra uwaga. Zedytowałem to.
Tabele Bobby

3
Jack-of-all-trade może mieć unikalną perspektywę w obliczu problemu, ponieważ może przewidzieć dodatkowe rozwiązania, których ktoś, kto zna tylko jedną technologię, nie jest w stanie sobie wyobrazić.
wildpeaks

10

Po pierwsze, oferty pracy często wyolbrzymiają wymaganą specjalizację. Żadna firma nie mówi „potrzebujemy faceta, który trochę wie o Javascript, ponieważ nic nie wiemy” w ogłoszeniu o pracy; umieścili tam „eksperta Javascript”, ponieważ wszyscy pozostali byliby równi, chcieliby znaleźć kogoś, kto był ekspertem. Nie musi to oznaczać, że tylko eksperci są wykwalifikowani do wszystkiego, czego firma potrzebuje w JavaScript (i zdziwiłbyś się, jak często nawet nie wiedzą, co muszą zrobić). Więc nie przejmuj się zbytnio byciem „ekspertem”; ubiegaj się o pracę, w której jesteś zaznajomiony z reklamowanymi umiejętnościami i zobacz, jak potoczy się rozmowa kwalifikacyjna. Bycie dobrym w pracy to o wiele więcej niż tylko tyle lat [wstaw język], które masz pod ręką. A jeśli praca jest satysfakcjonująca,

Chodzi o „znalezienie” pracy; „utrzymywanie” pracy, bycie JOATEM może być cudowne. Jeśli Twoja firma zacznie badać różne języki i platformy, będziesz wyprzedzać grę. Jeśli twoja firma oparta na MS nagle potrzebuje do czegoś faceta z UNIX-em, to będziesz ich celem (być albo tym facetem, albo zająć się zatrudnieniem „eksperta”). Utrzymanie pracy polega na byciu niezbędnym bez względu na to, co się stanie, a JOAT to dobry sposób, aby być tym facetem.

Dodatkowo ułatwia znalezienie nowej pracy, gdy Twoja firma przechodzi znacznie łatwiej :)


1
„Jeśli twoja firma z siedzibą w MS nagle potrzebuje do czegoś faceta z UNIX” ... och, możemy marzyć, prawda :)
Jordan

@Jordan - nie marzyć; Byłem tam. Przez lata pracowałem w sklepie MS, ale ostatecznie trafiliśmy do klientów, którzy potrzebowali wsparcia w MySQL i Linux. Ci z nas, którzy znali Linuksa z innych prac i użytku domowego, musieli wkroczyć, dopóki nie będziemy mogli zatrudnić administratora Linuksa. To się zdarza :)
EZ Hart

7

Cóż, tak i nie. Problem w tym, że nigdy nie będziesz gwiazdą rocka. Nigdy nie będziesz tym facetem, który potrafi robić rzeczy z C, czego nikt inny nie może zrobić. Twój brak koncentracji wyklucza tego rodzaju doskonałość.

Z drugiej strony, kiedy kierownictwo zdecyduje, że nie stać ich na tonę programistów, nie zwolnią cię , aby go zatrzymać . Elastyczność ma swoje zalety.

Jestem Jackiem, a mój dział zaobserwował 80% redukcję w ciągu ostatnich 4 lat. Ale tu jestem. Po części dlatego, że jestem bardziej nieostry niż większość. I jak coraz wręczył zadanie ja nic o tym wiedzieć, a moi szefowie, jak fakt, że mówię „Oczywiście!” bez względu na to, jakie dziwne dupki wymyślą. A kiedy zrozumiesz duży obraz, jest to rodzaj rockstardom, którego większość specjalistów nigdy nie osiąga, i może być dochodowy.

Jeśli więc chcesz być gwiazdą rocka, musisz się skupić, ponieważ nikt nie może być lepszy od wszystkich. Ale jeśli szukasz stabilności, wybierz elastyczność, ponieważ elastyczność jest bardziej zbywalna niż bycie dupkiem.


3

Generalist vs. Specialist to artykuł z CIO.com, ale prawdopodobnie istnieją dziesiątki podobnych artykułów lub postów na blogach osób próbujących sprawdzić, czy jeden jest lepszy od drugiego. Każdy ma swoje zalety i wady. Każdy, kto chce powiedzieć, że jeden całkowicie przebija drugi, może być do pewnego stopnia stronniczy.

Nie zapominaj, że po każdej wybranej stronie istnieje iluzja. To, co postrzegasz jako specjalizację, może mieć różne smaki. Na przykład, czy uważasz ogólnie programistów internetowych za specjalistów lub generalistów? Niektórzy mogą uznać, że jest to specjalizacja, a inni nadal mogą uznać ją za dość szeroką, ponieważ wiele aplikacji internetowych może obecnie zawierać różnego rodzaju komponenty, które mogą wymagać do pewnego stopnia różnej wiedzy specjalistycznej.

Chociaż wymienione obszary sprawiłyby, że myślę, że chcesz pracować dla firmy produkującej oprogramowanie, mogą istnieć pewne części technologii informatycznych, które mogłyby w pewien sposób wykorzystać podobne umiejętności. Możesz dowiedzieć się, ile dostosowań dokonuje się w różnych gotowych programach, aby działało, i jak dobrze jest to inwestycja dla większości firm, która daje przykład.


3

Z drugiej strony czuję, że specjalizując się w ten sposób, naprawdę ograniczam swoją przyszłą opcję.

Zapamiętaj. Twoja przyszłość rozciąga się na dziesięciolecia.

Obecna technologia zaniknie znacznie w miarę pojawiania się nowych możliwości.

Specjalizacja wcale nie szkodzi.

Zacząłem specjalizować się w wykrawaniu kart papierowych do pisania programów w języku COBOL. Teraz piszę w Pythonie i od dziesięcioleci nie dotknąłem perforowanej karty papierowej.

Technologia przychodzi i odchodzi. Wszystko, w czym się teraz specjalizujesz, zniknie za dziesięć lat, a będziesz specjalizować się w czymś innym. Albo staniesz się przestarzały.

Martwienie się o „doświadczenie w innych dziedzinach” to strata czasu. Dostaniesz to doświadczenie, czy chcesz, czy nie.


3

To zależy od twojej kariery. Myślę, że powinno to pomóc twojej karierze, jeśli chcesz być konsultantem ogólnym, założyć własną firmę, pracować dla małej firmy lub w każdej innej sytuacji, w której tego rodzaju elastyczność jest uznanym atutem. Jestem w tej samej sytuacji i obecnie pracuję jako konsultant, chociaż specjalizuję się w .NET / C # / SQL / ASP.

Podobnie, czy można zrobić karierę dzięki wszechstronności w dziedzinie technologii, posiadaniu szerokiego zakresu (choć płytkiego) doświadczenia, ale bez specjalizacji w określonej technologii?

Tak, myślę, że możesz poszukać małych firm, które nie mogą zatrudnić kogoś dla każdej dziedziny specjalizacji lub być konsultantem.

(Nie jest też złym pomysłem wybranie obszaru, w którym będziesz się specjalizować, oprócz utrzymania bardziej ogólnych umiejętności).


2

Kiedy zatrudniam programistów, jestem nastawiony na ludzi z siłą i doświadczeniem w zakresie konkretnych umiejętności, których szukam. Rekruterzy znacznie wzmocnią to nastawienie. Oznacza to, że nawet jeśli mógłbym cię zatrudnić (i lubię ludzi o szerokich umiejętnościach i dobrej podstawowej wiedzy, które mogą się uczyć), prawdopodobnie nigdy nie będę z tobą rozmawiać.

Sam jednak zawsze byłem profesjonalistą i miałem wiele różnych stanowisk w tej samej firmie, w której pracowałem przez większość mojej kariery. Nadal trochę boję się perspektywy znalezienia pracy i nie sądzę, żebym mógł łatwo znaleźć inną pracę za moją obecną pensję (która jest wystarczająca, ale ludzie mnie znają).


2

jak zwykle...

To zależy

To zależy od tego, co rozumiesz przez „karierę”. Co więcej, zależy to od tego, co myślisz o „karierze”.

Obecnie dużo pracuję z aplikacjami internetowymi. Kiedy zaczynałem tę karierę, sieć nie istniała. Tak więc w bardzo dużym stopniu odpowiedź @ Satanicpuppy jest trafna.

Istnieją cztery korzyści związane z terytorium jack-of-all-trade (JOT):

  1. Chęć i umiejętność uczenia się wszystkiego, co jest konieczne do wykonania pracy
  2. Mądrość wiedzieć, czego nie wiesz
  3. Pokora, aby tak mówić i prosić o pomoc w razie potrzeby.
  4. Duży wachlarz sztuczek obejmujący wiele granic domen

Główną wadą jest to, że osiągnięcie doskonałości zajmuje dużo, dużo więcej czasu , ponieważ przesuwasz krzywą uczenia się na wielu frontach.

Czy jestem tak dobrym DBA, jak niektórzy przyjaciele, którzy nie robili nic poza tym przez 15 lat? Oczywiście nie. Czy w jednej chwili mogę zobaczyć rozwiązania, których nigdy nie wymyślą za dwa tygodnie? Tak.

Myślę, że najlepszą radą jest pozostanie JOT, dopóki nie znajdziesz czegoś tak fascynującego, tak atrakcyjnego, że chcesz to zrobić i tylko do końca czasu. To „będzie” będzie twoją specjalnością.

Lubię rozwiązywać nowe, trudne problemy, szukać innowacji, by zabić to, co przyziemne, i ciągle się uczyć - to moje „to” i to jest powód, dla którego kocham IT

Bycie generalistą to moja kariera.


+1: Bycie generalistą to także moja kariera. :-) Znając rzeczy inne niż domeny problem lub głównego technologii jest przydatna, ponieważ będzie to pozwalają mieć skrzynka narzędziowa z możliwych rozwiązań . Może nie sprawi, że będziesz super specjalistą, ale będziesz majstrować przy nowych zabawkach - to znaczy technologii.
Spoike

2

Myślę, że jednym z powodów, dla których firmy szukają i cenią wyspecjalizowanych ludzi, jest powrót do nieszczelnych abstrakcji . Problem polega na tym, że w ciągu ostatnich 30 lat inżynierowie oprogramowania wykładniczo zwiększali liczbę warstw abstrakcji i tak bardzo, jak chcielibyśmy mieć pewność, że nie wystąpią żadne skutki uboczne, zawsze pojawiają się. I to nieudokumentowane osobliwości, które cię dopadają.

Być może możesz szybko zacząć korzystać z nowej technologii, czytając specyfikacje i przykłady online, ale czy zauważyłeś, że kiedy zaczynasz coś nowego, spędzasz 20% czasu na pisaniu kodu dla funkcji i 80% czasu na szukanie najdziwniejszego błędu widziałeś kiedyś Gdy staniesz się ekspertem w jednym obszarze, ta racja zmienia się z 20/80 na 95/5 (tworzę liczby, ale ogólnie są prawdopodobnie blisko), szczególnie w tym obszarze. Co oznacza, że ​​możesz wykonywać pracę znacznie szybciej i unikać pułapek / typowych błędów, zanim jeszcze się zdarzą. Na przykład dzisiaj wcześniej jeden z naszych starszych inżynierów (nowy w zespole / produkcie) spędził ponad pół dnia na poszukiwaniu problemu z uszkodzeniem stosu, którego identyfikacja zajęła mi 5 minut, ponieważ to była moja domowa murawa.

Gdy staniesz się ekspertem w swojej dziedzinie, staniesz się bardziej widoczny i wartościowy dla kierownictwa. Nie wiem o innych firmach, ale w tych, w których pracowałem, twoje wynagrodzenie (przynajmniej częściowo) zależy od tego, jak ważne są twoje obowiązki. JOAT zasadniczo nie ma stałych obowiązków. Zamiast tego menedżerowie używają ich jako ruchomych / wymiennych zasobów (nasz wiceprezes nazywa je szwajcarskimi nożami armii), które można przenosić z jednej drużyny do drugiej w zależności od zapotrzebowania. Możesz więc pozostać w firmie przez 10 lat, a potem spojrzeć wstecz i zdać sobie sprawę, że nigdy nie zdobyłeś ani jednej odpowiedzialności. Mam bardzo dobrego przyjaciela (który jest także doskonałym programistą C ++ / C #, ale okazuje się również bardzo dobrym JOATEM, ponieważ podejmie każdą pracę), który był typecast na taką rolę. Wiem, że nie jest szczęśliwy, ponieważ podczas gdy mam bardzo duży i zabawny kawałek produktu jako mój plac zabaw, jest on głównie tymczasowym gościem w czyimś kraju. Ale teraz nie może się z tego wydostać.

Powiedziawszy to, posiadanie umiejętności JOAT jest równie ważne, więc chociaż niekoniecznie będę próbował pozycjonować się jako JOAT, myślę, że ważne jest, aby nadal czytać / studiować / uczyć się nowych rzeczy, ponieważ technologia się zmienia, a nawet jeśli jesteś ekspertem dzisiaj, być może jutro będziesz musiał zostać ekspertem w czymś zupełnie innym.


Sprawa twojego przyjaciela jest dokładnie tym, przez co teraz przechodzę! +1
Html Tosin

1

Powiedziałbym absolutnie.

Ale będziesz musiał wyjść i zdobyć, nie pojawi się w gazecie ani w ogłoszeniu o pracy online (prawdopodobieństwo jest małe). Więc zamiast patrzeć na wyspecjalizowane prace, być może powinieneś szukać prac, które będą pasować do twoich różnych mocnych stron. „Marginally well” jest subiektywne, być może jesteś zbyt surowy wobec siebie, również skromny, ale to dobra rzecz (-:

Ponadto, chociaż twoje doświadczenia i wiedza są ważne, pracodawcy są bardziej zainteresowani twoją zdolnością do dostarczania rezultatów. Zadaj sobie pytanie: co mogę zrobić z moją różnorodnością wiedzy i doświadczeń, która poprawi wyniki finansowe tej firmy ? Nie widzę twojego wznowienia, niektóre tytuły, które mogę oderwać od głowy, to Inżynier Rozwiązań, Architekt (Sieć, Aplikacja itp.), A nawet CTO.

Na koniec, radzę zrobić karierę z tego, co lubisz. Będziesz musiał to robić przez ponad 8 godzin dziennie przez wiele lat, a równie dobrze możesz polubić to, co robisz w tym tempie (-;

HTH i najlepsze życzenia,

KM


1

Prawdą jest, że większość ofert pracy działa przeciwko nim, ponieważ są zbyt szczegółowe lub zbyt wymagające. Są napisane jak reklamy (prawdopodobnie, aby pokazać innym, jak potężne są), ale uniemożliwia zastosowanie świetnych profili z powodów, które podajesz w swoim pytaniu.

Oto oferta pracy, której używam:

Opis stanowiska i osoby

Co najmniej 4 lata doświadczenia z .NET Framework. Znajomość określonych technologii nie jest wymagana. Kandydaci muszą szybko się uczyć i wykazywać entuzjazm w uczeniu się nowych rzeczy. Chcemy ludzi, którzy:

  • są zainteresowani mediami cyfrowymi
  • postrzegać trudności jako szanse
  • załatw sprawy i nie są oparte na CV
  • zainteresowany stroną biznesową
  • ich praca ma ducha startupowego Język: francuski LUB angielski

Umiejętności (niewymagane, ale każda będzie atutem):

  • .NET Framework 4.0
  • nHibernate lub Entity Framework
  • DevExpress Components
  • LINQ
  • WCF
  • HTML / CSS / JavaScript
  • ExtJs

Jak widać, oprócz ogólnego doświadczenia z .NET, tak naprawdę nie jest wymagana żadna inna wiedza. Wymagana jest jednak umiejętność tworzenia nowych rzeczy.

Ponieważ nie możesz kontrolować, w jaki sposób firmy piszą opisy stanowisk, powinieneś postrzegać je jako możliwości uczenia się.

Kiedy widzę ofertę pracy, która jest bardzo wymagająca, widzę to jako okazję do nauki nowych rzeczy. Podczas wywiadu (jeśli go dostanę) wyjaśniam, że ponieważ moją motywacją jest uczenie się i załatwianie spraw, nie odczuwałbym zbyt dużego wrażenia z powodu braku doświadczenia w jednej z bardziej wymienionych technologii.

Tak właśnie nauczyłem się tak szybko: wybierając wymagające prace .

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.