Natknąłem się na ten cytat z Billa Gatesa: „Zdecydowanie powinieneś wysłać mi CV, jeśli możesz przeczytać całość”. Mówił o książkach o sztuce programowania. Byłem więc bardzo ciekawy i chciałbym to wszystko przeczytać, ale szczerze mówiąc, zupełnie tego nie rozumiem I'm really not that highly
intellectual being
.. Więc to powinien być powód, dla którego nie mogę tego zrozumieć , ale chętnie się uczę .. Obecnie czytam tom 1 o podstawowym algo .. Więc czy są jakieś książki, które są przyjazne początkującym / powolnym ludziom takim jak ja? Więc mogę się rozwinąć i mam nadzieję, że w przyszłości będę mógł swobodnie czytać książkę Knutha.
jeśli zdefiniujesz się jako taki, not a highly intellectual being
wówczas stawiasz sobie niskie oczekiwania. Musisz przełamać tę mentalność, jeśli chcesz zrobić coś wartościowego. Nie powinno być wątpliwości, że można coś osiągnąć. Również osiągnięcie tego nie oznacza, że łatwo to osiągniesz.
Rzeczy, które warto realizować, są trudne ... i to nie jest banał. W oprogramowaniu, inżynierii i ogólnie w życiu, jeśli chcesz coś osiągnąć, musisz wybierać rzeczy trudne, rzeczy, których ludzie unikają, a nie zadowalać się najniższymi wspólnymi mianownikami rzeczy.
Po pierwsze, nie jest jasne, jakie jest twoje tło CS. Książka Knutha wymaga pewnego stopnia dojrzałości. Niewiele osób z dyplomem CS może z łatwością przejść przez to. Nie spodziewałbym się, że student CS, który właśnie ukończył swój pierwszy kurs z algorytmów, byłby w stanie przejść choćby jedną książkę Knutha. Dojrzałości potrzebnej do jej osiągnięcia po prostu nie ma, a to nie ma nic wspólnego ze zdolnościami umysłowymi ucznia.
Musisz mieć podstawowe algorytmy na niskim poziomie i jasne, i musisz mieć spory zasób programowania (pracy i / lub scholastyki) pod swoim pasem - powiedziałbym, że przynajmniej 40 punktów za programowanie. Musisz także mieć matematykę CS na twardym gruncie.
Nie możesz posunąć się daleko, nie mając dobrego zrozumienia matematyki dyskretnej (i ewentualnie teorii obliczeń).
Nie chodzi o to, że będziesz potrzebować tej wiedzy, aby pracować nad problemami Knutha, ale potrzebujesz dojrzałości, aby móc przejść przez ten rodzaj materiału.
Najpierw wybierz jedną książkę i tylko jedną książkę (książka CLRS, jak wcześniej sugerowano) i pracuj od początku do końca. Jeśli to możliwe, wykonaj programy wdrażające algorytmy. Nie używaj Java ani C #, nawet C ++. Idź do gołych kości C i poczuj się jak budowanie rzeczy z metalowych skrawków.
Zdobądź także książkę Knutha na temat „Matematyki konkretnej”, jeśli nie zrobiłeś kursu matematyki dyskretnej i teorii obliczeń. Dobrze byłoby, gdybyś również przejrzał tę książkę.
Następnie zajmij się encyklopedią Knutha, jedną księgę, jeden rozdział na raz. Nie przechodź do następnego rozdziału bez dobrego zrozumienia pierwszego.
Proponuję najpierw przejrzeć tom I (podstawowe algorytmy), a następnie tom III (wyszukiwanie i sortowanie). To powinny być twoje bezpośrednie cele. Następnie, później (znacznie później), zmierzyć się z tomem IV (algorytmy kombinatoryczne), a następnie z tomem II (algorytmy półnumeryczne).
Nie czuj się źle, jeśli na początku tego nie dostaniesz. Próbowałem przejść przez tom I i III od lat (teraz 10 lat).
I nie powinieneś też przykładać do tego zbyt dużej wagi. Nie rób tego, aby udowodnić coś komuś lub sobie. Zrób to, ponieważ jesteś do tego intelektualnie zainteresowany. Możesz uzyskać biegłość w zakresie algorytmów, po prostu korzystając z książki CLRS (lub dowolnej z dostępnych tam dobrych książek).
Bądź pragmatyczny i daj sobie spokój. Traktuj przeglądanie książki Knutha jako długoterminową osobistą ambicję, a nie bezpośredni dowód, że jesteś materiałem CS;)
Są inne ważniejsze rzeczy (z punktu widzenia kariery), za które trzeba się zabić;)