30 minut na wyjaśnienie programowania 15-latkowi [zamknięte]

100

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.

Dexter
źródło
158
To przygnębiające, jak protekcjonalne jest wiele z tych odpowiedzi wobec dzieci - mają krótką uwagę, nie rozumieją rzeczy, jeśli nie są wizualne, nie radzą sobie z niczym skomplikowanym. Mówimy tutaj o piętnastolatku. Piętnastolatkowie są w stanie zrozumieć i robić skomplikowane rzeczy, spędzać godziny na czymś głęboko zaangażowanym i mieć abstrakcyjne myśli. Wziąłbym bystrego piętnastolatka za każdego z was dupków!
Tom Anderson
8
@tom Z drugiej strony osobiście doświadczyłem, jak większość osób dorosłych uważa, że ​​nużące są nawet inne elementy wizualne na komputerze. To zależy od dziecka i jego zainteresowania komputerami.
jhocking
6
@jh: Heh! Przypuszczam, że pytanie nie dotyczy tego, czy ta osoba ma piętnaście lat, ale czy jest inteligentna i dociekliwa. Możemy wszyscy (z wyjątkiem Maxpm) być teraz staruszkami, ale wszyscy mieliśmy po piętnaście lat i raczej wątpię, że ci z nas, którzy są inteligentnymi i dociekliwymi dorosłymi, byli tępymi i bezinteresownymi nastolatkami.
Tom Anderson
33
„Najpierw zabieram się do pracy trochę po 10 rano, piję dużo kawy, gonię ją z Mountain Dew i napojami energetycznymi. Kolejne 2 godziny spędzam sprawdzając pocztę, wymieniając przepisy z jedyną kobietą programistą w cały budynek, a potem krótka drzemka po obiedzie. Wstań, sprawdź pocztę jeszcze raz, surfuj na youtube z filmami o kotach, zapoznaj się z najnowszymi komiksami dilbert i smbc. Zanim się zorientujesz, jest 4:30, czas wracać do domu. Nie mogę wiele zrobić, ale 100 programistów razem robi to samo co 3 lata, no cóż, tak rodzą się gry wideo. ”
Juliet,
5
@Tom: dokładnie. Wielu programistów zaczynało przed 15 rokiem życia, więc nie rozumiem protekcjonalności.
Neil G

Odpowiedzi:

130

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:

  • Aplikacje takie jak iTunes, Photoshop, Chrome i gry, w tym konsolowe.
  • Systemy operacyjne takie jak Windows, Mac OS, iPhone iOS, Android. (Zaufaj mi, będą wiedzieć, o czym mówisz).
  • Programy, które niszczą liczby lub rozwiązują naprawdę skomplikowane problemy matematyczne - symulacje pogody, symulacje biologiczne, obliczanie pi, AI, przetwarzanie języka itp.
  • Najbardziej wyrafinowane strony internetowe również wymagają programowania.
  • Automaty biletowe i bankomaty, liczniki mikrofalowe i lodówki, nawigacja samochodowa.

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.

Rei Miyasaka
źródło
73
Dziękujemy za przypomnienie, że wyjaśnienie programowania dziecku może być łatwiejsze niż wyjaśnienie go dorosłemu. Ciągle zapominam, że nigdy nie byli otoczeni komputerami.
jhocking
12
hahaha, cały czas to otrzymuję, jeśli wiesz, jak „zhakować ludzi” hahahahaha
John Connelly
3
@ jhocking Myślę również, że wiele z nich jest jaśniejszych niż większość generacji idiotycznych pudełek. Pomijając jakość, sama ilość czytanego tekstu z pewnością przyniesie coś dobrego.
Rei Miyasaka,
4
@ rei: Cóż, mam zaawansowane umiejętności społeczne i uznałem, że warto zwrócić uwagę na kilka kobiet w tych klasach ... To było dobre intencje, ale ... niepokojące. Gdybym to był ja, uciekłbym z krzykiem. Otaczanie się hordą spoconych oddychających ustami z pewnością będzie przeszkodą dla każdej normalnej osoby, więc albo musisz polubić uwagę, albo naprawdę naprawdę lubisz compci. Z pewnością nie zaskoczyło mnie to, że kobiet jest tak mało. Wyobrażam sobie w mniejszych szkołach, że to nie jest takie przerażające.
Satanicpuppy
4
Cóż, generalnie przychodzę co najmniej piętnaście minut spóźniony, ah, korzystam z bocznych drzwi - w ten sposób Lumbergh mnie nie widzi, heh heh - a potem po prostu spędzam trochę czasu na około godzinę. Tak, tylko patrzę na swoje biurko; ale wygląda na to, że pracuję. Robię to również prawdopodobnie przez godzinę po obiedzie. Powiedziałbym, że w danym tygodniu wykonam tylko około piętnastu minut prawdziwej pracy.
teambob
73

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.

