Torna indietro   Hardware Upgrade Forum > Software > Programmazione

PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
Il modello "build to order" di PCSpecialist permette di selezionare una struttura base per un sistema, personalizzandolo in base alle specifiche esigenze con una notevole flessibilità di scelta tra i componenti. Il modello Lafité 14 AI AMD è un classico notebook clamshell compatto e potente, capace di assicurare una elevata autonomia di funzionamento anche lontano dalla presa di corrente
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Nothing con il suo nuovo Phone 4(a) conferma la sua identità visiva puntando su una costruzione che nobilita il policarbonato. La trasparenza resta l'elemento cardine, arricchita da una simmetria interna curata nei minimi dettagli. Il sistema Glyph si evolve, riducendosi nelle dimensioni ma aumentando l'utilità quotidiana grazie a nuove funzioni software integrate e notifiche visive. Ecco tutti i dettagli nella recensione completa
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Nelle ultime settimane abbiamo provato la Corsair Vanguard Air 99 Wireless, una tastiera tecnicamente da gaming, ma che in realtà offre un ampio ventaglio di possibilità anche al di fuori delle sessioni di gioco. Flessibilità e funzionalità sono le parole d'ordine di una periferica che si rivolge a chi cerca un prodotto capace di adattarsi a ogni esigenza e ogni piattaforma
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-11-2009, 12:58   #1
Ravenflot
Senior Member
 
L'Avatar di Ravenflot
 
Iscritto dal: Jun 2002
Città: City17 (Half-life 2 !)
Messaggi: 606
Consiglio per libro su algoritmi

Saluti a tutti !

Posto per chiedere consiglio su di un libro.

Mi sono diplomato in informatica (non laureato !) ma ho fatto il programmatore solo per un annetto. Poi "mi sono dovuto accontentare" di un posto da ufficio normale perché il nuovo lavoro da programmatore non lo trovavo.
Questo succedeva circa 6 anni fa (!).
Per aggiornarmi (ed aggiornare il curriculum) ho imparato il C# che lo preferisco ad altri e poi mi sto leggendo "il" libro Code Complete di McDonnel sulla programmazione in generale (dal ruolo dell'architetto fino alle regole per il debug, refactoring ed ottimizzazione del codice passando per la stesura fatta bene delle classi).
L'anello mancante per tornare in pista (o meglio, per avere meno handicap) è quello che si studia, penso, nel corsi di ingegneria informatica.

In questo momento so la sintassi e come scrivere del buon codice ma non so "come risolvere il problema". Non so se riesco a spiegarmi … parlo di un'entità molto simile alla "business logic".
Come risolvo questo problema ? Come implemento questa cosa che voglio fare ?

Mi serve un libro che tratta di algoritmi. (confermate ?)

Qualcosa che spieghi i concetti tipo del quicksort/bubblesort/mergesort e compagnia bella. Dei grafi, i cammini minimi e cose simili. Insomma : cosa usare e quando.

Ho già preso il libro "Algoritmi e strutture dati" della McGraw Hill ma è un libro troppo complicato per un autodidatta, senza contare che è più un libro di matematica che altro : spiega più le formule per dimostrare ad esempio il numero di cicli nel caso peggiore per un algoritmo piuttosto che spiegare come funziona.

Secondo voi esiste un libro simile ma più "per principianti" ?
__________________
iMac 24" Aluminum [mod 8,1] 3,06 GHz 4GB RAM 1 TB HDD SnowLeopard.3 // ye olde iPhone 3G // PlayStation 1, 2, 3 (fat 60GB-v3.40) // XBox360 slim // Notebook Acer Aspire 7720G 17" T9300 4GB RAM 8600mGT Win7HP
Ravenflot è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2009, 17:05   #2
cruyffissimo
Member
 
L'Avatar di cruyffissimo
 
Iscritto dal: Oct 2009
Messaggi: 67
guarda, non so i libri che ci sono in giro, ma un bel tour per le librerie della tua città dovrebbe saziare la tua sete di algoritmi...al massimo se chiedi a google lui ti risponde!!!
poi dai, la preparazione di statistica che hai dovrebbe essere buona per capire i vari algoritmi per le aziende no??

