Jak zwiększyć umiejętności w zakresie struktur danych po długiej hibernacji [zamknięty]


10

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.


@Anon: Jeśli jest to nowy sposób, w jaki Google tworzy nowy trend w tym roku, chciałbym powiedzieć jedną rzecz. To działa.
Fanatic23

4
Jeśli struktury danych zostały zahibernowane, najprawdopodobniej zostały serializowane. Musisz je po prostu odznaczyć.
Mchl

4
@Mchl - Nie wiem o Anonie, ale odkryłem, że nośnik pamięci „mózgowy” jest w dłuższej perspektywie jeszcze mniej niezawodny niż dyskietki. Wszystko, co zostało zserializowane ponad kilka lat temu, jest już prawie na pewno zepsute.
Steve314,

Odpowiedzi:


6

Są 4 rzeczy, które chciałbym ci powiedzieć, i wymieniłem kolejność, w jakiej muszę ci powiedzieć:

  1. Zdobądź własne źródło zielonej herbaty, gdy jesteś w tym miejscu
  2. Podczas popijania zielonej herbaty przejrzyj dostępną stąd książkę Skieny . I przejrzyj tutaj materiał audio / wideo .
  3. Sprawdź doskonały zestaw linków obsługiwanych przez Google na stronie http://code.google.com/edu/courses.html
  4. Przejrzyj pytania dotyczące algorytmów w SO i spróbuj odpowiedzieć na nie samodzielnie

Powodzenia!


Chociaż uwielbiam książkę ze skieny, nigdy nie wiedziałem, że jest materiał audio / wideo, dzięki.
flash

1

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/


1

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.


0

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ś.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.