Come aumentare le mie capacità di strutture dati dopo un lungo letargo [chiuso]


10

Sono stato abbastanza bravo con algoritmi e strutture dati una volta, molto tempo fa. Da allora, ho programmato professionalmente, e poi sono andato a gestire una piccola squadra, che ha completamente respinto le mie capacità tecniche in questo campo.

Ho deciso di voler diventare di nuovo uno sviluppatore e lavorare per Google. Il fatto è che sono così fuori allenamento che, se dovessi essere intervistato in questo momento, sarei sicuramente dimesso in 10 minuti.

Quale programma di allenamento mi consiglieresti di tornare in forma? Ho già iniziato questo fine settimana tornando alle basi assolute e implementando alcuni algoritmi di ordinamento, elenco collegato e tabella hash. Successivamente, penso che leggerò l'intero materiale del corso sulle altre strutture di dati di base e sugli algoritmi grafici. Voglio trovare una serie focalizzata di esercizi pratici che posso fare in un periodo di tempo relativamente breve, per destreggiarvi con le vecchie cellule cerebrali. Conosco questa roba, devo solo ricordare a me stesso che lo so.


@Anon: se questo è un nuovo modo in cui Google sta creando un brusio su se stesso questo nuovo anno, c'è una cosa che vorrei dire. Funziona.
Fanatic23,

4
Se le strutture dati sono state ibernate, molto probabilmente sono state serializzate. Devi solo annullare la serializzazione.
Mchl

4
@Mchl - Non conosco Anon, ma ho scoperto che il supporto di memorizzazione "brain" è ancora meno affidabile a lungo termine rispetto ai floppy disk. Qualunque cosa serializzata più di qualche anno fa è quasi certamente corrotta ormai.
Steve314,

Risposte:


6

Ci sono 4 cose che vorrei dirti e ho elencato l'ordine che devo dirti:

  1. Ottieni la tua fonte di tè verde mentre ci sei
  2. Mentre sorseggi quel tè verde, consulta il libro di Skiena disponibile da qui . E consulta il materiale audio / video qui .
  3. Scopri un eccellente set di link gestiti da Google all'indirizzo http://code.google.com/edu/courses.html
  4. Esamina le domande relative agli algoritmi in SO e prova a rispondere a queste domande da solo

Buona fortuna!


Anche se adoro il libro di Skiena, non ho mai saputo che esistesse un materiale audio / video, grazie.
Flash

1

Suggerirei di scegliere una vera struttura di dati o un formato di file che le persone stanno usando in questo momento e fare qualcosa di interessante. Il formato di file Git è abbastanza ben documentato, ad esempio:

http://book.git-scm.com/1_the_git_object_model.html

Fare qualcosa di interessante con un formato che le persone usano, ed essere rigoroso al riguardo, insegna lezioni e ti dà qualcosa a cui le persone saranno interessate.

O almeno, crea qualcosa con un'angolazione unica. Quando mi trovavo in una posizione simile alla tua, ho scritto una risposta a una domanda di intervista online sulla creazione di un grafico non indirizzato in grado di rilevare l'inserimento di cicli. Sarebbe stato un problema facile se non avessi aggiunto ulteriori vincoli ... ma ho deciso di richiedere che potesse fare inserimenti in O (1). Il risultato è stato NoCycle:

http://hostilefork.com/nocycle/


1

Ciò dipende esattamente dal tuo obiettivo: ad esempio, la progettazione e l'analisi degli algoritmi sono presenti o stai rispettando le strutture e gli algoritmi standard? Ma mi sembra che tu stia già facendo quello che devi fare.

Se hai ancora un vecchio libro di testo preferito di "molto tempo fa", ti suggerisco di rivederlo. Oltre a ciò, è il consiglio standard di rivisitazione di qualsiasi cosa. Ponetevi domande specifiche, cercate le risposte quando esaurite le domande sfogliate e sfogliate rapidamente tutto ciò che potete trovare fino a quando non riuscirete a trovare alcune domande più specifiche.

Algorithms and Data Structures (Niklaus Wirth) è un libro relativamente conciso su algoritmi e strutture di dati di base senza la progettazione e l'analisi di tutti gli algoritmi. Molto basilari, però - elenchi, vari alberi, cumuli, ma non ricordo ad esempio i digrafi. Un vantaggio è che c'è un download gratuito della versione di Oberon - http://www.inf.ethz.ch/personal/wirth/ - cercare il collegamento PDF nella parte inferiore dell'elenco dei libri. Wikipedia è una risorsa ovvia, ma ha così tanto che è una buona idea decidere cosa vuoi e cosa non fai prima di andare lì.


0

Quando eri abbastanza bravo con algoritmi e strutture dati, quali erano le risorse a cui hai avuto accesso?

Quanto è breve la "quantità di tempo relativamente breve" di cui hai bisogno per ripulire le tue conoscenze?

Non credo che le conoscenze acquisite con dedizione svaniranno mai. Svanirà solo un po ', e TU sei il miglior giudice su quali aree devi lavorare per riguadagnare la tua vecchia abilità con i soggetti che una volta amavi.

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.