Jak mogę pomóc dziecku zachować motywację do nauki programowania?


39

Jak mogę pomóc inteligentnemu dziecku w wieku przedszkolnym (nastolatkom) nauczyć się programowania? Dobrze sobie radzi w szkole i pominął 2 stopnie i jest introwertycznym stereotypowym kujonem. Jest bardzo zainteresowany tworzeniem stron internetowych i opanował podstawy HTML , CSS i JS , o których nic nie wiem (nie jestem programistą). Z własnej wiedzy zbudował osobistą stronę internetową. Nauczył się tego z Internetu na różnych stronach z samouczkami i przepełnieniem stosu.

Jak mogę go zachęcić do rozwijania tych umiejętności? Czy jest jakiś sposób, aby pomóc w jego nauce, biorąc pod uwagę, że sam nie znam programowania? Nie sądzę, żebym mógł nauczyć się wszystkiego, czego się nauczył, ponieważ poświęca mu tyle czasu i jest tak oddany.

Myślę, że największym niebezpieczeństwem jest utrata motywacji i rezygnacja. Debugowanie może czasem być frustrujące i nie chcę, żeby przestał z tego powodu. Jeśli chodzi o inne przedmioty, mógłbym pomóc mu w pracy, ale przy programowaniu nie mogę, ponieważ nie mam wiedzy na temat domeny.

Co powinienem zrobić, aby zachować motywację do kodowania, aby nie zniechęcił się, gdy napotkają trudności, biorąc pod uwagę, że sam nie jestem w stanie przezwyciężyć tych trudności?

(nie jestem rodzicem)


41
Hmm, po prostu zabraniajcie, a oni będą bardzo zainteresowani tematem.
Per Alexandersson

Mój przyjaciel napisał post na blogu ( davidketcheson.info/2014/12/09/teaching_kids_to_program.html ) o tym, jak uczy swoje dzieci programowania, które może być dla ciebie przydatne.
Jeff

3
Nauczyłem się programowania sam w bardzo młodym wieku. Mój tata kupił mi narzędzia (dziś możesz dostać bezpłatną wersję studia wizualnego) i książki. Nie musi jeszcze programować jak profesjonalista, żeby się dobrze bawić. Bawiłem się, tworząc gry, zaczynając od przygody tekstowej, a potem strzelanki 2D. Również dzięki studiu wizualnemu może zwiększyć złożoność tej witryny, czyniąc ją dynamiczną.
the_lotus

Naucz się z nim kodować. Zabawa dla Ciebie do zrobienia razem. W ten sposób możesz zrobić dla niego frustrujące części na początku.
Evorlor,

9
the fundamentals of HTML, CSS, and JS, which I don't know anything about (I'm not a programmer) mówi osoba z reputacją 4k SO i której głównymi tagami są HTML, CSS i JS
Święty Mikołaj

Odpowiedzi:


25

Po pierwsze, jeśli chodzi o pomoc dziecku w nauce:

  1. Wiele / większość szkół ma kluby komputerowe. Zachęć dziecko, aby zapytało innych uczniów lub poproś o pomoc profesjonalistów ze szkoły. Pozwoli to dziecku rozwijać się wraz z rówieśnikami, co stanowi największą zachętę, jaką możesz dać.

  2. Porozmawiaj z nauczycielem komputerowym w szkole, jeśli taki istnieje. Mogą zgodzić się pomóc dziecku lub udzielić porady.

  3. Podobnie do # 1 / # 2, zareklamuj nauczyciela, jeśli możesz sobie na to pozwolić. Biedny, ale genialny student CS może naprawdę lubić uczyć inteligentnego nastolatka, o wiele więcej niż mniej inteligentnych rówieśników, których zwykle naucza. Wiem, że tak. Wyzwaniem (poza tym, że trzeba płacić) jest znalezienie kogoś, kto jest dobry w nauczaniu - należy poprosić o wcześniejsze doświadczenie w nauczaniu lub korepetycji, a także umiejętność pracy z młodszymi dziećmi.

  4. Kursy online (Coursera itp.) Mogą być świetne, szczególnie dla odwróconego kujona ( ja patrzę w lustro )

  5. Aby rzucić im wyzwanie, wskaż je na stronie Rosetta Code i na stronach Code Review Stackexchange .

Po drugie, jeśli uważasz, że mogą wykorzystać motywację do kolejnych kroków:

  1. Jeśli dziecko jest dojrzałe (prawdopodobnie jest), pokaż im średnie stawki płac dla różnych zawodów, a inżynierowie oprogramowania są znacznie wyżsi w porównaniu do większości zawodów. To sprawi, że będzie mógł spojrzeć poza zwykłe dokuczanie maniakom, z którym prawdopodobnie się spotka i będzie miał powody, by trzymać się kodowania.

  2. Zwróć uwagę, że jest wiele takich dzieci (jak widać z osobistych opinii na prawie wszystkich odpowiedziach tutaj :) - prawdopodobnie będzie bardziej zachęcany, jeśli nie będzie dziwakiem, nawet jeśli jest introwertyczny z natury.


3
Many/most schools have computer clubsBłagam się nie zgodzić.
Święty Mikołaj

