Zostałem dobrowolnie usiąść i porozmawiać o życiu i pracy programisty z 15-letnim stażem pracy w przyszłym tygodniu.
Połowy są takie
- Mam tylko pół godziny i
- Będę tylko jedną z osób, które z nią rozmawiają - inni ludzie pełniący różne role w biznesie będą również przez cały dzień przeglądać z nią elementy swojej pracy.
Co powinienem omówić i czego, u licha, mogę jej nauczyć w ciągu zaledwie pół godziny?
Zakładam, że prawdopodobnie nie ma doświadczenia w programowaniu lub programowaniu.
teaching
profession
Dexter
źródło
źródło
Odpowiedzi:
Często kontaktuję się z licealistami, więc dość często odpowiadam na to pytanie. Pamiętaj, że 15-latkom łatwiej jest wytłumaczyć programowanie niż 50-latkom - więc nie musisz głupiutkich rzeczy ani używać zbyt daleko idących analogii.
Zwykle zaczynam od przykładów takich programów:
Potem zwykle wyjaśniam, że kodujemy programy w formalnym języku, który komputer może rozpoznać, często wpisując je w coś tak prostego jak Notatnik. Języki wyglądają jak skrzyżowanie matematyki z angielskim, opisując pojęcia oraz podając formuły i instrukcje dla komputera.
Następnie zwykle pytają, czy cały czas jestem przy komputerze, czy właśnie dlatego zawsze jestem na Facebooku i dlaczego moje oczy jeszcze się nie pogorszyły. Faceci pytają, czy umiem „hakować ludzi”, a dziewczyny pytają, czy to dobre pieniądze lub ile dziewczyn jest na zajęciach z informatyki.
Następnie, jeśli nadal są zainteresowani, zwykle zaczynają zadawać konkretne pytania, na które łatwiej jest odpowiedzieć (lub przynajmniej na Wiki): rzeczy takie jak sposób utworzenia gry, działanie programu Windows Messenger itp.
Jeśli masz w pobliżu komputer, możesz pokazać i powiedzieć trochę kodu - coś, co miałoby wymierne efekty, takie jak moduł obsługi kliknięcia przycisku w oknie dialogowym ustawień w Firefoksie, główna pętla lub kod fizyki w silniku gry, niektóre Źródło JavaScript ze strony internetowej itp.
źródło
Wyjaśniłem to mojemu pięciolatkowi:
Ja: „Wiesz, jak w opowieściach ludzie wypowiadają magiczne słowa i zmieniają rzeczy na świecie?”
Jej: „Taaaa?”
Ja: „To właśnie jest programowanie komputerowe”.
Jej (cicho): „Wow”.
15-30 minut to za mało, aby wyjaśnić cokolwiek rzeczywistego, a wyjaśnienie leżącej u ich podstaw złożoności jest pewnym sposobem, aby sprawić, że zaczną krzyczeć. Pracujesz nad tym każdego dnia, zapominasz, jak to jest cholernie fajne. Żadna inna profesja na świecie nie tworzy rzeczy funkcjonalnych z samych słów ... W pewnym momencie wszyscy inni muszą wyjść do świata mięsa i zacząć bić młotkiem. To jedyny sposób, w jaki mogą przekształcić swój pomysł w działającą rzecz.
Nie my.
źródło
15-letnia osoba może zrozumieć każdą koncepcję. Sam zacząłem programować w wieku 14 lat (w szkole, wiele lat temu)
30 minut wystarczy na wersję demonstracyjną. Pokaż jej magię programowania za pomocą czegoś tak powszechnego jak przeglądarka.
źródło
Kroki
Jako prawie 15-latek mogę śmiało powiedzieć, że powinieneś zacząć spektakularny start.
Wyjaśnij, jak to robisz.
10101010
cały dzień. Powiedz im, że nawet nie wiesz, jak to zrobić. ( Lie. Ty nie wiesz, co10101010
oznacza, prawda;)) Powiedz im, że to było rok temu.Pokaż im próbkę jakiegoś pseudokodu. Ułatw zrozumienie:
Przejdź przez ten krok po kroku. Powiedz im, że nie tak dokładnie wygląda kod. Kod wygląda
English + Math
. Ale nie jest trudno nauczyć się „języka” (czytaj: składnia), w którym mówisz.Pokaż im przykład z nieco więcej „matematyki”, tym razem.
Wyjaśnij, że ten kod dodaje dwie liczby razem, jak kalkulator. Pokaż im „prawdziwy” kod do tego. (Upewnij się, że umieściłeś większość interfejsu użytkownika i innych rzeczy w osobnym pliku, a plik, który pokazujesz, jest krótki i prosty.) Zmień go na program odejmowania (zmieniając znak z
+
na-
) tuż przed ich oczami.Wyjaśnij, co muszą wiedzieć, aby programować. (Na różnych poziomach.)
x + 1 = 2
, tox = 1
.Warunki, których możesz użyć
Wiemy więcej niż myślisz.
Warunki, które powinieneś wyjaśnić
Tak, wciąż potrzebujemy wyjaśnienia.
10101010
.Warunki, których nie możesz użyć
Niektórzy z nas znają te rzeczy, ale i tak nie mów.
źródło
Jeśli zaczniesz mówić o procesach, wzorcach, wymaganiach itp., Natychmiast się wyłączy. Dzisiejsze dzieci mają motywację graficzną i wizualną, więc przyniosę coś, co pomoże w promowaniu tego rodzaju bodźców. Pokaż jej coś niesamowitego w Internecie, a następnie na wysokim poziomie opisz jej, co sprawia, że TO się dzieje. Sugerowałbym nawet zabranie ze sobą laptopa programistycznego i spowodowanie, by na ekranie stało się coś „fajnego” - zmień kod przed nią, a następnie obserwuj, jak zmienia się na ekranie. W tym wieku są BARDZO sprytni i wszystko, co wizualne, wzbudzi zainteresowanie.
źródło
Alice
?Istnieją dwie świetne analogie, na których opieram się podczas wyjaśniania pracy programistów. Jeden to przepis; ta metafora jest przydatna do wyjaśniania na małą skalę, co robi każdy wiersz kodu. Praca programisty polega na pisaniu przepisu, a komputer jest kucharzem.
Inną analogią jest to, że duży program jest jak duża firma. Istnieje cała masa różnych działów, które koncentrują się na różnych obszarach i wysyłają wiadomości tam i z powrotem, a całość ostatecznie osiąga cele firmy. Praca programisty polega na projektowaniu konfiguracji organizacji, a komputer to wszyscy ludzie w firmie.
źródło
Powiedziałbym, żeby był ogólny. Programowanie i wiele innych zawodów sprowadza się do rozwiązywania problemów. Pokaż jej, jak codziennie rozwiązujesz problemy. Możesz opowiedzieć jej o projekcie, nad którym pracujesz, i w jaki sposób pomoże swoim klientom. Dołącz także trochę o tym, dlaczego (prawdopodobnie) lubisz swoją pracę.
W moim przypadku opracowałem edukacyjną stronę z samouczkami wideo, w której inni pracownicy zamieszczają samouczki. Wyjaśniłbym motywację projektu (nauczanie innych zdalnie, bez konieczności wiązania ludzi), problemy, z którymi się spotkałem (niekoniecznie uważam je za trudne) i sposób, w jaki je rozwiązałem. Chciałbym również porozmawiać o tym, dlaczego przede wszystkim lubię programować: lubię tworzyć rzeczy i wkład programowania we współczesny świat.
źródło
Podaj jej przykłady oprogramowania, nad którym pracowałeś. Czy masz klienta, który publicznie korzysta z Twojego oprogramowania? Czy rozwijasz własną aplikację, którą mógłbyś jej pokazać? Pokaż jej końcowy wynik swojej pracy, co widzi i używa użytkownik końcowy.
Następnie wyjaśnij, że pomogłeś to napisać. Przejrzyj części, które napisałeś. Pokaż kod, jeśli możesz. Nakreśl, w jaki sposób te wiersze kodu sprawiają, że część aplikacji działa.
Porozmawiaj o tym, ile radości sprawia ci widok korzystania z kodu przez ludzi.
Tak zresztą wyjaśniłem to mojemu 14-letniemu kuzynowi. Był pod wrażeniem i postanowił wziąć udział w zajęciach z programowania w następnym semestrze.
źródło
Czy znasz grę planszową Robo Rally?
Przekonałem się, że jest to idealna zabawna analogia do programowania. Zasadniczo programujesz robota za pomocą prostych poleceń (głównie strzałek), aby dotrzeć do pewnego miejsca na planszy przed innymi.
Człowieku, żałuję, że wciąż nie mam mojego BigTraka ...
źródło
Pokaż coś prostego, ale przydatnego. Myślę, że dobrym przykładem byłoby:
Powody, dla których lubię to podejście, to:
Możesz być w stanie wymyślić lepsze przykłady, ale myślę, że styl jest pomocny przy „pierwszym wstępie”.
źródło
Większość „15-latków” w dzisiejszych czasach ma duże doświadczenie z komputerami. Chciałbym uzyskać więcej praktycznych podejść. Pokazałbym jej trochę kodu (nie próbuj go szczegółowo wyjaśniać, ale może obejmować ekstremalne podstawy „przepływu”) i pokażę jej, jaki jest wynik. Nawet HTML będzie działał dla tego rodzaju przykładu. Następnie powiedz „Codziennie robię to w zasadzie… z wyjątkiem dziesiątek tysięcy linii kodu i bardzo dużego i złożonego programu”.
Następnie wyjaśnij, jakie problemy rozwiązujesz przez programowanie i dlaczego lubisz to robić. Na przykład powiedziałbym, że lubię programować, ponieważ „Uwielbiam widzieć, jak mój kod ożywa na komputerze jako aplikacja”
źródło
Po pierwsze, masz konkurencję, którą musisz obalić.
Filmy, kultura popularna, a nawet ludzie w tej dziedzinie ( i to pytanie w tej sprawie ) próbują przedstawić programowanie (i większość dziedziny informatyki) jako pewnego rodzaju magię. To nie jest magia.
Programowanie to po prostu opisywanie zadań, a następnie łączenie tych zadań w celu rozwiązania problemu. Jeśli próbujesz znaleźć równoleżnik, użyj matematyki. Komputer jest jak nauczyciel matematyki, który wymaga od ciebie pokazania całej swojej pracy .
Z fizycznego punktu widzenia komputery nie są inteligentne - wiedzą tylko tyle, ile im mówimy. Więc kiedy programista komputerowy chce stworzyć program, który na przykład odtwarza muzykę z płyty CD, „po prostu” musi powiedzieć komputerowi, jak odczytać dane zapisane na płycie CD, a następnie jak przekonwertować te dane na fale dźwiękowe i wreszcie , jak wyprowadzić te fale dźwiękowe z głośników.
Przenosząc ten pomysł na kolejny poziom, możesz przejść dalej o tym, jak programowanie buduje zadania jeden na drugim. Podobnie jak on / ona musiał nauczyć się arytmetyki, zanim mogliby nauczyć się algebry w matematyce, komputery muszą również zostać pouczone, jak „robić podstawy”, zanim będzie można powiedzieć im, jak wykonywać bardziej złożone zadania. Przez lata informatycy i programiści byli w stanie „uczyć” komputerów wystarczających podstaw do tego stopnia, że możemy zacząć z nimi „rozmawiać” znacznie bliżej tego, jak rozmawiamy ze sobą.
W prawdziwym życiu nauczyciel matematyki może powiedzieć ci, abyś rozwiązał „15 do potęgi 3”, ale wiesz tylko, jak to zrobić, ponieważ wcześniej nauczono Cię, że „X do potęgi Y” rozkłada się na zadania „Pomnóż X przez X i zrób to Y razy” [technicznie Y -1 razy, ale eh.]
Podobnie jak twoje zajęcia matematyczne, programiści stworzyli bazę „znanych” zadań, więc nie musimy koncentrować się na szczegółach drobiazgów i możemy poświęcić czas na rozwiązanie rzeczywistych problemów, a nie na to, jak wykonać podstawowe zadania zadania - możemy teraz założyć, że komputer rozumie, jak wykonywać podstawowe czynności.
źródło
Zrobiłbym to, co mnie wciągnęło, gdy miałem około 9 lat. Wyjmij C64 z poddasza i wykonaj:
10 PRINT "YOU SMELL"
20 GOTO 10
(Dzięki tato).
Potem, gdy zabawa się skończy. Pokażę jej grę w zgadywanie liczb. Tak, wszystko w języku BASIC. Współczesny język pokazuje, że komputer przyjmuje instrukcje.
źródło
Pomocne może być rozpoczęcie od rutynowych czynności, takich jak Facebook, i wyjaśnienie jej, jak jeden prosty aspekt, taki jak logowanie, może być bardzo skomplikowany.
Możesz stąd przejść do baz danych, projektowania aplikacji, a następnie do niektórych aspektów bezpieczeństwa, co może pomóc jej zabrać.
Możesz nawet zapytać ją o coś takiego: „Gdyby coś było na Facebooku, co mógłbyś zmienić, co by to było?” Następnie opowiedz jej, jak możesz dokonać zmiany i ilu ludzi będzie w to zamieszanych.
Najpierw nauczyłem się programować Pascala i wszyscy byłem podekscytowany, że mój program zaakceptował moje dane wejściowe, pomieszał je i wydrukował coś innego. Byłem uzależniony od tego. Niektórzy ludzie łatwo się zatrzaskują.
źródło
Mam nadzieję, że pojechałam na staż w miejscu, które prawdopodobnie opracowuje oprogramowanie, które musi zainteresować w tej dziedzinie?
Nie ma ustalonej odpowiedzi, wypytywałbym ją przez 5-10 minut na temat tego, co wie, a następnie po prostu starałem się wykorzystać to najlepiej, jak potrafisz.
źródło
Rozpocznij na wysokim poziomie. Może wyjaśnię, że programowanie komputerowe polega na rozwiązywaniu problemów: rozwiązywaniu problemów i opracowywaniu rozwiązania, które jest zapisane jako zbiór instrukcji, które maszyna może wykorzystać i zrozumieć.
Trudne może być wymyślenie przykładów, które 15-letnia dziewczynka uznałaby za interesujące i stosowne . Nigdy nie byłem w takiej sytuacji i nie znam jej, nie jestem pewien, co by to polecić ... Unikaj próbek kodu, aż do końca, z wyjątkiem bardzo prostych lub interesujących przypadków, takich jak program „Hello world” lub coś prostego i graficznego (narysuj kształty w oknie, śledź mysz itp.).
źródło
Oto moje zdanie po kilku nieudanych próbach i kilku całkiem dobrych próbach:
Programowanie to rozwiązywanie problemów.
Zacznij od konkretnych rzeczy, które są zaprogramowane, z których korzystają na co dzień - przeglądarka internetowa (facebook), telefon komórkowy, kasa fiskalna itp. Zdobądź je, aby podały wiele przykładów. Ustal, że wszystkie te rzeczy mają rodzaj komputera. Sercem komputera jest procesor.
Procesor jest jak bardzo szybki, ale bardzo głupi pracownik. Jeśli podasz mu jakieś instrukcje, zrobi to dokładnie tak, jak mówisz. Nie zrobi nic więcej i nie powie ci, czy coś, co kazałeś zrobić, było złe. Ten procesor robi jednak wszystko - jeśli powiesz mu dokładnie, jak to zrobić, może zadzwonić lub umieścić zdjęcie w wiadomości e-mail.
Zapytaj ją, jak powie bardzo szybkiemu, ale bardzo głupiemu pracownikowi, aby kupił puszkę z napojem z automatu z napojami. Gdy zacznie opisywać kroki („Włóż pieniądze do maszyny i naciśnij przycisk.”) Zacznij rozdzielać je jak program („Co to są pieniądze? Jak włożyć pieniądze do maszyny? Kiedy wkładam pieniądze do maszyny i naciśnij przycisk w tym samym czasie nic się nie dzieje. ”). Jeśli masz tablicę, zacznij od lewej z jej pierwszym zestawem instrukcji. Gdy je poprawi, umieść nową, większą listę po prawej stronie. Kiedy masz dobry zestaw instrukcji, zacznij uogólniać elementy („Wyjmij pieniądze z kieszeni i wyjmij napój gazowany z tacy brzmi podobnie - jakie części są takie same / różne?”) Weź uogólnienia i umieść je na środku i skreślić elementy, które teraz obejmują. Spróbuj w końcu związać elementy, aby pasowały do jej oryginalnych instrukcji, podobnie jak wywołania funkcji. Inne dobre ćwiczenia: napisz list, przejdź przez drzwi, narysuj okrąg / kwadrat / trójkąt.
Programowanie polega więc na rozwiązywaniu problemów: dzieleniu problemów na części, identyfikowaniu wspólnych części i grupowaniu tych części z powrotem w celu rozwiązania problemów. Wkrótce dowiadujesz się, że niektóre części są wspólne dla wielu problemów, a następnie zaczynasz układać części, aby rozwiązać problemy, o których nawet nie wiedziałeś, że masz.
Okej, w tym momencie może zrozumieć, ale pewnie się nudzi. Kontynuuj z zestawem ciekawych przykładów programowania. Shadery i związany z nimi kod wizualny są łatwe do pokazania - możesz umieścić zdjęcie i zacząć wprowadzać w nim zmiany za pomocą bardzo małych zmian kodu. Jeśli wyraziła zainteresowanie Facebookiem, pochwal się rozmową z Facebookiem przez REST, aby zobaczyć dane znajomych znajomych (6 stopni) Jeśli lubi gry wideo, pochwal się kilkoma demonstracjami gier typu open source wraz z kilkoma fragmentami ich kodu i tym, jak pomagają w grze. Zakończ to, pokazując kilka bezpłatnych narzędzi i zasobów, które mogłaby zbadać w domu. (Python, C # itp.)
Moje nieudane próby: próba wyjaśnienia obliczeń pi (pytali), gra planszowa C-Jump http://c-jump.com/ (nie dostali jej i instrukcje były błędne), i kodowanie na żywo 2d gra (po prostu nie mogła zainteresować, bez względu na to, jak małe kroki robiłem między demami).
Powodzenia!
źródło
Stwórz prosty program. Nie, nie „Hello World!”
Powiedziałbym, że istnieje wiele rodzajów języków programowania - takich, które tworzą gry, tych, które kontrolują roboty - ale to, z czym będziesz pracować, to HTML.
Utwórz stronę internetową, w której nic nie będzie, a następnie dodaj formularz, który wyśle wiadomość e-mail na jej adres e-mail. Przypuszczalnie ma telefon komórkowy, który może powiadomić właściciela, że ma nowy e-mail, więc możesz jej powiedzieć, że jest to świetny sposób na skontaktowanie się z nią przez przyjaciół i rodzinę. Jeśli w przyszłości otrzyma własną stronę internetową, możesz jej powiedzieć, że może umieścić formularz na swojej stronie internetowej, umożliwiając klientom i partnerom biznesowym kontakt z nią.
Alternatywnie, jeśli jest trochę psotna, powiem ci, co zainteresowało mnie programowaniem: hackowanie. Wcześniej stworzyłem najlepszy program, jaki kiedykolwiek zrobiłem, aby bawić się w AOL (poza jednym programem, który przewyższał mój w tylko jednej z kilkudziesięciu rzeczy, które zrobiłem) - w wieku 14-15 lat. Jeśli chodzi o białą czapkę, stworzyłem również jeden z pierwszych programów do usuwania spamu (1995 r.). Udało mi się sprawić, aby moje doświadczenia online były znacznie przyjemniejsze i zostawimy to przy tym. Wszystko, co chciałem zrobić na komputerze, było przygodą lub zagadką, którą musiałem wymyślić, a rzeczy, które chciałem zrobić na komputerze, były nieograniczone. Oczywiście, uruchomienie go było czasem bolesne, ale napisanie programu, który osiągał rzeczy lepiej i szybciej niż jakikolwiek człowiek, lub robienie rzeczy, które były po prostu niemożliwe dla ogółu społeczeństwa, było jak budowanie dobrego urządzenia, z którego można być dumnym. Teraz prawdopodobnie nie chcesz niczego poważnego, ale bardzo łatwo byłoby stworzyć w Visual Basic coś, co można by uruchomić przy uruchamianiu (siedząc z boku ekranu lub zasobnika systemowego), a stamtąd możesz uruchomić jej ulubione strony internetowe, ulubione programy itp. Możesz zapoznać ją z poleceniami potrzebnymi do uruchomienia exe i strony internetowej, a następnie po prostu poprosić ją o wykonanie kilku przycisków, a następnie dodać kod do tych przycisków , umieszczając jej ulubione strony internetowe (Facebook, Twitter itp.) i programy (iTunes, edytor tekstu itp.) Jeśli jej komputer jest w swoim pokoju, możesz również rzucić na niego budzik, aby uzyskać dodatkową funkcjonalność. Oczywiście, 30 minut to za mało, aby ją przez to przejść, więc musisz już to zrobić. Na koniec prześlij jej 2-3-stronicową instrukcję obsługi, kod i .exe ... a następnie pozostaw ją z niewielkim rozmachem sprzedaży: na początku nie jest to łatwe, ale kiedy już dostaniesz wiesz, to nie jest takie złe, będzie niezwykle przydatne w życiu i pomoże rozwinąć jej analityczne myślenie.
źródło
Uczyłem 18-letnich studentów i przypuszczam, że 15-latkowie są mniej więcej tacy sami. Nie spodziewaj się sukcesu bez praktyki. Zajęło mi kilka tygodni w mojej pierwszej klasie, żeby się „włamać”.
Najważniejszą rzeczą, której musiałem się nauczyć, było to, że to, co uważałem za tak proste i oczywiste, że bałem się, że nie mogę wypełnić czasu, wcale nie było tak ważne dla studentów. Nauczyłem się, że musisz iść krok po kroku - w przeciwnym razie jest to po prostu magia „gee whiz”.
Jak sobie z tym poradzisz w 30 minut, nie jestem pewien, ale pierwszą rzeczą, którą zrobiłem, było pokazanie im małego domowego komputera, który zbudowałem, który został zaprogramowany do grania po kliknięciu głośnika. Wyjaśniłem, że może zagrać nutę, zmniejszając licznik, działając jako opóźnienie między kliknięciami. Właśnie napisałem pseudo-kod na tablicy, tak jak przepis. Potem był mały kondensator, który mogłem zaczepić pod drutem, który sprawiłby, że cała rzecz działałaby około 1000 razy wolniej. Potem usłyszeli kliknięcie - czekanie - kliknięcie - czekanie ... Potem, kiedy odczepiłem kondensator, wybuchł z małą melodią.
Chodziło o to, aby przejść przez to, że komputery wykonują tylko proste rzeczy i wykonują je pojedynczo. Nie rozpoczynają każdego kroku, dopóki poprzedni nie zostanie zakończony. (Tak, tak, wiem - potokowanie i tak dalej, ale rozmawiamy z początkującymi .) Tylko elektroniczna prędkość sprawia, że wydają się robić wszystko naraz, a to jest to, co nowicjusze zwykle zakładają (wraz z czytaniem w myślach) . Jest to jedna z naprawdę podstawowych koncepcji, bez których nie można zrozumieć programowania i komputerów. Dla nas jest to tak szczegółowe, że nawet nie zdajemy sobie sprawy, że o tym wiemy, ale początkujący tego nie wiedzą.
źródło
Wiem, że nie jest to język programowania, ale myślę, że HTML to dobry początek. Ponieważ masz natychmiastowe rezultaty .... zacznij od
Witaj świecie
Następnie wykonaj:
Witaj <b> Świat </b>
Itp.
źródło
Gdybym to był ja, powiedziałbym jej, że programowanie polega na dzieleniu zadania na małe zadania w sposób, który pomaga je rozwiązać; a następnie wyrażanie tych małych zadań w języku, który nie może być źle zrozumiany przez idiotycznego komputera. Ale musisz to zrobić w taki sposób, aby inni programiści też mogli to łatwo zrozumieć - i to nie to samo.
Oznacza to, że oprócz tego, co wszyscy powiedzieli ...
źródło
To bardziej moje osobiste doświadczenia niż prosta „odpowiedź”.
Dlaczego się zainteresowałem? Moi rodzice kupili IBM PC XT w 1984 roku (urodziłem się w 1984 roku). Ma 640kb RAM i 20 MB HDD oraz 5-calowy FDD i działał pod MS-DOS v3.2. Nie mogłem go dotykać, dopóki nie osiągnąłem 5. standardu, a kiedy w końcu mogłem go używać, nalałem sobie wszystkie lata skumulowanej w nim ciekawości.
Z drugiej strony moja siostra miała dostęp do tego samego komputera i mackintosha Quadra 610, kiedy tylko chciała, i zwracała na to tyle samo uwagi, co do stołu, na którym została ustawiona.
Nauczanie mojej siostry ... Próbowałem uczyć programowania siostrzanego w języku BASIC. Zrobiłem jej wszystko od uruchomienia komputera po wpisanie programu i uruchomienie go. To był program liniowy.
Zajęło to pół godziny. Kiedy w końcu ją wykonała, wydrukowała słowo „CAT” i była wściekła. Oczekiwała, że pojawi się zdjęcie kota. Wybiegła z pokoju i to był koniec programowania na zawsze!
Morał: wynik powinien być proporcjonalny do czasu i wysiłku, jaki wkładają.
Ucząc licealistów Labview i Lego NXT Przez rok byłem mentorem FIRST Robotics i musiałem prowadzić dzieci w programowaniu robota w NI Labview. Szczerze mówiąc, wymagana umiejętność programowania była znacznie wyższa niż poziom liceum. Ale konkurs miał na celu podekscytowanie dzieci inżynierią i podniesienie poprzeczki w podejmowaniu wyzwań. Tak długo, jak programy miały tylko instrukcję if i jedną pętlę, wszystko było w porządku. Ludzie odpadli z sekcji programowania robota, gdy zobaczyli schemat kodu, który stworzyłem dla robota, który zbudowaliśmy w poprzednim roku.
Choć ludzie twierdzą, że 15-latkowie potrafią robić skomplikowane rzeczy i mogą skupiać uwagę na wiele godzin, to znalazłem w nich dziwny brak motywacji do tego. Chcieli robić proste rzeczy, które nie obciążały ich mózgów. Woleli CAD i frezowali części na tokarce niż pisać programy.
źródło
Co to jest CS?
Myślę, że zanim przejdziesz do wersji demonstracyjnych, pomoże ci to krótko przedstawić swoje miejsce w świecie CS. Podobał mi się opis Hal Abelsona CS w odniesieniu do matematyki: podczas gdy matematyka pomaga opisywać świat w kategoriach praw, CS pomaga opisywać, jak robić rzeczy. Jego przykładem była funkcja pierwiastka kwadratowego: matematyka ją zdefiniuje, ale nie pomoże ci znaleźć jej dla danych wejściowych. CS będzie. Na niższym poziomie elektrotechnika i fizyka położyły podwaliny pod sprzęt, który umożliwiał Internet, ale pozostawiły otwarte pytania, jak zachęcić ludzi do korzystania z niego.
Jak to jest być programistą?
Następnie pojawia się pytanie, jak to jest być programistą. Przyciągnęło mnie to do tego, że ma szybszy czas wypróbowania, przetestowania, naprawy, niż jakakolwiek inna dziedzina techniki. To ciągłe rozwiązywanie problemów, podczas gdy w innych dziedzinach czas realizacji pojedynczej pętli może wynosić miesiące. Jest także przydatny w prawie każdej innej dziedzinie techniki, co jest więcej niż można powiedzieć w przypadku ... większości innych dziedzin techniki. Więc jeśli jeszcze nie wiesz, co chcesz zrobić (prawdopodobnie), dobrze jest wcześnie zacząć się dobrze. Na studiach niewiele rzeczy sprawi, że będziesz bardziej przydatny dla większej liczby profesorów niż możliwość kodowania swoich eksperymentów.
Wzrok, związany z kodem
Więc oczywiście nie zapomnij wersji demo. Fajnie byłoby dostać kopię trzęsienia (open source) i dokonać zmiany w jednej linii (np. Zmienić siłę grawitacji) i na przykład skompilować ponownie. Spójrz też na kod. Zapewnij ją, że nie spodziewa się, że wiele zrozumie, może teraz wydawać się bełkotem, ale z drugiej strony, podobnie jak gazety w językach obcych, których jeszcze się nie nauczyła. Możesz powiedzieć, że mimo to ona widzi, że rzeczy są przypisywane do rzeczy, przedmioty są mówione, co mają robić, a tutaj ustalamy grawitację itp.
źródło
Zacząłem programować, gdy miałem 14 lat. Podczas gdy większość (47 z 50 studentów, którzy się zapisali) porzuciła naukę w połowie roku lub po prostu postanowiła nie kontynuować nauki w przyszłym roku, trzymałem się tego i nauczyłem się czegoś bardzo ważnego:
Programowanie daje możliwość tworzenia czegoś z niczego. Masz moc, aby zamienić słowa w przydatne narzędzie, które zaspokoi potrzebę, rozrywkę dla ciebie i twoich przyjaciół, lub po prostu coś, co możesz pokazać znajomym i powiedzieć: „Zobacz, co zrobiłem”.
Na początku nauczono nas „Hello World”, ale nie byłem zainteresowany, dopóki nie mogłem zmusić mojego kodu do interakcji z użytkownikiem . W momencie, gdy nauczono nas czytać dane wejściowe za pomocą „cin”, postanowiłem stworzyć program Mad-Lib, w którym moglibyśmy grać w klasie. Pierwszą przeszkodą było odczytanie danych wejściowych zawierających spacje, a następnie sformatowanie danych wyjściowych. Później chciałem móc zapisać te historie w pliku, więc musiałem nauczyć się pliku IO. To, co utrzymywało moje zaangażowanie, polegało na pokonywaniu przeszkód w osiąganiu własnych celów.
Później w tym roku odkryliśmy, że administratorzy sieci rejestrowali nasze użycie „Net send” i klienta Novell SendMessage, którego używaliśmy do komunikacji podczas zajęć komputerowych, i wyłączyli go, gdy uczniowie użyli go do oszukiwania w teście. Więc napisałem na czacie, aby zastąpić jeden administratorzy wyłączone. To była pierwsza naprawdę przydatna rzecz, którą stworzyłem. Modelowałem go na podstawie systemu czatu Battle.Net, wraz z rejestracją użytkowników, moderatorami, a nawet podstawowym systemem szyfrowania i cienia plików, aby zapobiec manipulowaniu przez użytkowników (wszystkie pliki musiały znajdować się na współużytkowanym dysku sieciowym, aby uczniowie mogli dostęp do programu i korzystanie z niego). Nie były to pojęcia, o których już wiedziałem, ale rozwiązania, które sam wymyśliłem, aby rozwiązać problem. Dla mnie to była przyjemność programowania.
Tak więc, aby odpowiedzieć na pytanie poprawnie, poza dyskusją na temat tego, co oznacza tworzenie oprogramowania, interaktywne demo jest prawdopodobnie świetnym pomysłem. Najlepiej coś, co rozwiązuje problem, na przykład automatyczna zmiana rozmiaru wszystkich gigantycznych zdjęć z aparatu. Choć jest nieco bardziej skomplikowana, może dobrze się bawić z prostą stroną internetową z pozostawionymi wiadomościami, którą może udostępnić znajomym. Możesz poprosić kogoś o wysłanie wiadomości e-mail za każdym razem, gdy zostanie opublikowana nowa wiadomość, i poprosić ją o edycję kodu, aby wysłał ją na swój adres e-mail zamiast twojego. Poproś też, aby strona wyświetlała ostatnią X komentarzy i poproś ją, aby dostosowała również tę liczbę i zobaczyła, jakie są wyniki.
źródło
Tam, gdzie kiedyś pracowałem, czasem przychodziły do nas dzieci. Niektóre były zainteresowane komputerami, inne nie. Kiedyś namawiali ich do postawienia ich przed komputerem i do napisania gry w zgadywanie. (Komputer losowo wybiera liczbę, użytkownik otrzymuje informację zwrotną, jeśli jego domysły były zbyt wysokie / niskie.) Jest to łatwe do zrobienia i naprawdę fajny wynik. Nic nie jest tak potężne, jak pokazanie im namacalnie, co ON mogą stworzyć.
źródło
Kiedy chcesz uzyskać - i zachować - czyjąś uwagę, a następnie ZAPYTAJ, NIE POWIEDZ. Zapytaj, jak wykonaliby proste zadanie, takie jak napicie się wody. Następnie pokaż im, jak postępując zgodnie z instrukcjami, które dostarczyli (takimi jak „Idź korytarzem”), tak naprawdę nie radzą sobie z problemami, kiedy skręcić w lewo, skręcić w prawo, zatrzymywać się itp. Zrozumienie i radzenie sobie z tymi warunkami brzegowymi, to jest biznes programowania! Następnie możesz pokazać, w jaki sposób pętla „do-do” może poradzić sobie z sytuacją typu „chodź, aż dojdziesz do ściany”, aby wykonać meta-zadania z zadania „jedna stopa przed drugim”. chodzenia.
źródło
Nie jestem pewien, czy jest to legenda, czy prawdziwa historia, ale czytałem o tym, dlaczego pewnego dnia szczęście jest tak sztywne. Część historii polegała na tym, jak pokazał programowanie dziecku (a może nawet dzieciom), którego spotkał w pociągu.
Jak niektórzy z was mogą wiedzieć, dlaczego był Rubinem (a Ruby jest przyjazny dla zwykłych ludzi). Pracował nad jakąś grą w Ruby, podczas gdy jakieś dziecko podeszło do niego, żeby zobaczyć, co robi. Najpierw pokazał im wynik - działającą grę. Następnie pokazał dziecku, jak może modyfikować rzeczy w kodzie, aby zmienić wynik. Potem pozwolił dziecku bawić się kodem i zobaczyć zmodyfikowany wynik.
Myślę, że powinien to być twój ogólny przepływ pracy - wynik, modyfikacja, zabawa. Powinieneś znaleźć jakiś projekt (gra byłaby najlepszym wyborem) w przyjaznym dla człowieka języku i pokazać go dziecku.
Jak mi przykro, nie mam pojęcia, czy ta historia jest prawdziwa, czy nie. To wciąż bardzo fajne.
I jeszcze jedno. Pamiętam pierwsze doświadczenia z programowaniem -
MessageBox
w Delphi. Było fajnie, bo mogłem zmusić komputer do robienia tego, co chcę i od razu zobaczyć wynik.Potem pojawiły się mikrokontrolery. Były jeszcze lepsze, ponieważ mój kod mógł zmienić prawdziwy świat. To znaczy, przypisywanie pewnej wartości zmiennej przestało być tak abstrakcyjne, ponieważ spowodowało pojawienie się napięcia w porcie wyjściowym, co spowodowało ruch mojego silnika. To było świetne. Możesz wybrać w ten sposób - pokaż dziecku coś takiego jak Arduino.
Widzisz, myślę, że chodzi o zmianę i zobaczenie wyniku.
źródło
Pokaż jej wynik końcowy niektórych rzeczy, które zrobiłeś. Mów ogólnie o swojej roli w projektach. Może nawet pomoże jej stworzyć cześć, jeśli wydaje się zainteresowana.
źródło
Moją ulubioną analogią do programowania jest czarodziejstwo (styl harry potter), jak Satanicpuppy. Używam tego zarówno dla nietechnicznych rówieśników, jak i dzieci, wydaje się, że działa całkiem dobrze i zdecydowanie przekazuje moc, którą dają nam komputery.
Komputery to nasze magiczne różdżki. Pozwalają nam wykonywać magię, biorąc pod uwagę odpowiedni ruch nadgarstka i zaklęcia. Jako programiści mamy dostęp do książek z zaklęciami (bibliotek) opracowanych i dopracowanych przez naszych poprzedników. Możemy tworzyć nowe zaklęcia i zaklęcia lub pracować z już istniejącymi. Niektóre są łatwe, inne wymagają więcej praktyki, aby naprawdę skutecznie je wykorzystać, często występują kompromisy i wiele różnych sposobów rozwiązania tego samego problemu (czy powinienem użyć dobrej mikstury czy inkantacji?).
Ta rozszerzona metafora może być naprawdę dobrze rozciągnięta i często pozwala mi przekazać moją pasję do programowania w sposób dostępny dla osób spoza branży.
źródło
Najlepszym sposobem na zrozumienie dzieci jest bycie dzieckiem ...! Jako dziecko nienawidziłem odrabiania lekcji, nakładania itp.! więc są punkty wejścia, w których można przyciągnąć ich uwagę. W ciągu 30 minut, chociaż nie jesteśmy w stanie wyjaśnić wszystkiego, możemy spróbować dać im rodzaj ekspozycji, w którym zainteresowane dzieci uważają to za inspirację. Zacznij od pokrewnych tematów, takich jak zadania domowe itp. Powiedz im, jak komputer może napisać impozycję w kilka sekund itp.
Życzę Ci wszystkiego najlepszego.. ! dobra robota
źródło