Satanicpuppy
źródło
77
lol @ uczy swoje dziecko, że jesteś czarodziejem
jhocking
23
„Żaden inny zawód na świecie nie tworzy rzeczy funkcjonalnych z samych słów” - czynią to prawnicy kontraktowi i ustawodawcy.
Tom Anderson
48
@Tom Prawdopodobnie ograniczają funkcjonalne rzeczy bardziej niż je tworzą.
Maks.
16
@tom: Nie, nie robią tego. Akt prawny nie jest bardziej funkcjonalną rzeczą niż historia lub wiersz. Prawo jest jak plan: określa pomysł, ale potem ktoś musi wyjść w świat mięsa i go egzekwować. Ale kod? Mógłbym napisać program do kupowania lub sprzedawania akcji w oparciu o własną wewnętrzną logikę, i zrobiłbym to bez dodatkowej pomocy ode mnie. Mógłbym napisać jeden, który będzie zarządzał bramami przeciwpowodziowymi, przekieruje prąd, włącza i wyłącza światła w zależności od pory dnia. Jest wyjątkowy wśród zawodów.
Satanicpuppy
15
@Satanicpuppy: Nie, nie można napisać programu, który zrobiłby którąkolwiek z tych rzeczy. Inżynier elektronik mógłby jednak zbudować komputer, który mógłby to zrobić. Gdybyś ładnie zapytał, być może mógłby wyrzucić go do świata mięsa i egzekwować twoje programy.
Tom Anderson
56

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.

  1. Znajdź komputer podłączony do Internetu. (więcej zabawy, jeśli nie jest twoje, a nawet więcej, jeśli jest jej)
  2. Idź do http://api.jquery.com/jQuery.getJSON/
  3. Przewiń stronę w dół i znajdź kod HTML dla przykładu z kotami .
  4. Wybierz kod HTML i skopiuj go.
  5. Wejdź na http://jsdo.it i kliknij Rozpocznij kodowanie .
  6. Otwórz konto, używając swojego identyfikatora OpenID. (proces jednoetapowy)
  7. Wybierz kartę HTML na lewym panelu i wklej tam.
    • za sekundę na prawym panelu pojawi się grono kotów
  8. Wytnij javascript i wklej go w zakładce JavaScript . (do podświetlania składni)
    • w sekundę koty automatycznie odświeżają się na prawym panelu
  9. Poszukaj właściwości tagów w javascript i zmień ją na „dog”.
    • pojawia się kilka psów
  10. Niech sama powtórzy ten proces z innymi wybranymi tagami.
    • zaproponuj jej, aby spróbowała użyć dwóch tagów oddzielonych przecinkiem
  11. Zmień wiersz „if (i == 3)” na „if (i == 5)”; pozwól jej to zrozumieć
    • teraz jest 6 zdjęć, a wcześniej 4
    • byłoby lepiej, gdyby liczba w kodzie była zgodna z liczbą na stronie
  12. Napraw błąd razem (zamień tę linię i poprzednią)
  13. ...
Ando
źródło
1
Lub możesz użyć jsfiddle, bez potrzeby rejestracji: jsfiddle.net/WXVra
rjmunro
Najlepsza! codecademy.com
jhocking 10.09.11
26