W tej sprawie muszę się zgodzić z @SantaClaus. Zwłaszcza w Teksasie nie ma zbyt wielu grup programowania. Byłem bardzo niezadowolony, gdy dowiedziałem się, że mój lokalny liceum nie ma klubu. Próbowaliśmy ich namówić, a oni odmówili z powodu finansowania. Ale mają ponad 20 klubów sportowych. Widocznie jest to prawdą w przypadku większości szkół w Teksasie, z wyjątkiem szkół w śródmieściu.
Damien Bochkarev

12

Kilka rzeczy, które należy dodać do doskonałej odpowiedzi user3143:

Przybory. Narzędzia nie są substytutem doświadczenia ani wiedzy, ale każdy rzemieślnik / kobieta docenia dobre narzędzia i są czymś, w czym ty, jako rodzic niebędący programistą, możesz pomóc. Niektóre z najlepszych są bezpłatne, ale jeśli dziecko chce IDE, biblioteki, programu itp., Który kosztuje rozsądną kwotę, zdecydowanie rozważ jego zdobycie. Uważam na przykład, że Photoshop jest nieoceniony przy tworzeniu stron internetowych (mojej pracy). Daj dziecku trochę technologii mobilnej do opracowania. Nie musi być drogi i nie musisz podłączać go do abonamentu, wystarczy zużyty 2-letni telefon i tablet.

Zachęć dziecko do udziału w open source, dowiedz się, jak działa github (jeśli jeszcze nie działa). Zachęć dziecko, aby spróbowało zdobyć kredyty szkolne za osobiste projekty (najlepszy prezent na świecie). Zachęć dziecko do pisania programów jako prezentów (obecnie tworzę stronę internetową dla mojej 5-letniej córki). Pomaga w nauce przewidywania i spełniania życzeń i wymagań innych ludzi, co będzie ważne, jeśli chcesz, aby dziecko kontynuowało karierę programistyczną. A propos...

Zakładam (być może niesłusznie), że zachęcasz z nadzieją, że prawdopodobnie stanie się to karierą dziecka. W takim przypadku profesjonalny programista musi wiedzieć wiele rzeczy, których hobbysta prawdopodobnie nie wie. Jeśli nie jesteś jeszcze w tym momencie (dzieciak jest dość młody), nie martw się o następującą listę pro wymagań wstępnych: kontrolę wersji kodu źródłowego, pracę zespołową, obsługę klientów (niezależnie od tego, czy są szefami czy klientami), dokumentację (programy są dla inne osoby do przeczytania i tylko przypadkowo do uruchomienia komputerów) oraz równowaga między życiem zawodowym a prywatnym (nasza branża nie jest najgorsza, ale stanowi problem).

Last but not least jest RSI. Twoje dziecko będzie pisać. Dużo. Spędziłem lato w szkole, aby nauczyć się pisać na klawiaturze Colemak i jestem bardzo zadowolony. Warto sprawdzić.



1
Ugryzę. Hobbieści potrzebują SCM (Git jest najlepszy, IMO), jeśli kiedykolwiek chcą być rozsądni.
Cofnij

2
Dlatego powiedziałem „prawdopodobnie”. Na pewno kilka razy rzuciłem się na kolana przy prywatnych projektach, myśląc: „Nie będę zawracał sobie głowy kontrolą źródła w tym małym, niepotrzebnym programie” :)
Jared Smith

11

Pozostałe odpowiedzi tutaj są w porządku, ale martwię się, że istnieje jeden ważny fakt, że wszyscy przeoczają:

introwertyczny stereotypowy kujon

Jestem tego rodzaju osobą i nie możesz sobie wyobrazić, jak ciężkie jest życie, kiedy jesteś nieśmiały i dosłownie boisz się rozmawiać z innymi (wydaje się to nazywane lękiem społecznym), więc jeśli to możliwe, powinieneś się tym zająć wcześniej cokolwiek innego, jeśli nie, obawiam się, że użyłby programowania jako „ucieczki” od prawdziwego życia (tak jak robiłem to przez kilka lat), a to sprawiłoby mu kłopoty w przyszłości.


1
To bardzo dobry punkt, o którym należy pamiętać. Szukanie klubu programistycznego lub zajęć pozalekcyjnych zawierających programowanie (np. PIERWSZE ligi LEGO) może pomóc mu rozwinąć zarówno jego oczywiste zainteresowania, jak i umiejętności socjalizacyjne.
Acire

2
Zgoda. Prawdopodobnie czerpałem więcej z jednego roku teatru w liceum niż z innych klas poza komputerowymi. Nauczył mnie, jak radzić sobie ze strachem na scenie, jak improwizować w stresującej sytuacji społecznej i wszelkiego rodzaju „miękkich umiejętności”, które przydają się cały czas. „Dramatyczni maniacy” są, no cóż, kolejnym podgatunkiem maniaka, więc interakcja z kolegami z klasy i odnosić się do nich nie będzie tak trudna dla dzieciaka, jak w przypadku innych obcych form życia, które przemierzają korytarze typowego liceum. Zdecydowanie powinieneś zachęcić go (ale nie naciskać ) na dramaturgię.
Mason Wheeler,

6