In bocca al lupo...

__________________
- Sei... Il numero perfetto!
- Ma non era Tre il numero perfetto?
- Si, ma la mia pistola ha sei colpi...

[cit:Il Buono...ne "Il Buono, Il Brutto E Il Cattivo"]
cruyffissimo è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2009, 17:58   #3
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Design Patterns: Elements of Reusable Object-Oriented Software della gang of four?
Per algoritmi e strutture dati nello specifico libri semplici non ne conosco..
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2009, 19:24   #4
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
Dovresti espandere meglio il concetto relativo a "non so risolvere il problema" altrimenti dubito che qualcuno riesca a capire le tue difficoltà e a darti un buon consiglio attinente. In generale per risolvere un "problema" bisogna conoscere più della sintassi di un linguaggio, bisognerebbe conoscere anche le possibili api/librerie che ti possono aiutare per risolvere un problema, ed in generale come organizzare/suddividere il problema nei suoi sotto problemi costituenti.
Relativamente alle strutture dati il consiglio che posso darti è quello di studiarne la loro specifica e successivamente provare a realizzare un'implementazione nel linguaggio che preferisci(tra le strutture dati più ricorrenti dizionario, pila, coda, lista, albero, grafo), per quanto riguarda gli algoritmi di ordinamento e non ti consiglio di implementarli per capirne il loro funzionamento ma non memorizzarli, generalmente gli algoritmi fondamentali sono già implementati nella libreria standard di ogni linguaggio. La parte più importante per quanto riguarda gli algoritmi non è in se per se la loro conoscenza mnemonica quanto saperne valutare la complessità, per poter fare ciò hai bisogno di studiare la notazione
http://en.wikipedia.org/wiki/Big_O_notation

Quello che devi saper fare alla fine di questo studio è saper scegliere la struttura dati adeguata ai fini della risoluzione di un dato problema e saper scrivere algoritmi tenendo in considerazione della complessità. Il libro degli algoritmi è fondamentalmente questo:

Introduction to Algorithms by Thomas Cormen, Charles Leiserson, Ronald Rivest... Essendo troppo "fumoso" e "matematico" ti consiglio questo
The Algorithm Design Manual by Steve Skiena dal momento che hai letto Code Complete non dovresti avere problemi con l'inglese, su amazon puoi leggere recensioni e trovare altri libri sull'argomento ma in generale questi 2 sembrano i più quotati.
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!
mindwings è offline   Rispondi citando il messaggio o parte di esso
Old 24-11-2009, 08:11   #5
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da mindwings Guarda i messaggi
Introduction to Algorithms by Thomas Cormen, Charles Leiserson, Ronald Rivest... Essendo troppo "fumoso" e "matematico"
Che, poi, non è vero. Ci sono tutti gli elementi matematico/logici a supporto della correttezza degli algoritmi, ma il 90% di questi sono pronti per essere presi e scritti in codice, senza troppa comprensione degli stessi.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 24-11-2009, 11:03   #6
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi
Che, poi, non è vero. Ci sono tutti gli elementi matematico/logici a supporto della correttezza degli algoritmi, ma il 90% di questi sono pronti per essere presi e scritti in codice, senza troppa comprensione degli stessi.
Attualmente non possiedo entrambi i libri(quando finirò di macinare il libro che ho sottomano, penso che acquisterò il libro di Steve Skiena) quindi mi sono limitato a riportare le opinioni che ho letto, visto che mi ero informato sui libri in questione. L'approccio di Skiena è più pragmatico, l'altro libro invece è di gran lunga più "accademico". Sul web ci sono tante recensioni basta leggere i pareri per farsi un'idea. O sfogliare il libro attraverso google books
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!

Ultima modifica di mindwings : 24-11-2009 alle 11:12.
mindwings è offline   Rispondi citando il messaggio o parte di esso
Old 24-11-2009, 13:15   #7
Ravenflot
Senior Member
 