Kroki

Jako prawie 15-latek mogę śmiało powiedzieć, że powinieneś zacząć spektakularny start.

  1. Wyjaśnij, co robią programiści. (Gry, symulatory.) Pokaż coś fajnego, co zrobiłeś. (Na komputerze. Proszę nie używać wiersza poleceń - wydaje się, że wszystkich to przestraszy.)
  2. Wyjaśnij, jak to robisz.

    • Powiedz im, że nie piszesz przez 10101010cały dzień. Powiedz im, że nawet nie wiesz, jak to zrobić. ( Lie. Ty nie wiesz, co 10101010oznacza, prawda;)) Powiedz im, że to było rok temu.
    • Uruchom swoje IDE. Upewnij się, że wygląda świetnie - MSVS2010, QtCreator i NetBeans są dobre. Pamiętaj, aby usunąć niektóre dodatkowe rzeczy, aby wyglądały mniej zastraszająco (mniej menu), ale zachowaj efekty wizualne.
    • Pokaż im próbkę jakiegoś pseudokodu. Ułatw zrozumienie:

      Display Window
      Display "I like cheese!"
      Display OK button
      
      If user clicks OK button, close Window
      

      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.

      User inputs A
      User inputs B
      
      C = A + B
      
      Display C
      

      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.

  3. Wyjaśnij, co muszą wiedzieć, aby programować. (Na różnych poziomach.)

    • Podstawowe umiejętności algebry, np. Jeśli x + 1 = 2, to x = 1.
    • Umiejętność rozwiązywania problemów.
    • [„Zaawansowane”] Matematyka wyższego poziomu. To jest dla programistów pracujących w miejscach takich jak NASA.

Warunki, których możesz użyć

Wiemy więcej niż myślisz.

  • Facebook, Twitter, sieci społecznościowe
  • Windows, Mac, Linux
  • Projektowanie, szybsze, testowanie, uruchamianie / uruchamianie

Warunki, które powinieneś wyjaśnić

Tak, wciąż potrzebujemy wyjaśnienia.

  • Kompilator: Konwertuje kod (jak przykład w kroku 2) na 10101010.
  • Język programowania: wygląda jak przykład w kroku 2.

Warunki, których nie możesz użyć

Niektórzy z nas znają te rzeczy, ale i tak nie mów.

  • Każdy rodzaj „systemu” inny niż system operacyjny
  • Optymalizacja, analiza (oh oh)
  • Wejście / wyjście (jeśli musisz tego użyć, postaraj się, aby było to tak proste, jak to możliwe)
muntoo
źródło
Szukasz „fajnego” IDE? Nie szukaj dalej niż Xcode.
Alan Zeino,
2
@Alan Zeino masz na myśli Emacsa.
prawej strony
Najbardziej podoba mi się ta odpowiedź. Myślę, że ktoś, kto podejmie taką decyzję, osiągnąłby więcej niż ktoś pracujący nad innymi (również wysokiej jakości) odpowiedziami na to pytanie.
TehShrike
17

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.

Catchops
źródło
o tak, efekty wizualne to świetny pomysł. Ryzykując, że stanie się to zbyt klasą, bardzo prawdopodobne jest, że narysuję diagramy na tablicy, aby zilustrować wszystko, co mówię.
jhocking
1
Mówiąc o grafice, co powiesz na pokazanie jej małego wideo lub programu Alice?
Carlos Campderrós,
9
@Carlos Jako 15-latek mogę osobiście zaświadczyć, że nienawidzę Alice z płonącą pasją tysiąca słońc. Prawdopodobnie dlatego, że już wiem, jak programować. Nie jestem pewien, jak postrzegają to początkujący.
Maks.
1
+1 za „zmień kod przed nią, a następnie obserwuj, jak zmienia się na ekranie” - zacznij od pokazania jej bezpośredniego połączenia między „prawdziwą” rzeczą a kodem za nią. Coś umiarkowanie głębokiego, na przykład sortowanie lub wyszukiwanie niektórych danych, a nie tylko poprawianie JSP lub formatowanie łańcucha. Wykonaj to połączenie, a następnie zbuduj z niego.
Tom Anderson,
1
Możliwość zmiany wyglądu programu za pomocą zaledwie kilku wierszy kodu jest tym, co skłoniło mnie do programowania wiele lat temu - dzięki za sugestię
Dexter,
13

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.

