Dlaczego początkujący programiści (tacy jak ja) zawsze pytają o kolejny język, którego powinni się nauczyć, zamiast pytać o kolejny projekt do rozwiązania?
Dlaczego Eric Raymond w sekcji „ Naucz się programować ” swojego eseju „ Jak zostać hakerem ” mówił o kolejności, w której powinieneś uczyć się języków (w porównaniu z kolejnością, w jakiej powinieneś zajmować się projektami).
Czy początkujący stolarze pytają: „Wiem, jak używać młotka ... czy powinienem nauczyć się, jak używać piły lub następnego poziomu?”
Pytam bo jestem stwierdzenia, że niemal każdy znaczący projekt Interesuje mnie w walce (np aplikację internetową, zestaw narzędzi analitycznych poker) wymaga, że uczę się wystarczająco z wielu języków (Python, C, HTML, CSS , JavaScript, SQL) i frameworki / biblioteki (wxPython, tkinter, Django) w celu ich wdrożenia.
Dzięki,
Mikrofon
źródło
Odpowiedzi:
Myślę, że kiedy większość ludzi uczy się języka, robią to, ponieważ chcą zająć się projektem napisanym w tym języku, teraz lub w przyszłości. Aby to zrobić, muszą nauczyć się tego języka, co wymaga czasu. Języki programowania są jak narzędzia, ale chociaż możesz nauczyć się posługiwać młotkiem w około sześćdziesiąt sekund, języki potrzebują nieco dłużej; dlatego wiele osób koncentruje się na nauce języka, zanim skoncentruje się na pracy nad projektem napisanym w tym języku.
Na innym uwaga, myślę, że kiedy większość ludzi zapytać, co język, aby dowiedzieć się obok, oni naprawdę mają na myśli to, co wystaje, aby dowiedzieć się obok, ale skupić się na nauce języka pierwszego.
Na koniec nauka języków może być świetną zabawą , nawet jeśli nie masz na myśli konkretnego projektu lub celu.
źródło
Motywacja wielu programistów zatrudnionych w pełnym wymiarze godzin ma być bardziej przydatna.
Większa szansa na zatrudnienie oznacza zwykle pokonanie przeszkody przesiewowego HR (a później pokonanie przeszkody w trakcie faktycznego wywiadu).
Typowy skaner HR zwykle ma listę kontrolną języków, które można dopasować do CV, ale nie ma możliwości oceny umiejętności lub projektów.
Sukces w prawdziwym wywiadzie zależy zwykle bardziej od szczęścia i minimalnych umiejętności w języku niż od doświadczenia i głębokiego zrozumienia języka.
Dlatego bycie przeciętnym w wielu językach jest lepsze dla szans na zatrudnienie niż bycie ekspertem w kilku językach, chyba że ubiegamy się o wyższe stanowiska.
źródło
Analogiczne opcje programowania dla stolarza brzmiałyby: „Jaką aplikację powinienem zbudować w następnej kolejności?” lub „Jaki system powinienem następnie zbudować?” które są raczej ważne i niezależne od projektu, który można naprawdę zastosować niemal powszechnie. Mógłbym mieć projekt zmiany diety lub zrzucenia 20 funtów tak łatwo, jak mogłem mieć coś, co wymaga napisania nowego oprogramowania do powiązania rzeczy.
Aby odpowiedzieć na to pytanie, uważam, że pomysł polega na tym, że język reprezentuje narzędzie w zestawie narzędzi tej osoby, które może być przydatne w CV. Niektóre osoby mogą zostać programistami, aby płacić rachunki, a jeśli tak, mogą zapytać, które następne narzędzie powinny dodać, który często byłby językiem, ale są też inne możliwości, takie jak nauka wdrażania, kontroli źródła, testowania i metodologii programowania wymienić kilka innych obszarów. Gdyby cieśla musiał ujawnić, jakie miał narzędzia, mógłby mieć podobną perspektywę. Istnieje jednak ogólny zestaw narzędzi, które zakłada się, że większość stolarzy ma lub ma dostęp, aby uzyskać je dość szybko. Czy kiedykolwiek widziałeś, ile różnych rodzajów pił i młotków jest dostępnych dla ludzi?
źródło
Może po części chodzi o mentalność hakerów, przynajmniej dla niektórych programistów. Hacker jest zdefiniowany w pliku Jargon jako
Tak więc dla duszy hakerów chodzi bardziej o naukę i „majstrowanie” przy procesie, koncepcjach, narzędziach i tak, językach tworzenia czegoś, niż o samym produkcie końcowym. Więcej o samym procesie.
To ciągłe dążenie do następnej nowej rzeczy i / lub wyzwania. Ukończony projekt szybko traci atrakcyjność. Czasami (przez większość czasu?) Największe wyzwania twórcze lub techniczne są podbijane przed zakończeniem projektu. Wiele projektów zostaje porzuconych, gdy umysł spragniony nowych wyzwań mentalnych idzie do przodu.
Szczególnie hakerzy są zainteresowani nowymi punktami widzenia, koncepcjami, abstrakcjami i sposobami myślenia, rodzajem mentalnego hakowania:
źródło
Obecnie dostępnych jest wiele kiepskich języków: C, C ++, C #, Java, JavaScript, Python, Perl, Ruby, Visual Basic itp. Programiści nadrabiają wrodzoną słabość tych języków, ucząc się i mieszając wiele z nich razem.
Istnieje niewielka społeczność znana jako społeczność Lisp, która jest wolna od szaleństwa, które przenika współczesne komputery.
Ponieważ Lisp jest programowalnym językiem programowania, możesz wyrazić w nim wszystkie swoje pomysły bez konieczności odchodzenia od innych języków lub innych formatów danych, takich jak XML. Lisp może być stosowany wszędzie, nawet do poziomu sprzętowego, jak widzieliśmy z maszynami Lisp .
źródło
Ponieważ nauka nowego języka programowania jest ogromną inwestycją i nikt nie lubi dokonywać złych inwestycji.
Nauka nowego języka programowania nie polega na zapamiętywaniu, jak pisać konstrukcje pętli, deklarować klasy, importować kolejny moduł ...
Musisz wiedzieć, jak napisać idiomatyczny kod w tym języku, a proces ten zajmuje naprawdę dużo czasu i poświęcenia .
Czas jest ograniczonym zasobem, wysiłek jest ograniczonym zasobem, ale rozproszenie uwagi, codzienny stres, rachunki i niedziele gry sportowe są zawsze dostępne i muszą z nimi żyć.
Programiści chcą mądrze inwestować.
źródło