Jako programista i do pewnego stopnia będąc tym „dzieckiem” powiedziałbym, że takie rzeczy jak (tanie) wbudowane zestawy sprzętowe, takie jak Raspberry Pi lub Arduino, są dobrym rozwiązaniem. Te zestawy są zwykle dość tanie (Pi kosztuje około 30 USD i jest zasilane przez ładowarkę do telefonu).

Młodzi programiści nie są zainteresowani zrozumieniem pojęć programistycznych, takich jak pisanie bezpiecznego / wysokiej jakości kodu. Dopóki nie stanie się nawykiem, przeszkadza w działaniu. Porównuję to do chemii, ponieważ znajomość misternych szczegółów, dlaczego Mentos i Diet Coke robią wielką fontannę, jest o wiele mniej interesująca niż niechlujne eksperymentowanie na podwórku z sodą i słodyczami.

Młodzi programiści uczą się wielu złych nawyków podczas kursów online i próbek kodu. Są zwykle źle zaprojektowane i zbudowane do pracy tylko w optymalnych warunkach. Dobrzy programiści budują dla tych wszystkich dziwnych, „małych przypadków”, w których rzeczy nie są dokładnie takie, jak się spodziewano. W pewnym momencie będą musieli oduczyć się wszystkich złych zachowań i unikać „profesjonalnego” środowiska, dopóki nie będą gotowi, co jest dobrym sposobem na powstrzymanie formowania się złych nawyków.

Są zmotywowani do zabawy i równie dobrze mogą się bawić, gdy są jeszcze dziećmi i kiedy chcą to robić.

Wzięcie sprzętu / płytek drukowanych i faktyczne zrobienie czegoś zachęca do kreatywnych umiejętności, których często (stereotypowo) brakuje dzieciom z tego rodzaju zainteresowaniami. Jako młody programista, „Zrobiłem TO” jest znacznie bardziej satysfakcjonujący, a błąd w kodzie może potencjalnie coś zepsuć. Dodatkowo, kiedy skończysz go budować, możesz przez chwilę z nim grać.

Co najważniejsze - dla osób niebędących programistami o wiele łatwiej jest chwalić coś fizycznego, którego cel jest łatwo zrozumiały. To z kolei prowadzi do wyższych pochwał i bardziej konstruktywnych konwersacji niż kod / programy na ekranie, które w końcu zamieniają się w „polowanie na błędy” lub wymagają wyjaśnienia dłuższego niż demonstracja.


5

Kiedyś byłem w podobnej sytuacji. Byłem nastolatkiem, który chętnie uczył się programowania i byłem podekscytowany widząc, jak komputer wykonuje polecenia zgodnie z instrukcją. Nie interesowałem się tworzeniem stron internetowych, ale początkowo interesowało mnie coś wręcz przeciwnego: hackowanie / wykorzystywanie. Niemniej jednak uważam, że moje doświadczenie w nauce programowania będzie istotne.

Uważam, że kluczem do nauczania młodzieży, jak programować, jest zachęta. Jest to coś, czego żałuję, nie miałbym więcej. Moi rodzice nie są zbytnio obeznani z technologią, ani też nikt w mojej rodzinie, dlatego nie otrzymałem dużej zachęty ani wsparcia w nauce / doskonaleniu umiejętności programowania. Zrobiłeś właściwy krok, prosząc innych o ich przemyślenia, co pokazuje, że popierasz jego zainteresowania. Najlepsza rada, jaką mogę udzielić rodzicowi / opiekunowi / mentorowi dziecka, które jest zainteresowane programowaniem, jest prosta: nie pozwól im się zniechęcić ani przytłoczyć. Dziecko może łatwo poczuć się zniechęconym lub przytłoczonym podczas pracy nad dużym problemem. Twoim zadaniem jest upewnić się, że tak się nie stanie.

Co do tego, jak możesz go zachęcić, jest to trochę bardziej skomplikowane. Każde dziecko jest inne. Moi rodzice zaczęli mnie wspierać i zachęcać, kiedy byłem w ostatnich latach liceum. Największą zachętę znalazłem, kiedy weszli do mojego pokoju, usiedli ze mną, zapytali o to, nad czym pracuję, posłuchali, jak to szczegółowo wyjaśniam, patrzą, jak prowadzę je dla nich, i wydają się zainteresowani. Dzisiaj nie wierzę już, że moi rodzice żywili duże zainteresowanie moimi wyjaśnieniami lub szczegółami, ale w tamtym czasie byłem przekonany, że tak, i pomogło mi to poczuć się usatysfakcjonowanym i osiągniętym dzięki mojej pracy. Poświęć trochę czasu, aby usiąść z nim, spojrzeć na to, co zbudował, przedyskutować z nim to, zadawać pytania i wydawać się zachwycony. Sprawi, że poczuje się wyjątkowo i zapewni pozytywne wzmocnienie. Możesz nie być w stanie zaoferować mu pomocy lub pokazać mu, jak coś zrobić,

