Przeglądając ten wątek, uświadomiłem sobie, jak brzydka jest większość książek związanych z programowaniem. Bardzo dobry wątek!
Carl Bergquist,
23
Interesujące jest to, że chociaż tytuł brzmi „Jaka jest najbardziej wpływowa książka, którą powinien przeczytać każdy programista?”, Sugeruje się sporo książek, które dotyczą konkretnych tematów językowych. Z definicji i na pytanie, jak zostało postawione, sugerowane tutaj książki powinny zajmować się zagadnieniami agnostycznymi z języka, co dowodzi, że większość programistów jeszcze nie nauczyła się czytać.
Rook
19
Gdybym mógł cofnąć się w czasie i powiedzieć sobie, żebym coś przeczytał, lepiej niech to będzie gazeta lub sportowa książka ze sobą. Wszystko inne jest stratą dobrej podróży w czasie. :-)
jmucchiello
32
Wiesz, gdybym nie martwił się, że zagłosuję CAŁĄ partią, trollicznie pójdę i zasugeruję Zmierzch. „Jest TAKŻE o ludziach bladych i unikających słońca!”
Jacob Bellamy
3
Czy ktoś może oczyścić odpowiedzi, usuwając powtarzające się wpisy w książkach? Większość z nich została już odrzucona.
rao
Odpowiedzi:
1746
Code Complete (2. edycja) Steve McConnell
Pragmatyczny programista
Struktura i interpretacja programów komputerowych
Język programowania C autorstwa Kernighana i Ritchie
Wprowadzenie do algorytmów autorstwa Cormen, Leiserson, Rivest & Stein
Projektuj wzory według Gang of Four
Refaktoryzacja: poprawa projektu istniejącego kodu
Miesiąc mitycznego człowieka
Sztuka programowania komputerowego Donalda Knutha
Kompilatory: zasady, techniki i narzędzia autorstwa Alfreda V. Aho, Ravi Sethi i Jeffrey D. Ullman
Gödel, Escher, Bach autorstwa Douglasa Hofstadtera
Clean Code: A Handbook of Agile Software Craftsmanship autorstwa Roberta C. Martina
Skuteczny C ++
Bardziej skuteczny C ++
KOD Charlesa Petzolda
Programowanie pereł Jona Bentleya
Skutecznie współpracuje ze starszym kodem Michaela C. Feathersa
Peopleware od Demarco i Lister
Coders at Work autorstwa Petera Seibela
Na pewno żartujesz, panie Feynman!
Skuteczna 2. edycja Java
Wzory architektury aplikacji korporacyjnych autorstwa Martina Fowlera
Mały Schemer
Zaprawiony Schemer
Dlaczego (wzruszający) przewodnik po Ruby
Więźniowie prowadzą azyl: dlaczego produkty high tech doprowadzają nas do szaleństwa i jak przywrócić zdrowie psychiczne
Sztuka programowania w Uniksie
Rozwój oparty na testach: według przykładu Kent Beck
Praktyki zwinnego programisty
Nie każ mi myśleć
Zwinne tworzenie oprogramowania, zasady, wzorce i praktyki autorstwa Roberta C. Martina
Projekty oparte na domenach autorstwa Erica Evansa
Projekt codziennych rzeczy autorstwa Donalda Normana
Nowoczesny projekt C ++ autorstwa Andrei Alexandrescu
Najlepsze pisanie oprogramowania I autorstwa Joela Spolsky'ego
Praktyka programowania przez Kernighana i Pike'a
Pragmatyczne myślenie i uczenie się: przebuduj swoje wetware autorstwa Andy Hunta
Ocena oprogramowania: Demystifying the Black Art autorstwa Steve McConnel
The Passionate Programmer (My Job Went To India) Chada Fowlera
Hakerzy: Heroes of the Computer Revolution
Algorytmy + struktury danych = programy
Pisanie kodu stałego
JavaScript - dobre części
Realizacja przez 37 sygnałów
Podstawy programowania Karla Seguina
Grafika komputerowa: zasady i praktyka w C (wydanie drugie)
Myślenie w Javie przez Bruce'a Eckela
Elementy systemów obliczeniowych
Refaktoryzacja do wzorów autorstwa Joshua Kerievsky
Nowoczesne systemy operacyjne Andrew S. Tanenbaum
Adnotacja Turinga
Rzeczy, które czynią nas inteligentnymi przez Donalda Normana
Ponadczasowy sposób budowania autorstwa Christophera Alexandra
The Deadline: A Novel About Project Management autorstwa Toma DeMarco
Język programowania C ++ (wydanie trzecie) autorstwa Stroustrup
Wzorce architektury aplikacji korporacyjnych
Systemy komputerowe - perspektywa programisty
Zwinne zasady, wzorce i praktyki w języku C # autorstwa Roberta C. Martina
Rosnące oprogramowanie obiektowe oparte na testach
Wytyczne dotyczące projektowania ram autorstwa Brada Abramsa
Object Thinking autorstwa dr Davida Westa
Zaawansowane programowanie w środowisku UNIX autorstwa W. Richarda Stevensa
Hakerzy i malarze: wielkie pomysły z epoki komputerów
Dusza nowej maszyny autorstwa Tracy Kidder
CLR przez C # Jeffrey Richter
Ponadczasowy sposób budowania autorstwa Christophera Alexandra
Wzory projektowe w języku C # autorstwa Steve'a Metskera
Alicja w krainie czarów autorstwa Lewisa Carola
Zen i sztuka konserwacji motocykli autorstwa Roberta M. Pirsiga
About Face - Essentials of Interaction Design
Nadchodzą wszyscy: moc organizowania się bez organizacji Clay Shirky
Tao programowania
Obliczeniowe piękno przyrody
Pisanie Solid Code przez Steve Maguire
Przewodnik Philipa i Alexa dotyczący publikacji w Internecie
Analiza i projektowanie obiektowe z aplikacjami Grady Booch
Effective Java autorstwa Joshua Bloch
Obliczalność przez NJ Cutland
Masterminds of Programming
Tao Te Ching
Wydajny programista
Sztuka oszustwa Kevina Mitnicka
Programista kariery: taktyki partyzanckie dla niedoskonałego świata autorstwa Christophera Duncana
Paradygmaty programowania sztucznej inteligencji: studia przypadków w Common Lisp
Masters of Doom
Pragmatyczne testy jednostkowe w C # z NUnit autorstwa Andy Hunta i Dave'a Thomasa z Mattem Hargettem
Jak to rozwiązać George Polya
Alchemik Paulo Coelho
Smalltalk-80: Język i jego implementacja
Writing Secure Code (2nd Edition) autor: Michael Howard
Wprowadzenie do programowania funkcjonalnego autorstwa Philipa Wadlera i Richarda Birda
Code Complete to fajna książka, jeśli jesteś na studiach. Jeśli masz co najmniej rok doświadczenia w programowaniu, jest to nudziarz całkowity.
Bogdan Gavril MSFT
19
Code Complete zawiera wiele przydatnych informacji, ale jest ukryty w hiperbolach, gofrach i powtórzeniach, co czyni go trudnym do odczytania.
Jeff Yates,
76
Czytam Code Complete 3 lata mojej kariery. Nie wziąłem udziału w kursie inżynierii oprogramowania ani kursie tworzenia języka programowania, ale wziąłem udział w kursach CS. To zdecydowanie najlepsza pojedyncza książka, jaką kiedykolwiek czytałem, aby zostać lepszym programistą. Nie uczyni cię specjalistą, ale sprawi, że będziesz dużo więcej niż majstrować.
Shea,
119
Problem z tą książką polega na tym, że dla początkujących nie ma to większego sensu, ponieważ pojęcia są nieco zaawansowane. Do czasu, gdy będziesz gotowy, aby go przeczytać, powinieneś już znać i praktykować 99% pojęć zawartych w książce.
esac
57
To jest kwestia zdrowych rozsądków, takich jak te zawarte w tej książce. Co jakiś czas trzeba im przypominać, aby cofnęli się w kolejce.
@Juan: Znam Juana, wiem - ale jest kilka rzeczy, których można się nauczyć tylko poprzez zajęcie się danym zadaniem. Mówienie abstrakcyjnymi ideałami przez cały dzień sprawia, że stajesz się akademikiem. Właśnie w zastosowaniu abstraktu naprawdę rozumiemy powód ich istnienia. : P
@Keith: Świetna wzmianka o „Więźniach ucieka azyl” Alana Coopera - na pewno otwieracz do oczu, każdy programista, który ze mną współpracował, odkąd przeczytałem tę książkę, słyszał, jak wspominam pomysły, które popiera. +1
Chociaż to nie uczy programowania, uczy podstawowej matematyki, którą powinien znać każdy programista. Być może pamiętasz te rzeczy z uniwersytetu, ale tak naprawdę, wykonywanie logiki predykatu poprawi twoje umiejętności programowania, musisz nauczyć się Ustawić Teorię, jeśli chcesz programować przy użyciu kolekcji.
Jest tutaj naprawdę wiele interesujących informacji, które mogą sprawić, że będziesz myśleć o problemach na różne sposoby. Przydaje się, aby od czasu do czasu odebrać i nauczyć się czegoś nowego.
Prawdopodobnie najgłębsze „prawo” na wynos przedstawione w książce:
Twierdzenie o podstawowym trybie awaryjnym (FFT): złożone systemy zwykle działają w trybie awaryjnym.
Chodzi o to, że niektóre elementy oprogramowania zawierają wadliwe elementy, które są maskowane przez awarie w innych częściach lub przez walidacje w innych częściach. Zobacz prawdziwy przykład na urządzeniu do promieniowania Therac-25 , którego wady programowe zostały zamaskowane przez awarie sprzętowe. Kiedy awarie sprzętu zostały usunięte, stan wyścigu oprogramowania, który pozostawał niewykryty przez te wszystkie lata, spowodował, że maszyna zabiła 3 osoby.
Zobacz także The Systems Bible tego samego autora (John Gall). To trzecia edycja Systemantics, właśnie zmienił tytuł. To jest książka, którą ukradniesz ze szkoły. To książka, którą dorośli dorośli czytają pod kocem z latarką.
Chris Wenham
9
Jednym z moich ulubionych jest Hacker's Delight , ponieważ czytanie było równie zabawne, co edukacyjne.
+1 za „Hacker's Delight” Henry'ego S. Warrena Jr - nie chodzi o hakowanie w popularnym tego słowa znaczeniu, ale o hakowanie jak w bitach z niskim poziomem i innych „hacków” w prawdziwym i oryginalnym tego słowa znaczeniu. Nie dla wszystkich, ale jeśli zajmujesz się optymalizacją kodu, kompilatorami itp. Lub jesteś zwykłym kujonem zainteresowanym rzeczami niskiego poziomu, jest to świetna książka.
Brillant, okładka książki pokazuje „La Sagrada Família”, dużą rzymskokatolicką bazylikę w budowie w Barcelonie, Katalonia, Hiszpania. Do uzupełnienia w 2026 r. (Pozostało tylko 17 lat). Jak większość programów, nawet z najlepszymi książkami, nigdy nie skończyły ...
PeterMmm,
9
Wyjaśnienie programowania ekstremalnego: Embrace Change autorstwa Kent Beck. Chociaż nie opowiadam się za hardkorowym podejściem do tworzenia oprogramowania opartym na XP lub autostradzie, żałuję, że nie zapoznałem się z zasadami tej książki znacznie wcześniej w mojej karierze. Testy jednostkowe, refaktoryzacja, prostota, ciągła integracja, koszt / czas / jakość / zakres - to zmieniło moje spojrzenie na rozwój. Przed Agile chodziło o debugger i lęk przed prośbami o zmianę. Po Agile demony te nie pojawiły się tak duże.
Praktyka programowania. Brian W. Kernighan, Rob Pike.
Styl pokazany tutaj jest doskonały - kod mówi sam za siebie, a cała książka jest zgodna z zasadą KISS. Osobiście nie moje wybrane języki, ale wciąż wpływowe dla mnie.
Zacząłem go czytać, ponieważ chciałem nauczyć się Common Lisp. Kiedy byłem w połowie drogi, zdałem sobie sprawę, że była to najlepsza książka o programowaniu, którą do tej pory przeczytałam.
Ta książka wyjaśnia wiele rzeczy na temat inżynierii oprogramowania, rozwoju systemu. Niezwykle przydatne jest również zrozumienie różnicy między różnymi rodzajami rozwoju produktu: web VS shrinkwrap VS framework IBM. Co ludzie mieli na myśli, gdy wymyślili model wodospadu? Przeczytaj to i wszystko stanie się jasne (miejmy nadzieję)
Ta książka musi zostać przepisana od nowa. Temat jest bardzo interesujący, ale książka jest całkiem szalona.
Chris Mountford
Chris, trudno mi zrozumieć twój komentarz ... Czy możesz wyjaśnić więcej? Dlaczego „szalony”?
dario minonne
Po pierwsze jest pełen błędów typograficznych. Zwykle najwyższej klasy redakcja Addisona Wesleya jest dziwnie nieobecna w tym tomie.
Chris Mountford
... kontynuuje, a tutaj nie ma wystarczającej ilości miejsca, ale: 2. nigdy nie jest jasne, w którym autor przełącza się między faktem a opinią, anegdotą i podstawową zasadą itp. 3. kunszt oprogramowania to metafora i strategia radzenia sobie z kilkoma trudne aspekty tworzenia oprogramowania. Ma szczególne zalety w porównaniu z alternatywami i przypuszczalnie wady. Uważam, że to rozsądne podejście. Nie ma sensu mówić, że oprogramowanie jest z natury rzemiosłem. Bardzo irytująca lektura, ale szczerze mówiąc to było dawno temu i wiele szczegółów zapomniałem. Wciąż jednak odczuwam obrzydzenie.
Chris Mountford
8
@Peter Coulton - nie czytasz Knutha, uczysz się go.
Dla mnie i mojej pracy ... Struktury danych o czysto funkcjonalnym charakterze są świetne do myślenia i rozwijania z myślą o językach funkcjonalnych.
Doskonałość w programowaniu wymaga inwestycji energii mentalnej i poświęcenia na rzecz ciągłego uczenia się porównywalnego do zawodów medycznych lub prawa. Opłaca się ułamek tego, co płacą te zawody, a tym bardziej płace wypłacane matematycznie wytrawnym osobom, które kierują się do sektora finansowego. Płace za konstruowanie kodu ulegają erozji, ponieważ jest to zawód względnie względny łatwy dla inteligentnych i samodyscyplinowanych w większości gospodarek.
Programowanie już uległo erozji do tego stopnia, że płaci mniej niż, powiedzmy, hydraulika. Instalacji hydraulicznej nie można „offshorować”. Nie musisz płacić 2395 $, aby co dwa lata uczestniczyć w Konferencji Profesjonalnych Hydraulików, aby otrzymać przywilej otrzymania zupełnie nowego zestawu technologii hydraulicznych, których nauka zajmie ci rok.
Jeśli mieszkasz w Ameryce Północnej lub Europie, jesteś młody i inteligentny, programowanie nie jest racjonalnym wyborem kariery. Firmy, które wymagają programowania, absolutnie. Studiuj biznes, posiadaj wystarczającą wiedzę na temat programowania, aby ulepszyć detektor BS: genialny. Ale poświęcenie lwiej części twojej energii mentalnej na opanowanie bibliotek, struktur danych i algorytmów? Ma to sens tylko wtedy, gdy programowanie jest dla Ciebie czymś więcej niż wyborem ekonomicznym.
Jeśli kochasz programowania i dlatego zamierza uczynić go swoją karierę, to wypada Ci rozwijać zrozumienie zimne oczy sił, które są i będą kontynuowane, aby to trudniej zawodu, w którym się utrzymać . „Świat jest płaski” nie nauczy cię, jak nazwać zmienne, ale zanurzy cię na 6-8 godzin w realiach ekonomicznych, które już przybyły. Jeśli możesz to przeczytać, a nie wystraszyli, następnie wyjść i kupić „Code Complete”.
Każda książka była niesamowita, ale dylemat Innovatora autorstwa Claytona Christensena (1997 !!!) jest naprawdę fantastyczną książką i naprawdę przyszło mi do głowy myśleć o współczesnym świecie oprogramowania. Wyzwaniem jest przełomowa technologia oraz to, w jaki sposób firmy zajmujące się napędami dysków i firmy nietechniczne są zawsze zakłócane przez nową, zmieniającą grę technologię. Daje to nowe spojrzenie na Google, prawdopodobnie największą firmę internetową. Dlaczego oni mają swoje ręce WSZYSTKO? To dlatego, że nie chcą, aby ich pozycja została zakłócona przez coś nowego. Podgląd w Google jest wystarczający, aby uzyskać pomysł. Przeczytaj to!
Język Python był dla mnie bardzo wpływowy, chciałbym przeczytać tę książkę wiele lat temu. Piękno i prostota języka Python naprawdę wpłynęły na sposób pisania kodu w innych językach.
Myślę, że uruchomienie nowych programistów w Pythonie zmniejszyłoby ilość brzydkiego kodu na świecie. Pracuję z kimś, kto losowo wcina linie - ta osoba nie zrobiłaby tego, gdyby pracowała z Pythonem przez kilka miesięcy.
xnine
6
Myślę, że uruchomienie nowych programistów z Pythonem zmniejszyłoby liczbę innych języków.
Naprawdę dobra książka. Ma wysoki poziom smaku najważniejszych dziedzin informatyki. Tak, CS! = Programowanie, ale nadal jest to przydatne dla każdego programisty.
Myślę, że „The Art of Unix Programming” to doskonała książka autorstwa doskonałego hakera / genialnego umysłu, jakim jest Eric S. Raymond, który próbuje nam pomóc zrozumieć kilka zasad projektowania oprogramowania (głównie prostota). Ta książka jest obowiązkowa dla każdego programisty, który zamierza rozpocząć projekt na platformie Unix.
Chociaż zgadzam się, że wiele z powyższych książek to lektura obowiązkowa (Pragmatic Programmer, Mythical Man-Month, Art of Computer Programming i SICP od razu przychodzą mi do głowy), chciałbym pójść w nieco innym kierunku i polecić A Discipline programowania przez Edsger Dijkstra. Mimo że ma 32 lata, nacisk na „projektowanie pod kątem weryfikowalności” jest bardzo istotny (nawet jeśli „weryfikowalność” oznacza „dowód” zamiast „testów jednostkowych”).
Miałem wielkie nadzieje z powodu tej książki, ale to mi nie wychodzi. Myślę, że to stwierdzenie jest oczywiste. Prawdopodobnie jest to dobre dla początkujących w programowaniu.
Co jest w tym takiego specjalnego? Cóż, wyraźnie wszyscy słyszeli termin „zwinny” i wydaje się, że większość jest obecnie wierzącymi. Niezależnie od tego, czy wierzysz, czy nie, istnieją pewne głębokie zasady, dlaczego istnieje ruch Agile. Ta książka odkrywa i wyraża te zasady w precyzyjny, naukowy sposób. Niektóre zasady są następujące (przy okazji, to moje słowa, nie Alistaira):
Najtrudniejszą rzeczą w tworzeniu oprogramowania zespołowego jest takie samo zrozumienie każdego mózgu. Budujemy ogromne, skomplikowane, złożone systemy, które są niewidoczne w materialnym świecie. Im lepsza umiejętność zdobywania rozumu przez większą liczbę ludzi, tym bardziej efektywny będzie Twój zespół w tworzeniu oprogramowania.To jest podstawowy powód, dla którego programowanie par ma sens. Większość ludzi to odrzuca (i ja też początkowo to zrobiłem), ale mając na uwadze tę zasadę, zdecydowanie zalecam, aby dać jej jeszcze jedną szansę. Skończysz z DWÓCH osobami, które głęboko rozumieją właśnie zbudowany podsystem ... nie ma wielu innych sposobów na uzyskanie tak głębokiego transferu informacji tak szybko. To jest jak połączenie umysłu Vulcan.
Nie zawsze potrzebujesz słów, aby szybko przekazać głębokie zrozumienie. I następstwo: zbyt wiele słów, a przekroczysz możliwości słuchacza / czytelnika, co oznacza, że próba przeniesienia zrozumienia nie nastąpi. Pomyśl, że dzieci uczą się mówić językiem, będąc „zanurzone” i „absorbujące”. Nie tylko język ... podaje przykład dzieci bawiących się pociągami na podłodze. Wraz z nim pojawia się kolejne dziecko, które nigdy wcześniej NIE WIDZIŁO pociągu ... ale obserwując inne dzieci, podnosi istotę gry i gra od razu. Dzieje się tak przez cały czas między ludźmi. To wraz z następstwem zbyt wielu słów pomaga zobaczyć, jak błędnie było w czasach „wodospadu”, aby spróbować napisać 700 specyfikacji szczegółowych wymagań strony.
Tam też jest o wiele więcej. Zamknę się teraz, ale WYSOCE polecam tę książkę!
Wyjątkowy wkład, a Ty poświęciłeś czas, aby jasno wyjaśnić, dlaczego warto go przeczytać. +1 za oryginalność i wysiłek! Z niecierpliwością czekam na przeczytanie tego wkrótce ...
Avery Payne
Dobrze. Nie sądzę, że będziesz rozczarowany.
Charlie Flowers
7
Masters of Doom. Jeśli chodzi o motywację i miłość do swojego zawodu: nie będzie nic lepszego niż to, co opisano w tej książce, prawdziwie inspirująca historia!
Odpowiedzi:
źródło
K&R
@Juan: Znam Juana, wiem - ale jest kilka rzeczy, których można się nauczyć tylko poprzez zajęcie się danym zadaniem. Mówienie abstrakcyjnymi ideałami przez cały dzień sprawia, że stajesz się akademikiem. Właśnie w zastosowaniu abstraktu naprawdę rozumiemy powód ich istnienia. : P
@Keith: Świetna wzmianka o „Więźniach ucieka azyl” Alana Coopera - na pewno otwieracz do oczu, każdy programista, który ze mną współpracował, odkąd przeczytałem tę książkę, słyszał, jak wspominam pomysły, które popiera. +1
źródło
Dyskretna matematyka dla informatyków http://ecx.images-amazon.com/images/I/51HCJ5R42KL._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU02_.jpg
Dyskretna matematyka dla informatyków JK Truss.
Chociaż to nie uczy programowania, uczy podstawowej matematyki, którą powinien znać każdy programista. Być może pamiętasz te rzeczy z uniwersytetu, ale tak naprawdę, wykonywanie logiki predykatu poprawi twoje umiejętności programowania, musisz nauczyć się Ustawić Teorię, jeśli chcesz programować przy użyciu kolekcji.
Jest tutaj naprawdę wiele interesujących informacji, które mogą sprawić, że będziesz myśleć o problemach na różne sposoby. Przydaje się, aby od czasu do czasu odebrać i nauczyć się czegoś nowego.
źródło
Systematyka: jak działają systemy, a zwłaszcza jak zawodzą . Wykorzystaj tanio. Ale możesz nie poczuć humoru, dopóki nie pracujesz nad kilkoma nieudanymi projektami.
Piękno książki to rok chroniony prawem autorskim.
Prawdopodobnie najgłębsze „prawo” na wynos przedstawione w książce:
Twierdzenie o podstawowym trybie awaryjnym (FFT): złożone systemy zwykle działają w trybie awaryjnym.
Chodzi o to, że niektóre elementy oprogramowania zawierają wadliwe elementy, które są maskowane przez awarie w innych częściach lub przez walidacje w innych częściach. Zobacz prawdziwy przykład na urządzeniu do promieniowania Therac-25 , którego wady programowe zostały zamaskowane przez awarie sprzętowe. Kiedy awarie sprzętu zostały usunięte, stan wyścigu oprogramowania, który pozostawał niewykryty przez te wszystkie lata, spowodował, że maszyna zabiła 3 osoby.
źródło
Jednym z moich ulubionych jest Hacker's Delight , ponieważ czytanie było równie zabawne, co edukacyjne.
Mam nadzieję, że druga edycja ukaże się wkrótce!
źródło
Pojęcia, techniki i modele programowania komputerowego.
tekst alternatywny http://ecx.images-amazon.com/images/I/51YZ50ZR13L._SL500_AA240_.jpg
źródło
Wyjaśnienie programowania ekstremalnego: Embrace Change autorstwa Kent Beck. Chociaż nie opowiadam się za hardkorowym podejściem do tworzenia oprogramowania opartym na XP lub autostradzie, żałuję, że nie zapoznałem się z zasadami tej książki znacznie wcześniej w mojej karierze. Testy jednostkowe, refaktoryzacja, prostota, ciągła integracja, koszt / czas / jakość / zakres - to zmieniło moje spojrzenie na rozwój. Przed Agile chodziło o debugger i lęk przed prośbami o zmianę. Po Agile demony te nie pojawiły się tak duże.
źródło
Rodzaje i języki programowania autorstwa Benjamina C Pierce'a dla dokładnego zrozumienia podstaw języków programowania.
źródło
tekst alternatywny http://ecx.images-amazon.com/images/I/51E0Ojkz8iL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg
źródło
Baza danych System Concepts to jedna z najlepszych książek, które możesz przeczytać na temat zrozumienia dobrych zasad projektowania baz danych.
źródło
Praktyka programowania. Brian W. Kernighan, Rob Pike.
Styl pokazany tutaj jest doskonały - kod mówi sam za siebie, a cała książka jest zgodna z zasadą KISS. Osobiście nie moje wybrane języki, ale wciąż wpływowe dla mnie.
źródło
Programowanie od podstaw. Jest bezpłatny w Internecie. Ta książka nauczyła mnie asm. Jest bardzo łatwy do odczytania.
źródło
Paradygmaty programowania sztucznej inteligencji : studia przypadków w Common Lisp autorstwa Petera Norviga
Zacząłem go czytać, ponieważ chciałem nauczyć się Common Lisp. Kiedy byłem w połowie drogi, zdałem sobie sprawę, że była to najlepsza książka o programowaniu, którą do tej pory przeczytałam.
źródło
Zdecydowanie kunszt oprogramowania
tekst alternatywny http://ecx.images-amazon.com/images/I/5186JKTDVWL._SL500_AA240_.jpg
Ta książka wyjaśnia wiele rzeczy na temat inżynierii oprogramowania, rozwoju systemu. Niezwykle przydatne jest również zrozumienie różnicy między różnymi rodzajami rozwoju produktu: web VS shrinkwrap VS framework IBM. Co ludzie mieli na myśli, gdy wymyślili model wodospadu? Przeczytaj to i wszystko stanie się jasne (miejmy nadzieję)
źródło
@Peter Coulton - nie czytasz Knutha, uczysz się go.
Dla mnie i mojej pracy ... Struktury danych o czysto funkcjonalnym charakterze są świetne do myślenia i rozwijania z myślą o językach funkcjonalnych.
źródło
„Świat jest płaski” Thomasa Friedmana.
Doskonałość w programowaniu wymaga inwestycji energii mentalnej i poświęcenia na rzecz ciągłego uczenia się porównywalnego do zawodów medycznych lub prawa. Opłaca się ułamek tego, co płacą te zawody, a tym bardziej płace wypłacane matematycznie wytrawnym osobom, które kierują się do sektora finansowego. Płace za konstruowanie kodu ulegają erozji, ponieważ jest to zawód względnie względny łatwy dla inteligentnych i samodyscyplinowanych w większości gospodarek.
Programowanie już uległo erozji do tego stopnia, że płaci mniej niż, powiedzmy, hydraulika. Instalacji hydraulicznej nie można „offshorować”. Nie musisz płacić 2395 $, aby co dwa lata uczestniczyć w Konferencji Profesjonalnych Hydraulików, aby otrzymać przywilej otrzymania zupełnie nowego zestawu technologii hydraulicznych, których nauka zajmie ci rok.
Jeśli mieszkasz w Ameryce Północnej lub Europie, jesteś młody i inteligentny, programowanie nie jest racjonalnym wyborem kariery. Firmy, które wymagają programowania, absolutnie. Studiuj biznes, posiadaj wystarczającą wiedzę na temat programowania, aby ulepszyć detektor BS: genialny. Ale poświęcenie lwiej części twojej energii mentalnej na opanowanie bibliotek, struktur danych i algorytmów? Ma to sens tylko wtedy, gdy programowanie jest dla Ciebie czymś więcej niż wyborem ekonomicznym.
Jeśli kochasz programowania i dlatego zamierza uczynić go swoją karierę, to wypada Ci rozwijać zrozumienie zimne oczy sił, które są i będą kontynuowane, aby to trudniej zawodu, w którym się utrzymać . „Świat jest płaski” nie nauczy cię, jak nazwać zmienne, ale zanurzy cię na 6-8 godzin w realiach ekonomicznych, które już przybyły. Jeśli możesz to przeczytać, a nie wystraszyli, następnie wyjść i kupić „Code Complete”.
źródło
W zeszłym roku wziąłem udział w kilku zajęciach. czytam
Dylemat innowatora (przełomowa technologia)
Miesiąc mitycznego człowieka (oprogramowanie do zarządzania)
Przekraczanie przepaści (start- up )
Systemy zarządzania bazami danych,
Programowanie książki COW C #, Książka OSTRICH
Począwszy od programistów iPhone, Książka GRAPEFRUIT
Każda książka była niesamowita, ale dylemat Innovatora autorstwa Claytona Christensena (1997 !!!) jest naprawdę fantastyczną książką i naprawdę przyszło mi do głowy myśleć o współczesnym świecie oprogramowania. Wyzwaniem jest przełomowa technologia oraz to, w jaki sposób firmy zajmujące się napędami dysków i firmy nietechniczne są zawsze zakłócane przez nową, zmieniającą grę technologię. Daje to nowe spojrzenie na Google, prawdopodobnie największą firmę internetową. Dlaczego oni mają swoje ręce WSZYSTKO? To dlatego, że nie chcą, aby ich pozycja została zakłócona przez coś nowego. Podgląd w Google jest wystarczający, aby uzyskać pomysł. Przeczytaj to!
źródło
hakerzy, Steven Levy.
Osobowość i sposób życia muszą być na pierwszym miejscu. Wszystko inne można się nauczyć.
źródło
Praktyka programowania
i
Jak rozwiązać to za pomocą komputera
alt text http://img.infibeam.com/img/7101e0ee/496b1/05/629/PMB-9788131705629.jpg?hei=200&wid=160&op_sharpen=1
źródło
Język Python był dla mnie bardzo wpływowy, chciałbym przeczytać tę książkę wiele lat temu. Piękno i prostota języka Python naprawdę wpłynęły na sposób pisania kodu w innych językach.
źródło
Nowy Turing Omnibus http://ecx.images-amazon.com/images/I/51HlYd-%2BRwL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg
Naprawdę dobra książka. Ma wysoki poziom smaku najważniejszych dziedzin informatyki. Tak, CS! = Programowanie, ale nadal jest to przydatne dla każdego programisty.
źródło
Analiza i projektowanie obiektowe z aplikacjami Brady Booch
źródło
The Mythical Man-Month autor Fred Brooks http://en.wikipedia.org/wiki/The_Mythical_Man-Month
źródło
Myślę, że „The Art of Unix Programming” to doskonała książka autorstwa doskonałego hakera / genialnego umysłu, jakim jest Eric S. Raymond, który próbuje nam pomóc zrozumieć kilka zasad projektowania oprogramowania (głównie prostota). Ta książka jest obowiązkowa dla każdego programisty, który zamierza rozpocząć projekt na platformie Unix.
źródło
Chociaż zgadzam się, że wiele z powyższych książek to lektura obowiązkowa (Pragmatic Programmer, Mythical Man-Month, Art of Computer Programming i SICP od razu przychodzą mi do głowy), chciałbym pójść w nieco innym kierunku i polecić A Discipline programowania przez Edsger Dijkstra. Mimo że ma 32 lata, nacisk na „projektowanie pod kątem weryfikowalności” jest bardzo istotny (nawet jeśli „weryfikowalność” oznacza „dowód” zamiast „testów jednostkowych”).
źródło
Code Craft autorstwa Pete Goodliffe to dobra lektura!
Code Craft http://ecx.images-amazon.com/images/I/51WZ9AEC3GL._SL500_BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg
źródło
Martin Fowler Refaktoryzacja : poprawa projektu istniejącego kodu została już wymieniona. Ale opiszę, dlaczego to na mnie wpłynęło.
Istotą całej książki jest takie ustrukturyzowanie kodu, aby ludzie mogli łatwiej go czytać i rozumieć . Mocno uczy mnie, że kod, który piszę, jest przeznaczony dla moich współpracowników i następców, aby mogli z niego skorzystać i prawdopodobnie nauczyć się czegoś dobrego . Inspiruje mnie do świadomego programowania w sposób, który pozostawia ludzi chwalących moje imię i nie przeklinających mnie na wieczne potępienie .
źródło
alt text http://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg
C ++ Jak programować To jest dobre dla początkujących. Jest to doskonała książka, która w całości zawiera 1500 stron.
źródło
Oto doskonała książka, która nie jest tak oklaskiwana, ale pełna głębokiego wglądu: Agile Software Development: The Cooperative Game , autor: Alistair Cockburn.
Co jest w tym takiego specjalnego? Cóż, wyraźnie wszyscy słyszeli termin „zwinny” i wydaje się, że większość jest obecnie wierzącymi. Niezależnie od tego, czy wierzysz, czy nie, istnieją pewne głębokie zasady, dlaczego istnieje ruch Agile. Ta książka odkrywa i wyraża te zasady w precyzyjny, naukowy sposób. Niektóre zasady są następujące (przy okazji, to moje słowa, nie Alistaira):
Tam też jest o wiele więcej. Zamknę się teraz, ale WYSOCE polecam tę książkę!
źródło
Masters of Doom. Jeśli chodzi o motywację i miłość do swojego zawodu: nie będzie nic lepszego niż to, co opisano w tej książce, prawdziwie inspirująca historia!
źródło