it-swarm-eu.dev

Jak se naučím algoritmy a datové struktury?

To je pokračováním moje předchozí otázka , kde jsem se ptal, je nutné se učit algoritmy a datové struktury. Mám pocit, že ano.

Nyní pracuji v prostředí, kde se nikdy nebudu moci naučit experimentovat nebo prakticky nebo v jakémkoli úkolu. Jaký je správný přístup jako správné knihy, správný druh problémů, správný druh zdrojů, které mohu absolvovat, abych jim dal šest měsíců nebo rok či dva na to, abych se naučil algoritmům a strukturám dat? A také utvářím svou mysl tak, aby mohla spojovat problémy s datovými strukturami a algoritmy.

38
sushil bharwani

Přečteno

Ne, opravdu, přečtěte si

Přečtěte si vše o algoritmu a designu, které můžete najít. Existují fenomenální knihy. Knihy algoritmů Sedgewick jsou dobré. Příručka Algorithm Design Manual by Skiena je také dobrá. Společně mě tyto knihy sledují na každé polici v každé práci, do které chodím, spolu s Mýtickým mužem měsícem.

Pak se zeptejte.

Promluvte si s lidmi, které respektujete. Zeptejte se jich, jaké body rozhodnutí měli a proč učinili rozhodnutí, která udělali. Ti dobří ti vždy budou moci říct: "Rozhodl jsem se udělat X, protože je to lepší než A, B v těchto ohledech. Mohl jsem jít s C, ale cítil jsem, že tohle byla lepší volba".

Dále udělejte

Stavět věci. Vytvářejte věci, které nikdy nebudete používat. Budujte věci, které už nikdy nebudete potřebovat. Jdi napsat program, který řeší sudoku. Teď to udělej znovu. A znovu. Postavte to 5 úplně jinými způsoby. Sestavte program, který generuje sudoku a krmí jej do řešitelů. Najděte, který řešitel je nejrychlejší. A pak...

Zjistěte, proč.

„Co“ je téměř nikdy důležité. Myslím, že jo, je rozhodující pro dokončení projektu po ruce, ale na konci, pokud znáte „co“, aniž byste věděli „proč“, pak byste to možná vůbec nikdy neudělali. Za svůj životopis máš kulku. Jděte si cookie a blahopřejeme vám. „Proč“ je mnohem důležitější než „co“.

A pro záznam byl Sudoku příkladem. Strávil jsem spoustu volného času procházením tohoto cvičení s tunou logických hádanek na Kongregate a hodně jsem se učil na cestě.

http://www.Amazon.com/Bundle-Algorithms-Parts-1-5-Fundamentals/dp/020172684X/http://www.Amazon.com/Algorithm-Design -Manual-Steven-Skiena/dp/1848000693 /http://www.Amazon.com/Mythical-Man-Month-Software-Engineering-Ann Anniversary/dp/0201835959/

40
Hounshell

Algoritmy

Když mi bylo dvanáct, chodil jsem na lekci magie ve skupinovém prostředí. Kouzelník se jmenoval Joe Carota. Jednou udělal trik a já jsem se rozostřil: „Jak jsi to udělal?“ Ten den řekl něco, co se od té doby drží na mě.

Joeova odpověď: „Michaele, pokud opravdu chceš vědět, jak se ten trik dělá, musíš přijít na to, jak bys to udělal sám.“

Samozřejmě, že to není to, co jsem chtěl slyšet, ale to mě přimělo soustředit svou mysl na řešení problémů. To byl problém z mého pohledu. Pokud můj první pokus o vyřešení problému trval sedmnáct kroků a byl opravdu klunky, dobrá zpráva byla, že jsem problém vyřešil.

Poté, když jsem se podíval na řešení, které jsem vyvinul, a hledal způsoby, jak toto řešení vylepšit, naučil bych se, jak zefektivnit konečný výsledek. Později v mém počítačovém programovacím životě jsem zjistil, že tento proces se nazývá „postupné upřesňování“. Myslím, že dnes to říkají refactoring.

Fungovalo to, ale stále to funguje nyní.

zde následující odkaz vás přesměruje na jednu z nejúspěšnějších tříd DS a Algoritmy tříd MIT, kterou jsem kdy následoval).

http://academicearth.org/courses/introduction-to-algorithms

Doufám, že se vám tato videa bude líbit. Hodně štěstí !!!

9
Tharindu Rusira

Zjistěte, zda můžete absolvovat online kurz, nebo se nechat poučit. Pokud se to nepodaří, to se objevilo v rychlém vyhledávání na google. Právě jsem si na toto letos na jaře vzal třídu (nejprve jsem se přestěhoval z EE do softwaru) a nebylo to příliš těžké na vyzvednutí , pokud dobře rozumíte ukazatelům .

2
Stephen Furlani

Pokud se vám nedaří absolvovat kurz, doporučuji The Algorithm Design Manual. K dispozici je zdarma PDF zde , ale pokud plánujete profesionální programování, vyplatí se získat skutečnou knihu.

2
Jason Baker

Začněte pracovat na řešení klasických problémů, například sféra online , stránka nemusí vypadat tak fantasticky, ale chlapče, jedná se o klasické programovací problémy, které vyžadují mnoho důležitých datových struktur a algoritmů, které se dnes používají.

Řešení lze předkládat v různých programovacích jazycích od C/C++ po JavaScript, LISP, Smalltalk, assembler + dalších 40 dalších. Můžete se tedy plně soustředit na řešení problému pomocí libovolného programovacího jazyka, který vám vyhovuje.

1
Ernelli

CLRS

Toto je zdaleka můj oblíbený zdroj. Použil jsem to v mém bakalářském kurzu počítačových věd algoritmů a nakonec jsem knihu koupil o 4 roky později, abych si přečetl sám, abych se připravil na můj M. S. Comp Sci kurzy. V žádném případě to není snadno čitelné, ale pokud se snažíte porozumět některým z předložených matematických/důkazů a implementovat pseudokód do svého oblíbeného jazyka (jazyků), stojí za to poněkud statnou cenu. Manuál pro navrhování algoritmů, který ostatní zmínili, je také skvělým zdrojem pro identifikaci problémů s učením, ale zjistil jsem, že CLRS je lepší pro čistý detail.

1
Kurtis

Pokuste se zapsat bakalářský kurz datových struktur a algoritmů, je vždy dobré se tyto pojmy učit spolu s ostatními.

1
Martijn Verburg

Vždy můžete zkusit něco takového: http://codekata.pragprog.com/

Vždy jsem se naučil lépe tím, že jsem to vymyslel na rozdíl od čtení. Měli byste však mít k dispozici dokumentaci/materiál ke čtení, abyste našli odpovědi.

0
RobotHumans

Koupit --- kniha , půjčit si to nebo ukrást! Odpočinek bude následovat :)

Úvod do algoritmů Rivest a Cormen. Bude velmi obtížné následovat zpočátku, jakmile se v úvodu dostanete za vysvětlení Mergesortu. Vše se vám odvíjí krásně.

Navíc se zlepšíte, pokud vyřešíte problémy uvedené v knize. S knihou jsem se nikdy nechtěl rozloučit ani po ukončení střední školy. Je to dobré.

0
Venki