Jednym z najlepszych sposobów nauki programowania jest znalezienie trudnego celu i uczynienie go głównym punktem rozwoju. W moim przypadku skupiłem się na jednym konkretnym celu, gdy miałem 16 lat. Skoncentrowałem się na opracowaniu programu do wykorzystywania bardzo popularnej gry na Androida / iPhone w tym czasie. Byłem skupiony na tym celu i pracowałem nad nim przez miesiące. W końcu udało mi się zbudować aplikację, a potem mój cel stał się szerszy. Po osiągnięciu tego celu pracowałem nad rozszerzeniem programu i dodaniem do niego kolejnych funkcji. Przez następne półtora roku stworzyłem wiele programów, które osiągnęły ten cel i zawierały funkcje, których nigdy nie myślałem, że mogę osiągnąć. Powiem, że moją motywacją do dalszego rozwoju były pieniądze. Stworzyłem firmę internetową, w której sprzedawałem napisane przeze mnie oprogramowanie wykorzystujące grę. Jednak jego motywacją może być wszystko. Nie muszą to być pieniądze ani sprzedaż tego, co tworzy. Może po prostu znaleźć motywację do satysfakcji z osiągnięcia celu końcowego. Nie ma znaczenia, co go motywuje, ważne jest, że jest zmotywowany.


Oto niektóre z najlepszych zasobów, które znalazłem do nauki programowania:

  1. YouTube: To może wydawać się kiepską sugestią, ale pozwól mi wyjaśnić. Wyszukaj „samouczek [w dowolnym języku, którego chce się nauczyć]” i wybierz listę odtwarzania. Na YouTube jest wiele świetnych samouczków dla wielu języków, od początkującego do zaawansowanego.
  2. Khan Academy: Nie znalazłem tego jeszcze rok temu, ale Khan Academy ma bezpłatny kurs programowania. Przejrzałem kurs i wydaje się, że jest to bardzo dobry kurs dla początkującego programisty. Obejmuje podstawowe pojęcia i jest bardzo zrozumiały. To może być dla niego dobry zasób.
  3. „TeachMeComputer”: TeachMeComputer to nazwa użytkownika YouTube, który stworzył świetne samouczki dotyczące Visual Basic .NET i PHP. Zorganizował je wszystkie i zapewnił dodatkowe treści na www.HowToStartProgramming.com . Zainteresowanie dziecka rozwojem sieci może być cennym zasobem do nauki PHP. Wierzę, że VB.NET to świetny język programowania dla początkujących, więc zestaw samouczków może być dla niego bardzo przydatny.

Edycja : Przepraszam, że jesteś rodzicem. Nie zauważyłem ostatniej linii twojego postu, która mówi, że nie. Mimo to uważam, że moja odpowiedź może być nadal pomocna.


4

Po tym, jak sam nauczyłem się programować w podobny sposób (chociaż na początku lat 90. było dużo mniej przydatnych materiałów dostępnych online, więc znalazłem / kupiłem książki jako moje główne źródło informacji), mogę powiedzieć, że najważniejszą rzeczą jest wydaje się, że dziecko potrzebuje już: motywacji do nauki.

Inne odpowiedzi tutaj zawierają dobre sugestie, w tym elementy, takie jak zaangażowanie z podobnie myślącymi rówieśnikami, pomoc w zaznajomieniu się z narzędziami i tak proste, jak się wydaje, nauka skutecznego pisania na klawiaturze jest kluczowa (w przeciwnym razie wprowadzanie jakichkolwiek informacji do komputera wydaje się być tak uciążliwy, że ledwo można zmierzyć się z pomysłem rozwiązania poważnych problemów z kodem).

Dodałbym również: Zachęcaj tę młodą osobę do wybrania celu / projektu według własnego wyboru i trzymaj się jej do końca. Może to wymagać kilku prób, a pierwsze mogą być niekompletne, być zbyt ambitne, w końcu stać się nudne itp. Ale nauka radzenia sobie z tym i produkowania czegoś wysokiej jakości, z czego korzysta ktoś (może to być projekt open source , lub coś używanego w szkole lub przez przyjaciół itp.) - to ważny punkt i ważny krok.

Dużo się nauczyłem o programowaniu w tym samym wieku (10-12 lat), ale kiedy miałem trzynaście lat, ktoś zaproponował mi pieniądze na zaprogramowanie czegoś dla nich i miał z tym związany termin. To było inne doświadczenie. Chociaż wiązało się to z pewnym stresem, uczyniło mnie to odpowiedzialnym. Miałem mnóstwo niekompletnych projektów i błyskotliwych pomysłów, ale dopiero ktoś pomógł mi wyszkolić mnie w dyscyplinie dostarczania oprogramowania, które piszę (i niech to będzie wystarczająco przyzwoite i wykonalne, a nie zbyt bzdurny stos bzdur), Uważam, że „stałem się prawdziwym programistą”.

To moje dwa centy.


3

Zacznij od Scratch: http://scratch.mit.edu/

„Scratch to bezpłatne narzędzie do tworzenia multimediów na komputery stacjonarne i w Internecie, z którego mogą korzystać studenci, uczeni, nauczyciele i rodzice, aby łatwo tworzyć gry i stanowić krok w kierunku bardziej zaawansowanego świata programowania komputerowego, a nawet może być wykorzystywane do różnych celów edukacyjnych oraz konstruktywistyczne cele rozrywkowe od projektów matematycznych i naukowych, w tym symulacje i wizualizacje eksperymentów, nagrywanie wykładów z animowanymi prezentacjami, animowane historie z nauk społecznych oraz interaktywna sztuka i muzyka ”. WP


