Jest to kontynuacja mojego poprzedniego pytania, w którym zadałem pytanie, czy trzeba nauczyć się algorytmów i struktur danych. Czuję, że tak.
Teraz pracuję w środowisku, w którym nigdy nie będę mieć szansy na naukę tego poprzez eksperymentowanie, praktycznie lub w ramach dowolnego zadania. Jakie jest właściwe podejście, takie jak właściwe książki, właściwy rodzaj problemów, właściwy rodzaj zasobów, przez które mogę przejść, aby dać sześć miesięcy lub rok lub dwa na naukę algorytmów i struktur danych? A także ukształtować mój umysł w taki sposób, że może on powiązać problemy ze strukturami danych i algorytmami.
self-improvement
algorithms
data-structures
Sushil Bharwani
źródło
źródło
Odpowiedzi:
Czytać.
Nie, naprawdę czytaj.
Przeczytaj wszystko o algorytmie i projekcie, jakie możesz znaleźć. Są tam fenomenalne książki. Książki algorytmów Sedgewick są dobre. Dobry jest również Podręcznik projektowania algorytmów autorstwa Skieny. Razem te książki towarzyszą mi na każdym półce w każdej pracy, do której się udam, wraz z The Mythical Man-Month.
Więc zapytaj.
Rozmawiaj z ludźmi, których szanujesz. Zapytaj ich, jakie mieli punkty decyzyjne i dlaczego podjęli decyzje. Ci dobrzy zawsze będą mogli powiedzieć: „Wybrałem X, ponieważ pod tym względem jest lepszy niż A, B. Mógłbym pójść z C, ale czułem, że to był lepszy wybór z tego powodu”.
Następnie zrób.
Twórz rzeczy. Twórz rzeczy, których nigdy nie będziesz używać. Twórz rzeczy, których nigdy nie będziesz potrzebować. Idź napisz program, który rozwiązuje łamigłówkę Sudoku. Teraz zrób to jeszcze raz. I jeszcze raz. Zbuduj to 5 zupełnie różnych sposobów. Zbuduj program, który generuje łamigłówki Sudoku i nakarm go solverami. Znajdź najszybszy solver. I wtedy...
Dowiedz się dlaczego.
„Co” prawie nigdy nie jest ważne. To znaczy, tak, bardzo ważne jest zakończenie projektu, ale na koniec, jeśli wiesz „co”, nie wiedząc „dlaczego”, to równie dobrze możesz nigdy tego nie zrobić. Masz punktora na swoim CV. Zdobądź ciasteczko i pogratuluj sobie. „Dlaczego” jest o wiele ważniejsze niż „co”.
Dla przypomnienia Sudoku było przykładem. Spędziłem dużo czasu na tym ćwiczeniu z mnóstwem zagadek logicznych na Kongregate i wiele się nauczyłem po drodze.
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-Anniversary/dp/0201835959/
źródło
Algorytmy
Brałem lekcje magii w grupie, kiedy miałem dwanaście lat. Mag nazywał się Joe Carota. Raz zrobił lewę, a ja wyrzuciłem: „Jak to zrobiłeś?” Powiedział coś, co utkwiło we mnie od tamtej pory.
Odpowiedź Joe: „Michael, jeśli naprawdę chcesz wiedzieć, w jaki sposób wykonuje się tę sztuczkę, musisz dowiedzieć się, jak byś to zrobił”.
Oczywiście, że nie tego chciałem usłyszeć, ale skupiłem się na rozwiązywaniu problemów. To było rozwiązanie mojego problemu z mojej perspektywy. Jeśli moja pierwsza próba rozwiązania problemu wymagała siedemnastu kroków i była naprawdę niezręczna, dobra wiadomość była taka, że rozwiązałem problem.
Następnie, patrząc na opracowane przeze mnie rozwiązanie i szukając sposobów na udoskonalenie tego rozwiązania, dowiedziałbym się, jak usprawnić efekt końcowy. Później w moim życiu programistycznym dowiedziałem się, że proces ten nazywał się „udoskonalaniem stopniowym”. Myślę, że dziś nazywają to refaktoryzacją.
Udało się, to nadal działa teraz.
źródło
tutaj poniższy link przekierowuje cię do jednej z najbardziej udanych klas DS i algorytmów MIT, jaką kiedykolwiek obserwowałem.
http://academicearth.org/courses/introduction-to-alameterms
Mam nadzieję, że spodoba ci się ta seria filmów. Powodzenia !!!
źródło
Sprawdź, czy możesz wziąć udział w kursie online lub uzyskać korepetycje. W przeciwnym razie wyskoczyło to podczas szybkiego wyszukiwania w Google. Właśnie wziąłem udział w zajęciach zeszłej wiosny (po raz pierwszy przeniosłem się z EE do oprogramowania) i nietrudno było go odebrać, jeśli dobrze rozumiesz wskaźniki .
źródło
Jeśli nie możesz wziąć udziału w kursie na ten temat, poleciłbym Podręcznik projektowania algorytmów. Jest to darmowy PDF tutaj , ale warto uzyskanie rzeczywistej książki jeśli plan programowania profesjonalnie.
źródło
Spróbuj zapisać się na studia na poziomie licencjackim w zakresie struktur danych i algorytmów, zawsze dobrze jest uczyć się tych pojęć obok innych.
źródło
Zacznij pracę nad rozwiązywaniem klasycznych problemów, na przykład w sferze online , strona może nie wyglądać tak fantazyjnie, ale chłopcze, są to klasyczne problemy programistyczne, które wymagają wielu ważnych struktur danych i algorytmów używanych obecnie.
Rozwiązania można przesyłać w różnych językach programowania, od C / C ++ do JavaScript, Lisp, Smalltalk, asembler + około 40 innych. Możesz więc całkowicie skupić się na rozwiązaniu problemu w dowolnym języku programowania, w którym czujesz się komfortowo.
źródło
CLRS
To zdecydowanie mój ulubiony zasób. Użyłem go na studiach licencjackich z algorytmów informatyki i skończyłem kupując książkę 4 lata później, aby samodzielnie przeczytać, aby przygotować się do kursów MS Comp Sci. W żaden sposób nie jest to łatwe do odczytania, ale jeśli pracujesz nad zrozumieniem niektórych przedstawionych matematyki / dowodów, a następnie wdrożysz pseudo-kod w swoim ulubionym języku (językach), warto nieco zawyżoną cenę. Podręcznik projektowania algorytmów, o którym wspominali inni, jest również doskonałym źródłem do nauki identyfikacji problemów, ale uważam, że CLRS jest lepszy pod względem czystych szczegółów.
źródło
Zawsze możesz spróbować czegoś takiego: http://codekata.pragprog.com/
Zawsze uczyłem się lepiej, myśląc o tym, zamiast czytać. Powinieneś jednak mieć dostęp do dokumentacji / materiałów do czytania, aby szukać odpowiedzi.
źródło
Kup tę książkę , pożycz to lub ukradnij to! Reszta nastąpi :)
Wprowadzenie do algorytmów Rivest i Cormen. Na początku bardzo trudno będzie podążać za wyjaśnieniem Mergesort we wstępie. Wszystko pięknie się rozwija.
Plus, tym lepiej, jeśli rozwiążesz problemy przedstawione w książce. Nigdy tak naprawdę nie chciałem rozstać się z książką, nawet po ukończeniu szkoły podstawowej. To jest takie dobre.
źródło