Jakie są naprawdę trudne książki programistyczne? [Zamknięte]
14
Zastanawiałem się, jakie są naprawdę trudne książki na temat programowania, które skłoniłyby mnie do myślenia. Mówię o językach niskiego poziomu, takich jak c itp. I algorytmach, punktach, funkcjach itp.
Dlaczego ludzie oddają głos? OP chce tylko książek, które mogłyby stanowić dla niego wyzwanie ... to nie jest głupie pytanie.
Melanie Shebel
4
To nie jest bardzo dobre pytanie. W szczególności uważam, że brakuje jasnych kryteriów oceny książek. „Twardy” i „każ mi myśleć” są dość subiektywne - nie znamy cię i co będzie trudne lub łatwe. Albo jak miałoby to zastosowanie do innych ludzi. Nie robi też nic, co mogłoby zainspirować odpowiedzi do wyjaśnienia, dlaczego książki są zalecane, co może być sprzeczne z wytycznymi dotyczącymi konstruktywności . Myślę, że trochę edycji może pomóc.
Adam Lear
4
@Melanie - jest to pytanie typu „lista X”, które po prostu opublikuje ulubioną książkę ludzi jako odpowiedź. Jeśli sprawdzisz odpowiedzi, żadne z nich nie wyjaśni, dlaczego wspomniana książka spełnia wymagania PO (tak, ale na 10 odpowiedzi).
ChrisF
1
Zgadzam się z @Anna i @Chris powyżej, w tym pytaniu brakuje kluczowych części, takich jak wyjaśnienie, dlaczego te książki są trudne lub jak ocenić książki względem siebie.
Dlaczego? Co sprawia, że jest tak dobra? Rozwiń swoją odpowiedź.
Walter
2
Powinieneś uwzględnić to w swojej odpowiedzi. Przeczytałem to, ale każdy, kto tego nie zrobił, NIE będzie miał pojęcia, dlaczego powinien zapoznać się z twoją sugestią.
Walter
3
@ Walter: Nie sądzę, że się zgadzam. Nie sądzę, że wymaga rozszerzenia. Książka jest tak niezwykle ważna i tak ważna dla komputerów, że nie potrzebuję wyjaśnienia.
S.Lott,
1
Jest to, że programiści książek najprawdopodobniej kiedyś planują czytać.
Steven A. Lowe
1
@RYUZAKI: „Chcę się przygotować, zanim wskoczę do czegoś, co wydaje się tak trudne i tak satysfakcjonujące”. Nie zawracaj sobie głowy próbowaniem „przygotowania”. Po prostu wskocz. Kiedy znajdziesz temat, który jest poza tobą, będziesz wiedział, czego musisz się nauczyć. To pogoń na całe życie. Nie możesz być wystarczająco przygotowany . Zawsze musisz nauczyć się jeszcze więcej.
Dlaczego nie („tak” wprowadzający)? To jest wstępem, używane w CS 101.
Konrad Rudolph
1
@konrad: AFAIK, większość uniwersytetów używa tylko kilku rozdziałów tych książek do nauczania.
Hery
Teraz musiałem to sprawdzić, niszcząc przy tym swój stojak na laptopa (używam Cormen jako wsparcia dla mojego laptopa…). I masz rację. Zapomniałem ostatnich części książki; są one rzeczywiście przedmiotem późniejszych wykładów (niektóre na kursach mistrzowskich).
steven i havent naprawdę zajrzał do tej książki; ale sprawia, że zadaję bardzo krytyczne pytanie: czy jest to przydatne na przykład dla programisty WEB lub kodera C ++ [sterowniki urządzeń itp.] lub programisty Androida? Pytam czy warto mój czas? [ciąg dalszy w następnym komentarzu]
Chani
[cd z poprzedniego komentarza] Jestem nowy, ale szybko się uczę. Czytam mnóstwo blogów, kodu Open Source itp. Więc czy czytanie powyższej książki (i innych tego typu) naprawdę mi pomoże? I przyjaciel; jedynym powodem, dla którego mam tak pesymistyczne nastawienie, jest to, że przeczytałem Projektowanie i analiza algorytmów komputerowych autorstwa Aho i in. i prawdę mówiąc, prawie nie korzystałem z tej wiedzy ..... ale znowu programuję poważnie przez mniej niż 6 miesięcy. co byś powiedział
Chani
1
@RYUZAKI: Więc programujesz poważnie mniej niż sześć miesięcy i znalazłeś Aho i in. książka algorytmów nie jest natychmiast przydatna? Więc nie szukasz książek wymienionych w tym pytaniu. Możesz poświęcić trochę czasu i poczuć się bardziej komfortowo w terenie, a następnie powrócić do nich. Książki w tych odpowiedziach (te, które znam, tak czy inaczej), nauczą cię rzeczy i znacznie poszerzą twoje zrozumienie. Nie sprawią, że od razu staniesz się lepszym programistą C #, jeśli tego właśnie szukasz.
David Thornley
+1: A także nauki programowania Davida Griesa. Książka towarzysząca, która rozwija tematy.
S.Lott,
2
@RYUZAKI lubię najgłębsze teksty CS, wyciągasz z tego to, co w nie wkładasz. Otrzymałem nowe uznanie dla matematycznego piękna programowania, wraz z bezpośrednim doświadczeniem w projektowaniu i udowadnianiu poprawności bardzo małych programów. Przepracowanie książki zajęło mi prawie rok.
Steven A. Lowe
9
Książka smok z pewnością pomoże Ci zrozumieć pojęć niskim poziomie.
dobry. I miał studiować ją jako część mojego CS nauczania i było to bardzo ciekawe wyzwanie, jak i wzbogacającym doświadczeniem
Chani
6
Siedem języków w ciągu siedmiu tygodni da ci wiele do zabawy. Gdy wszystko inne zawiedzie, przeczytaj „Struktura i interpretacja programów komputerowych” Jedna z najlepszych książek na temat programowania.
„Seven Languages in Seven Weeks” to niezwykle fajna, ale niezbyt trudna książka programowa.
Chiron
Jeśli twoim celem jest, aby książka była trudna ze względu na bycie twardym, masz rację, z drugiej strony jest to książka, która zawiera wiele dobrych informacji
Fantastyczna książka, która szczegółowo opisuje wiele przydatnych algorytmów naukowych. Przez całą moją karierę w wbudowanym i przemysłowym systemie komputerowym jedna lub inna wersja, w jednym lub innym języku 1 , była moim stałym towarzyszem.
Wow, nawet nie myślałem o książce o kapeluszach od około 15 lat
Zachary K
Tak, kupiłem pierwsze wydanie na uniwersytecie i udało mi się znaleźć zastosowanie algorytmów w tych książkach w każdej pracy, nad którą pracowałem.
Mark Booth
2
Sugerowano już kilka alternatyw dla znanych (i doskonałych) książek:
Systemy baz danych: The Complete Book, 2nd ed. ma drugą część, która faktycznie wyjaśnia, w jaki sposób sam DBMS jest implementowany. Ma wiele materiałów na temat efektywnego przechowywania i indeksowania danych oraz faktycznego wykonywania zapytań w bazie danych.
Podejście inżynierskie do sieci komputerowej omawia najgłębsze szczegóły faktycznego działania sieci. Jeśli kiedykolwiek zechcesz wdrożyć aplikację lub urządzenie sieciowe o wysokiej wydajności, ten tekst będzie doskonałym tłem.
Algorytmy aproksymacyjne obejmują obszerny przegląd problemów optymalizacji kombinatorycznej. Autor zaleca dogłębne przestudiowanie problemów przed próbą stworzenia przybliżenia, co jest bardzo pouczające.
Typy i języki programowania to ponad 600 stron teorii i technik implementacji poświęconych typom w językach programowania. Okazuje się, że istnieje niesamowita ilość teorii do rozwiązania. Jeśli kiedykolwiek chcesz stworzyć w pełni funkcjonalny język programowania, musisz się wiele nauczyć.
Niedawno zacząłem czytać Hacker's Delight (http://www.amazon.com/Hackers-Delight-Henry-S-Warren/dp/0201914654). W trudnych aspektach może nie być bardzo wysoko. Ale dałbym mu wysokie noty za dokładność, niski poziom i sprytne rozwiązywanie problemów, zgodnie z duchem jego nazwy.
Odpowiedzi:
Sztuka programowania komputerowego. Donald Knuth.
źródło
Wprowadzenie do algorytmów
Nie tak „wprowadzające”;)
źródło
Dyscyplina programowania, autor: Edgar W. Dijkstra
Jak napisać poprawny kod
To nie jest książka do przeczytania, to książka do nauki
źródło
Książka smok z pewnością pomoże Ci zrozumieć pojęć niskim poziomie.
źródło
Siedem języków w ciągu siedmiu tygodni da ci wiele do zabawy. Gdy wszystko inne zawiedzie, przeczytaj „Struktura i interpretacja programów komputerowych” Jedna z najlepszych książek na temat programowania.
źródło
Gorąco poleciłbym Przepisy numeryczne: Sztuka obliczeń naukowych .
Fantastyczna książka, która szczegółowo opisuje wiele przydatnych algorytmów naukowych. Przez całą moją karierę w wbudowanym i przemysłowym systemie komputerowym jedna lub inna wersja, w jednym lub innym języku 1 , była moim stałym towarzyszem.
źródło
Sugerowano już kilka alternatyw dla znanych (i doskonałych) książek:
źródło
Niski poziom .NET: CLR przez C # J. Richtera. Warto przeczytać, jeśli chcesz poznać rdzeń platformy .NET.
źródło
Niedawno zacząłem czytać Hacker's Delight (http://www.amazon.com/Hackers-Delight-Henry-S-Warren/dp/0201914654). W trudnych aspektach może nie być bardzo wysoko. Ale dałbym mu wysokie noty za dokładność, niski poziom i sprytne rozwiązywanie problemów, zgodnie z duchem jego nazwy.
źródło
Możesz zacząć uczyć się języka Lisp. To z pewnością będzie trudne! Plus to szczęśliwy breakk z regularnego programowania
źródło