5
Ew. Byłem zmuszony używać Scratcha na kursie obsługi komputera w szóstej klasie i było to okropne. dlaczego zmuszasz mnie do tak częstego używania myszy, po prostu pozwól mi tyyyyype
Doorknob

1
Jeśli jedyną rzeczą, której nauczyłeś się podczas pracy ze Scratch, jest to, że nie lubisz myszy, to nie trafiłeś w sedno. To doskonałe narzędzie do nauki podstawowych pojęć programowania. Eksperymentowanie z nią to świetna zabawa. Oba moje dzieci to uwielbiały i zaczęły uczyć się prawdziwego programowania. Kluczem nie jest to, czy używa myszy; najważniejsze jest to, że jest to fajny sposób na rozpoczęcie pracy, który może zachęcić ich do dalszej nauki.
james.garriss

5
Scratch jest całkiem dobrym punktem wyjścia do wprowadzenia podstaw logiki programowania, ale może być trochę po młodej stronie dla nastolatka, który już zaczął. Jest to również dobry sposób na przyzwyczajenie się do wizualnych języków programowania, które można wykorzystać w karierze (np. LabVIEW).
Acire

3

Ludzie już dodali świetne sugestie. Jedyne, co mogę dodać, to znaleźć coś, co już lubi robić, a programowanie dałoby mu przewagę konkurencyjną. Na przykład, jeśli lubi gry wideo i umiejętność kodowania oznacza, że ​​mógłby zmodyfikować swój system lub oprogramowanie (tak Wiem, że może to prowadzić do oszukiwania), aby dać mu przewagę, być może jest to sposób, aby zmusić go do zhakowania kodu i nauczenia się, jak naginać zachowanie aplikacji w celu zaspokojenia jego potrzeb. To mogą być głupie rzeczy, nad którymi zaczyna się hackować; ale z czasem jego umiejętności rosłyby naturalnie, nie będąc obowiązkiem. Kiedy ludzie lubią to, co robią, uczą się szybciej i dalej się rozwijają.


3

Nigdy nie zapominaj, że istnieją dwa cele, które czasami mogą być sprzeczne.

  • Miłego programowania
  • Zostań świetnym programistą

Pamiętaj o tych dwóch sprawach, ponieważ jeśli podejmujesz decyzje, nie wiedząc o tym, który z nich ma priorytet, możesz nie uzyskać właściwej równowagi. Zawsze priorytetowe ustawianie tego samego nad drugim nie będzie dobrze.

Ktoś, kto uczy się, jak programować bez wskazówek od bardziej doświadczonych programistów, może nauczyć się złych nawyków, których później będzie musiał się nauczyć.

Jeśli znalezienie nauczyciela dla dziecka jest dla ciebie opcją, może być bardzo pomocne.

Zachęć dziecko do zaangażowania się w projekty typu open source, ponieważ może to przynieść wiele korzyści:

  • Nauczysz się współpracować z innymi ludźmi nad projektem, co jest kluczowe, jeśli masz nadzieję, że pewnego dnia zaczniesz programować.
  • Bardziej doświadczeni ludzie biorący udział w projekcie mogą udzielić wskazówek na ten temat.
  • Jeśli uda Ci się wnieść coś miłego do projektu, oznacza to, że jest coś do dodania CV, jeśli pewnego dnia zaczniesz karierę jako programista.

Istnieje wiele projektów typu open source, więc istnieje duże prawdopodobieństwo, że zainteresuje to dziecko.

Nawet jeśli nie masz żadnych umiejętności technicznych, możesz nadal prowadzić dziecko w tym procesie. Niektóre z tych rzeczy, które są potrzebne do zaangażowania się w taki projekt, dotyczą umiejętności dobrych ludzi, w których prawdopodobnie zapewnilibyście wskazówki.

Niektóre społeczności internetowe mogą wydawać się nieco wrogie nowym użytkownikom. Kilka porad przydatnych w większości przypadków to:

  • Na początku bądź trochę pokorny. Nowi przybysze są czasami (czasem z dobrych powodów) postrzegani jako aroganccy ludzie o wyższej samoocenie niż uzasadnieni.
  • Pokaż, że chcesz się uczyć.
  • Pokaż, że możesz wnieść cenny wkład.

Wiele projektów open source omawia rozwój otwartych list mailingowych, więc musisz zdecydować, czy będziesz zwracał uwagę na te, aby zobaczyć, jak dziecko radzi sobie w społeczności.


2

Jestem obecnie w młodym wieku i programuję od kilku lat.

Po raz pierwszy zostałem wprowadzony do języka C, kiedy miałem około ośmiu lat, chociaż nie dotknąłem zbytnio tego języka. Koncentruję się bardziej na tworzeniu i projektowaniu stron internetowych, chociaż mam podstawową wiedzę o Javie dla API Bukkit i wkrótce będę rozwijał się w Objective C lub Swift.