jhocking
źródło
8

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.

Peter Smith
źródło
8

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.

Tyanna
źródło
5
Działa dobrze, jeśli pracujesz na oprogramowaniu, które wygląda nieładnie dla programistów. Wiele moich ostatnich projektów żyje w bazie danych i „wygląda” jak linia poleceń (a nawet te, które nie były w aplikacji internetowej, która wyglądała bardzo nudno - ale dopóki dane były przetwarzane OK, nikomu to nie przeszkadzało). Dla osób niebędących programistami jest to migający monit, który co kilka minut wyświetla wiersz tekstu, a następnie zatrzymuje się. Tak nudno patrzeć na ... westchnienie :(
FrustratedWithFormsDesigner
1
Zobacz większy „efekt końcowy swojej pracy”. To nie tylko oznacza oprogramowanie, nad którym pracowałeś; może to również oznaczać różne aplikacje klienckie, które są obsługiwane przez oprogramowanie zaplecza, nad którym pracujesz.
jhocking
Przynajmniej nie jesteś programistą SharePoint takim jak ja, @FrustratedWithFormsDesigner .. Jestem pewien, że mogę znaleźć coś, co wygląda fajnie wśród wszystkich moich nawiasów kątowych!
Dexter,
4
@FrustratedWithFormsDesigner Kiedy miałem 15 lat, wraz z kilkoma innymi bystrymi dziećmi z mojej szkoły poszedłem w dniu „przekonajmy dzieci ze szkoły, że warto aplikować do CS”. Wiersz poleceń rzeczy WYGLĄDAŁO COOL. Wyglądało to na bardzo potężne , a to sprawiło, że COOOOOL. Nie zakładaj, że 15-letnie dziewczynki nie chcą rządzić wszechświatem :)
testerab
Z pewnością w wolnym czasie zaprogramowałeś coś fajnego, co mógłbyś pokazać. Zaprogramowałem grę Tetris, przeglądarkę fraktali i solver sudoku. Każda z nich jest fajna do pokazania.
Carra,
7

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 ...

System wyłączony
źródło
4
Gramy w to częściowo regularnie podczas wieczoru gier (do 8 osób, większość to studenci matematyki lub CS). Dobrze jest pokazać, w jaki sposób wielowątkowość może się nie udać:
p
@Paulo - LOL Nigdy o tym nie myślałem, ale masz rację!
System Down
6

Pokaż coś prostego, ale przydatnego. Myślę, że dobrym przykładem byłoby:

  1. Zapełnij folder lub obrazy (wystarczy, że nie wszystkie zmieszczą się na jednym ekranie w Eksploratorze folderów)
  2. Powiedz im, że Twoim celem jest zmiana rozmiaru zdjęć (być może możesz wysłać je e-mailem do znajomych lub opublikować gdzieś online, cokolwiek)
  3. Zademonstruj zmianę rozmiaru jednego obrazu w GIMP / Photoshop / cokolwiek
  4. Teraz zwróć uwagę, że zrobienie tego zajęło co najmniej 30 sekund, a masz dużo zdjęć, nie chcesz poświęcać godziny na robienie tego
  5. Napisz skrypt powłoki, aby zmienić ich rozmiar za pomocą ImageMagick
  6. Niech będą zaskoczeni, że zmiana rozmiaru wszystkich obrazów za pomocą prostego 3-liniowego programu była szybsza niż zmiana rozmiaru pojedynczego obrazu w Photoshopie

