Il libro "Struttura e interpretazione dei programmi per computer" è una buona lettura per i programmatori Java? [chiuso]

14

Potrebbe essere soggettivo e probabilmente chiuso ma volevo comunque sapere se è davvero utile leggere la struttura e l'interpretazione dei programmi per computer.

Struttura e interpretazione dei programmi per computer

Il libro non usa Java. Non che volessi imparare Java. Sono solo curioso di sapere se sarà utile leggere per essere un programmatore migliore e quali sono le cose che posso ottenere dal libro o sono le loro alternative a questo libro più adatto ai programmatori Java?

    
posta ashishjmeshram 18.09.2012 - 06:03
fonte

5 risposte

22

Beh, non so se questo libro ti sarà d'aiuto, ma quando ho lavorato su quel libro circa 20 anni fa, ha sicuramente migliorato le mie capacità di programmazione (indipendentemente da qualsiasi linguaggio di programmazione). E immagino che in particolare un programmatore Java otterrà alcune nuove conoscenze che non otterrà attenendosi solo a Java.

Joel Spolsky 2005 ha scritto un bell'articolo su Java e SICP che potrebbe interessarti:

link

    
risposta data 18.09.2012 - 10:28
fonte
12

Penso che Struttura e interpretazione dei programmi per computer sia un ottimo libro da leggere. Tuttavia, ci sono un paio di problemi con esso.

Il più grande problema nella mia esperienza è che, mentre il libro non richiede assolutamente conoscenze di programmazione, ed è orientato a completare i neofiti, è orientato a completare i neofiti che studiano al MIT . E così, mentre non presuppone alcuna conoscenza di programmazione, fa assume un bel po 'di conoscenza dominio , ad es. nei campi dell'ingegneria elettrica, della fisica e della matematica. Nota: questi non hanno nulla a che fare con i concetti che vengono insegnati, sono solo necessari per capire gli esercizi e esempi .

Le persone più grandi di me l'hanno spiegato molto meglio, in un documento abilmente intitolato The Struttura e interpretazione del curriculum di informatica . Per fortuna, non sono solo piagnoni, hanno scritto invece il loro libro : Come progettare i programmi . Se pensate di leggere SICP, potreste voler leggere prima HtDP: copre quasi lo stesso terreno di SICP, ma assume solo la conoscenza del dominio di livello medio superiore. (In realtà, è scritto per essere insegnato ai bambini delle scuole superiori.)

Dopo aver terminato HtDP, puoi ancora tornare indietro e leggere SICP, poiché ora alcuni bit mancanti di conoscenza del dominio non saranno più dannosi perché hai già visto il concetto.

Nota: esiste una bozza per una seconda edizione di HtDP , che potresti voglio leggere invece della prima edizione. Il materiale sulla programmazione imperativa è stato rimosso e verrà trattato nel secondo volume non ancora scritto Come progettare i componenti , ma puoi prendere quelli dalla prima edizione o da SICP o entrambi.

    
risposta data 18.09.2012 - 17:43
fonte
4

Ho intenzione di uscire su un ramo qui e dire - probabilmente non è una buona lettura per la maggior parte delle persone - qualunque sia la lingua.

Come Knuth è un buon libro da leggere. Tuttavia, anche supponendo che tu sia un moscerino del MIT hot-shot, ci vorrà comunque la parte migliore di un anno per leggerlo correttamente, e questo è il motivo per cui i docenti e gli assistenti automatici ti aiutano.

Ci sono altri libri sull'ingegneria del software che potresti leggere in quel momento che potrebbero avere più valore? Ci sono altre lingue che potresti imparare nel tempo?

modifica Solo per espandere un po ':
L'ingegneria del software è ingegneria, è tutta questione di ottimizzazione. Il tuo compito è massimizzare le tue conoscenze per un dato tempo + budget di spesa.
SICP è un'introduzione di alto livello alla programmazione attraverso un linguaggio funzionale. La ragione per cui utilizza un linguaggio funzionale è che è più facile descrivere molti concetti matematici di programmazione in linguaggi funzionali che in quelli procedurali e molto più facile da leggere rispetto alla logica formale.

Esiste anche una certa quantità di atteggiamenti, ad es. "Non sei un vero programmatore a meno che non legga SICP", o Knuth, o possa programmare in Lisp, o C, o assemblatore x86. Normalmente è facile confutare; vale a dire. non puoi essere un vero programmatore a meno che tu non conosca il lavoro di Cantor sulla teoria degli insiemi e le equazioni di Maxwell e abbia familiarità con la mobilità dei fori nei semiconduttori.

    
risposta data 18.09.2012 - 06:21
fonte
4

Dalla mia comprensione SICP , è più focalizzato nelle aree della programmazione funzionale, compresa la programmazione ricorsiva e la strong introduzione a CS - che è un po 'difficile da comprendere un nuovo programmatore. Un altro punto, è preparato e istruito per il MIT, e alcuni buoni fondamenti nel campo dell'ingegneria, matematica, fisica sono necessari anche per trovare questo libro utile.

Consiglierei un buon set di libri in cui ciascuno si concentra su diversi aspetti dell'ingegneria del software:

  • Codice completo 2 - si concentra sui processi di ingegneria del software.
  • Pulisci codice : si concentra sulla codifica nel piccolo. Come scrivere classi e funzioni.
  • Programmatore pragmatico - si concentra sul lavoro all'interno di un team che produce software.

Una descrizione più dettagliata dei libri menzionati sopra e un'altra volta può essere trovata dai seguenti riferimenti:

  1. Come essere un programmatore con 10 semplici Libri
  2. I migliori libri per i programmatori principianti

Per favore, sentiti libero di aggiungere all'elenco perché non è l'ideale:)

Modifica: nella scelta dei libri sopra menzionati e nella determinazione della priorità su come leggerli, è davvero venire giù allo scopo su ciò che stai cercando di fare in modo primario o impara.

    
risposta data 18.09.2012 - 06:36
fonte
1

Stai pensando di essere un "programmatore JAVA" per il resto della tua vita? Quindi ci sono probabilmente libri migliori da leggere. Se vuoi essere un buon programmatore in generale, allora è una lettura eccellente. Ecco perché Ci sono alcuni strumenti che ogni buon programmatore ha bisogno nella sua cassetta degli attrezzi. Uno è una conoscenza approfondita delle strutture dati e degli algoritmi (se non mi credi, vai a intervistare Microsoft, Google, Amazon ecc ...), gli algoritmi di accompagnamento sono l'analisi della complessità, la ricorsione e una buona comprensione dei puntatori non male. Quando si tratta di analisi algoritmica, processi ricorsivi e il paradigma funzionale in generale, non posso pensare a un libro migliore o più impegnativo di quello di SICP.

    
risposta data 18.09.2012 - 15:23
fonte

Leggi altre domande sui tag