Z mojego obecnego doświadczenia najlepiej uczyć się samemu. W młodszym wieku trudniej jest mi uczyć się od innych ludzi, ale raczej metodą prób i błędów. Wiem, że wiele szkół oferuje kluby komputerowe i takie, do których zostałem poproszony, ale odmówiono mi, chociaż nie uważam, że te wystarczą mi. Będąc młodszym wiekiem, ludzie generalizują, że my, dzieci, nie jesteśmy zdolni do tego, czego oczekują. Wiem, że mam większą wiedzę na temat różnych języków programowania i skryptów u wielu dorosłych, którzy zakładają mój poziom wiedzy na ten temat.

Kiedy zaczynałem od programowania, oglądałem wiele samouczków online, chociaż pomogły mi tylko samouczki wizualne. Czytanie i interaktywne zasoby wcale by mi nie pomogły, chociaż filmy też mnie ograniczały.

Skopiowałem kod z filmów i sprawdziłem, jak to działa. Badałem pewne funkcje i eksperymentowałem z językiem, dopóki nie miałem średnio zaawansowanej znajomości tego języka.

Czuję się jak dziecko, jestem ograniczony do tego, co mogę osiągnąć. Teoretycznie można by mnie zaklasyfikować jako „kujona” lub coś takiego za posiadanie tak poszerzonego zakresu wiedzy w zakresie komputerów i programowania, chociaż nie jest to dla mnie bardzo pomocne. Nie jestem w stanie skoncentrować się na pracy na komputerze i programowaniu barier, takich jak szkoła, rodzina i przyjaciele. Gdybym był dorosły, wierzę, że mógłbym szybciej poszerzyć swoją wiedzę i dowiedzieć się więcej, chociaż jest ona inna dla każdej osoby.

W każdym razie, jeśli nie chcesz czytać mojego zaśmieconego tekstu, po prostu polecam dziecku uczyć się sam. Najprawdopodobniej jest w tej samej pozycji, co ja, czuję się ograniczony, chociaż jeśli go zostawisz, jestem pewien, że znajdzie zasoby, które mu pomogą, a nie otrzyma zasoby, które mu nie pomogą.

Przepraszam za wszelkie błędy gramatyczne, ponieważ sam jestem dzieckiem i nie jestem w stanie pisać szczegółowo ani w uporządkowany sposób, aby mógł to zrobić dorosły z większym doświadczeniem i wiedzą.

Mam jednak nadzieję, że moje informacje są pomocne, mimo że są to dość poszerzone informacje.

Edycja: Nie polecam używania narzędzi takich jak scratch lub auto-uzupełnianie lub automatycznie generowanych narzędzi kodu, ponieważ mogłyby one zniszczyć cel programowania. Scratch opiera się raczej na zdrowym rozsądku niż na programowaniu - nie tak należy postrzegać programowanie.


2
+1 do Twojej edycji. To moja największa skarga na używanie niektórych IDE podczas nauki. Jeśli IDE pisze dla ciebie większość twojego kodu, to czego się uczysz? Ze względu na ten problem jestem ostrożny przy polecaniu programu Visual Basic .NET. Visual Studios dla VB.NET często automatycznie zapisuje wiele kodu klucza i sugeruje, co napisać dla reszty. Jest to w porządku, jeśli użytkownik uczy się, co faktycznie robi automatycznie wygenerowany / wypełniony kod, ale jeśli użytkownik nie szuka tej wiedzy na własną rękę, nie będzie się odpowiednio uczył. Więc +1 do twojej porady przeciwko tego rodzaju rzeczom.
Spencer D

1
Dziękuję za zgodę. Ponieważ mam wiedzę w różnych językach, użyję IDE, które automatycznie się uzupełniają. Dotyczy to tylko zarządzania czasem i chociaż poleciłbym to bardziej doświadczonym programistom, ludzie nadal muszą nauczyć się programować. To tak, jakby umieć mówić w języku, nie umiejąc go w pewien sposób pisać.
Profil

Dobra analogia do tego. Jeśli mogę, powiedziałbym, że to jak znajomość kilku słów w obcym języku, a następnie użycie tłumaczenia google, aby przetłumaczyć resztę tego, co chcesz powiedzieć. Tak, ma sens i działa, ale nie napisałeś go sam, a zatem nie nauczyłeś się, co oznacza każde słowo. Jednak, jak powiedziałeś, gdy zrozumiesz języki i kod, użycie autouzupełniania i automatycznie wygenerowanego kodu może zwykle znacznie zaoszczędzić czas.
Spencer D

Hej, tak. Całkowicie się z tym zgódź.
Profil

2

Chciałbym dodać jeden punkt do podanych tutaj odpowiedzi. Jeśli możesz to zrobić, nadal zachowując ich zainteresowanie, spróbuj zachęcić do studiowania działania języków (teoria obliczeń, paradygmaty językowe itp.), Być może po przeczytaniu podręczników, a nie tylko składni i dokumentacji językowej. Próba i błąd doskonale nadają się do poznania, co działa, ale do zrozumienia, dlaczegoza tym, co działa lub nie działa w programowaniu, jest niezbędne, aby zostać programistą, a nie kimś, kto jest zainteresowany realizacją zadania bez względu na to, jak dobrze napisany jest kod. Tylko dwa centy jako inżynier oprogramowania, który dostrzegł różnicę między „działaniem”, więc musi to być doskonała mentalność, a pomysł pisania czystego kodu, który działa dobrze, jest skalowalny, adaptowalny itp. Studiowanie teorii może naprawdę pomóc to.


