Quali sono alcuni libri di programmazione davvero difficili? [chiuso]


14

Mi chiedevo quali fossero alcuni libri davvero difficili sulla programmazione che mi avrebbero fatto pensare. Sto parlando di linguaggi di basso livello come c etc e algoritmi, punti, funzioni ecc.

Molte grazie.


1
Gran parte della serie Wrox è piuttosto gommosa.
Joel Etherton,

1
Perché le persone effettuano il downvoting? L'OP vuole solo dei libri che gli presentino una sfida ... non è una domanda stupida o OT.
Melanie Shebel,

4
Questa non è un'ottima domanda. In particolare, penso che manchi un criterio chiaro per giudicare i libri. "Duro" e "fammi pensare" sono piuttosto soggettivi - non ti conosciamo e cosa sarà difficile o facile per te. O come si applicherebbe ad altre persone, del resto. Inoltre non fa nulla per ispirare risposte per spiegare perché i libri sono raccomandati, andando potenzialmente contro le linee guida di costruttività . Alcune modifiche potrebbero aiutare, penso.
Adam Lear

4
@Melanie - questa è una domanda tipo "elenco di X" che farà semplicemente pubblicare il libro preferito delle persone come risposta. Se si controllano le risposte, nessuna di esse ha alcuna spiegazione del perché il libro menzionato soddisfi i requisiti dei PO (ebbene si, ma su 10 risposte).
ChrisF

1
Sono d'accordo con @Anna e @Chris sopra, questa domanda manca di parti chiave, come spiegare perché questi libri sono difficili o come classificare i libri uno contro l'altro.
Josh K,

Risposte:


29

L'arte della programmazione per computer. Donald Knuth.


3
Perché? cosa lo rende così buono? Per favore, espandi la tua risposta.
Walter,

2
Dovresti includerlo nella tua risposta. L'ho letto, ma chiunque non l'abbia capito non dovrebbe capire il motivo per cui dovrebbe anche esaminare il tuo suggerimento.
Walter,

3
@Walter: non credo di essere d'accordo. Non penso che abbia bisogno di alcuna espansione. Il libro è così straordinariamente importante e così centrale nell'informatica che non credo abbia bisogno di spiegazioni.
S.Lott

1
È il libro che i programmatori hanno più probabilità di pianificare di leggere un giorno.
Steven A. Lowe,

1
@RYUZAKI: "Voglio essere preparato prima di saltare a qualcosa che sembra essere così difficile e così gratificante" Non preoccuparti di provare a "prepararti". Fai un salto. Quando trovi un argomento al di là di te, saprai cosa devi imparare. È una ricerca che dura tutta la vita. Non puoi essere abbastanza preparato . Avrai sempre bisogno di saperne di più.
S.Lott

13

Introduzione agli algoritmi

Non così "introduttivo";)


1
Perché no ("così" introduttivo ")? Questa è un'introduzione, usata in CS 101.
Konrad Rudolph,

1
@konrad: AFAIK, la maggior parte delle università usa solo diversi capitoli di questi libri per insegnare.
Hery,

Ora dovevo cercarlo, demolendo il mio supporto per laptop nel processo (utilizzo Cormen come supporto per il mio laptop ...). E hai ragione. Ho dimenticato le ultime parti del libro; questi sono effettivamente oggetto di lezioni successive (alcune nei corsi di perfezionamento).
Konrad Rudolph,

@konrad: hery l'ha inchiodato.
Demian Brecht,

@konrad: sembra un processo intenso;)
Demian Brecht,

10

Una disciplina di programmazione, di Edgar W. Dijkstra

Come scrivere il codice dimostrabilmente corretto

Questo non è un libro da leggere, è un libro da studiare


steven non ho davvero esaminato questo libro; ma mi fa fare una domanda molto critica: è utile per esempio, uno sviluppatore WEB o un codificatore C ++ [driver di dispositivo, ecc.] o uno sviluppatore Android? Ti sto chiedendo se vale la pena il mio tempo? [continua nel prossimo commento]
Chani

[segue il commento precedente] Sono nuovo ma imparo velocemente. Ho letto tonnellate di blog, codice Open Source, ecc. Quindi la lettura del libro sopra (e di altri nel suo genere) mi aiuterà davvero? E amico; l'unica ragione per cui ho un atteggiamento così pessimista è che avevo letto Design and Analysis of Computer Algorithms di Aho et. tutto e per dirti la verità non ho quasi mai usato quella conoscenza ..... ma ancora una volta ho programmato seriamente per meno di 6 mesi. quindi cosa diresti?
Chani