L'Avatar di Ravenflot
 
Iscritto dal: Jun 2002
Città: City17 (Half-life 2 !)
Messaggi: 606
Innanzitutto grazie a chi ha risposto
Quote:
Originariamente inviato da mindwings Guarda i messaggi
Dovresti espandere meglio il concetto relativo a "non so risolvere il problema" [cut] In generale per risolvere un "problema" bisogna conoscere più della sintassi di un linguaggio, bisognerebbe conoscere anche le possibili api/librerie che ti possono aiutare per risolvere un problema, ed in generale come organizzare/suddividere il problema nei suoi sotto problemi costituenti.
Alla fine tu stesso hai fatto luce!
Anche se sapessi la sintassi di un linguaggio questo non serve a risolvere un problema ma solo a "scriverne" la soluzione. Non penso si programmi a furia di cicli WHILE o strutture IF/CASE.
Sto cercando un aiuto a come approcciarsi ad un problema e mi domandavo se in questo ambito di parla solo di code/array/pile ed algoritmi di ordinamento o ricerche binarie o grafi oppure anche di altro...
Quote:
Originariamente inviato da mindwings Guarda i messaggi
La parte più importante per quanto riguarda gli algoritmi non è in se per se la loro conoscenza mnemonica quanto saperne valutare la complessità, per poter fare ciò hai bisogno di studiare la notazione
Quello che devi saper fare alla fine di questo studio è saper scegliere la struttura dati adeguata ai fini della risoluzione di un dato problema e saper scrivere algoritmi tenendo in considerazione della complessità.
Ecco: era questo quello che chiedevo.
Tra l'altro segnalo che CODE COMPLETE è la versione italiana che sto leggendo.
Penso che leggere dei libri in inglese per delle cose forse complesse mi perderei
Diciamo che mi "spaventano" tutte le dimostrazioni matematiche sulla efficienza di un algoritmo: a me non serve imparare/conoscere questi dettagli. Al massimo mi basta sia segnalato che il quicksort è più veloce del bubblesort (per fare degli esempi). Ecco perchè chiedevo una cosa molto introduttiva.
__________________
iMac 24" Aluminum [mod 8,1] 3,06 GHz 4GB RAM 1 TB HDD SnowLeopard.3 // ye olde iPhone 3G // PlayStation 1, 2, 3 (fat 60GB-v3.40) // XBox360 slim // Notebook Acer Aspire 7720G 17" T9300 4GB RAM 8600mGT Win7HP
Ravenflot è offline   Rispondi citando il messaggio o parte di esso
Old 24-11-2009, 17:54   #8
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
Quote:
Originariamente inviato da Ravenflot Guarda i messaggi
Innanzitutto grazie a chi ha risposto
Alla fine tu stesso hai fatto luce!
Anche se sapessi la sintassi di un linguaggio questo non serve a risolvere un problema ma solo a "scriverne" la soluzione. Non penso si programmi a furia di cicli WHILE o strutture IF/CASE.
Sto cercando un aiuto a come approcciarsi ad un problema e mi domandavo se in questo ambito di parla solo di code/array/pile ed algoritmi di ordinamento o ricerche binarie o grafi oppure anche di altro...
Allora i libri che ti ho citato precedentemente riguardano soltanto gli algoritmi e le strutture dati. Non affrontano la tematica dello sviluppo di un prodotto software. Quello di cui hai bisogno e' un libro che affronti la tematica dello sviluppo di programmi che seguono il paradigma Object Oriented. Magari un libro che ti faccia vedere lo sviluppo di un applicativo passo passo stile tutorial con tutte le considerazioni del caso.

