Naucz się kodować: mądrość i narzędzia w podróży
Opublikowany: 2022-03-11Programowanie to świetna umiejętność. Jest to niezwykle satysfakcjonujące zarówno na poziomie osobistym, jak i zawodowym, dając możliwość budowania, majsterkowania i wymyślania. Może otworzyć drzwi do wszelkiego rodzaju ścieżek kariery z wielkimi korzyściami, czy to szanowaną wypłatą, swobodą pracy, kiedy i gdzie chcesz, czy wszystkimi powyższymi.
Nic dziwnego, że coraz więcej osób z różnych środowisk decyduje się na naukę kodowania. Ale każda osoba, która podejmuje się tego zadania, wkrótce staje przed nieprzyjemną rzeczywistością: nauka programowania jest trudna.
Skomplikowane i zagmatwane, na początku znaczna część kodowania nie ma żadnego cholernego sensu. Wbrew oczekiwaniom, uczucie „nie rozumiem” może trwać długo w podróży, sprawiając, że początkujący początkujący poczują się beznadziejnie, zagubieni i gotowi się poddać.
Morał tej historii jest następujący: bądź przygotowany. Droga do raju dla programistów jest długa i bez odpowiedniego nastawienia na początku może szybko stracić swój urok.
W tym artykule postaram się udzielić Ci wskazówek dotyczących tego, czego możesz się spodziewać podczas swojej podróży, jak najlepiej się do tego zabrać oraz jakie narzędzia i zasoby mogą Ci się przydać.
Czego oczekiwać
Może to oczywiste, ale pierwszą rzeczą, którą należy się upewnić, jest to, że programowanie w swej istocie jest dyscypliną techniczną. Najwcześniejsze umiejętności, których się nauczysz, będą wymagały dużej „dokładności” i „poprawności”, a próba pójścia na skróty nigdzie Cię nie zaprowadzi. Będziesz musiał nauczyć się przynajmniej trochę matematyki, a także wielu rzeczy, które mogą wydawać się matematyką, takich jak logika proceduralna.
Chodzi o to, że nauka podstaw programowania wymaga dużo skupienia i praktyki. Jednak niezliczone osoby, zarówno techniczne, jak i nietechniczne, odbyły tę podróż przed tobą, więc nie zniechęcaj się. Jak zobaczymy, istnieje mnóstwo zasobów dla osób takich jak Ty, które pomogą maksymalnie uprościć proces.
Krzywa uczenia się programowania jest najbardziej stroma na początku. Istnieje ogromna ilość „podstaw” do przyswojenia, w tym różne części języka programowania (wyrażenia, zmienne, typy danych, operatory, pętle, instrukcje warunkowe, funkcje, klasy) oraz techniki pozwalające zrozumieć, ile czas i miejsce w pamięci, którego będzie używał twój kod (złożoność). Będziesz pisał dużo kodu, który nie działa za pierwszym razem, więc będziesz musiał pogodzić się ze zmorą istnienia każdego programisty: debugowaniem.
Gdy nauczysz się pisać kod, będziesz w stanie nauczyć się pisać solidny kod. Sprawienie, by kod był wydajny, łatwy do odczytania i zrozumienia oraz łatwy do rozwijania, to sztuka, która stale się rozwija. Będziesz mógł zacząć odkrywać różne filozofie oprogramowania i przejść od bycia „programistą” do bycia „architektem oprogramowania”. Jest to również proces, który zajmuje dużo czasu i praktyki, ale im lepiej się w tym poradzisz, tym więcej możliwości stanie się przed Tobą otworem.
Jak nauczyć się kodować
Podróż każdej osoby do raju programowania jest inna, ale istnieją pewne dobre zasady, z których wszyscy podróżnicy mogą skorzystać. Oto podstawowy proces, który polecam, jeśli dopiero zaczynasz:
1. Wybierz miejsce docelowe: wybierz język, dowolny język
Jeśli poważnie myślisz o nauce kodowania, wybrany język nie ma większego znaczenia. Większość popularnych języków programowania ma te same podstawowe pojęcia, a zanim naprawdę opanujesz programowanie w swoim pierwszym języku, nauczenie się nowego będzie łatwiejsze niż za pierwszym razem. Jeśli uczysz się na studiach uniwersyteckich lub podobnych, Twój język prawdopodobnie zostanie wybrany dla Ciebie.
W każdym razie, o ile nie wiesz dokładnie, co chcesz robić na dłuższą metę, zalecam rozważenie tylko pięciu języków, które zapewniają równowagę między łatwością uczenia się, wszechstronnością zdobytej wiedzy i obfitością długoterminowej pracy perspektywy: Ruby , JavaScript , Python , C i Java .
Oto kilka ogólnych uwag na temat każdego z nich, które pomogą Ci podjąć decyzję:
Tłumaczone języki
Języki tłumaczone są łatwiejsze do rozpoczęcia . Dzieje się tak, ponieważ ich kod źródłowy można uruchomić, gdy tylko zostanie napisany. Natomiast języki skompilowane wymagają dodatkowego kroku między pisaniem a uruchamianiem kodu.
W rezultacie języki interpretowane pozwalają na szybsze kodowanie , ale nie wykorzystują zasobów komputera tak wydajnie , a błędy łatwiej pozostają niewykryte . Najlepiej nadają się do zastosowań, w których wydajność nie jest priorytetem. Te języki są bardzo popularne przy tworzeniu stron internetowych. W rzeczywistości jeden z nich, JavaScript, jest jedynym językiem, który można uruchomić bezpośrednio w przeglądarce internetowej, przyczyniając się do jego szybkiego awansu jako jednego z najbardziej lukratywnych języków, jakie znamy.
Język | Plusy | Cons | Powszechnie używane do |
Rubin |
|
|
|
JavaScript |
|
|
|
Pyton |
|
|
|
Skompilowane języki
Gdy kod jest kompilowany , jest konwertowany z kodu czytelnego dla człowieka na zoptymalizowany kod maszynowy przed uruchomieniem. Wynik działa znacznie szybciej i wydajniej niż w przypadku języków interpretowanych. Kompilator, który to robi, musi, w ramach swojej pracy, upewnić się, że wszystko, co zostało zakodowane, „ma sens”, dzięki czemu może identyfikować i zapobiegać wielu rodzajom błędów , na które podatne są interpretowane języki.
Z tego powodu w tych językach trudniej jest uniknąć błędów lub złego kodu. Zmuszą cię do głębszego zrozumienia tego, co naprawdę dzieje się „pod maską”, a dowiesz się znacznie więcej o tym, jak naprawdę działa komputer . Ceną jest to, że te języki są bardziej pracochłonne i zazwyczaj trudniejsze do nauki dla początkujących.
Języki skompilowane są używane w aplikacjach wymagających wydajności i niezawodności, w tym w aplikacjach wbudowanych, które mogą działać na sprzęcie o ograniczonych zasobach, oraz w dużych, złożonych aplikacjach, w których nawet mały błąd może siać spustoszenie.
Język | Plusy | Cons | Powszechnie używane do |
C |
|
|
|
Jawa |
|
|
|
HTML i CSS: nie języki programowania
Należy zauważyć, że HTML i CSS, które są używane na prawie każdej stronie internetowej, jaka kiedykolwiek istniała, nie są językami programowania . Są to języki prezentacyjne, używane do definiowania, jak coś powinno wyglądać i co powinno zawierać, ale nie jak powinno się zachowywać. Niemniej jednak mogą być dobrym miejscem do rozpoczęcia, ponieważ są znacznie łatwiejsze do nauczenia i nauczą Cię, jak poprawnie pisać. Ponadto, jeśli planujesz tworzyć strony internetowe, i tak będziesz musiał się ich nauczyć w pewnym momencie.
2. Zacznij mały
Nauka wymaga czasu i jest wiele do wchłonięcia. Jeśli spróbujesz zbudować kompletną aplikację pierwszego dnia, to nie zadziała. Aby oszczędzić sobie frustracji, zacznij od rozwiązywania małych, prostych problemów i idź w górę.
Na przykład pierwszym programem tradycyjnie pisanym podczas nauki nowego języka jest program „Hello World”, który po prostu wyświetla na ekranie słowa „Hello World”. W większości języków napisanie prostszego programu jest prawie niemożliwe i wyraźnie ten program ma niewiele rzeczywistego zastosowania. Jednak nadal zawiera wiele podstawowych części języka, dlatego jest idealny do zapoznania się z pisaniem języka.
Stąd możesz napisać coś, co dodaje lub odejmuje pewne liczby, a następnie coś, co pobiera dane od użytkownika. Następnie możesz dowiedzieć się o warunkach warunkowych, które są sposobem na podejmowanie decyzji, oraz o pętlach, które wykonują powtarzające się zadania. Wkrótce będziesz gotowy do zbudowania swojego pierwszego obiektu i wtedy możesz zacząć eksperymentować z tworzeniem kompletnych aplikacji.
3. Bądź cierpliwy
Podstawowe koncepcje programowania mogą być dość trudne. Wiele z nich wcale nie jest intuicyjnych, jeśli nie wiesz już, jak działa komputer na głębszym poziomie.
Na przykład, kiedy zaczynałem, odkryłem, że debugowanie jest irytującym procesem; nie przypominało to programowania. Zamiast pisać nowy kod, który robiłby fajne nowe rzeczy, spędziłbym cały dzień przeszukując coś, co napisałem, próbując dowiedzieć się: „Jak tym razem to spieprzyłem?” drapiąc się po głowie i gotów się poddać. W końcu odkryłem, że zostawiłem gdzieś pojedynczy średnik lub użyłem tabulatora zamiast spacji, a zanim mój kod znów zadziała, będzie to koniec dnia. Poczułbym się jak totalny idiota; to byłoby stratą czasu.