1
@RYUZAKI: Quindi stai programmando seriamente da meno di sei mesi e hai trovato Aho et al. libro di algoritmi non immediatamente utile? Quindi non stai cercando i libri citati in questa domanda. Potresti voler prendere un po 'di tempo e sentirti più a tuo agio sul campo e poi tornare a questi. I libri in queste risposte (quelli che conosco, comunque), ti insegneranno le cose e amplieranno notevolmente la tua comprensione. Non ti renderanno immediatamente uno sviluppatore C # migliore, se è quello che stai cercando ora.
David Thornley,

+1: E anche Science of Programming di David Gries. Un libro di accompagnamento che si espande sui temi.
S.Lott

2
A @RYUZAKI piacciono i testi CS più profondi, ne esci da ciò che ci metti dentro. Ho ricevuto un nuovo apprezzamento per la bellezza matematica della programmazione, insieme all'esperienza diretta nella progettazione e nella dimostrazione della correttezza di programmi molto piccoli. Ci è voluta la parte migliore di un anno per sfogliare il libro.
Steven A. Lowe,


6

Sette lingue in sette settimane ti daranno molto con cui giocare. Quando Tutto il resto fallisce, leggi "Struttura e interpretazione dei programmi per computer" Uno dei migliori libri sulla programmazione.


2
"Seven Languages ​​in Seven Weeks" è estremamente interessante ma non è un duro libro di programmazione.
Chirone,

Se il tuo obiettivo è che un libro sia duro per essere duro, hai ragione, d'altra parte è un libro che contiene molte buone informazioni
Zachary K

4

Consiglio vivamente Ricette numeriche: l'arte del calcolo scientifico .

Un libro fantastico, che dettaglia molti utili algoritmi scientifici. Nel corso della mia carriera nel sistema informatico incorporato e industriale, una versione o l'altra, in una lingua o in un'altra 1 , è stata la mia compagna costante.

  1. Prima della terza edizione, c'erano diversi libri per diversi in diverse lingue, quindi c'erano ricette numeriche in C , ricette numeriche in Fortran e persino ricette numeriche in Pascal.

Caspita, non ho nemmeno pensato al quaderno da circa 15 anni
Zachary K,

Sì, ho comprato una prima edizione all'università e sono riuscito a trovare un uso degli algoritmi in quei libri in ogni lavoro in cui ho lavorato da allora.
Mark Booth,

2

Alcune alternative ai libri ben noti (e eccellenti) hanno già suggerito:

  • Database Systems: The Complete Book, 2a ed. ha una seconda parte che spiega in realtà come viene implementato un DBMS stesso. Ha molto materiale su come archiviare e indicizzare i dati in modo efficiente e su come eseguire effettivamente le query nel database.
  • Un approccio ingegneristico alla rete di computer discute i dettagli più profondi per far funzionare effettivamente le reti. Se mai desideri implementare un'applicazione o un dispositivo di rete ad alte prestazioni, questo testo fornirà un ottimo background fondamentale.
  • Gli algoritmi di approssimazione consistono in un'ampia panoramica dei problemi di ottimizzazione combinatoria. L'autore consiglia di approfondire i problemi prima di provare a creare un'approssimazione, che è molto istruttiva.
  • Tipi e linguaggi di programmazione sono oltre 600 pagine di teoria e tecniche di implementazione dedicate ai tipi nei linguaggi di programmazione. Si scopre che c'è un'incredibile quantità di teoria da affrontare. Se mai vuoi creare un linguaggio di programmazione completo, c'è molto da imparare qui.

2

Basso livello di .NET: CLR via C # di J. Richter. Vale la pena leggere se vuoi conoscere il nucleo di .NET.


1

Di recente ho iniziato a leggere Hacker's Delight (http://www.amazon.com/Hackers-Delight-Henry-S-Warren/dp/0201914654). Potrebbe non dare un punteggio molto alto all'aspetto difficile. Ma gli darei punteggi alti sulla completezza, il basso livello e la risoluzione intelligente dei problemi, fedele allo spirito del suo nome.


1

Puoi iniziare a imparare i lang di Lisp. Sarà sicuramente difficile! Inoltre è un felice breakk dalla normale programmazione

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.