Dawno, dawno temu byłem całkiem dobry w algorytmach i strukturach danych. Od tamtej pory programowałem profesjonalnie, a następnie przeszedłem do kierowania małym zespołem, który całkowicie oddał moje umiejętności techniczne w tej dziedzinie.
Zdecydowałem, że chcę znów zostać programistą i pracować dla Google. Chodzi mi o to, że tak bardzo nie mam praktyki, że gdybym miał teraz udzielić wywiadu, z pewnością zaliczyłbym za 10 minut.
Jaki program treningowy poleciłbyś mi wrócić do formy? Zacząłem już w ten weekend od powrotu do podstaw absolutnych i implementacji kilku algorytmów sortowania, listy połączonej i tabeli skrótów. Następnie myślę, że przeczytam cały materiał kursu na temat innych podstawowych struktur danych i algorytmów graficznych. Chcę znaleźć skoncentrowany zestaw praktycznych ćwiczeń, które mogę wykonać w stosunkowo krótkim czasie, aby żonglować starymi komórkami mózgu. Znam te rzeczy - muszę sobie tylko przypomnieć, że to wiem.
Odpowiedzi:
Są 4 rzeczy, które chciałbym ci powiedzieć, i wymieniłem kolejność, w jakiej muszę ci powiedzieć:
Powodzenia!
źródło
Sugeruję wybranie prawdziwej struktury danych lub formatu pliku, z którego ludzie korzystają obecnie, i zrobić z tym coś fajnego. Format pliku Git jest dość dobrze udokumentowany, na przykład:
http://book.git-scm.com/1_the_git_object_model.html
Robienie czegoś interesującego z formatem, którego używają ludzie, i przestrzeganie tego rygorystycznie, uczy lekcji i daje coś, czym ludzie będą zainteresowani.
A przynajmniej zrób coś z unikalnym kątem. Kiedy byłem w pozycji podobnej do twojej, napisałem odpowiedź na pytanie w wywiadzie internetowym dotyczące stworzenia jednokierunkowego wykresu, który mógłby wykryć wstawianie cykli. Byłbym łatwym problemem, gdybym nie dodał dodatkowych ograniczeń ... ale zdecydowałem się wymagać, aby mógł wstawiać w O (1). Rezultatem był NoCycle:
http://hostilefork.com/nocycle/
źródło
Zależy to dokładnie od tego, jaki jest twój cel - np. Czy jest tam projekt i analiza algorytmu, czy trzymasz się standardowych struktur i algorytmów? Ale wydaje mi się, że już robisz to, co musisz zrobić.
Jeśli nadal masz starą ulubioną książkę z „dawno, dawno temu”, sugeruję ponowne jej przejrzenie. Poza tym jest to standardowa rada ponownego odwiedzania czegokolwiek. Zadawaj sobie konkretne pytania, szukaj odpowiedzi, gdy skończy Ci się pytanie, szybko przeglądaj wszystko, co możesz znaleźć, dopóki nie znajdziesz bardziej szczegółowych pytań.
Algorytmy i struktury danych (Niklaus Wirth) to stosunkowo zwięzła książka na temat podstawowych algorytmów i struktur danych bez całego projektu i analizy algorytmu. Jednak bardzo podstawowe - listy, różne drzewa, hałdy, ale nie pamiętam na przykład o digrafach. Jedną z zalet jest to, że istnieje możliwość bezpłatnego pobrania wersji Oberona - http://www.inf.ethz.ch/personal/wirth/ - poszukaj łącza PDF u dołu listy książek. Wikipedia jest oczywistym zasobem, ale ma tak wiele, że dobrze jest zdecydować, czego chcesz, a czego nie, zanim tam pojedziesz.
źródło
Kiedy byłeś dobry w algorytmach i strukturach danych, do jakich zasobów miałeś dostęp?
Jak krótki jest „stosunkowo krótki czas” potrzebny na pogłębienie wiedzy?
Nie sądzę, aby wiedza zdobyta dzięki poświęceniu kiedykolwiek zniknęła. To tylko trochę zniknie, a TY jesteś najlepszym osądem, nad którymi obszarami musisz popracować, aby odzyskać swoją dawną sprawność w stosunku do przedmiotów, które kiedyś kochałeś.
źródło