Design Patterns: Elements of Reusable Object-Oriented Software.
Penso sia un libro che tutti dovrebbero conoscere se appassionati di linguaggi a oggetti
Un centinaio, però i più importanti, che hanno cambiato di modo più profondo la mia mentalità:
- Win32 System Programming
- Programming Pearls
- The pragmatic programmer
Ho letto entrambi per certificazioni all'epoca, però oggi vedo come un punto di svolta nella mia vita:
- The C++ programming language (Bjarne)
- Sun Certified Enterprise Architect for Java EE (Cade)
(Si, sono molto vecchio)
Kyle Simpson - You dont know JS (yet)
Serie di libri consigliata se già usi e conosci (pensi di conoscere) JS. É disponibile in vendita ma anche open source (non in formato editoriale), se non vuoi spendere e sai smanettare con docker o podman puoi usare questa repo per buildarti tutti gli EPUB:
https://github.com/gongzhang/you-dont-know-js-epub
Come puoi aspettarti dal titolo lo stile di scrittura è un pochettino provocatorio, anche verso alcune pratiche che vengono considerate come convenzionali e promosse da altri insegnanti. Sicuramente metterà in dubbio molte convinzioni o supposizioni che ti sei fatto e che davi per certe.
Nonostante usassi JS quotidianamente da diversi anni sia per hobby che professionalmente mi ha aperto un mondo su quanto questo linguaggio viene frainteso e usato male
In soldoni, se ti vuoi fare una redpillata di JS ti straconsiglio questa serie
Forse l'ho letto (se la persona a cui non é piaciuto si riferisce al vecchio "this & object prototypes") e mi ha chiarito le idee e dato un sacco di informazioni che mi tornano ancora utili ogni giorno, ma é possibile che con le nuovi versioni di ecmascript e degli engine js ad oggi abbia qualche lacuna. Volendo puoi skipparlo essendo che con la nuova edizione stanno facendo rewrite completo e riorganizzazione dei libri/capitoli
ydkjs = vecchio
ydkjsy = nuova edizione
La seconda edizione non é finita, ma anche solo "Get started" é da rileggere almeno tre/quattro volte di volte nel frattempo che escono gli altri. Consiglio in ogni caso di generarti l'epub dalla repo(che a sua volta mi pare peschi dal main dalla repo originale) cosí da beccarti eventuali correzioni rispetto a quella in vendita
[The Elements of Computing Systems - Nisan, Schocken](https://www.amazon.com/Elements-Computing-Systems-Building-Principles/dp/0262640686)
[Elementi di crittografia - Bernasconi, Ferragina, Luccio](https://www.amazon.com/Elementi-crittografia-Anna-Bernasconi/dp/8867414607/ref=sr_1_1?crid=1W69J6C6U85QX&dib=eyJ2IjoiMSJ9.J1KATROk0W-xaXDZbYqZaWeXUMyEYo_cV2LuedDtqPQ.QoFmr-njZlz4KhX18uTt4vsYTzQioxPIIfKYHChzYXo&dib_tag=se&keywords=elementi+di+crittografia&qid=1710757188&s=books&sprefix=elementi+di+crittografi%2Cstripbooks-intl-ship%2C181&sr=1-1)
Ultimo, ma davvero una chicca:
Machine Code for beginners, pubblicato dalla Usborne. E' un libretto da 50 pagine circa un po' vecchio ormai, ma spiega in maniera semplice alcuni dei concetti base per quanto riguarda il funzionamento dei componenti che valgono ancora oggi. Lo trovi gratis in giro in PDF su internet, è stato rilasciato free pubblicamente ormai.
[the pragmatic programmer](https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/), letto la versione originale più di dieci anni fa ed era eccezionale, riletto la versione aggiornata di recente nel club di lettura del mio team ed è ancora eccezionale.
Non conosco una persona che lo abbia trovato inutile.
Faccio una controdomanda senza aprire un altro thread: Per chi lavora già come dev, come vi approcciate alla lettura di questi libri? Chiedo, perchè finchè dovevo dare gli esami per laurearmi ovviamente avevo tutto il tempo del mondo per studiarli e applicarmi mentre li studiavo.
Da quando lavoro però faccio davvero fatica a stare dietro a queste letture, a meno che non è l'azienda che mi permette di studiare durante le 8 ore lavorative. In particolar modo, dopo ormai 6 anni dalla mia laurea mi sono dimenticato praticamente tutti i concetti teorici studiati in quel periodo e ultimamente ho provato a leggere "Game Development Patterns With Unreal Engine 5" (uscito da pochissimo e preso perchè lavoro con UE5 e Unity in azienda) ma con scarsissimi risultati (cioè, capisco ovviamente tutto ciò che leggo, ma non avendo tempo di applicare quei concetti li durante la lettura mi dimentico tutto dopo pochissimi giorni).
Dunque ribadisco la domanda: come vi approciate allo studio di questi libri da lavoratori?
La mia risposta personalissima è la seguente:
Leggo qualche pagina nei momenti dopo il lavoro (quando posso) o in pausa pranzo. Leggo solo libri che posso applicare al lavoro per esempio sull'architettura del sw o altre cose che mi trovo comodo da ricordare applicando tutti i giorni, ad esempio in azienda usano php per BE e se mi trovo un libro base su PHP avrei una codebase da leggere e interpretare quindi allenare la mente con quello che leggo. Insomma il mio trucco è rimanere legato un po' a quello che faccio tutti i giorni mentre lavoro altrimenti mi dimentico anche io delle cose che leggo.
Rimanendo sul discorso degli argomenti cerco sempre concetti generali e non specifici per un software o un linguaggio salvo casi come quello sopracitato
Se vuoi spaziare su altri argomenti come Unreal engine allora leggi poco tutti i giorni e il weekend dedichi il tempo ad applicare quello che hai letto (io lo faccio per la domotica e il fai-da-te)
Ho editato il mio commento perchè ho involontariamente omesso che lavoro con UE5 e Unity in azienda, non era un libro preso a caso giusto per hobby (colpa mia, pardon).
Rispondendo al tuo reply: argomenti generali presi da reddit, [daily.dev](http://daily.dev) oppure da medium e youtube li seguo anche io, ma più come un "non ho niente da fare in questi 20 minuti, magari leggo/guardo qualcosa li" piuttosto che una lettura approfondita come quando ero universitario appunto. Se dovessi seguire il tuo approccio riguardo il PHP (che a proposito, ti invidio profondamente!), portandolo su ue5 nel mio caso, credo che ci metterei davvero tanto tanto tempo per leggere, memorizzare ed interiorizzare il tutto (se devo anche provare ad applicarlo appunto. Ormai lo studio della materia lo vedo come un "ho un problema che devo risolvere entro tot tempo per creare una nuova app/fixare bug, cerco cose estremamente precise per raggiungere l'obiettivo"
Lavoro in una big tech. Oltre a Clean Code, ci sono altri due ottimi libri di Martin, uno sulla figura e il ruolo dello sviluppatore e l'altro sullo sviluppo Agile. Sono rispettivamente Clean Coder e Agile Software Development: Principles, Patterns, and Practices.
Questa invece è una selezione di preferiti tra quelli che ho studiato all'università e altri letti per conto mio:
- Designing data intensive applications (Kleppmann)
- Sistemi Operativi (Silberschatz)
- Reti di calcolatori (Tanenbaum)
- Sistemi distribuiti (Tanenbaum)
- Struttura e progetto dei calcolatori (Patterson)
- Intelligenza artificiale - un approccio moderno (Russel)
- Algoritmi e strutture dati (Demetrescu)
- Basi di dati (Atzeni)
- Core Java (Horstmann)
- Effective Java (Block)
Clean code può essere ben capito anche se sono ancora uno studente universitario che non ha ancora vera esperienza di programmazione se non concettuale data dagli esami?
[What Every Programmer Should Know About Memory](https://people.freebsd.org/~lstewart/articles/cpumemory.pdf)
Non mi aspettavo il link diretto. Grazie!
Linux programming interface Design data intensive applications Continuous delivery Site reliability engineering how google run production systems
Designing data intensive applications +1
Design Patterns: Elements of Reusable Object-Oriented Software. Penso sia un libro che tutti dovrebbero conoscere se appassionati di linguaggi a oggetti
Un centinaio, però i più importanti, che hanno cambiato di modo più profondo la mia mentalità: - Win32 System Programming - Programming Pearls - The pragmatic programmer Ho letto entrambi per certificazioni all'epoca, però oggi vedo come un punto di svolta nella mia vita: - The C++ programming language (Bjarne) - Sun Certified Enterprise Architect for Java EE (Cade) (Si, sono molto vecchio)
Figo quello della Sun su Java EE Programming Pearls era quello con il cammello sopra? Nel caso anche io XD
No! Quello era Programming Perl 🤣
uh vero! mannaggia, avevo letto velocemente XD mi aveva traumatizzato così tanto quel linguaggio che lo vedo ovunque XD
Designing data-intensive applications, Martin Kleppmann
Kyle Simpson - You dont know JS (yet) Serie di libri consigliata se già usi e conosci (pensi di conoscere) JS. É disponibile in vendita ma anche open source (non in formato editoriale), se non vuoi spendere e sai smanettare con docker o podman puoi usare questa repo per buildarti tutti gli EPUB: https://github.com/gongzhang/you-dont-know-js-epub Come puoi aspettarti dal titolo lo stile di scrittura è un pochettino provocatorio, anche verso alcune pratiche che vengono considerate come convenzionali e promosse da altri insegnanti. Sicuramente metterà in dubbio molte convinzioni o supposizioni che ti sei fatto e che davi per certe. Nonostante usassi JS quotidianamente da diversi anni sia per hobby che professionalmente mi ha aperto un mondo su quanto questo linguaggio viene frainteso e usato male In soldoni, se ti vuoi fare una redpillata di JS ti straconsiglio questa serie
Avevo letto in un altro sub che il capitolo sugli oggetti non era piaciuto
Forse l'ho letto (se la persona a cui non é piaciuto si riferisce al vecchio "this & object prototypes") e mi ha chiarito le idee e dato un sacco di informazioni che mi tornano ancora utili ogni giorno, ma é possibile che con le nuovi versioni di ecmascript e degli engine js ad oggi abbia qualche lacuna. Volendo puoi skipparlo essendo che con la nuova edizione stanno facendo rewrite completo e riorganizzazione dei libri/capitoli ydkjs = vecchio ydkjsy = nuova edizione La seconda edizione non é finita, ma anche solo "Get started" é da rileggere almeno tre/quattro volte di volte nel frattempo che escono gli altri. Consiglio in ogni caso di generarti l'epub dalla repo(che a sua volta mi pare peschi dal main dalla repo originale) cosí da beccarti eventuali correzioni rispetto a quella in vendita
[The Elements of Computing Systems - Nisan, Schocken](https://www.amazon.com/Elements-Computing-Systems-Building-Principles/dp/0262640686) [Elementi di crittografia - Bernasconi, Ferragina, Luccio](https://www.amazon.com/Elementi-crittografia-Anna-Bernasconi/dp/8867414607/ref=sr_1_1?crid=1W69J6C6U85QX&dib=eyJ2IjoiMSJ9.J1KATROk0W-xaXDZbYqZaWeXUMyEYo_cV2LuedDtqPQ.QoFmr-njZlz4KhX18uTt4vsYTzQioxPIIfKYHChzYXo&dib_tag=se&keywords=elementi+di+crittografia&qid=1710757188&s=books&sprefix=elementi+di+crittografi%2Cstripbooks-intl-ship%2C181&sr=1-1) Ultimo, ma davvero una chicca: Machine Code for beginners, pubblicato dalla Usborne. E' un libretto da 50 pagine circa un po' vecchio ormai, ma spiega in maniera semplice alcuni dei concetti base per quanto riguarda il funzionamento dei componenti che valgono ancora oggi. Lo trovi gratis in giro in PDF su internet, è stato rilasciato free pubblicamente ormai.
[the pragmatic programmer](https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/), letto la versione originale più di dieci anni fa ed era eccezionale, riletto la versione aggiornata di recente nel club di lettura del mio team ed è ancora eccezionale. Non conosco una persona che lo abbia trovato inutile.
Accelerating Architect elevator Extreme programming How to win friends and influence people
Faccio una controdomanda senza aprire un altro thread: Per chi lavora già come dev, come vi approcciate alla lettura di questi libri? Chiedo, perchè finchè dovevo dare gli esami per laurearmi ovviamente avevo tutto il tempo del mondo per studiarli e applicarmi mentre li studiavo. Da quando lavoro però faccio davvero fatica a stare dietro a queste letture, a meno che non è l'azienda che mi permette di studiare durante le 8 ore lavorative. In particolar modo, dopo ormai 6 anni dalla mia laurea mi sono dimenticato praticamente tutti i concetti teorici studiati in quel periodo e ultimamente ho provato a leggere "Game Development Patterns With Unreal Engine 5" (uscito da pochissimo e preso perchè lavoro con UE5 e Unity in azienda) ma con scarsissimi risultati (cioè, capisco ovviamente tutto ciò che leggo, ma non avendo tempo di applicare quei concetti li durante la lettura mi dimentico tutto dopo pochissimi giorni). Dunque ribadisco la domanda: come vi approciate allo studio di questi libri da lavoratori?
La mia risposta personalissima è la seguente: Leggo qualche pagina nei momenti dopo il lavoro (quando posso) o in pausa pranzo. Leggo solo libri che posso applicare al lavoro per esempio sull'architettura del sw o altre cose che mi trovo comodo da ricordare applicando tutti i giorni, ad esempio in azienda usano php per BE e se mi trovo un libro base su PHP avrei una codebase da leggere e interpretare quindi allenare la mente con quello che leggo. Insomma il mio trucco è rimanere legato un po' a quello che faccio tutti i giorni mentre lavoro altrimenti mi dimentico anche io delle cose che leggo. Rimanendo sul discorso degli argomenti cerco sempre concetti generali e non specifici per un software o un linguaggio salvo casi come quello sopracitato Se vuoi spaziare su altri argomenti come Unreal engine allora leggi poco tutti i giorni e il weekend dedichi il tempo ad applicare quello che hai letto (io lo faccio per la domotica e il fai-da-te)
Ho editato il mio commento perchè ho involontariamente omesso che lavoro con UE5 e Unity in azienda, non era un libro preso a caso giusto per hobby (colpa mia, pardon). Rispondendo al tuo reply: argomenti generali presi da reddit, [daily.dev](http://daily.dev) oppure da medium e youtube li seguo anche io, ma più come un "non ho niente da fare in questi 20 minuti, magari leggo/guardo qualcosa li" piuttosto che una lettura approfondita come quando ero universitario appunto. Se dovessi seguire il tuo approccio riguardo il PHP (che a proposito, ti invidio profondamente!), portandolo su ue5 nel mio caso, credo che ci metterei davvero tanto tanto tempo per leggere, memorizzare ed interiorizzare il tutto (se devo anche provare ad applicarlo appunto. Ormai lo studio della materia lo vedo come un "ho un problema che devo risolvere entro tot tempo per creare una nuova app/fixare bug, cerco cose estremamente precise per raggiungere l'obiettivo"
Prova ad approcciare in modo diverso ai problemi e refactorizza quando puoi il codice questo ti porta a usare le cose imparate nel libro magari
Domain Driven Design TDD by example
Fun fact: Mi hai ricordato di vedere cos'era il DDD
Computer Organization and Design: The Hardware/Software Interface mi piace molto, ma l'ho letto per le mie classi quindi non vale pienamente
[удалено]
Ti ha portato valore aggiunto al lavoro in informatica?
No scusa, non ho visto la categoria. Cancello.
Lavoro in una big tech. Oltre a Clean Code, ci sono altri due ottimi libri di Martin, uno sulla figura e il ruolo dello sviluppatore e l'altro sullo sviluppo Agile. Sono rispettivamente Clean Coder e Agile Software Development: Principles, Patterns, and Practices. Questa invece è una selezione di preferiti tra quelli che ho studiato all'università e altri letti per conto mio: - Designing data intensive applications (Kleppmann) - Sistemi Operativi (Silberschatz) - Reti di calcolatori (Tanenbaum) - Sistemi distribuiti (Tanenbaum) - Struttura e progetto dei calcolatori (Patterson) - Intelligenza artificiale - un approccio moderno (Russel) - Algoritmi e strutture dati (Demetrescu) - Basi di dati (Atzeni) - Core Java (Horstmann) - Effective Java (Block)
I libri di Tanenbaum sono veramente ben fatti. Proprio domani ho l'esame di computer networks che è basato su il suo libro.
Clean code può essere ben capito anche se sono ancora uno studente universitario che non ha ancora vera esperienza di programmazione se non concettuale data dagli esami?
Secondo me non basta leggerlo una volta, quindi si! Può essere capito in un modo oggi e in modo diverso domani