Większość ludzi albo nie zaczyna, albo rezygnuje z nauki kodowania z dwóch powodów:

  • Nauka pierwszego języka programowania może być bardzo trudnym zadaniem
  • Ważne jest, aby mieć dobrego nauczyciela (lub przynajmniej dobre instrukcje), ale znalezienie go może być trudne

W tym artykule omówię:

  • Porozmawiajcie o radzeniu sobie z tymi problemami w praktyce
  • Spróbuj uwolnić się od niektórych myśli, które możesz mieć na temat swoich możliwości nauczenia się pisania kodu
  • Daj ci kilka znaków drogowych, na które musisz uważać, jeśli zdecydujesz się pozostać na tej drodze

Pierwszy język programowania

Niektórzy ludzie są naturalnie dobrzy w zapamiętywaniu poleceń i składni języka programowania, a niektórzy nie. Jednak to tylko jeden aspekt tego, czego potrzeba, aby być dobrym programistą. Musimy także wziąć pod uwagę inne cechy, które zaobserwowałem w tej dziedzinie przez prawie dekadę:

  • Dobra wyobraźnia do wizualizacji architektur oprogramowania, tworzenia pięknych interfejsów użytkownika lub wymyślania nowych i lepszych rozwiązań starych problemów
  • Umiejętność rozumowania na temat systemów logicznych, które składają się z formalnych definicji, abstrakcyjnych danych i mechanizmów kontrolnych dyktujących przebieg programu w czasie
  • Umiejętność organizowania projektów, przepływów pracy, zasobów i ludzi w celu uzyskania optymalnej efektywności
  • Wysiłek ciągłego uczenia się i cierpliwość, aby nigdy się nie poddawać, nawet jeśli będziesz musiał spędzić dwa pieprzone tygodnie na naprawianiu błędu spowodowanego użyciem jednego znaku równości zamiast dwóch. Prawdziwa historia.

Jeśli znajdziesz ten artykuł, jestem pewien, że przy odrobinie wysiłku i cierpliwości możesz zostać dobrym programistą. Co więcej, osoba, która potrafi zapamiętać polecenia i składnię przy niewielkim wysiłku, niekoniecznie wie, jak pisać programy, które rozwiązują problemy i zarabiają pieniądze.

Napisz kod

Sugeruję, aby każdy poświęcił jak najwięcej czasu na pisanie kodu, a bardzo mało czasu na zamartwianie się tym, czy masz doskonale sformułowaną definicję polimorfizmu<. /em>. Takie definicje to wielka masa słów opisujących rzeczy, które często są szokująco proste do zrozumienia w samym kodzie.

Zamiast zbytnio przejmować się pamięcią dyskursywną, pomyśl o programie, który chcesz zbudować. Wybierz coś, co Cię interesuje. Lubiłem ćwiczyć, więc stworzyłem dziennik ćwiczeń jako mój pierwszy prawdziwy program. Jeśli wybierzesz coś, co Cię interesuje, będziesz bardziej zmotywowany do nauki.

Ponadto, jeśli nauczysz się tematów związanych z budowaniem tego programu, nauczysz się ich lepiej, niż gdybyś próbował studiować je jeden po drugim, jak zwykle zachęcają w szkole. Będziesz także tworzyć coś, co może potencjalnie pomóc Ci w znalezieniu pracy, jeśli opublikujesz kod źródłowy na platformie takiej jak GitHub lub BitBucket.

Jeśli to nie była wystarczająca zachęta do zastosowania podejścia do uczenia się opartego na projektach, mam dla Ciebie jeszcze jedną. Czy zauważyłeś, że nie ma końca różnym tematom, które można studiować w tej dziedzinie? Koncentrując swoją uwagę na tematach edukacyjnych, które rozwiązują praktyczne problemy w Twoich programach, nie będziesz już tkwić w paraliżu spowodowanym nadmierną analizą.

Po prostu pisz dalej kod. Nie znam ani jednego świetnego programisty, który nie napisałby tony kodu.