Quote:
Originariamente inviato da Ravenflot Guarda i messaggi
Ecco: era questo quello che chiedevo.
Tra l'altro segnalo che CODE COMPLETE è la versione italiana che sto leggendo.
Penso che leggere dei libri in inglese per delle cose forse complesse mi perderei
Diciamo che mi "spaventano" tutte le dimostrazioni matematiche sulla efficienza di un algoritmo: a me non serve imparare/conoscere questi dettagli. Al massimo mi basta sia segnalato che il quicksort è più veloce del bubblesort (per fare degli esempi). Ecco perchè chiedevo una cosa molto introduttiva.
Tutti gli algoritmi hanno determinate caratteristiche che li rendono utili sempre in determinati contesti d'uso, ad esempio il bubble-sort si potrebbe
utilizzare quando si conosce che la struttura dei dati presenta gia' un buon livello di ordinamento ed alcuni elementi non sono nella giusta locazione.
Imho la conoscenza dell'inglese e' obbligatoria non tutti i libri vengono tradotti in italiano e la documentazione relativa a qualsiasi cosa la trovi sempre in inglese, aggiungo poi che l'inglese tecnico non e' cosi difficile da digerire, alla fine e' questione di abitudine e pratica.
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!
mindwings è offline   Rispondi citando il messaggio o parte di esso
Old 24-11-2009, 19:41   #9
Ryuzaki_Eru
Senior Member
 
L'Avatar di Ryuzaki_Eru
 
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4131
PGI-Bis mi aveva suggerito "Algoritmi e strutture dati in Java" di Drodzek. Sembra un buon libro.
Ryuzaki_Eru è offline   Rispondi citando il messaggio o parte di esso
Old 24-11-2009, 21:01   #10
kurts
Senior Member
 
L'Avatar di kurts
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 307
noi in università per il corso di algoritmi e strutture dati I/II abbiamo usato le dispense del goldwurm (massimiliano goldwurm e alberto bertoni), "Progetto e analisi di algoritmi".
ufficialmente sono solo delle dispense ma è più che altro un tomo di 250 pagine.
tra l'altro non essendo un libro credo sia scaricabile liberamente

-----EDIT-----
eccolo

Ultima modifica di kurts : 24-11-2009 alle 21:09.
kurts è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2009, 12:58   #11
Ravenflot
Senior Member
 
L'Avatar di Ravenflot
 
Iscritto dal: Jun 2002
Città: City17 (Half-life 2 !)
Messaggi: 606
Come sempre grazie ancora a tutti quelli che sono intervenuti.

Per il discorso dell'inglese, non è quello il problema : l'inglese lo so bene ma non mi va di comprare un libro per una cosa che per ora è solo un diletto e doverlo non solo capire ma tradurlo a mente insieme in un colpo solo !
Quello che mi metteva apprensione era il fatto che vedo sempre questi libri pieni di dimostrazioni. Forse ero io che mi mettevo da un punto di osservazione errato: mi sembrava che per capire il libro stesso e coglierne l'essenza si dovesse capire tutti i passaggi delle formule. Ora sto capendo che sono solo dimostrazioni a supporto della tesi del capitolo di turno. Ad esempio vengono proposti tutti i passaggi delle formule per dimostrare che la ricerca di un elemento in un array impiega in media (n+1)/2 confronti con un metodo/algoritmo di ricerca classico/terra-terra e solo log n con una ricerca binaria/dicotomica se l'array è ordinato . A voler aprire una parentesi, tra l'altro, non riesco ad accettare che su un array ordinato di 100 elementi, bastino solo 2 confronti nel caso medio: dopo due confronti hai individuato la "sezione dell'array" da 25 elementi che contiene il numero che cerchi: devi controllarne ancora molti ! bah! probabilmente non capisco bene queste cose: dovrò andare in fiducia e pensare a solo: "l'algoritmo XYZ funziona al meglio nel caso ABC".

Grazie in particolare a kurts !
Il pdf che segnali è uguale alle altre dispense che ho trovato e soprattutto al libro che presi tempo fa. Mi "consola" il fatto che stiamo parlando della stessa cosa.
Ripeto: mi preoccupavano troppo le notazioni matematiche, sia le formule che tutte le considerazioni tipo sull'algebra degli insiemi: dato che voglio farmi una cultura per ora "all'acqua di rosa" devo semplicemente ignorare tutti quegli aspetti [intendo senza offendere nessuno: a me interessa la versione "pappa pronta" :-) ].

