Gdybyś mógł mieć tylko jedną książkę związaną z programowaniem na półce, co by to było i dlaczego? [Zamknięte]

58

Poproszę jeden na odpowiedź. Dodam mój ulubiony jako odpowiedź.

Paddyslacker
źródło
13
Czy Kindle liczy się jako pojedyncza książka?
Wizard79
5
Nie. Zagraj teraz!
Paddyslacker,
1
Co powiesz na iPada?
Moshe
3
Czy sztuka programowania komputerowego liczy się jako jedna książka czy kilka?
David Thornley,
2
@ David Uważam, że technicznie jest to jedna książka w kilku tomach.
Paddyslacker,

Odpowiedzi:

69

Code Complete 2nd Ed.

Kompletny kod : Steve McConnell. Nie sądzę, żeby to wymagało wyjaśnienia. To ostateczna książka na temat budowy oprogramowania. Niezwykle dobrze napisany i obejmuje wszystkie aspekty praktycznej (programistycznej) strony tworzenia oprogramowania.

EpsilonVector
źródło
+1 za wybranie drugiego wydania - tyle ulepszeń w stosunku do pierwszego, że jest to inna książka.
Paddyslacker,
+1 - Mam tłumaczenie na włoski. Potem nigdy nie kupiłem innej książki programistycznej lub technicznej przetłumaczonej na mój język, ponieważ tłumaczenie było okropne. Musiałem kupić wydanie angielskie, żeby zrozumieć niektóre zdania!
Wizard79
Dla tych, którzy mieszkają w Quebec w Kanadzie . BAnQ ma pełną wersję tej książki dostępną online w tej lokalizacji: library.books24x7.com.res.banq.qc.ca/toc.asp?bookid=10482 .
HoLyVieR
4
Nie mogę się zgodzić Interesujące jest to, że słowo niezmienne nawet nie istnieje w tej książce.
Jonas
2
Chociaż zachowuję kopię pierwszego wydania, myślę, że nigdy do niej nie wróciłem. Być może powodem były książki o każdym z tematów, które według McConnella są ważne.
Apalala,
56

Łatwo.

Pragmatic Programmer

Stoosh
źródło
6
+1 za bycie realistą. Ta książka jest trafna, łatwa do odczytania, i prawdopodobnie książka, którą wielu programistów może faktycznie skorzystać z czytania. Zbyt wiele innych osób na tej liście jest trudnych i wątpię, by przeczytano je od deski do deski.
gąbka
Ta odpowiedź się powtarza.
clrod
+1 - moja druga ulubiona książka programowa za Code Complete (i szczerze mówiąc, czasami jest to pierwsza)
Alan
36

Struktura i interpretacja programów komputerowych, znana również jako SICP

Kiedy zobaczyłem, że SICP jeszcze nie ma na liście, skrzywiłem się z bólu. :)

Dlaczego: Nic więcej nie można dodać do chwalenia tej książki przez Norviga jako najlepsze wprowadzenie do informatyki, jakie kiedykolwiek napisano. No dobrze, skoro Dlaczego? został poproszony: SICP obejmuje podstawy oprogramowania w sposób satysfakcjonująco głęboki, podnosząc wiele perspektyw i pytań na temat natury obliczeń - z których wiele pozostaje kwestiami otwartymi - jednocześnie prowadząc czytelnika do wykraczania poza powierzchowne aspekty mówienia maszynie zrobić lub jak to zrobić.

alt text http://ecx.images-amazon.com/images/I/41CPGEDXMDL._SL500_AA300_.jpg

Kliknij obraz, aby przejść do darmowego tekstu online . Można również łatwo znaleźć wykłady wideo autorów , w tym w kolorze i stroju w stylu lat 80-tych.

