Książki językowe / samouczki dla popularnych języków

249

Nie tak dawno temu byłem początkującym programistą, próbując znaleźć dobre książki / samouczki na temat języków, których chciałem się nauczyć. Mimo to są chwile, gdy muszę stosunkowo szybko wybrać język do nowego projektu, nad którym pracuję. Celem tego postu jest udokumentowanie jednych z najlepszych samouczków i książek dla tych języków. Zacznę listę od najlepszych, jakie mogę znaleźć, ale mam nadzieję, że tam będziecie mogli pomóc w lepszych sugestiach / nowych językach. Oto, co znalazłem:

Ponieważ jest to teraz edytowalne wiki, daję kontrolę społeczności. Jeśli masz sugestię, umieść ją w tej sekcji. Postanowiłem także dodać sekcję dla ogólnych, aby być lepszymi książkami dla programistów i referencjami online. Jeszcze raz wszystkie rekomendacje są mile widziane.

Programowanie ogólne

Samouczki online
Podstawy programowania Karl Seguin - Z Codebetter, opartego na C #, ale pomysły brzmią ogólnie, nie mogę uwierzyć, że nikt jeszcze tego nie opublikował.
Jak pisać nieusuwalny kod - Anty podręcznik, który uczy, jak pisać kod w najbardziej niemożliwy do utrzymania sposób. Byłoby zabawnie, gdyby wiele z tych sugestii nie brzmiało tak prawdziwie.
Sekcja programowania książek Wiki - zasugerowana przez Jima Roberta jako posiadająca dużą liczbę książek / samouczków na wiele języków na różnych etapach ukończenia
Tylko podstawy Aby poznać język.


Kod książek zakończony - Ta książka jest oczywista, jest naprawdę genialna na zbyt wiele sposobów, aby o niej wspominać.
Pragmatic Programmer - Kolejna najlepsza rzecz do pracy z nadrzędnym koderem, ucząca cię wszystkiego, co wiedzą.
Opanowanie wyrażeń regularnych - wyrażenia regularne są niezbędnym narzędziem w przyborniku każdego programisty. Ta książka, zalecana przez Patricka Lozzi, to świetny sposób, aby dowiedzieć się, do czego są zdolni.
Algorytmy w C , C ++ i Javie - Świetny sposób na nauczenie się wszystkich klasycznych algorytmów, jeśli książki Knutha są zbyt głębokie.

do

Samouczki online
Ten samouczek wydaje się dość skrupulatny i przemyślany, przejrzał materiał i wydaje się całkiem niezły. Nie jestem jednak pewien, jak przyjazny byłby dla nowych programistów.
Książki
K&R C - na pewno klasyk. Można argumentować, że wszyscy programiści powinni to przeczytać.
C Primer Plus - Sugerowany przez Imran jako najlepsza książka C dla początkujących programistów.
C: A Reference Manual - Świetne źródło informacji polecane przez Patrick Lozzi.

C ++

Samouczki online Samouczek
na stronie cplusplus.com wydaje się być najbardziej kompletny. Znalazłem tu inny samouczek , ale nie obejmuje on takich tematów jak polimorfizm, który moim zdaniem jest niezbędny. Jeśli pochodzisz z C, ten samouczek może być dla Ciebie najlepszy.

