Jakiś czas temu postanowiłem rozpocząć programowanie. Naprawdę po prostu wskoczyłem na język (Perl) i stamtąd. Żałuję tylko, że właśnie wskoczyłem:
Nie nauczyłem się podstaw (jeśli nazwałbyś je podstawami).
Nie dowiedziałem się o informatyce.
Wierzę, że ta kwestia powstrzymuje mnie przed moim prawdziwym potencjałem. Gdzie powinienem „ponownie uruchomić”? Czy są jakieś książki, artykuły itp., Które powinienem przeczytać? Czy są jakieś tematy, które powinien znać doświadczony programista? Jaka jest twoja rada
education
computer-science
experience
Dynamiczny
źródło
źródło
Odpowiedzi:
Zrobiłbym to:
Ścieżka A: Metoda półtypowa
Naucz się języka o bardziej regularnej składni, takiej jak Java, C # lub Python. Perl jest niezwykle użytecznym narzędziem, ale jest również bardzo swobodny pod względem tego, jak pozwala ci robić różne rzeczy. Pozostałe języki, które wymieniłem, są znacznie mniejsze.
Zdobądź książkę o strukturach danych w tym języku.
Zdobądź książkę na temat algorytmów w tym języku.
Uzyskaj kompletny i skuteczny kod Java / C # / Czymkolwiek jest wersja Pythona.
Ścieżka B: Ścieżka oświecenia Joela Spolsky'ego (lub Śmierć, wybierz)
Zdobądź książkę „Kod”
Uzyskaj „Język programowania C” K&R
Uzyskaj strukturę i interpretację programowania komputerowego
Jeśli chodzi o metodę, metoda 1 nauczy Cię programowania w bardziej uporządkowany sposób. Koncepcje informatyki do pewnego stopnia (nie ma jeszcze teorii złożoności, zaufaj mi) i zapewniają Ci język, który jest lepszy do pracy przy projektach z innymi ludźmi i do tworzenia większych aplikacji.
Metoda 2 jest bardziej hardcorowa, jest to podejście bardziej podstawowe z „Kodem” wyjaśniającym podstawy, K&R wprowadza rzeczy na poziomie maszyny, a SICP wprowadza koncepcje wyższego poziomu. To dużo trudniejsza, ale bardziej skoncentrowana ścieżka.
W obu przypadkach daj sobie czas. Rzym nie został zbudowany w ciągu jednego dnia, podobnie jak umiejętności programistyczne, nawet jeśli jesteś geniuszem. Programowanie Petera Norviga za 10 lat to zwykły esej, na który zwracam uwagę.
Uzupełnienie:
Jeśli chodzi o dostępne darmowe rzeczy: wymieniony poniżej Python the Hard Way to dobry początek, od tego momentu, jak myśleć jak informatyk jest rozsądną kontynuacją.
Istnieje wiele zasobów na temat algorytmów i szczerze mówiąc, prawdopodobnie możesz bez problemu przełączać kroki 3 i 4. Pamiętaj, że w tym miejscu matematyka naprawdę zaczyna się pojawiać, więc nigdy nie bój się prosić o pomoc, gdy dojdziesz do tego etapu. To wydaje się być rozsądnym darmowym przewodnikiem .
Naprawdę nie ma spójnego darmowego odpowiednika Code Complete na powiedzmy, chociaż Code jak Pythonista wydaje się dość solidny. Najważniejszą rzeczą jest skoncentrowanie się na tym, aby Twój kod był czytelny, gdy tylko przestaniesz mieć podstawy. Nie jest to „konieczne” w ten sam sposób, w jaki poprawna jest cała składnia kodu, ale ułatwia życie, gdy wychodzisz poza małe programy lub pracujesz nad czymś przez długi czas.
Może się okazać, że skupiłem się głównie na Pythonie, ponieważ jest to najłatwiejszy z trzech, aby znaleźć dobrze napisane darmowe rzeczy. Myślę, że samouczki Javy autorstwa Oracle są w porządku, ale są trochę suche i nie są świetne dla początkujących. C # znajduje się w podobnej sytuacji, ale żadna nie cierpi na brak dokumentacji.
Także twój pierwszy żart / kalambur CS: chcesz „zreformować” swoje wykształcenie, a nie Cofanie.
źródło
Powiedziałbym, że celem jest Naucz się Pythona na własnej skórze ; to dobre podejście. Idź stamtąd; potrwa to wystarczająco długo, aby dać ci czas na znalezienie innych zasobów.
Moim zdaniem „ścieżka B” wymieniona w innej odpowiedzi nie jest na tym etapie odpowiednia.
źródło
Cóż, zacząłem z tego samego powodu, ponieważ miałem trochę wiedzy na temat sprzętu i byłem zaintrygowany programowaniem. Lubię uczyć się nowych rzeczy.
Zacząłem od plików DOS Batch, potem QuickBasic, następnie Visual Basic, VBA, MASM, z Access do pracy z bazami danych, zanim dostałem swoją pierwszą pracę. Dla mnie była to najlepsza ścieżka, zaczynając od prostej, a następnie budując stamtąd.
Powiedziałbym, że zdecyduj, co lubisz najbardziej w programowaniu i idź tą drogą, skrypty, tworzenie stron internetowych, programowanie w systemie Windows itp. Jeśli nie wiesz, zacznij pracę z niektórymi językami, aby zobaczyć, co lubisz. Będziesz jednak potrzebował czasu. Zajmuje około 5 lat, aby naprawdę dobrze posługiwać się językiem takim jak Java, a może C ++, IMHO.
Jako język ułatwiający naukę tworzenia stron internetowych, JavaScript jest zdecydowanie popularny, PHP jest Pythonem, ale to jest IMHO. Zakłada się, że będziesz znać lub uczyć się HTML / CSS. Naprawdę nie doceniałem javascript, mimo że używam go od 2001 roku. Zrobiłem to samo z CSS i nie sądziłem, że to ważne. Zmieniłem też zdanie na ten temat.
Kiedy próbuję określić trend, wchodzę na http://www.indeed.com i klikam link trendy w lewej górnej części strony. Następnie wpisuję słowa kluczowe, takie jak PHP i Python, i sprawdzam, które pozycje są odkładane na rzeczywiste stanowiska pracy dostępne w Internecie.
Jest to jednak z perspektywy kariery zawodowej i oparte na tym, co przynosi mi największą wartość dla klientów (pracodawców). Nie tylko z perspektywy uczenia się.
źródło
Dowiedz się o algorytmach w najbardziej podstawowej formie, zapomnij na chwilę o językach. Sortowanie wektorów, słów itp. Freepascal to fajny język na początek, uwielbiam Perla, ale mimo wszystkich skrótów i fajnych rzeczy często pomijasz nieodłączny algorytm programu.
źródło