Przydarzy ci się coś takiego i doprowadzi cię to do szaleństwa. Tak więc jednym z kluczy do sukcesu jest to: bądź cierpliwy i bądź dla siebie łagodny . Niektóre z najlepszych porad na ten temat zalecają skupienie się na procesie, a nie na celach. Jeśli skupisz się na swoim ostatecznym celu („Chcę zbudować stronę internetową do końca czerwca”), zniechęcisz się i poczujesz się jak porażka. Jeśli pozwolisz sobie na postępy tak długo, jak długo, odniesiesz większy sukces.
4. Ćwicz Ćwicz Ćwicz
Jak każda umiejętność, osiągnięcie w niej dobrego sprowadza się do ćwiczeń. Nie ma nic lepszego niż zrobienie czegoś, nauczenie się, jak to zrobić! Nawet jeśli możesz poświęcić tylko kilka godzin w tygodniu, jeśli będziesz ćwiczyć regularnie, pewnego dnia odkryjesz, że umiesz programować. W końcu rozwiniesz intuicję, a coś, co początkowo zajmowało cały dzień (np. wyśledzenie błędu), może teraz zająć tylko kilka sekund.
Kiedy czujesz, że w mniejszym lub większym stopniu opanowałeś podstawy programowania, świetnym sposobem na zdobycie praktyki jest rozpoczęcie pierwszego projektu. Pomyśl o prostej aplikacji, którą chcesz zbudować, takiej jak lista rzeczy do zrobienia lub kalkulator (znowu zacznij od małej) i spróbuj. To nauczy Cię, jak rozwiązywać problemy architektoniczne i projektowe oraz budować różne elementy, aby pasowały do działającej całości. Są to podstawowe umiejętności, które pozwolą ci naprawdę nazywać siebie programistą.
Zasoby
W zależności od swoich celów, stylu uczenia się i środków, możesz chcieć korzystać z różnych zasobów podczas swojej podróży. Aby pomóc Ci określić, które metody są dla Ciebie odpowiednie, oto krótkie podsumowanie niektórych narzędzi, których możesz użyć, uporządkowanych, z grubsza, od bardziej ustrukturyzowanego uczenia się do mniej ustrukturyzowanego uczenia się.
Uczenie strukturalne
Jest to kategoria opcji, która zapewnia instruktorom, pracę domową, testy, stopnie, terminy i rzeczywiste konsekwencje, jeśli nauka nie jest Twoim najwyższym priorytetem. Są to opcje, w których będziesz musiał iść na zajęcia lub wypaść z programu.
Formalny stopień uniwersytecki
Najbardziej kosztowna, ale dla wielu najcenniejsza opcja, formalny dyplom uniwersytecki, zapewni najlepszą podstawę do dobrze prosperującej kariery w programowaniu i technologii komputerowej. Otrzymasz uznanie za swoje osiągnięcia w postaci stopnia naukowego (znacząca przewaga przy wejściu na rynek zawodowy). Ale co ważniejsze, wyjdziesz z głębokim i dokładnym zrozumieniem wszystkiego, co komputerowe, a twoje umiejętności pisania naprawdę najwyższej klasy, efektywnego oprogramowania to odzwierciedlą.
Oto niektóre z rzeczy, których możesz się dogłębnie nauczyć na każdym przyzwoitym programie uniwersyteckim, a znalezienie dokładnych instrukcji dla innych może być trudniejsze.
- Obwody elektryczne — podstawowa fizyka leżąca u podstaw praktycznie całego sprzętu komputerowego.
- Cyfrowe obwody logiczne - Jak reprezentować prawdę i konstrukcje logiczne za pomocą obwodów.
- Mikroprocesory i systemy komputerowe - Jak obwody logiczne są łączone w celu stworzenia programowalnej maszyny obliczeniowej. Co się dzieje na tych wszystkich małych metalowych szpilkach i drukowanych drutach.
- Systemy operacyjne — jak zaprogramować komputer do zarządzania, organizowania i ochrony siebie oraz umożliwiać bezpieczne działanie wielu aplikacji.
- Bazy danych — jak przechowywać i kopiować duże ilości danych bez ich utraty, uszkodzenia lub uniemożliwienia przeszukiwania.
- Sieci — Jak różne i niepowiązane ze sobą systemy komputerowe mogą się ze sobą komunikować.
- Matematyka wyższa - w tym rachunek różniczkowy i algebry liniowej. Niezbędny w każdej karierze w zaawansowanych lub najnowocześniejszych dziedzinach.
- Przetwarzanie sygnału - Jak przekroczyć granicę ze świata analogowego do cyfrowego i vice versa.
- Metody numeryczne — gdy rzeczywiste problemy nie pasują do komputera.
Szkoła informatyki i inżynierii skopie ci tyłek i będziesz musiał poświęcić się i poświęcić się jej ukończeniu. Ale nagrody będą tego warte. Walczyłam o zdobycie własnego dyplomu, ale dzień, w którym go otrzymałem, pozostaje jednym z najbardziej dumnych dni w moim życiu.
Bootcampy
Tak zwane programy „bootcamp” powstały w celu zaspokojenia potrzeb tych, którzy nie mają czasu ani zasobów, aby uzyskać formalne wykształcenie, ale chcą ciężko pracować i przynajmniej nauczyć się minimum niezbędnego do rozpoczęcia kariery programistycznej. Zarówno pod względem kosztów, jak i wymaganego zaangażowania mieszczą się one między stopniem formalnym a opcjami samodzielnymi omówionymi poniżej.
Bootcampy zazwyczaj obejmują od 8 do 12 tygodni intensywnej nauki i kosztują około 10 000 USD. Obejmują bardzo dużo materiału w krótkim czasie, podczas którego będziesz musiał poświęcić większość innych zajęć. Obiecują jednak, że przygotują Cię do tworzenia oprogramowania w świecie rzeczywistym i wprowadzą Cię na szybką ścieżkę do kariery programistycznej. Wiele bootcampów kończy się dniami kariery lub w inny sposób próbuje umieścić cię w płatnej pracy wkrótce po ukończeniu studiów.
Bootcampy to stosunkowo nowe i wybuchowe zjawisko. W związku z tym nadal trudno jest zmierzyć ich wskaźnik sukcesu, a wiele z nich nie ma jeszcze udokumentowanej historii umieszczania absolwentów na stanowiskach pracy. Mając to na uwadze, można oczekiwać, że dostępne programy będą się poprawiać, ponieważ ta rozwijająca się nowa branża nadal się rozwija. Dopóki dokładnie prowadzisz badania, może się okazać, że jest to idealna opcja dla Ciebie.
Większość bootcampów to programy lokalne, więc będziesz musiał zobaczyć, co jest dostępne w Twoim mieście. Jeśli mieszkasz w dużej metropolii, być może znajdziesz to, czego szukasz na tej lub tej liście.
Częściowo ustrukturyzowana nauka
Coraz więcej zasobów jest dostępnych każdego dnia dla tych, którzy najlepiej pracują z elementem struktury i wskazówek, ale nie mają czasu ani zasobów, aby poświęcić się formalnemu stopniowi naukowemu lub programowi bootcamp. Te opcje są zazwyczaj oferowane wyłącznie online, a wiele z nich jest całkowicie darmowych! Ponieważ duże zapotrzebowanie na takie usługi stało się widoczne, narzędzia te szybko zyskały na zaawansowaniu i dostarczaniu wartości. Kursy w zakresie tworzenia oprogramowania w naturalny sposób napędzały znaczną część tej ewolucji, ponieważ uczenie się i nauczanie oprogramowania za pomocą oprogramowania ma oczywiste korzyści.
Masowe otwarte kursy online (MOOC)
Kursy MOOC są niesamowitym źródłem informacji i robią duże postępy w wyrównywaniu szans dla wysokiej jakości edukacji w przystępnej cenie. Oferują one wiele struktur i wskazówek najlepszych na świecie formalnych zajęć uniwersyteckich, ale są dostępne online dla każdego, kto ma połączenie z Internetem. Wiele popularnych kursów MOOC jest również całkowicie bezpłatnych , chociaż za dodatkową opłatą (i zobowiązaniem do studiowania) można również uzyskać formalne zaliczenie wielu zajęć, odpowiadające zaliczeniom uniwersyteckim.
Istnieje wiele wysokiej klasy platform MOOC dostępnych online z kursami prowadzonymi przez profesorów z najbardziej prestiżowych uniwersytetów na świecie oraz platformy społecznościowe, dzięki którym Ty i Twoi koledzy z klasy na całym świecie możecie pomagać sobie nawzajem w nauce. Oto niektórzy z najbardziej znanych dostawców:
- Coursera
- EdX
- Udacity
Pamiętaj, że zgodnie z reklamą kursy te oferują zajęcia na poziomie uniwersyteckim, więc lepiej przygotuj się na ciężką pracę, aby przez nie przejść!
Witryny z samouczkami z przewodnikiem
Jeśli lubisz strukturę i wskazówki, ale nie lubisz terminów, istnieje wiele świetnych platform internetowych, które zapewniają zautomatyzowane szkolenie krok po kroku z wykorzystaniem szerokiej gamy metod dostarczania. Niektóre są oparte na samouczkach wideo, inne na tekście. Wiele z nich zawiera interaktywne edytory kodu, które można ćwiczyć w przeglądarce. Zapewniają one dużą elastyczność w nauce we własnym tempie, czy to pół godziny ćwiczeń pod koniec każdego dnia, czy 10-godzinny maraton w weekend.
Podczas gdy wiele z tych platform wymaga płatnej subskrypcji, aby uzyskać dostęp do wszystkich treści, większość oferuje bezpłatne wersje próbne, dzięki czemu możesz zacząć od razu i sam zdecydować, czy to działa dla Ciebie.
- Akademia Kahna
- Udemy
- Akademia kodowania
- Kod Avengers
- Szkoła kodowania
- Domek na drzewie
- Lynda
- Wielowidzenie
To tylko krótka lista, więc rozejrzyj się i zobacz, co jeszcze tam jest!
Nauka niestrukturalna
Dla tych, którzy chcą znaleźć własną drogę lub poszerzyć swoją wiedzę na temat wolnego czasu, bez presji zorganizowanych lekcji, poniższe narzędzia zapewniają samodzielne podejście. Nawet jeśli zamierzasz zastosować jedno z powyższych podejść, wiele z tych zasobów może okazać się pomocnych w uzupełnieniu nauki lub zapewnieniu platformy do ćwiczeń.
Wiertła strony internetowe
Jeśli Twoim celem jest po prostu ćwiczenie rozwiązywania problemów programistycznych, internet po raz kolejny Cię obejmuje. Poniższe witryny oferują coraz większe zestawy wyzwań związanych z kodowaniem, wraz z interaktywnymi interfejsami kodowania, służącymi do rozwiązywania problemów, oceniania rozwiązań na bieżąco i porównywania ich zestawienia z rozwiązaniami innych użytkowników.
- Ćwiczenie.io
- SprawdźO
- CodeChef
- KodEval
- Wojny kodów
- Zmienność
- HackerRank
Filmy
Bierna nauka programowania ma ograniczoną praktyczność, ale jeśli chcesz przyswoić niektóre z głębszych koncepcji, między spotkaniami lub wieczorem przy lampce wina, te serie wykładów są jednymi z najlepszych na świecie. Jeśli lubisz tego typu rzeczy, sprawdź, co jeszcze jest dostępne w YouTube i w Internecie.
- MIT OpenCourseWare
- Seria wykładów na Uniwersytecie Stanforda
Książki
Nawet przy wszystkich dostępnych cudach technologii dla wielu ludzi wciąż nie ma nic lepszego niż dobra książka, w której można się zagłębić i uzyskać głębokie zrozumienie tematu. Jeśli lubisz uczyć się w ten sposób, sprawdź Listę najlepszych bezpłatnych książek o programowaniu firmy Toptal.
W zamknięciu
Nauka kodowania to bardzo osobista podróż. Każdy zaczyna z innymi zasobami i różnymi celami, po drodze napotykając różne wyzwania i możliwości. Nie martw się o to, co robią inni ani jak się tam dostali. Nawet dla doświadczonych programistów sama podróż nigdy się nie kończy, ponieważ ciągle są nowe rzeczy do nauczenia się.
Tak więc moja rada dla ciebie to: nie spiesz się i ciesz się podróżą! Jest wiele do odkrycia, a świat cudów czeka na Ciebie. Tysiącmilowa podróż zaczyna się od jednego kroku. Oto kilka dobrych butów. Powodzenia!