1

Dzieciak już wie, jak się uczyć i pokazał, że chce. Wiele innych odpowiedzi skupia się na pokazywaniu materiałów dla dzieci, co nie jest pomocne, ponieważ dziecko może samodzielnie zadawać pytania dotyczące materiałów w dowolnym miejscu w sieci. Przerzucanie materiałów i oczekiwań wobec dziecka może nawet zniechęcać i zabijać zainteresowanie tematem.

Myślę, że są tylko dwie rzeczy, na które należy zwrócić uwagę: utrata zainteresowania z powodu braku wyzwania lub przytłoczenia wyzwaniem.

Aby walczyć z przytłoczeniem, okaż zainteresowanie tym, co zrobił, aby mógł być dumny ze swoich postępów (lub przynajmniej uświadomić sobie, że nastąpił postęp, jeśli wszystko idzie powoli). A jeśli brakuje wyzwania, wspomnij o kilku innych rzeczach, które mógłby zrobić (np. Pracować nad modem dla gry, którą lubi, kupić Raspberry PI itp.), Ale nie naciskaj na niego - niech to on będzie tym, który decyduje, czy chce to zrobić.


1

Potrzebuje osobistych projektów. Open source jest świetny. Tworzenie gry jest świetne - ale zdecydowanie najwyższe zamówienie do wypełnienia.

Wykończenie rzeczy, które mają wyraźne zastosowanie, dla niego lub kogoś innego, jest najbardziej elastycznym, niezawodnym rozwiązaniem. Polecam gry, bo kocham gry. Ale znowu uwielbiam gry, a gry wymagają najszerszego zakresu umiejętności do ukończenia.

Ale jeśli jest kujonem, pokocha też gry. Gry są również opłacalne. Ahaha.


1

Myślę, że większość sugestii prowadzi w złym kierunku.

Biorąc pod uwagę fakt, że wydaje się, że sam jest w stanie uzyskać odpowiednią wiedzę lub umiejętności do projektu, poleciłbym następujące dwa:

Zaproponuj mu poprowadzenie zajęć dydaktycznych po szkole lub kilka rozmów na temat programowania dla innych uczniów. Najlepszym sposobem na naukę jest i tak nauczanie. Może to również poprawić jego umiejętności społeczne.

Daj mu kilka „prawdziwych” projektów. Poproś go, aby zaprogramował stronę internetową dla klasy szkolnej lub aplet sieciowy do projektu matematycznego lub fizyki. Lub mała rzecz z bazy danych lub wiki. W ten sposób zobaczy rzeczywiste znaczenie swoich umiejętności. Zrozumie, że jest ekspertem i że inni ludzie go potrzebują. I nauczy się wcześnie, aby sam się promować.


1

Gratulacje dla tego młodego umysłu za to, że już w wieku 14 lat miał niesamowicie zbywalne umiejętności! Jak fajnie jest ten dzieciak. (Jestem programistą, więc wybaczcie mi, kiedy on się wyśmiewa).

  1. Pierwszy telefon zachęca do tego, że jest to świetna umiejętność!

    Początkujący programista może zacząć od 30 000 do 50 000 USD rocznie, w zależności od regionu. Zaawansowani programiści (zwykle nazywani Inżynierami) mogą ułatwić sześć cyfr.

  2. Wszystkie zasoby, których musi się nauczyć, dobrze się bawić i nadal ulepszać, są bezpłatne w Internecie, zamieszczę kilka linków poniżej.
  3. Mimo że programowanie jest zabawne, klawiatury i biurka mają poważne konsekwencje dla ciała. Młody padawan zaczął już w bardzo młodym wieku, musi wziąć pod uwagę niektóre aktywności fizyczne, aby mieć pewność, że nie dostanie tunelu z carpellem w wieku 16 lat.

    MOCNIE sugeruję jogę, a w najprostszej formie po prostu wyszukuj w YouTube i wykonuj 15 min odcinków każdego dnia, że ​​nie ma go w szkole lub innej aktywności.

    Mógł myśleć, że żartuję (zwłaszcza jako 14-latek), ale branża jest bardzo ... ciężka ... głównie dlatego, że programista zajmuje jedną pozycję i pisze. Buduj teraz dobre nawyki.

Link Love:

Istnieje wiele WIELE innych zasobów, ale kiedy na nie spojrzy, będzie mógł znaleźć więcej z linków itp.



0

Jeśli jest dobry w HTML CSS i JS bez pytania, ma już do tego talent. Jeśli chce wyostrzyć swoje umiejętności, dlaczego nie skierować go na CodeEval ? Wykonując te wyzwania, wyczuje on każdy wybrany przez siebie język, a jeśli on wyłapie wiele więcej, tym lepiej (języki kodowania są w końcu podobne do języków ludzkich, im więcej wiesz, tym łatwiej jest nauczyć się następnego ).

Jeśli jest on obszernym typem lektury, możesz pobrać wymagane lektury z klasy CS101 na najbliższym uniwersytecie. Jeśli może już zaprogramować, nie będą one nad jego głową i mogą go nawet zainteresować.