Powody, dla których lubię to podejście, to:

  • Nie musisz im mówić, dlaczego programowanie jest przydatne, po prostu zrozumieli, dlaczego
  • Możesz napisać cały program w ciągu kilku sekund podczas oglądania (radzę wypróbować go wcześniej, ponieważ demonstracje zawsze idą źle)
  • Nie zakładasz, że są idiotami / potrzebują jakiegoś „dziecięcego” przykładu - to prosty przykład, ale ma zastosowanie w prawdziwym świecie .

Możesz być w stanie wymyślić lepsze przykłady, ale myślę, że styl jest pomocny przy „pierwszym wstępie”.

Brendan Long
źródło
5

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”

Earlz
źródło
4

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.

colinross
źródło
3

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.

Martin Blore
źródło
2
Dobry. Trafiłeś w gwóźdź. Uczyń to naprawdę prostym i przyjemnym. A BASIC jest do tego idealny.
Mike Dunlavey,
1
Zgadzam się, BASIC jest świetny, a GOTO to najlepszy konstrukt językowy na początek. Mój pierwszy program był bardzo podobny.
Tomas Andrle
Nie powiem, że jestem całkowicie temu przeciwny, ale dowiedziałem się o goto dopiero po kilku latach programowania w C ++. Od tamtej pory nigdy w życiu nie wpisałem ani jednego hasła. Dobry czy zły, nie będę oceniać - chciałem tylko wiedzieć, że goto niekoniecznie ... eee ... jest konieczne.
31eee384
3

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ą.

klient09
źródło
Korzystanie z Facebooka jest dobrą sugestią, dzięki @ client09
Dexter
2

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.

Anonimowy
źródło
Nie jestem pewien @Chris - w firmie technologicznej jest wiele różnych ról, od księgowości przez HR po rozwój i konsulting. Dajemy jej krótki zasmakowanie wielu różnych ról, więc nie sądzę, żebym to założyła
Dexter,
Cóż, szczerze mówiąc, nigdy nie powiedziałeś, dlaczego to był typ firmy. : p Można śmiało powiedzieć, że gdyby ktoś poszedł na staż do sklepu z gitarami, prawdopodobnie zainteresowałby się gitarami, a nie lutnikiem.
Anonimowy,
2

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.).

FrustratedWithFormsDesigner
źródło
Nie sądzę, żebym mógł nauczyć kogoś programowania, nie pokazując mu chociaż próbek kodu, nad którym pracuję ...
Dexter,
@Dexter: Za 30 minut nie jestem pewien, czy chciałbym zbytnio zastanawiać się nad tym, jak wygląda kod. Nie chciałem niczego pokazywać, ale ponieważ nie masz dużo czasu, nie sądzę, żeby kod był w centrum uwagi. Może być bardzo sucho i nudno. Porozmawiaj więcej o pomysłach i koncepcjach, jeśli możesz. Jeśli można znaleźć prosty przykład (może mniej niż 10 linii), które jest łatwe do zrozumienia, a także ciekawe, idź do niego!
FrustratedWithFormsDesigner
Zgadzam się, ale myślę, że zamiast wchodzić w prosty przykład z rozdziału 1, wolę pokazać program, który opracowałem, i zamienić w nim kilka wierszy kodu, aby pokazać wynik. Ostatecznie nie sądzę, że jestem będę mogła nauczyć ją programowania, ale może zainspiruję ją, by chciała dowiedzieć się więcej ...
Dexter,
2

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!

Jeremy Murray
źródło
2

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.

Michael
źródło
2

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ą.

Mike Dunlavey
źródło
1

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.

Mike Jones
źródło
1

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 ...

Andy
źródło
1

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.

10 PRINT "CAT"
20 END

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.

Lord Loh.
źródło
1

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.

SuperElectric
źródło
1

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.

vsTerminus
źródło
1

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ć.

użytkownik30241
źródło
1

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.

Brian
źródło
1

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 - MessageBoxw 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.

Dr McKay
źródło
0

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.

SoylentGray
źródło
0

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.

Grantismo
źródło
0

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

Ratna Dinakar
źródło