limist
źródło
2
Wszyscy chwalą SICP. IMO powinien być podręcznikiem obowiązkowego kursu wprowadzającego we wszystkich szkołach CS. Z pewnością wyeliminowałoby to osoby, które tak naprawdę nie potrafią go wyciąć w programowaniu (znacznie mniej CS), jednocześnie wzmacniając CS i umiejętności programowania dla osób z potencjałem.
luis.espinal
1
@ luis.espinal SICP wydaje się przesadą w programowaniu wprowadzającym (chyba że mówimy o studiach podyplomowych). Istnieje powód, dla którego MIT porzucił kurs SICP jako kurs wprowadzający ... Mimo to zgadzam się, że warto przeczytać tę książkę (i wykonać ćwiczenia ...), ale robienie tego w standardowym semestrze studenckim byłoby trudne nawet ponadprzeciętny student. Również wprowadzenie do Java / Python / Ruby / C jest bardziej odpowiednie dla siły roboczej, im wcześniej ktoś przyzwyczai się do języków imperatywnych, tym lepiej ... SICP jest świetny do poszerzania horyzontów. Ale może być zniechęcający jako kurs wprowadzający ...
Cervo
1
@Cervo - To uzasadniona obawa i wydaje się, że to przesada, ale (i to jest całkowicie subiektywne stanowisko, które potwierdzam), mocno wierzę, że zapewnia głębsze podstawy niż zwykle w przypadku innych podejść głównego nurtu . Przysięgli wciąż nie są przy MIT, skoro przeszli na Python (niektóre z powodów są takie, że mają także możliwości FP i są bardzo podatne na naukowe obliczenia i robotykę, co nie jest schematem). Nic nie jest złego w Pythonie (właściwie uwielbiam ten język), ale jury nie będzie dostępne, dopóki nie pojawi się podobna do Pythona wersja SICP.
luis.espinal
2
@ con't - to znaczy sugeruję SICP nie ze względu na program, ale ze względu na jego treść pedagogiczną. Właściwie sugerowałbym zacząć od zgromadzenia (ludzie zrobili to całkiem skutecznie), ale nie ma książek o montażu (i prawdopodobnie nigdy nie będzie) takich jak SICP. Najbliższa byłaby encyklopedia Knutha (i to byłaby przesada). Jeśli chodzi o Javę , pracowałem z nią przez 12 lat i nie poleciłbym jej do nauczania ... wykonuje pracę, ale jest przerażająca, ponieważ PL. C, Python lub Ruby są znacznie lepiej zaprojektowanymi językami.
luis.espinal
1
@ con't - ostrzegam też przed używaniem języka jako narzędzia pedagogicznego, ponieważ jest to główny nurt. Główny nurt zmienia się co 2-3 lata, a w Javie język jest prosty, ale zadaniem jest nauka JVM, bibliotek i architektury. Powiedziałbym, żebym uczył się rozwoju Java i .NET na czwartym roku studiów. I uważam (wiem, subiektywnie ), że ważne jest, aby zapewnić dyscyplinę na wczesnym etapie. Mamy zbyt wielu programistów typu „wskaż i kliknij”, którzy na początku potrzebowali trochę dyscypliny.
Zarobiłem
32

Warte wspomnienia:

Mityczny Miesiąc Człowieka

alternatywny tekst

gąbka
źródło
1
Gdybym kiedykolwiek mógł przeczytać tylko jedną książkę o programowaniu, a gdybym ją przeczytał, to zniknie. I nigdy nie zobaczę innej książki, to by było na tyle. Jeśli będę musiał trzymać książkę na półce, żeby popatrzeć później ... Może to być kolejna, bardziej referencyjna książka. W każdym razie +1!
SingleNegationElimination
Podobała mi się ta książka i przeczytałem ją do końca. Jednak wiele materiałów dotyczy tylko bardzo dużych projektów, w których setki, a nawet tysiące osób lub ludzie pracują nad tym jak OS; ponieważ z tego czerpie swoje doświadczenia. Myślałem, że Code Complete był znacznie bardziej pomocny pod względem wiedzy, z której mogłem korzystać codziennie i która dotyczyła mnie.
Despertar,
30

Wprowadzenie do algorytmów

Jonas
źródło
Mieliśmy czwarte wydanie, ale jest to świetna książka na temat algorytmów!
Chris
@Chris: Nie wydaje mi się, żeby była czwarta edycja. Trzecia edycja pochodzi z września 2009 roku, więc jest nowa.
Jonas
Errr, drugie wydanie z zieloną okładką.
Chris
To jest wymagany podręcznik dla mojej klasy tego terminu. Cieszę się, że jest na liście tutaj i że jest tak wysoko oceniany w stosunku do oryginalnego pytania SO!
Wyskakuje
28

Wzory projektowe: elementy oprogramowania obiektowego wielokrotnego użytku

