Uważam, że kiedy ktoś pyta, jak najlepiej nauczyć się programować, zwykle przekazuje mu odniesienia do wielu tekstów napisanych przez różnych autorów.
Jednak nie wierzę, że wiele osób w ogóle uczy się programowania z książek. Uważam, że zwykle stają przed wyzwaniem, a następnie używają programowania jako narzędzia do pokonania tego.
Na przykład „włączyłem się” w programowanie, ponieważ chciałem uruchomić serwer dla gry, w którą grałem, więc poszukałem go i przeczytałem wsparcie dla tego konkretnego serwera, a teraz jestem zatrudnionym inżynierem oprogramowania, wykorzystując tylko umiejętności, które rozwinąłem ( a następnie dalej rozwijane) przez kodowanie skryptów C # dla niezbyt popularnego pakietu serwerów.
Moje pytanie brzmi zatem: czy ludziom łatwiej jest uczyć się z tych książek? Wiem, że obejrzałem kilka z nich i uznałem je za zbyt „suche”, aby zachęcić mnie do ukończenia.
źródło
Odpowiedzi:
Oto jak się uczę, mówiąc ogólnie:
Uwaga: czasami trzeci punkt jest pierwszy.
Edycja : Aby odpowiedzieć na pytanie „Dlaczego?”
Google wspaniale jest dowiedzieć się, jak coś zrobić, ale nie jest świetny do znalezienia tego, czego nie wiesz. Dlaczego miałbyś kiedykolwiek wyszukiwać w Google „C # delegatów”, skoro najpierw nie wiedziałeś, że C # ma pojęcie o nazwie delegaci i że może być przydatne rozwiązanie problemu, nad którym pracujesz?
Ponadto stosunek sygnału do szumu może być czasem nieco wysoki. Jeśli masz w głowie pomysł, jak coś zrobić, możesz łatwo potwierdzić, czy czytany artykuł jest poprawny. Ale jeśli nie masz pojęcia ... możesz skończyć w większym bałaganie.
źródło
Niektóre powody, dla których książki są nadal aktualne:
Ale książka nigdy nie poprowadzi cię do końca, poprowadzi cię we właściwym kierunku.
źródło
Kiedy nauczyłem się programowania w książkach z lat osiemdziesiątych, gdzie mniej więcej było to jedyne dostępne źródło informacji, aby całkowicie nauczyć się języka programowania jako całości. Ponadto można było kupić czasopisma komputerowe, ale ich zawartość była przypadkowymi artykułami, które mogły być interesujące i pomocne lub nie.
W dzisiejszych czasach możesz znaleźć wszystkie potrzebne informacje w Internecie. Chociaż uważałbym pełny samouczek za wystarczająco podobny do książki.
To, jak się uczysz, może zależeć od twoich osobistych preferencji lub rzeczywistych potrzeb.
Zaletą „pełnego tekstu” w przypadku książki lub samouczka online jest to, że obejmuje on materiał, który, choć nie jest konieczny, pomoże ci później. Wystarczy wiedzieć, że coś jest możliwe i wiedzieć, gdzie to znaleźć. Zwłaszcza jeśli uczysz się o złożonym środowisku lub bardzo złożonym języku, takim jak C ++. Możesz czytać w wielu małych blogach o Ruby on Rails, nigdy nie słysząc o Ajaxie ani kwestiach bezpieczeństwa. Dopóki grasz tylko w pobliżu, może to nie stanowić problemu. Ale jeśli, tak jak mi się zdarzyło, chcesz przejść do profesjonalnego rozwoju Ruby on Rails w ciągu kilku tygodni, to praca z tekstem obejmującym wszystkie ważne punkty bardzo pomoże.
Inne książki zawierają szczegółowe informacje na temat stylu programowania, najlepszych praktyk, wzorców projektowych lub niektórych grup algorytmów. Możesz z nimi pracować i być może ze wszystkich wzorców projektowych zastosujesz tylko bardzo mały podzbiór. Mimo to warto je znać i wiedzieć, gdzie je znaleźć. Jest to po prostu sposób na trenowanie procesów myślowych w kierunku, w którym bardziej interesuje Cię „budowanie rozwiązania” niż „zmuszanie go do działania”.
Osobiście lubię czytać, więc nie mam wrażenia, że książki są suche. Chociaż ważne jest oczywiście, aby książka była na twoim aktualnym poziomie wiedzy lub wyższym. Jeśli opanowałeś już wszystkie podstawy języka C #, nie ma sensu czytać książki dla początkujących.
źródło
Książka (lub dokumentacja internetowa o strukturze przypominającej książkę) jest nadal moim preferowanym sposobem uczenia się większości języków.
Jeśli po prostu zagłębisz się w język i znajdziesz coś dla siebie, prawdopodobnie przegapisz ważne aspekty, które dobra książka dostarczyłaby Ci we właściwym czasie.
Na przykład niektórzy z moich kolegów nauczyli się języka Java, nurkując bez książki. Programowali w Javie od kilku lat, kiedy odkryłem, że rutynowo manipulują tablicami byte [], przekształcając tablicę w String, używając .substring (), a następnie przekształcając String z powrotem w tablicę. System.ArrayCopy () jest wprowadzony na stronie 155 Java In A Nutshell
Mam nadzieję, że rozumiesz, że uczenie się jest łatwiejsze u nauczyciela niż u samotnego. Dobra książka to tani zamiennik dobrego nauczyciela. Wprowadzi koncepcje w starannie zaplanowanej kolejności, dzięki czemu możesz uzyskać dokładne zrozumienie - nie tylko na tyle, aby sobie z tym poradzić.
źródło
Myślę, że możesz coś mieć. Dla mnie przynajmniej większość moich umiejętności pochodzi z chęci / potrzeby programu, który robi „X”.
Może ludzie, którzy uczą się w ten sposób, nie proszą o pomoc; są zbyt zajęci robieniem tego (słabo, ale uczą się po drodze). Ludzie, którzy chcą zostać programistami (w odniesieniu do pierwszej grupy), zadają wiele pytań na temat tego, jak zostać programistą lub jak programować, nawet jeśli niekoniecznie mają problem do rozwiązania, a nie są to pytania z bezpośrednimi odpowiedziami.
Wracamy więc do książek. „Och tak, weź kopię„ Zanurz się w Pythonie ”.„ Czy tak się nauczyłeś? ” „Nie” „Um…” „Jestem trochę zajęty, ale pomogę, jeśli utkniesz” „Uh… OK, tak sądzę”
Z drugiej strony, cenię sobie dobry materiał do czytania podczas nauki, dzięki czemu mogę zobaczyć, w jaki sposób problem, który próbuję rozwiązać, jest rozwiązany przez bardziej wykwalifikowanego autora, a może po prostu, aby nauczyć się trochę techniki dla początkujących, których mogłem nie zauważyć.
TLDR : książki są dobre, uczenie się przez robienie jest dobre, uczenie się przez robienie książek jest tak?
źródło
Uwielbiam czytać książki techniczne. Nie wszystkie książki techniczne, tylko te na konkretny temat, który mnie interesuje, mówią Sharepoint. Pamiętam pierwszą książkę, którą naprawdę przeczytałem (wiele razy), Programming Windows autorstwa Charlesa Petzolda. Z tego i wielu innych powodów mogłem napisać aplikację Win32 z pamięci. Nie musiałem szukać API, więc mogłem skupić się na części biznesowej.
Wydaje mi się, że książki zapewniają „autorytatywny” sposób robienia czegoś, być może przez kogoś, kto zna właściwy sposób na zrobienie czegoś lepszego ode mnie. Ufam, że to, czego się uczę, ośmielę się to powiedzieć, najlepszy sposób na rozwiązanie mojego problemu. Oczywiście, jeśli ufam autorowi (uwielbiam obszar recenzji w Amazon).
Chociaż coraz bardziej „googluję”, kopiuję i wklejam, kiedy próbuję rozwiązać problem, spędzam sporo czasu upewniając się, że to, co kopiuję (lub inspiruje mnie :), jest czymś godnym zaufania, że ja mogę wprowadzić mój kod. Tylko dlatego, że znajduję rozwiązanie w Internecie, niekoniecznie jest najlepsze.
Podczas gdy ja, podobnie jak wielu innych programistów, teraz po prostu szukam w Google odpowiedzi, wciąż zbieram książki od znanych autorów. Wydaje mi się, że treść została mi dostarczona przez kogoś, kto dobrze ją tłumaczy (uczy) i nie pozwala mi odfiltrowywać wszystkich śmieci z wyników Google.
źródło
Zakładam, że twoje pytanie nie miało na celu „dlaczego używać starej technologii jak drukowanej książki zamiast stron HTML”, ale „dlaczego czytać dłuższe teksty o programowaniu napisane przez jednego lub kilku autorów”.
Możesz myśleć o książkach jako uporządkowanym zbiorze informacji na określony temat. Ma to tę zaletę, że ktoś dołożył wszelkich starań, aby każdy rozdział zbudować na sobie, aby ułatwić zrozumienie tematu. Zazwyczaj mówi się również o granicach informacji (co obejmuje i co jeszcze trzeba szukać w innym miejscu). Po przeczytaniu i pracy z nim możesz być pewien, że osiągnąłeś określoną umiejętność. Jeśli chcesz uczyć się z naciśniętym przyciskiem szybkiego przewijania do przodu, książka może zmusić cię do przejścia przez każdy aspekt bez pomijania nudnych części, przynajmniej jeśli ufasz strukturze książki. Kolekcja o nazwie „książka” jest również najczęściej przydatna jako odniesienie.
Korzystanie z Internetu, blogi, „kręcenie się” itp. Zwykle należą do rodzaju nieuporządkowanych informacji. Dostajesz mnóstwo kawałków mądrości, ale musisz wykonać więcej prac wyszukiwania, aby zdobyć swoją wiedzę, ponieważ nikt nie poprowadzi cię mówiąc: „Naucz się tego, bo inaczej nie zobaczysz zalet tych rzeczy przejrzałem teraz ”. Możesz przegapić pewne części, ponieważ są zbyt nudne lub nikt ci nie powiedział, że są ważne. Możesz nauczyć się rzeczy źle, ponieważ nie wszystko, co napisano w Internecie, jest pierwszej jakości. Możesz poświęcić dużo czasu na odfiltrowywanie niepotrzebnych wyników wyszukiwania. Możesz tracić dni na próbę osiągnięcia czegoś sam, tylko dlatego, że nie znasz określonego wzorca projektowego lub konstrukcji programowej i nikt ci nie powiedział. Im mniej wiesz,
Mówiąc prowokacyjnie: nigdy nie ufałbym architektowi, że zbuduje most, przez który muszę codziennie przejść, jeśli powiedziałby mi, że nigdy nie czytał książki o budowie mostów ani analizie strukturalnej, ale po prostu nauczył się tego, bawiąc się i używając Google ...
źródło
Jeśli jesteś programistą C, jak możesz się uczyć języka Python bez książki lub nauczyciela?
Jeśli tylko nauczysz się podstawowej składni i zanurzysz się od razu, skończysz pisać kod C w Pythonie i dojdziesz do fałszywego wniosku, że Python jest tak samo gadatliwy i bolesny jak C.
źródło
Google zazwyczaj nadaje się tylko do wyszukiwania małych fragmentów kodu lub bibliotek typu open source. Dokumentacja niektórych bibliotek / programów jest co najwyżej niewiarygodna (jeśli istnieje, pokazuje tylko proste lub typowe przykłady).
Nie mam wielu książek o programowaniu, ale mogę teraz powiedzieć, że mam książkę o OpenGL i zawiera ona większość kodu silnika 3D, który można po prostu skopiować, ale można przeczytaj również teorię - wystarczy przewrócić kilka stron, a wyjaśnienie kodu jest właśnie tam, czekając na przeczytanie. W dzisiejszych czasach prawdopodobnie można znaleźć w sieci kilka silników 3D typu open source, ale jeśli trzeba znacznie zmienić kod, prawdopodobnie ma się kłopoty - zazwyczaj nie ma forum pomocy, a osoby na SO nie znają odpowiedz na swoje pytanie, jeśli jest bardzo wyspecjalizowane. Jeśli chodzi o naprawdę specjalistyczne rzeczy, tylko kilkadziesiąt osób na całym świecie będzie w stanie odpowiedzieć na twoje pytanie bez spędzania godzin, aby dowiedzieć się wystarczająco dużo, aby znaleźć odpowiedź. Jeśli zapytasz, jak zaimplementować połączoną listę w języku C #, w ciągu pierwszych 10 minut uzyskasz ponad 5 odpowiedzi na SO, ale jeśli zapytasz, jaki jest najlepszy sposób na wdrożenie złożonego algorytmu cieniowania w pliku Three.js , twoje pytanie znika z pierwszej strony jak kamień.
Co więcej, książki są pisane prawie wyłącznie z perspektywy, którą czytelnik chce dowiedzieć się o związanej z nimi teorii, podczas gdy Google po prostu produkuje przypadkowe fragmenty kodu śmieci, zarchiwizowane dyskusje na temat, w których nikt nie wie, o czym mówią , itp. Źródła w Internecie stały się znacznie lepsze: SO, Moz Dev Network, strona Microsoftu, blogi itp., ale historycznie książki były znacznie lepsze, a źródła internetowe właśnie nadrabiają zaległości.
źródło
Jakość pisania w najlepszych książkach jest taka, że wiele nieoczywistych problemów jest nakreślonych, zanim jeszcze zaczniesz. Autor z dużym doświadczeniem będzie wiedział, aby powiedzieć ci o takich rzeczach jak: nieoczekiwane skutki uboczne, długoterminowe konsekwencje, nieudokumentowane funkcje, typowe scenariusze użycia ...
Zasadniczo zyskujesz dzięki pisarzowi z dużym doświadczeniem, przeprowadzając cię przez problem i wskazując naprawdę interesujące fragmenty.
Czasami można to znaleźć również w referencjach online, ale z powodu niskiej bariery wejścia wiele informacji w Internecie jest zbyt proste, brakuje szczegółów lub jest po prostu źle. Może się to zdarzyć również w przypadku książek, więc upewnij się, że wprost wierzysz tylko w te książki, które są klasykami z niezmiennie dobrymi recenzjami. Przydatne mogą być także inne książki, ale tylko jako jedno ze źródeł nadal będziesz musiał zweryfikować informacje, porównując je lub próbując samodzielnie.
źródło
Książki zwykle zawierają wiele informacji w ustrukturyzowanym formacie. Google zazwyczaj dostarcza ogromną ilość informacji, które nie zawsze są szczególnie uporządkowane i trudne do zorganizowania pod względem tego, co musisz zrobić.
Właściwie nie czytam już fizycznych książek papierowych - obok mnie jest czytnik elektroniczny i mam oprogramowanie Kindle na swoim laptopie, które daje mi dostęp do informacji, których szukam.
Pomocne jest Google, jeśli nie szukasz uporządkowanego przeglądu sposobu programowania, ale potrzebujesz szczegółowych informacji na temat programowania określonego zadania. Ktoś prawie zawsze pisał kod do tego zadania wcześniej, a przynajmniej coś w tym rodzaju.
Myślę, że istnieje różnica między nauką programowania a nauką programowania określonego zadania. Chciałbym zakwestionować jakość kodu pochodzącego od kogoś, kto kiedykolwiek nauczył się drobiazgów z googlingu konkretnych zadań, jeśli tak naprawdę nigdy nie miał dostatecznego przeglądu tego, jak programować. To nie jest specyficzne dla języka, jest bardziej koncepcyjne.
źródło
Książki są przydatne, jeśli chcesz zgłębić temat. Pewnie nauczyłem się języka C #, wykonując kilka samouczków i pisząc niektóre (domowe) projekty. Ale C # dogłębnie jest nadal przydatne, aby zobaczyć, co dzieje się pod spodem i nauczyć się kilku nowych rzeczy.
Mogę też wziąć książkę programistyczną i przeczytać ją w kąpieli lub na zewnątrz w słońcu. Nie mogę tego zrobić na komputerze stacjonarnym.
źródło
Ponieważ jest to wygodny sposób na naukę od innych programistów.
Książki są dodatkiem. Do tej pory możesz pracować tylko tak szybko, samodzielnie. Kto wolałby nie być przy projekcie z lepszym programistą, który chciałby cię czegoś nauczyć niż tylko czytać książkę?
Zazwyczaj używam ich raczej jako odniesienia, a nie „Wszystko, co musisz wiedzieć o programowaniu”.
źródło
Książki pozwalają wchłonąć zestaw informacji w sposób „pasywny”. Nie musisz patrzeć, co jest możliwe, dostajesz podzbiór możliwości. Kiedy uczyłem się C #, książka naprawdę pomogła wskazać możliwości i zastanowić się, jakie były odpowiedniki C ++. Oczywiście mastering miał miejsce podczas używania go w projekcie (w rzeczywistym rozmiarze). Ale książka naprawdę pomogła wskazać różnice i możliwości.
źródło
Krótko mówiąc, uważam, że książki są bardziej przydatne na wysokim poziomie. Mogą udzielać wskazówek projektowych i pomagać zapobiegać problemom zamiast je rozwiązywać.
Książki z pewnością mają swoje wady. Moja kopia Programming Python obejmuje Python 2.0, ale środowisko uruchomieniowe, którego używam, to 2.6.
Myślę jednak, że ważnym aspektem książek jest to, że możesz znaleźć rzeczy, na które nie natkniesz się. Google pomaga rozwiązywać określone problemy, ale książki pomogą Ci w projektowaniu. I nie tylko projektuje książki. Jeśli przeczytasz dobrą książkę, która pomoże ci zrozumieć konstrukcję języka, lepiej zrozumiesz, jak go używać.
Inne książki są przydatne do udoskonalenia wiedzy. Myślę, że książka Scott Murphy's Effective C ++ jest dobrym przykładem. Chociaż ta książka nie jest zbyt dobra do nauki języka C ++, pomaga dostrzec problemy w projektowaniu algorytmów / interfejsów / dziedziczenia, których nie spotkałeś (jeszcze) ani nie obejrzałeś. Znalezienie prostego rozwiązania (które może powodować inne problemy później) może być łatwe, ale dzięki lepszemu zrozumieniu języka możesz lepiej zaprojektować oprogramowanie, aby uniknąć tych problemów.
Oczywiście to nie fakt, że książki są drukowane na papierze, sprawia, że warto. Staranność i wysiłek włożony w ich tworzenie oraz chęć prowadzenia rygorystycznej edukacji są tym, co nadaje książce wartość. Często jako efekt uboczny dostajesz przydatne zasoby internetowe, takie jak C ++ FAQ lite lub ebooki, takie jak Dive into Python . Dostępne są również samouczki online, które są dokładnymi i przydatnymi narzędziami do nauki (takimi jak dokumentacja niektórych platform / języków / bibliotek).
Fragmenty w sieci to dobry sposób na udzielenie odpowiedzi na Twoje pytanie, ale rzadko mówią, o co powinieneś pytać.
źródło
Chcę zostać programistą, więc używam książek programistycznych. Książki pozwolą mi stać się profesjonalnym programistą.
źródło
Dawno tak naprawdę nie czytałem książki o programowaniu. Używam ich jako przewodników, ale teraz myślę, że Internet jest łatwiejszy dla większości języków i struktur.
W każdym razie uważam, że najlepszą rzeczą do nauczenia się z programowania książek jest język podstawowy. Na przykład moim pierwszym prawdziwym językiem był C. Nauczyłem się go, pisząc system operacyjny (nie polecam tego). W rezultacie moja znajomość C była dość kaleką, nawet po dwóch lub trzech latach programowania. Nigdy nie miałem dobrej podstawowej znajomości języka. Nie wiedziałem, że mogę zamienić te 15 wierszy niechlujnego kodu w czyste dwa wiersze kodu. Mogłem więc rozwiązywać problemy, ale nie wykorzystywałem C w pełnym zakresie.
W pewnym momencie postanowiłem nauczyć się C ++ ... (około 2 lata po rozpoczęciu nauki C). Przeczytałem więc jedyną książkę C ++, którą miałem w okolicy, C ++ For Dummies Book. Przeczytałem o nim w 3/4, robiąc bardzo mało „robienia” w tym czasie .. w rezultacie, kiedy wskoczyłem do mojego pierwszego projektu zamiast czuć się komfortowo z tymi 15 liniami niechlujnego kodu, wiedziałem, że jest łatwiejszy sposób na zrobienie tego (nawet jeśli musiałem to sprawdzić).
Zrobiłem to samo, kiedy nauczyłem się C # / ASP.NET. Prawie nic nie czytałem, dopóki nie skończyłem z około 3/4 książki. I za to, czego się nie nauczyłem, przeglądałem Stack Overflow, by znaleźć interesujące pytania w języku C #. Kiedy wkroczyłem do mojego pierwszego projektu, powiedziałem, że większość mojego kodu była względnie czysta i od tego czasu trzeba go było „ogromnie” zreorganizować.
Powiedziałbym więc, że książki są bardzo przydatne do nauki możliwości frameworka lub języka. Poza tym są w większości bezużyteczne przez Internet, z wyjątkiem oczywiście mocnych książek teoretycznych i specjalnie zaprojektowanych, aby były materiałem odniesienia.
źródło
To mniej o tym, co czytasz, ale ile. Lubię mieć kilka książek programistycznych w podróży, kiedy pracuję nad projektem. Co jakiś czas (częściej niż myślisz) będziesz czytać o technice, którą można zastosować w bieżącym projekcie.
Po wdrożeniu w rozwiązaniu z prawdziwego świata informacje pozostaną.
źródło
Wolę używać książek, ponieważ uważam, że zapewniają one migawkę stanu technologii, nad którą pracujesz. Autor oświadczy, że w przypadku XX wersji języka / biblioteki Y rozwiązuje to problem Z. Może w tutorialach na stronie internetowej nie jest wymienione, jakich wersji używają, ani nie podaje przykładowego kodu, którego używają podczas książek.
Książki często opisują „dlaczego” to rozwiązanie rozwiązuje problem, podczas gdy dokumenty online są zazwyczaj kopiowane i wklejane.
Często możesz również utracić linki do wszystkich swoich referencji, mogą się one przenieść lub zejść. Chronię i dbam o moje książki jak inwestycję (którą są).
źródło
Możesz rozwiązywać problemy bez czytania książek, ale czy naprawdę będziesz wiedzieć, co dzieje się za twoim programem, aby rozwiązać ten problem?
Musisz wiedzieć, co się dzieje i co może być lepszą alternatywą. Do tego potrzebujesz dobrych książek programistycznych. Samo czytanie książek oczywiście nie wystarczy, musisz zrozumieć treść, przejrzeć inne książki, pomyśleć o różnych podejściach do rozwiązywania problemów i tak dalej. Uczenie się trwa z książkami i bez.
źródło
Kiedy uczyłem się C ++, większość literatury wydawała mi się bezużyteczna, dopóki coś w mojej głowie nie kliknęło. Do dziś nie jestem pewien, co to było, ale wszystko zaczęło mieć sens. Książki i strony internetowe miały wtedy znacznie większy sens. Nauczenie się programowania w C ++ zajęło mi 2 książki i żadna z nich nie była prawdziwą książką C ++ (były to książki Visual C ++, które koncentrowały się głównie na MFC).
Jeśli masz odpowiednie książki, to może być naprawdę przydatne. Mój przyjaciel czytał kilka książek Dietela na uniwersytecie i znalazłem te wyjątkowo dobrze napisane. Nigdy nie uważałem książek „... for Dummies” za przydatne, ponieważ nie wyjaśniają mi rzeczy we właściwy sposób. Najlepszą radą jest pójście do księgarni i zdobycie degustatora książki, abyś nie marnował pieniędzy na to, co bywa niezwykle drogimi książkami.
W przypadku niektórych tematów programowania uważam, że warto czytać kilka książek, przeprowadzać badania za pośrednictwem Google i eksperymentować. Bardzo często to robiłem, gdy pracowałem nad algorytmami AI, pracując nad grą w warcaby z J2ME. Robiłem to również, gdy uczyłem się, jak utworzyć kompilator kompilatora dla niestandardowych składni. Jest tak wiele różnych odmian i widoków.
Czasami zrozumienie wielu widoków pozwala na tworzenie połączeń, które w innym przypadku byłyby bardziej niejasne.
źródło
Zazwyczaj uczę się (programowania) z obu książek i źródeł „just in time”, takich jak sieć. Oba mogą być dobre, ale ogólnie wolę uczyć się z książek, oto dlaczego:
Kiedy dowiadujesz się tylko tego, co musisz wiedzieć natychmiast, aby ukończyć część projektu, czasami brakuje Ci ogólnego obrazu. Najlepsze książki to nie tylko odniesienia, ale w pewnym sensie można osiągnąć coś bliższego stażowi, zapewniając dobrze zaokrąglony przegląd technologii i wiele sezonowych porad na temat najlepszych rozwiązań typowych problemów.
Nauka just-in-time bardzo łatwo może cierpieć z powodu problemu satysfakcji, gdy zidentyfikujesz problem, który chcesz rozwiązać, przeskocz do pierwszego rozwiązania, które wydaje się działać, a następnie uciekasz do interwebs, aby dowiedzieć się, jak go wdrożyć . Jednak często może to wpędzić cię w kłopoty, jeśli byłbyś w stanie porozmawiać z doświadczonym programistą na temat twojego problemu, nie powiedzieliby ci „oto jak zrobić X”, powiedzieliby ci zamiast tego „nie rób X, zamiast tego wykonaj Y ”. I to jest wiedza, którą zdobywają najlepsze książki. Rzeczywiście, niektóre książki dotyczą wyłącznie takich rzeczy, na przykład Javascript: The Good Parts .
Innym problemem, jaki może mieć uczenie się JIT, jest znacznie wolniejsza krzywa uczenia się. Dzięki uczeniu się JIT masz tendencję do uczenia się tylko tego, co musisz wiedzieć. Ale często posiadanie podstawowego rdzenia wiedzy może przyspieszyć naukę nowego języka lub struktury. Zamiast potknąć się o podstawy, zaczynasz od solidnego fundamentu, a następnie budujesz stamtąd. Dobra część materiału, którą możesz przeczytać podczas czytania książki, może nie być od razu przydatna, ale posiadanie tej wiedzy w tle może być pomocne w podejmowaniu decyzji, a zwłaszcza w zrozumieniu nowego kodu, na który jesteś narażony. Jest oczywiście kompromis i są złe książki, które gromadzą się na bezużytecznych faktach, których nie pamiętasz po ich przeczytaniu, ale są też dobre książki, które dają ci dobre podstawy w podstawach i co ”
Są też książki na wyższym poziomie niż jeden przedmiot technologiczny, które moim zdaniem mają kluczowe znaczenie dla dojrzewania jako programista. Książki takie jak Code Complete , Refactoring , Efektywna praca ze starszym kodem itp. Nie będziesz czerpać wiedzy z tych książek tylko poprzez naukę JIT.
źródło
Myślę, że lubię czytać książki. Szczególnie ściągam ebooki. Czytam każdą część rozdziału. Skopiuj ich kod! wklej do edytora programowego, a następnie sprawdź, jaki jest wynik. Następnie spróbuj zmienić logikę. Wspomniałem o książkach do pobrania, ponieważ działają one szybciej. Książki są naprawdę wspaniałe. Nie kłamię, ale od listopada ubiegłego roku do dzisiaj. Skończyłem około 20 książek. Wszystko wymaga miłości do czytania. Nowicjusze rozwiązują konkretny problem, biorąc pomoc z Internetu. Ale kiedy dostaje się naprawdę złożone zadanie, rezygnują. Powód, brak wiedzy o zadaniu i jego rozwiązanie. Na przykład ograniczyłem formanty do danych i nie wiem, co robią zestawy danych, i powierzono mi zadanie nawiązania relacji między kopiami tabel bazy danych rezydentnymi w pamięci, że nie mogę tego zrobić.
źródło
Nowym programistom bardzo trudno jest zrozumieć, czym właściwie jest programowanie i jak głębokie jest.
Każdy może napisać program, który każe komputerowi zrobić - cóż, prawie wszystko przy bardzo małej nauce, to nie jest trudne! Trudne jest stworzenie programu, który jest obsługiwany i który może być szybko zrozumiany i głęboko zrozumiany przez innych członków zespołu, ta część trwa lata, dziesiątki lat.
Poza tym nauka pracy jako skuteczny element zespołu jest trochę krzywa.
W jaki więc sposób książki pomagają rozwiązać te „rzeczywiste” problemy programistyczne w sposób, którego nie sprawdzają odnośniki w Internecie?
Dwie moje ulubione książki to „Wzory projektowe” i „Refaktoryzacja”.
Refaktoryzacja to świetna książka informująca, jak rozpoznać zły kod. Jeśli nauczyłeś się, szukając odniesień do kodowania, ta książka (jedna z wielu książek o refaktoryzacji) jest krytyczna.
Wzory projektowe tak naprawdę nie oferują wiele rzeczy, których dobry programista nie jest w stanie zrozumieć, ale nadały nazwy szerokiej gamie wzorców, z których wszyscy już korzystają w kodzie. Umożliwiło to programistom skuteczniejszą komunikację i pomogło niektórym programistom znaleźć nowe sposoby atakowania problemów. Chociaż można znaleźć wzorce projektowe w Internecie, o wiele łatwiej jest znaleźć w Google nazwę wzorca projektowego niż - google, co próbujesz zrobić.
W wywiadach poproszono mnie o opisanie tych dwóch książek i tego, co starają się osiągnąć. Myślę, że to bardzo ważne pytanie w trakcie wywiadu ... Chciałbym zwrócić uwagę na programistę, który nie wiedział o tych dwóch książki, chyba że ubiegał się o wyjątkowo młodszą pozycję.
źródło
Nauczyłem się programować bezpośrednio z książek. Około 20 lat temu, zanim google i sieć stały się popularne. Myślę, że są świetnymi zasobami. Jednak większość współczesnych książek tylko cytuje artykuły techniczne producentów. Zgadzam się więc, że lepiej jest uczyć się online. Z ostrzeżeniem w następujący sposób:
Mimo że czytałem wiele książek i miałem dostęp do Internetu prawie od kiedy było to wykonalne finansowo. Nigdy nie byłem w stanie zrealizować żadnego znacznego projektu. Pewnie, że mógłbym wykonać wiele dużych projektów w dużych, zaawansowanych książkach, w których poprowadzą cię 20 rozdziałów, ale jeśli chodzi o moje własne projekty z prawdziwego świata, zawsze bez egzekucji uderzam w mur. Muszę ci powiedzieć, że czytam ciężkie książki.
Przez całe życie miałem problemy z dostaniem się na studia, ale teraz zaczynam trzeci rok. W pierwszym roku spotkałem ludzi w czwartym roku i mistrzów, i mogłem prowadzić produktywne rozmowy na temat teorii AI, HCI, asemblera i ect rozwoju kompilatora. Ale z całą tą wiedzą nie mogłem stworzyć rozsądnego programu. Czego mi brakowało ... Jednej rzeczy nie można uzyskać z żadnej książki lub online.
Struktura. W pierwszym roku nie nauczyłem się niczego o charakterze technicznym (już znałem całą sprawę i przeszedłem przez nią bez całodziennej nauki, wykonałem matematykę i projektowanie, ponieważ były one dla mnie całkiem nowe), ale nauczyłem się struktury i pracy zespołowej. Podczas moich pierwszych wakacji byłem bliżej niż kiedykolwiek do ukończenia mojej pierwszej prawdziwej pracy.
Na drugim roku nauczyłem się wielu nowych rzeczy technicznych (wciąż podstawy w porównaniu do tego, co wiedziałem, ale wprowadzałem teorię, którą znałem, w rzeczywistą praktykę). Podkreśliło to znaczenie struktury od nowa. Nie ukończyłem pierwszego prawdziwego projektu. Teraz uważam się za programistę.
Nie uważam za konieczne, aby czytać książki do nauki programowania. Ale to jest pomoc. Jednak zdecydowanie wierzę, że żadna książka ani strona internetowa nie naucza ani nie może uczyć tego, co otrzymujesz z nawet 2 lat studiów. Jeśli udało ci się ukończyć projekty bez pójścia na studia, fair play, ale jest to doświadczenie, które gorąco polecam bez względu na wiek.
Książki są dobre, internet jest lepszy, google i you Tube są super, ale nic nie przebije starego, modnego college'u w mojej opcji. Wątpię w to, czy kiedykolwiek będzie google lub youtubing, i wiem z pierwszej ręki, że żadna ilość książek nigdy nie będzie.
źródło
Nie mam pojęcia. Jestem przeciwny programowaniu książek. W większości przypadków nadal musisz szukać w Internecie, aby wyszukać dodatkowe informacje.
Chcesz nauczyć się języka programowania? Google za to. Nienawidziłem jQuery, ponieważ wyglądało to ciężko. Potem przyszedłem do Stack Overflow i wiem z tego wiele. Bez pomocy żadnych książek.
źródło
Myślę, że to słuszne, że programowania nie można nauczyć się tylko z książek (jak wspomniała większość osób), trzeba dużo ćwiczyć i jest wiele zasobów dostępnych w Internecie (artykuły, filmy, próbki itp.).
Ale dobra książka wypełnia luki w twojej wiedzy. Po przeczytaniu książki od deski do deski daje pewność, że nie masz żadnych luk w wiedzy na ten temat. Jednak wyzwaniem jest znalezienie dobrych książek na ten temat.
źródło