211service.com
Drodzy wszyscy uczący programowania: robicie to źle
Uczenie kodowania jest gorące. Akademia kodowania słynna rejestracja Burmistrz Nowego Jorku jako użytkownik (oraz niedawno pozyskał 10 milionów dolarów kapitału wysokiego ryzyka ) oraz popularny koncern nauczania online Khan Academy właśnie uruchomiliśmy pakiet lekcji programowania . Nastąpiła reakcja: programiści kariery mają szydzili z idei kodowania jako umiejętności czytania i pisania, podczas gdy badanie akademickie twierdziło, że niektórzy potrafią kodować, a inni po prostu nie.
Bret Victor , były projektant interfejsów dla Apple, uważa, że są Wszystko zło. w niszczycielski i przekonujący interaktywny esej , twierdzi, że strony programistyczne dla majsterkowiczów są w większości bezużyteczne ze względu na ich nieprzejrzyste interfejsy. (Korzystając z internetowych samouczków Khana, on pisze , jest jak próba nauczenia się gotowania poprzez wbijanie losowych przycisków w nieoznaczonej kuchence mikrofalowej).
Ale to tylko połowa problemu. Wiktor myśli, że samo programowanie Jest zepsuty. Często mówi się, że aby dobrze kodować, trzeba umieć myśleć jak komputer. Dla Victora jest to absurdalnie zacofane – i to jest prawdziwy powód, dla którego programowanie jest postrzegane jako fundamentalnie trudne. Komputery są człowiek narzędzia: dlaczego nie możemy ich kontrolować nasz posługując się technikami, które przychodzą nam wszystkim naturalnie?
Główny problem z programowaniem sprowadza się do tego, że programista musi sobie wyobrazić wykonanie programu i nigdy nie widzi danych, powiedział mi Victor. Aby zilustrować ten problem, przedstawia kolejną żywą analogię do gotowania:
Oczywiście jest to okropny sposób na nauczenie początkującego gotowania potraw. Większym spostrzeżeniem Victora jest to, że dla doświadczonego szefa kuchni jest to okropny sposób na tworzenie nowych potraw. Szefowie kuchni nie są zmuszani do perfekcyjnej symulacji wszystkiego pomiędzy składnikami a nowym sufletem w swoich głowach przed dotknięciem jakiejkolwiek potrawy; nie spodziewaliby się też, że wszystko, co dzieje się pomiędzy zbieraniem składników a wyciąganiem sufletu z piekarnika, będzie przed nimi ukryte. Ale tak właśnie dzieje się większość pracy związanej z programowaniem, według Victora.
Nic dziwnego, że programowanie wydaje się czymś, co tylko tych z dziwacznym talentem do manipulowania abstrakcyjnymi symbolami mógłby kiedykolwiek zrobić. Tak to ustawiliśmy.
Esej Victora jest pełen interaktywnych przykładów, jak to naprawić (niestety nie można ich osadzić, więc zdecydowanie kliknij, aby je sprawdzić ): od przeprojektowania IDE aby wizualizować przepływ danych od jednej instrukcji do drugiej, aby przemyśleć na nowo podstawowe metafory, które stanowią podstawę samych języków programowania. (Uwaga, spoiler: 45-latek Logo dostaje dużo więcej miłości niż Przetwarzanie .)
Ale w jakim celu? Czy programowanie naprawdę wszystko schrzaniło? Co z tego, że my, normalni, nigdy tak naprawdę nie jesteśmy w stanie tego pojąć — czy obecne podejścia do uczenia się i pisania kodu nie są wystarczające do wygenerowania wystarczającej liczby programistów, aby świat się kręcił?
No tak. Ale tylko wtedy, gdy podpiszesz się pod analogią programistów jako hydraulików, czego Victor zdecydowanie nie. Bill Atkinson (twórca Hiperkarta ) chciał, aby tworzenie oprogramowania przypominało rysowanie lub pisanie – coś, co każdy może zrobić, mówi Victor. Oczekujemy, że każdy umie napisać list. Możliwość tworzenia własnego oprogramowania do własnych celów jest bardzo potężna.
Victor nie mówi tylko o rozwijaniu własnego klienta Twittera. To, co jest naprawdę potężne, to umiejętność budowania/pisania tego, co nazywa eksplorowalne wyjaśnienia : interaktywne symulacje własnych pomysłów i argumentów lub argumentów innych osób. Co jeśli następny artykuł, który czytałeś o globalnym ociepleniu lub bezpieczeństwie jądrowym, zawierał wbudowany model badania jego twierdzeń? Jest to dosłownie programowanie jako umiejętność czytania i pisania — to znaczy wzmocnienie myślący — z potencjałem, który można udostępnić każdemu. Ale tylko wtedy, gdy wyjdziemy poza kąty, wplątaliśmy się w to, czym jest programowanie, jak to zrobić i jak go uczyć.
Mimo to miliony programistów nie przemyślą nagle, jak wykonują swoją pracę; milionów narzędzi, aplikacji, języków programowania i środowisk IDE nie można przeprojektować z dnia na dzień. Victor mówi, że to po prostu kolejny powód, by zacząć teraz niszczyć fundamenty. Thomas Kuhn, autor Struktura rewolucji naukowych sugerował, że kiedy nastąpi zmiana paradygmatu, starzy naukowcy nigdy nie przyjmą nowego sposobu myślenia, mówi Victor. Po prostu przechodzą na emeryturę i zostają zastąpione przez nowe pokolenie, które myśli w nowy sposób.