To książka do czytania na OOP projektowania i architektury. Wzory są dobre, gdy są właściwie stosowane, ale myślę, że prawdziwą wartością tej książki jest to, że daje zestaw narzędzi do wykorzystania podczas projektowania.

alternatywny tekst

Fishtoaster
źródło
OOP nie reprezentuje granic programowania.
Inaimathi,
Ponieważ katalogi wzorów są obfite (którym jest ta książka), wartość tej książki z czasem znacznie spadła.
Steven Evers
1
Czy wiele osób czyta tę książkę od deski do deski? Uważam, że jest to raczej odniesienie niż książka. (I odniesienie, którego nie można wyszukać.)
idbrii
28

Czysty kod Roberta C. Martina

„Czysty kod” Roberta C. Martina

Języki, ramy, metodologie przychodzą i odchodzą, ale wiele pomysłów w tej książce jest, jak podejrzewam, na zawsze.

azheglov
źródło
4
Bez obrazy dla książki, ale czy naprawdę możesz uzyskać akceptowaną odpowiedź na ten temat?
Martin Beckett,
25

Refaktoryzacja: poprawa projektu istniejącego kodu

alternatywny tekst

Daniel
źródło
25

Właśnie policzyłem dziś moje książki. 23 z nich. To zależy od tego, nad czym pracuję. Myślę, że ponadczasową odpowiedzią jest „język C”, autor: Kernighan i Ritchie .

wprowadź opis zdjęcia tutaj

Moshe
źródło
3
Jedna z najlepszych książek do nauki języków w historii komputerów. Dobry przykład, jak napisać książkę programistyczną.
Wizard79
1
I warto mieć na półce, szybciej jest znaleźć kody w formacie printf w książce niż w dokumentach pomocy MSDN
Martin Beckett
19

Skutecznie współpracuje ze starszym kodem Michaela Feathersa.

Zawiera wiele dobrych wskazówek na temat testowania i zarządzania istniejącą bazą kodu, z których większość nie wiedziałam, dopóki nie przeczytałam tej książki. Koniecznie przeczytaj, nawet jeśli starszy kod, z którym pracujesz, to Twój własny kod, który napisałeś wczoraj.

Skutecznie współpracuje ze starszym kodem

Paddyslacker
źródło
Co za świetna okładka.
Wyskakuje
To, ponieważ jest to mój obecny cel: doprowadzenie kodu, który napisałem, zanim byłem „testowany” w stan umożliwiający testowanie.
+1 Wiele razy tak. Ta książka bardzo mi pomogła w aktualizacji starego kodu.
Grant Palin
18

Sztuka programowania komputerowego Donalda Knutha

alternatywny tekst

Wizard79
źródło
1
Nie jestem pewien, czy to kwalifikuje się jako „1 książka” (chyba że naprawdę masz na myśli „tylko Tom 1”)
Inaimathi
Mam całą jego serię, ale zadowolę się Tomem 1. (Moje pierwsze zajęcia z informatyki były tego nauczane w 1967 roku. To było bezcenne). „Poznaj swoje struktury danych”.
Ira Baxter,
15

Niezbędne książki Java:

Skuteczna Java Josh Bloch

alternatywny tekst

Współbieżność Java w praktyce Brian Goetz, i in. glin.

alternatywny tekst

Puzzle Java Josh Bloch, Neal Gafter

alternatywny tekst

Jeremy Heiler
źródło
3
+1 za Effective Java. Znacząco poprawiłem swoje umiejętności Java.
Ryan Hayes,
+1 za Efektywną Javę , -1 za zignorowanie Poproszę jedną na odpowiedź .
Mark Booth
Jeden zestaw książek o Javie, który powinieneś mieć
Crowie
9

Gödel, Escher, Bach.

alternatywny tekst!

miku
źródło
1
Ha! To był mój wybór na liście książek niezwiązanych z programowaniem! Myślę, że to sprawia, że ​​nie można go zaklasyfikować?
Paddyslacker,
Naprawdę podobała mi się ta książka, bardzo poleciła ją moja teoria obliczeń prof. UW Madison - bardzo pomogła, próbując zrozumieć, o czym, do diabła, mówił.
Peter Turner
@Paddyslacker, GEB poświęca sporo czasu na rozmowy na temat obliczalności i różnych koncepcji informatycznych.
5