Poi ancora, per MindWings :

---- QUOTO:
Tutti gli algoritmi hanno determinate caratteristiche che li rendono utili sempre in determinati contesti d'uso, ad esempio il bubble-sort si potrebbe
utilizzare quando si conosce che la struttura dei dati presenta gia' un buon livello di ordinamento ed alcuni elementi non sono nella giusta locazione.

----

Esatto: una cosa leggera così : problema iniziale --> algoritmi applicabili (introduzione al funzionamento ed implementazione in codice o pseudo codice) --> casi d'uso ed efficienza
Il mio problema è che non sapendo quanti e quali sono, non sapevo da dove partire.
Ora, dopo le ricerche che sto facendo in questi giorni, mi sto rendendo conto che bene o male tutti i libri trattano sempre degli stessi e quindi non c'è niente che mi sfugge. Trovo sempre gli stessi argomenti tra cui Didive Et Impera , l'algoritmo goloso ed i cammini minimi. Per me è un buon inizio: ho la lista delle cose sulle quali devo documentarmi. Anche il sapere "cosa cercare/leggere" per me è/era un problema non sapendo dove partire. Ora sapendo che questa lista è bene o male definita va meglio.

Io sono un perito informatico che conosce la sintassi ed anche le "buone norme di programmazione" (vedi l'anima del libro di Steve McDonnel (!) ed i concetti base come l'object oriented con i suoi incapsulamento ed ereditarietà) ma per il funzionamento logico/mentale di una routine da scrivere nella mia mente c'è uno spazio vuoto. Non essendo andato all'università non ho alcuna conoscenza di come risolvere il problema: non so la soluzione stessa ma saprei scriverla. (ok, potete ridere !)

Tra l'altro sto notando che unendo le dispense varie che ho trovato su internet e, alla peggio, un giretto su wikipedia, posso anche risparmiarmi l'acquisto di un libro vero e proprio.

Ahh ! Grazie al cielo questi algoritmi sono sempre stati questi da anni e non ce ne sono stati di nuovi. Dal punto di vista di uno che era partito dalla sintassi/implementazione ed arriva dopo alla logica scappa quasi da ridere avendo la consolazione che la parte forse più dinamica e lunga da seguire [i vari linguaggi e le loro evoluzioni] è stata capita e "mancano 'solo'" nozioni che sono sempre state tali e che una volta apprese non occorre aggiornarsi! Se prendiamo la carriera di un programmatore senior, penso che abbia fatto più corsi di aggiornamento al momento di usare un nuovo linguaggio o se ci sono delle novità su questo rispetto ad altro.


Grazie per le dritte !
__________________
iMac 24" Aluminum [mod 8,1] 3,06 GHz 4GB RAM 1 TB HDD SnowLeopard.3 // ye olde iPhone 3G // PlayStation 1, 2, 3 (fat 60GB-v3.40) // XBox360 slim // Notebook Acer Aspire 7720G 17" T9300 4GB RAM 8600mGT Win7HP
Ravenflot è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lav...
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo Recensione Samsung Galaxy S26 Ultra: finalmente ...
Record di efficienza per i pannelli sola...
SteamOS 3.8 è disponibile in ante...
Opel in Formula E dalla Stagione 13: con...
Windows 11 26H1: ecco le scadenze esatte...
Arriva HiSecEngine USG6000G, la nuova ga...
Xiaomi SU7 2026 ufficiale con 902 km di ...
Il tuo vecchio iPhone potrebbe essere gi...
Già disponibile un primo aggiorna...
Accessori auto in sconto su Amazon: aspi...
Scope elettriche super economiche su Ama...
Dalla Svizzera ad Amazon: Rivr e i suoi ...
Recensione OPPO Find N6: il miglior fold...
OpenAI prepara una super app desktop che...
Fortnite apre a Star Wars: i creator pot...
Val Kilmer tornerà al cinema grazie all'...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:43.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v