Przepraszam, -1. Jako profesjonalny programista nie ma nic gorszego, niż ktoś, kto myśli, że gra w golfa jest pozytywna; a jako ktoś, kto uczył programowania, gra w golfa wykracza daleko poza to, na co powinien być narażony początkujący.
user3143

@ user3143 Punkt, usunięto łącze do golfa. CodeEval (przynajmniej dla początkujących) to świetny sposób na wybieranie sztuczek i pracę z podstawowymi algorytmami.
Sidney,

0

Wszystkie powyższe sugestie są przydatne, ale jeśli jesteś w jednym z wymienionych poniżej obszarów, możesz przejść do Coderdojo. Jeśli nie, możesz znaleźć podobnie myślące dzieci i rodziców, możesz rozważyć założenie jednego w swoim regionie. Zobacz szczegóły na https://zen.coderdojo.com/dojo

Prowadzę jedno w mojej dzielnicy Sallins, Naas (w Co Kildare. Irlandia), a od 4 dzieci dwa lata temu, teraz mamy 50+ dzieci w tygodniu, od 6 do 17, wszystkie pracujące w różnych językach i narzędziach, od podstaw i MineCraft, Python i PyGame, Java, Blender, Unity, Eclipse itp.

Mam nadzieję, że uda ci się połączyć z grupą, ponieważ naprawdę wzbogaca to doświadczenie, aby móc dzielić emocje związane z naszymi ciągłymi doświadczeniami edukacyjnymi i pochwalić się każdym nowym projektem :-) JK


0

Zacząłem programować w szkole średniej z książką Game Programming for Teens . Uczy języka programowania BlitzMax . Myślę, że jest to dobry język programowania dla początkujących, ponieważ ma angielską składnię i prosty zestaw poleceń do rysowania na ekranie. Wiele innych języków, takich jak Java, ma ogromne API, które jest zaletą dla profesjonalnych programistów, ale może być przytłaczające dla początkujących. Gdy nauczysz się jednego języka programowania, o wiele łatwiej jest nauczyć się innego, aby mógł przejść do innego języka, takiego jak Java lub C #, kiedy będzie gotowy.


0

Nie mogę powiedzieć, że przeczytałem wszystkie odpowiedzi, ale kilka pierwszych bardzo mnie zasmuciło. WIRTUALNIE BRAK współczesnych wielkich komputerów (takich jak Gates, Jobs itp.) Przecina zęby na tak wysokim poziomie abstrakcji (tj. Technologie internetowe). Wszyscy zepsuli się i zabrudzili sprzętem. Guru prowadzący w każdym zespole są prawie zawsze tymi, którzy mają najgłębszą wiedzę na niskim poziomie.

Jeśli chcesz, żeby nauczył się PRAWDZIWEGO informatyki i ekscytował go tym, zdobądź mu niezbędne zabawki (multimetr dobrej jakości i CRO (ładna jednostka Tektronix 50 MHz drugiej ręki dobrze się sprawdzi), fajna tablica rozwojowa (Raspberry PI, Intel Edison itp.) I burza mózgów dla niego kilka fajnych projektów. Coś takiego jak podłączenie czujnika ruchu i wysłanie mu e-maila ze zdjęciem sypialni, gdy wykryty zostanie jakikolwiek ruch. Zupełnie bez sensu, ale świetna zabawa i fajne popisywanie się twoi kumple.

Gdy tylko dostanie błąd i będzie miał narzędzia, jego umiejętności rozwiną się naturalnie. Najważniejsze jest, aby postawić mu wyzwania współmierne do jego umiejętności. Na początku będzie musiał trzymać się za rękę, ale gdy rozwinie podstawowe umiejętności sprzętowego We / Wy, architektury programu i sposobu uzyskania niezbędnych informacji do rozwiązania następnego problemu, nie będzie go powstrzymywać.


Sparkfun to dobre miejsce, aby zacząć od tego typu rzeczy. Wiele gotowych projektów robotyki. Zastanawiałem się nad poleceniem robotyki / osadzonych rzeczy.
Tyler,

0

z własnego doświadczenia mogę powiedzieć, że musisz po prostu nauczyć się, jak ja, zacząłem od tego, co zrobili inni ludzie, czytając wiki, oglądając tutoriale i próbując zrozumieć ich mechanikę, a potem zacząłem robić to sam i tutaj jestem. Nauczyłem się także kilku rzeczy z codeacademy.com. To była moja podstawa do HTML, CSS, JavaScript, PHP i Ruby. Co najważniejsze, musisz dać mu komputer, internet, dużo czasu, zrozumienia i oczywiście potrzebuje inspiracji (jak własny projekt lub coś ważnego dla niego) i NIGDY nie mów mu, jak to zrobić, jeśli mówi WIE, jak to zrobić, ponieważ musi sam wszystko przemyśleć, aby się tego nauczyć, może także uzyskać bezpłatną subdomenę i hosting na stronie http://api.hostinger.co.uk/redir/3586817(<- używam tego) i nie potrzebuje on żadnych specjalnych narzędzi do kodowania, ponieważ łatwiej jest nauczyć się, kiedy robisz to w zwykłym edytorze plików Ale tak naprawdę wiesz, nie rób niczego, o co on nie prosi

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.