Kolejny przydatny samouczek, C ++ Adnotation . W rodzinie Ubuntu ebook można uzyskać w wielu formatach (pdf, txt, Postscript i LaTex), instalując c++-annotationpakiet z Synaptic (zainstalowany pakiet można znaleźć w /usr/share/doc/c++-annotation/.

Książki
Język programowania C ++ - kluczowy dla każdego programisty C ++.
C ++ Primer Plus - Oryginalnie dodawany jako literówka, ale recenzje amazońskie są tak dobre, że będę go tu trzymał, dopóki ktoś nie powie, że to niewypał.
Skuteczne C ++ - sposoby na ulepszenie programów w C ++.
Bardziej efektywne C ++ - Kontynuacja skutecznego C ++.
Skuteczny STL - sposoby na lepsze wykorzystanie STL.
Myślenie w C ++ - Świetna książka, oba tomy. Napisane przez Bruce'a Eckela i Chucka Ellisona.
Programowanie: zasady i praktyka przy użyciu C ++ - wprowadzenie Stroustrup do C ++.
Przyspieszone C ++ - Andy Koenig i Barbara Moo - Doskonałe wprowadzenie do C ++, które nie traktuje C ++ jako „C z dodatkowymi bitami przykręconymi”, w rzeczywistości zanurzasz się bezpośrednio i zaczynasz używać STL wcześnie.

Naprzód

Książki
FORTH, tekst i odniesienie. Mahlon G. Kelly i Nicholas Spies. ISBN 0-13-326349-5 / ISBN 0-13-326331-2. 1986 Prentice-Hall. Książki Leo Brodiego są dobre, ale ta książka jest jeszcze lepsza. Na przykład obejmuje dogłębne definiowanie słów i tłumacza.

Jawa

Samouczki online Samouczki
Javy firmy Sun - Oficjalny samouczek, który wydaje się być przeświadczony, ale nie jestem ekspertem od języka Java. Znacie jakieś lepsze?
Książki
Head First Java - zalecane jako świetny tekst wprowadzający autorstwa Patrick Lozzi.
Skuteczna Java - zalecana przez pek jako świetny tekst pośredni.
Core Java Volume 1 i Core Java Volume 2 - Sugerowane przez FreeMemory jako jedne z najlepszych dostępnych źródeł Java.
Współbieżność Java w praktyce - zalecane przez MDC jako świetne źródło do równoczesnego programowania w Javie.

Język programowania Java

Pyton

Samouczki online
Python.org - Dokumentacja online dla tego języka jest całkiem dobra. Jeśli znasz coś lepszego, daj mi znać.
Dive Into Python - sugerowane przez Nickola. Wydaje się być książką w języku Python online.

Perl

Samouczki online
perldoc perl - tak właśnie zacząłem z językiem i nie sądzę, że będziesz w stanie go pokonać.
Books
Learning Perl - świetny sposób na zapoznanie się z językiem.
Programowanie Perla - zwane w dużej mierze Biblią Perla. Niezbędne odniesienie dla każdego poważnego programisty perla.
Perl Cookbook - świetna książka, która ma rozwiązania wielu typowych problemów.
Modern Perl Programming - nowo wydany, zawiera najnowszą wiedzę na temat nowoczesnych technik i narzędzi, w tym Moose i DBIx :: Class.

Rubin

Samouczki online
Adam Mika zasugerował Dlaczego (Poignant) Guide to Ruby, ale po ich obejrzeniu nie wiem, czy to jest dla wszystkich. Znaleziono witrynę, która wydaje się oferować kilka samouczków dla Ruby on Rails.
Books
Programming Ruby - sugerowany jako świetny odnośnik do wszystkich rzeczy ruby.

Visual Basic

Samouczki online
Znaleziono stronę, która wydaje się poświęcać wizualnym samouczkom podstawowym. Nie jestem jednak pewien, jak są dobrzy.

PHP

Samouczki online
Główna strona PHP - Prosty samouczek, który pozwala na komentarze użytkowników do każdej strony, którą naprawdę lubię. Samouczki PHPFreaks - Różne samouczki o różnej długości trudności.
Samouczki Quakenet / PHP - samouczek PHP, który poprowadzi Cię od podstaw.

JavaScript

Ćwiczenia Online
Znaleziony porządny poradnik tutaj nastawiona nie-programistów. Znaleziono inną bardziej zaawansowaną wersję tutaj . Nickolay zasugerował ponowne wprowadzenie do javascript jako dobrą lekturę tutaj.


Najpierw książki JavaScript
JavaScript: The Good Parts (z filmem autorki Google Tech Talk )

DO#

Samouczki online Samouczek
stacji C # - Wydaje się, że to przyzwoity samouczek, który wykopałem, ale nie jestem facetem C #.
Specyfikacja języka C # - sugerowana przez tamberg. Nie tak naprawdę samouczek, ale świetne odniesienie do wszystkich elementów C #
Books
C # do rzeczy - sugerowane przez tamberga jako krótki tekst wyjaśniający język z niesamowitą głębią

ocaml

Książki
nlucaroni sugerują, co następuje:
OCaml dla naukowców Wprowadzenie do ocaml
Korzystanie ze zrozumienia i rozwikłania ocaml: praktyka do teorii i odwrotnie
Rozwijanie aplikacji przy użyciu Ocaml - O'Reilly
The Objective Caml System - Official Manua

Haskell

Samouczki online
nlucaroni zasugerował:
Poznaj funkcjonalne programowanie z Haskell
Books
Real World Total Functional Programming Haskell

LISP / Schemat

Książki
wfarr zasugerowały, co następuje:
The Little Schemer - Wprowadzenie do schematu i ogólnie programowanie funkcjonalne
The Seasoned Schemer - Followup to Little Schemer.
Struktura i interpretacja programów komputerowych - Ostateczna książka o Lisp ( dostępna również online ).
Practical Common Lisp - Dobre wprowadzenie do Lisp z kilkoma przykładami praktycznego zastosowania.
O Lisp - Zaawansowane tematy w Lisp
Jak projektować programy - Wprowadzenie do obliczeń i
paradygmatów programowania sztucznej inteligencji: studia przypadków w Common Lisp - podejście do wysokiej jakości programowania Lisp

Co z wami chłopaki? Czy jestem totalnie nieobecny? Czy pominąłem twój ulubiony język? Wezmę najlepsze komentarze i zmodyfikuję pytanie za pomocą sugestii.

Craig H.
źródło

Odpowiedzi:

33

Wiem, że będzie to wydawać się staromodne, ale nie myślę zbyt wiele o używaniu samouczków online do nauki języków programowania lub platform. Ogólnie rzecz biorąc, daje to tylko trochę smaku języka. Aby naprawdę nauczyć się języka, potrzebujesz odpowiednika „książki”, aw wielu przypadkach oznacza to prawdziwą martwą książkę.

Jeśli chcesz nauczyć się języka C, przeczytaj K&R. Jeśli chcesz nauczyć się C ++, przeczytaj Stroustrup. Jeśli chcesz nauczyć się Lisp / Scheme, przeczytaj SICP. Itp.

Jeśli nie chcesz wydać więcej niż 30 USD i kilka godzin na naukę języka, prawdopodobnie nie nauczysz się go.

Kristopher Johnson
źródło
Zgadzam się, że jeśli naprawdę chcesz głęboko nauczyć się języka, książka jest na ogół dobrym wyborem. Myślę jednak, że książka Stroustrupa jest dość uboga z pedagogicznego punktu widzenia. Tę samą krytykę (jeszcze bardziej zdecydowanie) postawiłbym w książce GoF.
Dónal
Naprawdę nie lubię książki Stroustrup, preferuję myślenie w C ++ Bruce'a Eckela. Wolę książki elektroniczne, ponieważ mogę Ctrl + F. Uratowało mi życie, kiedy zrobiłem lekcje Algorytmy I (z książką Wprowadzenie do algorytmów)
Tian Bo 24'09
9
Nie mam nic przeciwko e-bookom. Chodzi o to, że musi to być prawdziwa „książka”, napisana przez eksperta i sprawdzona przez ekspertów, a nie jakiś darmowy samouczek na 5000 słów, który gdzieś znalazłeś w Internecie, napisany przez kogoś, kto nie wie dużo więcej od ciebie robić.
Kristopher Johnson
20

Wszystkie są naprawdę dobre, napisane przez środowisko akademickie i (niektóre) są książkami (na przykład niepublikowana książka oreilly - przetłumaczona z francuskiego, ale nie znalazłem żadnych problemów). Byłem moim ulubionym, który najbardziej mi pomógł.

ocaml:

  1. * Wprowadzenie do ocaml
  2. Korzystanie ze Zrozum i rozwikłać ocaml: praktyka do teorii i odwrotnie
  3. * Tworzenie aplikacji za pomocą Ocaml - O'Reilly
  4. System obiektywu Caml - oficjalny podręcznik
  5. Zwięzłe wprowadzenie do obiektywu Caml
  6. Praktyczny Ocaml

Haskell:

  1. Poznaj funkcjonalne programowanie z Haskell
  2. * Real World Haskell
  3. * Całkowite programowanie funkcjonalne
nlucaroni
źródło
8

W przypadku C ++ proponuję Accelerated C ++ autorstwa Koeniga i Moo jako tekst początkowy, chociaż nie wiem, jak by to było dla absolutnego nowicjusza. Koncentruje się na natychmiastowym użyciu STL, co znacznie ułatwia wykonywanie zadań.

Mark Krenitsky
źródło
Ale myślę, że Accelerated C ++ nie jest dla początkujących, myślę, że C ++ Primer Plus (wydanie 5) jest dla początkujących.
Ibn Saeed
7

Haskell :

Książka O'Reilly:

  1. Real World Haskell , świetna książka o Haskell zorientowana na samouczki, dostępna online i drukowana.

Moje ulubione ogólne, mniej akademickie samouczki online:

  1. Wikibook Haskell, który zawiera wszystkie doskonałe Poradniki Yet Another Haskell. (Ten samouczek pomaga na przykład w skonfigurowaniu dystrybucji Haskell i uruchamianiu przykładowych programów).
  2. Naucz się Haskell dla wielkiego dobra , w duchu Poignant Guide to Ruby, ale bardziej do rzeczy.
  3. Napisz sobie program w ciągu 48 godzin . Zabrudz swoje ręce ucząc się Haskell z prawdziwym projektem.

Książki o programowaniu funkcjonalnym w Haskell:

  1. Rachunek Lambda, kombinatory, bardziej teoretyczne, ale bardzo przyziemne : wprowadzenie Davie do funkcjonalnych systemów programowania z wykorzystaniem Haskell
  2. Lenistwo i poprawność programu, funkcjonalne myślenie: Bird's Wprowadzenie do programowania funkcjonalnego za pomocą Haskell
Jared Updike
źródło
5

Skuteczna Java jest koniecznością, ale zalecam najpierw zapoznać się z Javą, aby w pełni zrozumieć przykłady.

pek
źródło
4

Dodałbym książki programistyczne Bruce'a Eckela:

Ogólnie rzecz biorąc, jego strona „Książki” ( http://mindview.net/Books/ ) jest dobrym źródłem. Książki dostępne bezpłatnie można również znaleźć na stronie http://www.ibiblio.org/pub/docs/books/eckel/

JJarava
źródło
3

W przypadku Lisp i Scheme (piekło, ogólnie programowanie funkcjonalne), jest kilka rzeczy, które zapewniają bardziej solidne podstawy niż The Little Schemer i The Seasoned Schemer . Oba zapewniają bardzo proste i intuicyjne wprowadzenie zarówno do Schematu, jak i programowania funkcjonalnego, które dla nowych studentów lub hobbystów są znacznie prostsze niż w przypadku typowych tomów, które ocierają się jak non-fiction wersja War & Peace .

Po wyjściu poza serię Schemer zarówno SICP, jak i On Lisp są fantastycznymi wyborami.

wfarr
źródło
3

sprawdź sekcję programowania Wikibooks

Wiele z nich jest w pełni uformowanych, a wiele z nich ma bardziej zaawansowane sekcje (w różnych stanach ukończenia) dotyczące określonej funkcjonalności.

Ponadto w3 szkoły mają świetny samouczek php i sekcję referencyjną

ich sekcje HTML i CSS również są przydatne w celach informacyjnych.

Jiaaro
źródło
3

C ++

Pierwszy jest dobry dla początkujących, a drugi wymaga bardziej zaawansowanego poziomu w C ++.

Serge
źródło
3
  • C - Język programowania C - Oczywiście musiałem odwoływać się do K&R, jednej z najlepszych książek programistycznych na świecie.
  • C ++ - Przyspieszone C ++ - To jasne, dobrze napisane wprowadzenie do C ++ prowadzi bezpośrednio do korzystania z STL i daje ładne, jasne, praktyczne przykłady. Zasługuje na swoją nazwę.
  • C # - Pro C # 2008 i platforma .NET 3.5 - trochę kęsa, ale wspaniale napisane i ogromna głębia.
  • F # - Expert F # - Zaprojektowany, aby zabrać doświadczonych programistów od zera do eksperta w F #. Bardzo dobrze napisany, jeden z wynalazców F #, więc nie możesz się pomylić!
  • Schemat - Mały Schemer - Naprawdę wyjątkowe podejście do nauczania języka programowania wykonane naprawdę dobrze.
  • Ruby - Programowanie Ruby - pieszczotliwie znany jako książka „kilof”, jest to defaktyczne wprowadzenie do Ruby. Bardzo dobrze napisane, jasne i szczegółowe.
ljs
źródło
3

W przypadku Javascript:

Dla PHP:

Do projektowania i programowania OO wzorce:

Do refaktoryzacji:

W przypadku SQL / MySQL:

Ced-le-pingouin
źródło
2

C Primer Plus, wydanie 5 - książka C do zdobycia, jeśli uczysz się języka C bez wcześniejszego doświadczenia w programowaniu. Jest to mój ulubiony, gdy nauczyłem się programować z tej książki. Ma wszystkie cechy, które powinna mieć przyjazna dla początkującego książka:

  • Nie zakłada wcześniejszego kontaktu z programowaniem
  • Przyjemny do czytania (nie denerwujący jak For Dummies /
  • Nie upraszcza
Imran
źródło
2

Nie zapominajmy o Head First Java , które można uznać za niezbędny pierwszy krok w tym języku, a może krok po samouczkach online Sun. Świetnie nadaje się do zwięzłego rozumienia języka, jednocześnie dodając trochę zabawy, stanowiąc odskocznię do bardziej szczegółowych książek, o których już wspomniano.

Sedgewick oferuje świetne serie na temat algorytmów, które są obowiązkowe, jeśli uważasz, że książki Knutha są zbyt szczegółowe. Pomijając Knutha, Sedgewick zapewnia solidne podejście do tej dziedziny i oferuje swoje książki w językach C , C ++ i Java . Książki w C ++ mogłyby być używane wstecz na C, ponieważ w swojej prezentacji nie czyni dużego rozróżnienia między dwoma językami.

Ilekroć pracuję nad podręcznikiem C, C: A Reference, autorstwa Harbison i Steele , idzie ze mną wszędzie. Jest zwięzły i wydajny, a jednocześnie niezwykle dokładny, co czyni go bezcennym (dla mnie i tak).

Pomijając języki, a jeśli ten wątek ma stać się punktem odniesienia dla odniesień, w których myślę, że zmierza w tym kierunku ze względu na liczbę solidnych wkładów, prosimy o dołączenie wyrażeń regularnych do masteringu , z powodów, o których myślę, że większość z nas jest świadoma ... , niektórzy powiedzieliby również, że wyrażenie regularne można uznać za język sam w sobie. Co więcej, jego przydatność w wielu różnych językach sprawia, że ​​jest nieoceniony.

Patrick Loz
źródło
2

Dla celu C:

Cocoa Programming for Mac OSX - Third Edition Aaron Hillegass Opublikowane przez Addison Wesley

Programowanie w celu C, Stephen G Kochan,

stewechol
źródło
2

Head First JavaScript to dobre wprowadzenie do JS dla początkujących programistów - twórczo wyjaśnia podstawowe pojęcia programistyczne przy użyciu składni JS. Seria Head First oparta jest na opracowanych technikach pomagających w nauce i zapamiętywaniu nowych informacji. Mają wiele ćwiczeń i łamigłówek, które mogą wydawać się młodzieńcze, ale naprawdę pomagają utrwalić wiedzę w mózgu.

Jednym z ćwiczeń, które naprawdę mi się podobały, było wyjaśnienie typów danych, pokazanie zdjęcia ulicy miasta i powiedzenie „oznacz wszystkie typy danych, które można znaleźć na tym zdjęciu”. Tak więc kierunkowskaz w samochodzie jest logiczny, znak w sklepie to ciąg znaków, a adres to liczba. To pomogło mi zrozumieć, jak przetłumaczyć prawdziwe informacje na program.

Opierając się tylko na tej książce, powiedziałbym, że seria Head First to świetny sposób na naukę czegoś za pierwszym razem , ale ich podobny do historii format utrudniłby ich wykorzystanie jako odniesień.

Nathan Long
źródło
2

Biorąc pod uwagę ostatnie zmiany, uważam, że ważne jest uwzględnienie niedawnej eksplozji bezpłatnych ofert kursów online z uniwersytetów i firm prywatnych. Nowy Boston to strona z samouczkami, z której zawsze korzystałem w wielu językach, świetny punkt dla początkujących.

http://www.udacity.com/

https://www.coursera.org/

http://www.coursehero.org/

http://www.codecademy.com/

http://mitx.mit.edu/

http://www.khanacademy.org/

http://thenewboston.org/

nieśmiała
źródło
1

Drugie zalecenie K&R dla Kristophera dla C.

Uważam, że książka „Essential Actionscript 2.0” jest całkiem przydatna do kodowania AS (wydaje mi się, że obecnie dostępna jest wersja AS3).

Przekonałem się, że posiadanie prawdziwych książek do przejrzenia jest bardziej pomocne niż referencje online w niektórych przypadkach. Jednak nie bardzo wiem dlaczego.

Herms
źródło
1

hmm, nie wiem czy powiedziałbym, że materiały online są bezużyteczne, ale zgadzam się, że coś jest w książkach. Być może są one lepiej napisane, a może to fakt wykuwania ponad 50 USD sprawia, że ​​jesteś bardziej skłonny do studiowania materiału.

Tak czy inaczej, zgadzam się, że książki powinny być częścią tego pytania. Jeśli ktoś ma jakieś sugestie dotyczące książek dla języków, zredaguję post z najlepszymi sugestiami.

Craig H.
źródło
1

Odniesienie, które wymieniłeś dla Ruby, to Ruby on Rails. Chociaż wciąż głęboko rubinowo, zdecydowanie nie jest to miejsce dla osób chcących nauczyć się Ruby.

W przypadku samouczków w języku Ruby sugerowałbym, dlaczego (Poignant) Guide to Ruby jest doskonałym punktem wyjścia dla wszystkich zainteresowanych językiem.

Jeśli chcesz uzyskać więcej szczegółów, poleciłbym książkę Programowanie Ruby , która stała się standardem dla wszystkich rzeczy Ruby. Trzecie wydanie jest w trakcie pisania, podkreślając funkcje Ruby 1.9, więc wstrzymałbym się na chwilę, jeśli ktoś zastanawia się nad zakupem tej książki.

Adam Mika
źródło
Dlaczego książka jest dobra, ale małe historie są zbyt bzdurne. Zirytowali mnie, nie pomogli mi.
Rayne
1

W przypadku Javy bardzo polecam Core Java . To duży tom (lub dwa duże tomy), ale uważam, że jest to jedno z najlepszych odniesień do Javy, jakie przeczytałem.

Wolna pamięć
źródło
1

Wiem, że jest to cross-post stąd ... ale myślę, że jedną z najlepszych książek o Javie jest Java Concurrency in Practice autorstwa Briana Goetza. Książka raczej zaawansowana - ale dobrze zużyje się na współbieżnym kodzie i ogólnie Javie.

Matt Cummings
źródło
1

Standardem defacto do nauki Grails jest doskonały Pierwsze kroki z Grails autorstwa Jasona Rudolpha. Możesz debatować, czy jest to samouczek online, czy książka, ponieważ można ją kupić, ale jest dostępna do pobrania za darmo. Wydawanych jest więcej „prawdziwych” książek i polecam Beginning Groovy and Grails.

Ed.T
źródło
1

DO#

C # to the Point autorstwa Hanspeter Mössenböck. Na zaledwie 200 stronach wyjaśnia C # w zadziwiającej głębi, koncentrując się na podstawowych koncepcjach i zwięzłych przykładach zamiast machania ręką i zrzutów ekranowych Visual Studio.

Aby uzyskać dodatkowe informacje na temat określonych funkcji językowych, sprawdź specyfikację języka C # ECMA-334 .

Framework Design Guidelines , książka autorstwa Krzysztofa Cwaliny i Brada Abramsa z Microsoft, zapewnia dalszy wgląd w główne decyzje projektowe dotyczące biblioteki .NET.

tamberg
źródło