Nie wszystkie zasoby edukacyjne są sobie równe

Czasami czujemy się naprawdę zdemoralizowani i czujemy się głupio, że nie jesteśmy w stanie zrozumieć jakiegoś pojęcia lub terminu żargonu. Czasem mamy wrażenie, że naprawdę coś rozumiemy dopiero na poziomie zapamiętywania jakiegoś pojęcia, a nie podczas stosowania go w praktyce.

Szczerze mówiąc, w większości przypadków winny jest nauczyciel. Tak, zgadza się, jestem nauczycielem programowania i właśnie powiedziałem, że jeśli nie rozumiesz tego, czego cię uczę, to zazwyczaj jest to moja wina.

To nie moja wina, jeśli:

  • Masz wykształcenie akademickie lub doświadczenie praktyczne, co oznacza, że ​​nie powinienem ci tłumaczyć podstawowych pojęć
  • Kiedy wykładałem, co 17 sekund odwracałeś uwagę od sprawdzania mediów społecznościowych

To moja wina, jeśli:

  • Nie podałem powodu, dla którego chcesz poznać koncepcję, której uczę, poza tym, że powiem, że będzie ona na teście
  • Założyłem, że moje obce słownictwo zawierające żargonowe terminy, takie jak Monada, ForkJoinPool,lub Asymptotyczna złożoność środowiska wykonawczego, jest czymś, co normalny człowiek intuicyjnie zna
  • Nie posługiwałem się rozmaitymi zmysłami, znanymi analogiami i praktycznymi przykładami, aby uczynić często suchy i nudny przedmiot ciekawym (a przez to łatwiejszym do nauczenia się, bo są to wydziały ze sobą powiązane)
  • Pomyliłem moją niezdolność do wyjaśnienia tematu jako Twój problem

To stawia poprzeczkę dość wysoko i masz co do tego cholerną rację. Niekompetentny nauczyciel może sprawić niezwykłe problemy uczniom, którzy pokładają w nim zaufanie.

Jeśli więc rozpocząłeś tę podróż lub rozważasz ją, ale masz problem ze znalezieniem dalszej ścieżki, idź dalej. Skontaktuj się z dobrym nauczycielem, a nawet rozważ poproszenie go o pomoc. Zrozum, że poczucie zagubienia, zagubienia i przytłoczenia jest normalną częścią robienia czegoś trudnego. Wszyscy przez to przechodzimy, nawet prawdziwi geniusze (do tej pory spotkałem dwóch i nawet oni mają trudności), więc przestań się martwić porównywaniem się z innymi i pogódź się z tym, kuzynie.

Media społecznościowe | Wsparcie

Ten artykuł został napisany przez Ryana Michaela Kaya. Jestem programistą/inżynierem samoukiem, który tworzy treści edukacyjne na różnorodne tematy i na wielu różnych platformach. Najlepszym sposobem na wsparcie mnie jest śledzenie mnie na różnych platformach i dołączenie do mojej społeczności programistów (mamy setki członków!):

Ogłoszenia:
https://www.facebook.com/wiseassblog
https://twitter.com/wiseAss301

Poradniki i kursy:

Darmowe samouczki, pytania i odpowiedzi na żywo, kodowanie na żywo:
https://www.youtube.com/channel/UCSwuCetC3YlO1Y7bqVW5GHg

Programowanie Java Desktop z JavaFX (średniozaawansowany) — https://skl.sh/31pzCa1

Kompletne wprowadzenie do programowania w języku Java dla początkujących (początkujący — średniozaawansowany) — https://skl.sh/3fZbjos

Aplikacje na Androida z Kotlinem i Android Studio (początkujący) — https://skl.sh/2ZU6ZT9

Material Design Programowanie na Androida w Kotlinie (średniozaawansowany) — https://skl.sh/2OrwrYZ

Połącz:

LinkedIn- https://www.linkedin.com/in/ryan-kay-808388114/