Od ponad pół roku jestem profesjonalnym programistą i zadziwiło mnie, jak wielki jest świat po studiach. Nadal uczę się w wolnym czasie, ale zastanawiam się, na czym powinienem się skupić?
FOCUS 1) Stos programistyczny używany przez moją firmę. Najszybsza wypłata w moim codziennym rozwoju. # Deeestest
FOCUS 2) Inny język z tym samym paradygmatem. Sprawdź, czy mogę uogólnić swoją wiedzę i sposób myślenia.
FOCUS 3) Inny język, inny paradygmat. Rozszerz moje granice i naucz się nowych sposobów robienia rzeczy. #Bestest
Jeśli ktoś ma inny cel, nie krępuj się.
programming-languages
learning
self-improvement
Bob Roberts
źródło
źródło
Kiedy ludzie pytają mnie o radę zawodową, twoje pytanie jest jednym z pierwszych pytań, które zadaję. Nie sądzę, aby ktokolwiek mógł odpowiedzieć na to pytanie; Myślę, że musisz sam zdecydować, czy skupienie się na głębokości, czy szerokości jest bardziej prawdopodobne, aby osiągnąć swoje cele zawodowe.
Kiedy ostatnio zmieniałem zespoły, miałem dwie możliwości: pracować w zespole narzędzi programistycznych XBOX lub pracować w zespole kompilatorów C #. Uświadomiłem sobie, że sprowadza się to do szerokości względem głębokości. W zespole XBOX mógłbym kiedyś pracować nad systemami bezpieczeństwa, następnego systemy audio, wideo, sieci, interfejsy sprzętowe, jak to nazywacie. Jasne, niektórzy ludzie są ekspertami, ale każdy musi się trochę dowiedzieć o wszystkim. W zespole kompilatorów C # mogłem zanurzyć się w jednym języku i jednym kompilatorze i naprawdę zrozumieć to wszystko dogłębnie.
Zastanowiłem się nad tym i zdecydowałem, że bardziej jestem temperamentny niż ekspert dyletancki. To był dla mnie dobry wybór, ale może nie być dla ciebie. Niektórzy ludzie odnoszą duże sukcesy, wiedząc trochę wszystkiego.
Dlatego radzę odwrócić to pytanie. Dowiedz się, jakim jesteś człowiekiem, a następnie sprawdź, czy Twoja firma ma możliwości dla kogoś takiego jak Ty. Jeśli nie, znajdź taki, który to robi.
źródło
Bycie specjalistą może sprawić, że będziesz droższy. Ale możliwości zatrudnienia wymagające tego wysokiego poziomu będą ograniczone, zarówno pod względem liczby, jak i położenia geograficznego.
Być generalistą, być może, płaci mniej, ale otwiera przed Tobą wiele możliwości pracy, potencjalnie na całym świecie.
Również na wyższych stanowiskach i stanowiskach kierowniczych najlepiej jest mieć osobę doświadczoną w różnych rzeczach, technikach i technologiach. Znajomość krawędzi i możliwość zobaczenia dużego obrazu czyni cię cennym zasobem.
źródło
Myślę, że na twoim etapie rozwoju priorytetem jest uzyskanie pewnej głębi. Widzę zbyt wielu ludzi, którzy wiedzą trochę na temat wielu rzeczy, ale nie mogą sobie poradzić z pracą na poziomie podstawowym, ponieważ cała ich wiedza jest na poziomie podstawowym.
Jeśli chciałem być specjalistą, to głębokość zabudowy jest najlepszym wyborem.
Jeśli chcę być generalistą, najpierw zbuduj głębokość (przejdź do co najmniej poziomu pośredniego) na jednym stosie, a następnie przejdź do innych języków. Jeśli najpierw zbudujesz głębię, łatwiej ci będzie zbudować głębię w wielu językach, ponieważ masz do dyspozycji więcej pojęć i wiesz, czego możesz się nauczyć. Potem rozgałęziłbym się trochę w coś innego. Następnie wróć i zbuduj głębię do poziomu zaawansowanego, a następnie ponownie rozgałęź się i dowiedz się więcej o rzeczach zupełnie innych niż to, co już wiesz. Następnie rozwiń tę głębokość w innym obszarze do poziomu pośredniego, naucz się czegoś innego itp.
Zastrzeżenie - jestem wyjątkowy, więc zdecydowanie popieram głębię wiedzy
źródło
Obie opcje mają swoje miejsce. Skupienie się na stosie programistycznym używanym przez Twoją firmę pomoże ci w pracy, ale poznanie innych technologii pomoże ci w karierze.
Pod koniec lat 90. umiejętności w języku COBOL były bardzo poszukiwane przez firmy, które musiały przygotować swoje oprogramowanie na rok 2000. Jednak każdy, kto wciąż zna tylko język COBOL, będzie miał znacznie trudniej znaleźć pracę.
W ten sam sposób dzisiejsza technologia stanie się przestarzała na długo przed tym, zanim większość z nas będzie gotowa na emeryturę, więc nauka nowych umiejętności i technologii jest niezbędna.
źródło
Idź dalej i naucz się czegoś takiego jak Haskell lub Lisp. Nauka języka funkcjonalnego naprawdę sprawiła, że rozszyfrowałem mój kod, co upraszcza ogólne debugowanie. Jedynym problemem, jaki możesz napotkać, jest to, że nie chcesz wracać.
http://book.realworldhaskell.org/read/
http://lisperati.com/haskell/
http://learnyouahaskell.com/
źródło