Profesjonalny programista zatrudniony w pełnym wymiarze godzin może wykonać świetną robotę, stale ucząc się ze swojej pracy. Jak programista amator może trenować, aby zostać dobrym programistą?
** Jeśli lubisz grać lub śpiewać, możesz to zrobić, ponieważ jest to twoje hobby i jesteś zainteresowany, i możesz stać się dobrym piosenkarzem lub odtwarzaczem muzyki. Ale nie musisz stać się profesjonalnym piosenkarzem ani zarabiać na życie. Czy dotyczy to również programistów? Każdy programista amator, który jest sławny?
Odpowiedzi:
Kluczem do bycia naprawdę dobrym jest praca w dobrym zespole. Wielu amatorów pracuje samotnie, więc docierają tylko tak daleko. W zespole uczysz się od innych i stajesz się zdyscyplinowany, ponieważ twoi rówieśnicy uderzą cię tym, co przyda się inaczej.
Z tego powodu proponuję dołączyć do zespołu, np. Projekt open source lub zrobić projekt hobby z przyjaciółmi.
źródło
Droga do dobrego programowania jest taka sama, jak w przypadku śpiewania lub grania muzyki: ćwiczenie, ćwiczenie, ćwiczenie. Jeśli poświęcisz wystarczającą ilość czasu na regularne tworzenie oprogramowania przez kilka lat, istnieje duże prawdopodobieństwo, że będziesz w tym dobry - czy to w godzinach pracy, czy poza nimi.
Teraz, poza spędzaniem więcej czasu na ćwiczeniach, istnieje jeszcze jeden powód, dla którego profesjonaliści stają się w pewnym sensie lepsi od amatorów (zarówno w muzyce, jak i programowaniu). Jeśli jesteś profesjonalistą, musisz wykonywać zadania, które niekoniecznie ci się podobają, ale należą do szerszego zadania tworzenia oprogramowania (np. Testowanie, dyskusje z klientami, pisanie dokumentacji, konfigurowanie środowiska deweloperskiego / kompilacji, pisanie skryptów kompilacji itp. ). I od czasu do czasu jesteś zmuszany do wkroczenia w nieznane obszary, do nauki nowych języków lub platform. Jako amator nie jesteś zmuszony do robienia czegokolwiek, czego nie chcesz, co sprawia, że prawdopodobnie pozostaniesz w strefie komfortu przez większość swojego życia. Innymi słowy, możesz łatwo ograniczyć się do jednego lub kilku konkretnych obszarów, które najbardziej lubisz,
OTOH również wpada w to wielu profesjonalnych programistów, pozostając w tej samej firmie, wykonując tę samą rutynową pracę, prawie nie ucząc się niczego nowego przez dziesięciolecia ... Więc kluczem do poprawy jest twoje podejście. Jeśli będziesz się uczył i świadomie szukałeś możliwości wyjścia ze swojej strefy komfortu na nowe, nieznane terytorium, w końcu osiągniesz lepsze wyniki niż roje powoli skamieniałych „profesjonalistów”. Dobrym sposobem może być przyczynienie się do niektórych projektów typu open source.
Zalecana lektura to Pragmatyczny programista: Od czeladnika do mistrza , z mnóstwem świetnych i bardzo praktycznych porad na temat tego, jak być coraz lepszym.
źródło
Stajesz się lepszy poprzez naukę, która częściowo polega na robieniu, a część na refleksji nad tym, co zostało zrobione.
Zasadniczo więc nie ma różnicy między hobbystą a profesjonalistą, ale pułapki są nieco inne.
Pułapki amatorskie są, imho
potrzeba ukończenia projektu, bez względu na wszystko, nie jest tak silna, gdy nie jesteś profesjonalistą . To może być dobra rzecz, ponieważ nie przyzwyczaisz się do cięcia zakrętów, jeśli chodzi o jakość, ale wykończenie (w ogóle! Na czas jest jeszcze lepsze) to bardzo ważna umiejętność, którą trudniej trenować jako amator, ponieważ łatwo jest pozwolić umrzeć projektowi i rozpocząć inny.
potrzeba dobrej komunikacji nie jest tak silna. W profesjonalnym projekcie istnieje silna motywacja, aby naprawdę zrozumieć klientów, nawet jeśli całkowicie nie są w stanie sformułować tylko jednego spójnego zdania na temat tego, jaki problem chcą rozwiązać. Jeśli je źle zrozumiesz lub (jak zwykle) nie zauważysz, że nie mówią o czymś, co musisz zrozumieć, to prędzej czy później stanie się twoim problemem. Projekt amatorski może z łatwością stracić wszystkich potencjalnych użytkowników z powodu nierozwiązania ich problemów i zostać „zakończony” technicznie.
Profesjonalne pułapki są
często motywacja do poprawy jest niewielka . Jesteś tam przez 40 godzin / tydzień, bez względu na to, czy znajdziesz lekarstwo na raka, czy po prostu pijesz kawę w sposób, który wygląda produktywnie. Uczenie się jest czymś, co robisz głównie dla siebie i często, jeśli spróbujesz zastosować to, czego się nauczyłeś, istnieją siły, które działają przeciwko temu (konserwatywne myślenie grupowe, hierarchie, a nawet przewodniki po stylach mogą być używane jako broń przeciwko ulepszeniom). Zawód wymaga dużo miłości, aby po prostu się nie poddać, zlikwidować godziny i szukać alternatywnych celów w życiu.
często niewiele można się nauczyć . Tak, jeden MOŻE spróbować potraktować wszystko jako wyzwanie, ale musimy być szczerzy: po 1 roku kodu Spaghetti nie można refaktoryzować („komplikujesz!”) W języku, który masz więcej lat doświadczenia, które prawdopodobnie nie będą trwać, jedyne, czego się uczy, to budowanie tolerancji wobec frustracji i polityki korporacyjnej.
Oczywiście nie musisz, ale ilu muzyków odmówiłoby okazji do rzucenia pracy i zarabiania na swojej muzyce?
W IT te możliwości są nieco bardziej prawdopodobne niż w muzyce, dlatego myślę, że nie jest niemożliwe, aby stać się sławnym amatorem, ale często amatorzy wykonują swoją pasję (z podobnymi problemami, kiedy muzycy muszą ustalić ich granicę między handlem a sztuką)
źródło
Obawiam się, że jest więcej możliwości nauki dla amatorów niż dla pełnoetatowych korporacyjnych dronów. Jako amator nie jesteś ograniczony żadną technologią, środowiskiem, projektowaniem i metodologią rozwoju. Możesz robić wszystko, co uznasz za przydatne dla rozwoju osobistego. Jako programista pracujący w pełnym wymiarze godzin prawdopodobnie będziesz pracować nad tym samym produktem od lat, stosując tę samą procedurę, ograniczoną tymi samymi wytycznymi korporacyjnymi. Dla większości z nas jest to stagnacja. Po zapoznaniu się z podstawowymi podstawami można się trochę nauczyć ze środowiska korporacyjnego.
Dlatego wielu programistów pracujących w pełnym wymiarze godzin jest także amatorami, kodują po pracy, bawią się własnymi projektami zabawek - to jest trochę swobody niezbędnej do rozwoju.
źródło
Jako programista amator masz dziś wiele możliwości, aby poprawić swoje umiejętności. Wykonałem następujące czynności, aby poprawić swoje umiejętności podczas nauki inżynierii oprogramowania.
Oczywiście musisz także zastosować swoją wiedzę. Zrób to poprzez staż, projekt z przyjaciółmi lub kurs nauki. Istnieje wiele sposobów na poprawę siebie, po prostu chcesz zainwestować swój wolny czas. Miłej zabawy ucząc się czegoś nowego !
źródło
Tak, jest to możliwe , jednak zajmuje to dużo czasu:
Ponownie z tego samego źródła :
źródło
Jako amator masz więcej możliwości poszukiwania lepszych praktyk niż wielu profesjonalistów. Specjaliści są często pod presją, by „po prostu załatwić sprawę”.
Nie widziałem żadnych kursów, na których uczyłem się programowania, ale nauczyłem się z krótkich (1-3 godzinnych) bezpłatnych kursów prezentowanych przez uniwersytet, na którym uczestniczyłem. Miały one na celu umożliwienie przedsiębiorcom zrozumienia kodu napisanego dla nich. Kursy prezentowały bardzo dobrze napisany kod (wraz z komentarzami), który rozwiązał powszechny problem z życia. Kod został następnie przejrzany wraz z objaśnieniem funkcji języka i tego, dlaczego zostały użyte w sposób, w jaki się znajdowały. Żaden z pełnych kursów językowych, które widziałem, nie skutkuje kodem zbliżonym do jakości tego, czego się nauczyłem z tego kursu. Minęło kilka lat, zanim zacząłem studiować informatykę.
Internet i biblioteka zapewniają wiele zasobów i przykładów. Uważam, że wiele przykładów nie nadaje się do niczego poza robieniem tego. Patrząc na przykłady, najpierw spójrz na kod. Czy potrafisz zrozumieć cel i strukturę bez wyjaśnienia? Jeśli tak, być może znalazłeś dobry przykład.
Niektóre kluczowe praktyki, których powinieneś się nauczyć i zastosować:
źródło
Ani trochę. To inżynieria oprogramowania . Nie opiera się na „naturalnym talencie”. Bycie świetnym programistą opiera się na latach edukacji i wieloletnim doświadczeniu . Pracujesz tylko przy prawdziwych projektach .
źródło
Podczas rozmów o pracę, w których byłem (po stronie pracodawcy), zawsze prosiłem o rzeczy, które programista przeprowadzał jako amator (z wyjątkiem zadań szkolnych) - zrobienie tego jest pewnym znakiem prawdziwego zainteresowania w tej dziedzinie i posiadania pasja do nauki na własną rękę. Jest to nie tylko możliwe, ale prawie wymagane, aby stać się dobrym.
źródło
Czy to możliwe? Tak. Im więcej czasu poświęcisz na programowanie, tym więcej czasu będziesz musiał na tym poprawić. Mówi się, że potrzeba 10 lat / 10 000 godzin celowej praktyki, aby rozwinąć wiedzę specjalistyczną w zakresie umiejętności technicznych. To nie 10 000 godzin pisania tego samego rodzaju kodu w strefie komfortu (np. Pisanie prostego kodu jQuery dla różnych stron internetowych), ale 10 000 godzin nauki / czytania o programowaniu / czytaniu kodu źródłowego / pisania kodu źródłowego / nauki innych języków / praca z innymi itp.
Jeśli zamierzasz poświęcić mu ten czas; równie dobrze możesz dostać pracę jako programista i porzucić status amatora. (Chyba że jesteś niezależnie bogaty).
źródło
Wszyscy są amatorami we wszystkim w jednym punkcie. Jeśli chcesz zostać dobrym programistą i lubisz to robić, to zrobisz. Kluczem jest samodzielne programowanie. Szkoła nauczy Cię prawie nic. Większość nauki będzie się odbywać samodzielnie i w pracy. Jeśli chcesz być dobry, idź bądź dobry.
źródło
biorąc pod uwagę
prawdziweoryginalne znaczenie tego słowa (francuski amator „miłośnik”, ze starofrancuskiego i ostatecznie z łacińskiego amatora nom. amator , „kochanek” - Wikipedia), chciałoby się wierzyć, że wielu profesjonalistów to także amatorzy. Jeśli nie kochasz swojego rzemiosła, czy ćwiczysz go?Oczywiście jest to możliwe - jeśli kochasz programowanie, poćwiczysz je i z czasem staniesz się w tym dobry. (Może nigdy nie świetnie, biorąc pod uwagę osobiste talenty lub ich brak), ale przynajmniej dobre
źródło
Nie wiem, co to określa dobrego programistę. Ale uczenie się czegoś własnego i praca z grupą ludzi to coś innego. Namiętni programiści amatorzy naprawdę uczą się nowych rzeczy i hakują. Tam znaleźli rzeczy bardziej interesujące. Ale praca z grupą ludzi jest nieco zdyscyplinowanym działaniem, w którym współpracujesz, komunikujesz się, dzielisz / zdobywasz informacje od ekspertów w tej dziedzinie.
Ale zdobywanie wiedzy to tylko kwestia pasji. Są ludzie, którzy spędzili noce na samodzielnym uczeniu się różnych rzeczy, a na koniec przynieśli coś nowego na świecie, jak Bill G Mark Zuck itp. Trudno to porównać. ale jeśli chcesz być lepszym inżynierem oprogramowania (nie zadzwonię do programisty), dołącz do firmy lub pracuj nad dobrymi produktami, z których korzystają inni.
Na koniec przeczytaj dużo, aby poprawić swoje umiejętności, nastawienie, aktualizacje branżowe, rozwinąć gust i iść z pasją. Rzeczy z łatwością podążą za tobą!
źródło
Na pytanie: „czy jacyś programiści amatorzy stali się sławni?” Odpowiedź brzmi: „Tak, ale większość tak nie pozostała”. Najsłynniejszym przykładem, jaki mogę sobie wyobrazić, jest Roy Fielding, który wykonał część swojej najważniejszej pracy, podczas gdy (jak sądzę) nieopłacony na uniwersytecie (amator oznacza z definicji nieopłacony).
Sztuką bycia profesjonalistą jest posiadanie mentora lub zestawu mentorów (takich jak zespół w projekcie open source) i poważne poświęcenie czasu na ten temat. Jako dawniej profesjonalny muzyk, moje doświadczenie jest takie, że oba są niezbędne, aby być dobrym, zarówno jako profesjonalista, jak i amator. Niektórych można się nauczyć z książek, ale bez konsekwentnej krytyki zewnętrznej bardzo trudno jest przejść przez złe nawyki nabyte jako nowicjusz.
To powiedziawszy, w przypadku programisty znacznie łatwiej jest nauczyć się niż muzyk - z mojego doświadczenia wynika, że jako muzyk jest znacznie trudniej dostrzec twoje błędy pedagogiczne niż kod, który tylko nie działa Z drugiej strony, aby być dobrym deweloperem, potrzeba dużo więcej czasu.
źródło
Jak wszystko inne, najlepszym sposobem na polepszenie czegoś jest zanurzenie się w środowisku, w którym chcesz stać się dobrym, i otoczenie się ludźmi o wiele lepszymi od ciebie, którzy są gotowi cię tolerować i uczyć. Nie jest to łatwe, ale to, co znalazłem, jest najlepszym sposobem, aby nauczyć się być dobrym w czymś najszybszym.
Ale jeśli chodzi o bycie naprawdę utalentowanym programistą, musisz być właśnie tym, uzdolnionym. Jeśli nie jesteś naturalnie utalentowanym skrzypkiem, nigdy nie będziesz tak dobry jak mistrzowie, bez względu na to, jak bardzo się starasz i jaki instrument kupujesz. Podobnie, jeśli nie masz tego daru, który czyni programistów naprawdę genialnymi, nigdy nimi nie będziesz.
źródło