- Są dwie ważne rzeczy, które warto wiedzieć o nauce kodowania:
- Pierwszy punkt, który widziałem w kółko. Ludzie, którzy mówią mi, że zamierzają nauczyć się kodować, potem zaczynają się uczyć i myślą, że to nudne jak cholera.
- To prowadzi mnie do punktu numer dwa. Nauka kodowania nie oznacza już tego samego.
- Problem polega na tym, że to nie jest to, czego ludzie chcą. Chcą coś zbudować. I nie powinniśmy już brać za pewnik, że aby coś zbudować, trzeba nauczyć się wszystkiego o komputerach, a nawet kodowania w ogóle.
- Jako nauczyciele musimy uznać, że kiedy ludzie mówią, że chcą się nauczyć kodować, często naprawdę mają na myśli to, że chcą zbudować aplikację internetową lub mobilną.
- Jako student: ucz się tego, czego chcesz się nauczyć.
- Więc jak długo trwa nauka kodowania?
Są dwie ważne rzeczy, które warto wiedzieć o nauce kodowania:
- Większość ludzi tak naprawdę nie chce „nauczyć się kodować”
- Uczenie się kodowania nie oznacza już jednej rzeczy
Ważne jest, aby wiedzieć te dwie rzeczy, ponieważ w przeciwnym razie sposób, w jaki uczymy ludzi o kodowaniu, jest błędny, a ludzie się nie nauczą.
Pierwszy punkt, który widziałem w kółko. Ludzie, którzy mówią mi, że zamierzają nauczyć się kodować, potem zaczynają się uczyć i myślą, że to nudne jak cholera.
Nazywam to błędem kodowania. Ludzie myślą, że chcą się nauczyć kodować, ale to, co naprawdę chcą zrobić, to zbudować produkt.
Gdy się nad tym zastanowimy, powinno to być dość oczywiste. Znajomość kodu sama w sobie nie jest wartościowa, jeśli nie można z nią nic zrobić. Tak więc dla większości ludzi, największą motywacją do nauki kodowania jest budowanie czegoś (choć na drugim miejscu jest zdobycie lepiej płatnej pracy).
To prowadzi mnie do punktu numer dwa. Nauka kodowania nie oznacza już tego samego.
Było kiedyś tak, że aby kodować, trzeba było wiedzieć prawie wszystko o komputerach (stąd termin „Informatyka”). Potem rzeczy zostały wyabstrahowane do punktu, w którym nie trzeba było zagłębiać się w pewne tematy, chyba że było to naprawdę potrzebne. Na przykład, jako programista aplikacji internetowych w tym momencie, muszę wiedzieć bardzo mało o administracji systemu, ponieważ jest to głównie wykonywane dla mnie przez narzędzia takie jak Heroku i Amazon Web Services.
Więc kiedy ludzie mówią, że chcą się nauczyć kodować, większość nauczycieli zaczyna tam, gdzie zakładają, że powinni (gdzie zawsze mieli), z typami danych, różnymi strukturami języka i pomóc uczniom rozwinąć głębsze zrozumienie komputerów.
Problem polega na tym, że to nie jest to, czego ludzie chcą. Chcą coś zbudować. I nie powinniśmy już brać za pewnik, że aby coś zbudować, trzeba nauczyć się wszystkiego o komputerach, a nawet kodowania w ogóle.
Na przykład, jeśli ktoś już pracuje ze świetnym programistą back-end, sensowne byłoby nauczenie ich tylko front-endu, bo to będzie dla nich najbardziej użyteczna rzecz. Będą one faktycznie dostać to, co chcą być zrobione szybciej, i będą mogli nauczyć się back-end w późniejszym czasie. W ten sposób zmniejszamy obciążenie poznawcze ucznia i umożliwiamy mu szybszą naukę.
Gdy tworzysz strony internetowe, masz do czynienia z:
- HTML
- CSS
- JavaScript
- Back-end Programming
- Databases
- Hosting/DNS
Jest tu wiele do nauczenia się. I większość z nich jest całkiem nieistotna dla rozwoju nie-strony (z wyjątkiem baz danych i struktury aplikacji oczywiście).
Jak widzę, większość edukacji kodowania obejmuje przynętę i przełącznik. To idzie tak:
Student: „Chcę się nauczyć kodować”. (Ale to, co naprawdę – ale nie wiedzą wystarczająco dużo, aby zapytać – to chcę zbudować aplikację internetową lub mobilną.)
Nauczyciel: „Ok, zacznijmy od typów danych.”
Uczeń: „…”
(2 tygodnie później)
Nauczyciel: „Teraz możemy zaprojektować wydajne algorytmy.”
Student: „Ale ja chciałem tylko zrobić fajnie wyglądającą stronę internetową!”
Jako nauczyciele musimy uznać, że kiedy ludzie mówią, że chcą się nauczyć kodować, często naprawdę mają na myśli to, że chcą zbudować aplikację internetową lub mobilną.
To dlatego, że dla nich to właśnie kodowanie JEST. To wszystko, z czym kiedykolwiek zetknęli się na temat kodowania. Problem w tym, że nie wiedzą, jak o to poprosić! Więc nie powinniśmy po prostu brać wszystkiego co mówią za wartość nominalną. Naszym zadaniem jako wychowawców jest czytanie między wierszami.
Pamiętam, że kilka lat temu oglądałem sztukę teatralną, w której ksiądz mówi, że trzeba mówić prawdę nawet w trudnych okolicznościach. Osoba, z którą rozmawia, pyta: „ale co jeśli ktoś zada ci pytanie, a ty wiesz, że prawda go zaboli?”. Ksiądz odpowiada: „Kiedy ktoś zadaje ci pytanie, odpowiedz na pytanie, które on NAPRAWDĘ zadaje.”
Również w edukacji trzeba czytać między wierszami, aby zorientować się, czego ludzie naprawdę chcą. Jeśli pytają o jakąś konkretną rzecz, musisz poprowadzić tę osobę w kierunku tego, co doprowadzi ją do idealnego doświadczenia edukacyjnego. Jeśli możemy to zrobić, wtedy możemy upoważnić o wiele więcej ludzi do robienia niesamowitych rzeczy.
Jako student: ucz się tego, czego chcesz się nauczyć.
Jedną z najlepszych rzeczy, jakie możesz zrobić w swoich własnych przygodach z nauką, jest nauczenie się trochę o wielu rzeczach – więc wiesz, w co chcesz się zagłębić później.
Tutaj w One Month, kiedy mówimy, że możesz „nauczyć się kodować w 30 dni”, to co mamy na myśli to to, że w ciągu zaledwie 30 dni możesz nauczyć się wystarczająco dużo HTML (JavaScript lub Python), aby być rozmownym w kodzie, na tyle pewnym siebie, że możesz wyróżnić się na rynku pracy.
Więc jak długo trwa nauka kodowania?
Nazywamy się „One Month,” więc czy to oznacza, że po 30 dniach kodowania nasi studenci kończą naukę? Wcale nie! Zajmuję się kodowaniem od ponad 15 lat i nadal jest tak wiele rzeczy, których nie wiem – ale nie o to chodzi. W „nauce kodowania” nie chodzi o to, aby znać każdą rzecz w języku, chodzi o to, aby wiedzieć wystarczająco dużo, aby być rozmownym i aby odcisnąć piętno na świecie używając swojego umysłu i swoich kreatywnych umiejętności.