The Pragmatic Programmer: From Journeyman to Master (Andrew Hunt i David Thomas)

Maniero
źródło
4

Getting Things Done (David Allen) uczy, jak radzić sobie z tysiącami małych zadań, które musisz wykonać w codziennej pracy jako programista. Chociaż nie jest specjalnie skierowany do programistów, jest zdecydowanie nieocenioną pomocą, ponieważ tworzenie oprogramowania zazwyczaj wymaga bardzo dużej liczby małych zadań, które należy wykonać w sposób priorytetowy. Na przykład: jakie nowe funkcje wdrożyć, które błędy naprawić, które części kodu refaktoryzować, które części kodu odpocząć lub ponownie przetestować itp.

Dimitri C.
źródło
3

Język programowania C ++ autorstwa Bjarne Stroustrup

alternatywny tekst

Prasoon Saurav
źródło
+1: Tylko ze względu na to, jak sucho i szczegółowo jest. Nigdy nie czułem się tak, jakbym wiedział tyle o języku po ukończeniu książki na jego temat.
mummey
2

Zen of Code Optimization autorstwa Michaela Abrasha

Zen optymalizacji kodu

Obowiązkowa lektura dla programistów działających w czasie rzeczywistym - nawet jeśli informacje o procesorze są datowane, sposób myślenia jest nieoceniony.

AShelly
źródło
2

Czy iPad się liczy? Chciałbym powiedzieć, że moim numerem 1 na półce jest przeglądarka internetowa i możliwość wyszukiwania. Interfejs API online i referencje są najlepszym miejscem i będzie zależeć od mojego obecnego zestawu projektów.

Chris
źródło
2
Nie, nie ma. Zobacz komentarz na temat Kindle powyżej. Mimo to uwielbiam iPada. Może być cennym zasobem, ale wciąż nie jest prawdziwą książką. +1, jestem w nastroju fanboya. :)
Moshe
2

Wzory projektowe w Rubim: alternatywny tekst

ennuikiller
źródło
2

„Pułapki rozwoju obiektowego” Bruce'a F. Webstera

Mamy zbyt wielu programistów „OO”, którzy wciąż nie wiedzą, czym jest obiekt lub klasa ani do czego służy; nie wiem, jak wygląda dobre OO, programowanie proceduralne, modułowe i ustrukturyzowane; i jakoś poradzić sobie ze źle skonstruowanym pseudo-proceduralnym kodem razem z klasami.

Ta książka (plus kilka starych lat 70-tych na temat projektowania strukturalnego) bardzo by pomogła tym biednym duszom w końcu zrozumieć, jak powinna wyglądać dobra orientacja obiektowa.


Co więcej, są szanse, że gdybym był zmuszony wybrać jedną książkę i tylko jedną książkę obok tej, nie wybrałbym książki specyficznej dla technologii .

luis.espinal
źródło
1

alternatywny tekst

Jest to jedna z niewielu książek programistycznych, które zachowałem, kiedy zaczynałem programować. Często pożyczałem to ludziom, którzy po raz pierwszy zaczynali. Teraz nie tak bardzo, ponieważ C nie jest już pierwszym językiem programowania wielu ludzi. Świetnie sobie radzi z opisywaniem tego, co dzieje się za kulisami, a opisy wskaźników wnoszą prawdziwą jasność do tego, co dla wielu byłoby bardzo mylące.

Rich Schuler
źródło
1

Jon Skeet „c # in Depth”

alternatywny tekst

ACP
źródło
1
Właściwie to nie lubiłem książki Jona. Informacje były dobre, ale w książce było tyle „och, to ważne 10 rozdziałów od teraz” w książce, że wydawało się, że jest bardzo źle ułożona.
Steven Evers,
2
Pamiętaj, że jest drugie wydanie, które jest aktualizacją od pierwszego i obejmuje również C # 4.
Grant Palin
1

Projektowanie obiektów: role, odpowiedzialność i współpraca

alternatywny tekst

To zdecydowanie moja ulubiona książka programowa (nawet jeśli nie jest zależna od języka). Moim skromnym zdaniem jest książka, która lepiej przedstawia sprawę dotyczącą projektowania przedmiotów, które odnoszą się do ich kuzynów / braci / sąsiadów. Musi mieć na każdej poważnej półce dla programistów.

Czerwony rycerz
źródło