Mój młodszy brat chce zacząć programować. Ma 14 lat i jest technicznie skłonny, ale nie ma prawdziwego doświadczenia w programowaniu. Szuka mnie po wskazówki i nie wydaje mi się, żeby moje doświadczenie było wystarczające, więc pomyślałem, że zapytam tutaj.
Bardziej interesuje go programowanie internetowe, ale interesuje się także aplikacjami komputerowymi / mobilnymi / serwerowymi.
Jaka byłaby dla niego dobra ścieżka uczenia się? Kupię mu kilka książek na Boże Narodzenie, żeby mógł zacząć; pytanie brzmi: czego powinien się nauczyć i w jakiej kolejności?
Z mojego punktu widzenia musi nauczyć się teorii i kodu. Chciałbym zacząć od Pythona, Ruby lub PHP. Jeśli chce wejść do sieci, będzie musiał także nauczyć się HTML, CSS, Javascript itp.
Z tych trzech domen (języki, teoria, znaczniki / itp.), W jakiej kolejności myślisz się uczyć? Czy coś mi brakuje?
Dzięki!
Odpowiedzi:
Zarejestruj go dla StackOverflow.com i Programmers.StackExchange.com
i przyzwyczaić go do przeglądania różnych pytań, gdy się nudzi . Zacznij od gorących / najpopularniejszych pytań.
Również
Pomóc mu wymyślić cel, który chce stworzyć, który jest nieco poza jego zasięgiem, prosta gra, aplikacja, która może wysłać tweeta? To musi być coś ekscytującego . Pomoże to poprowadzić tematy, na które się naraża, i zapewni mu motywację poprzez namacalne rezultaty, które stworzy.
I
Gdzie to możliwe , nie kupuj książek w formie fizycznej, jeśli dobrze współpracuje z drukiem cyfrowym , jestem pewien, że jeden z was ma Androida, iPhone'a, BlackBerry lub iPoda Touch? Pobierz aplikację ibooks lub kindle i kup wersje cyfrowe .
Konieczność radzenia sobie z książką fizyczną spowalnia proces nabywania wiedzy; narzędzia wbudowane w czytniki cyfrowe zapewniają wiele korzyści z czytania technicznego.
Uwaga: jak wspomniano w komentarzach, książki cyfrowe i drukowane mają wady, więc weź ten punkt z odrobiną soli
źródło
I bardzo podoba mi się sposób, że przyszedłem do programowania; jedyne, co mogę sobie wyobrazić, to zmiana, to mój dostęp do książek. Moja rodzina nie miała pieniędzy na wszystkie książki, które mogłam pożreć, a nasza mała wiejska biblioteka nie dysponowała dokładnie podręcznikami techniki. W wielkim schemacie rzeczy jest to mały nitpick.
Z całego serca nie zgadzam się z tymi, którzy twierdzą, że nie możesz uczyć się teorii w wieku 14 lat. Im wcześniej teorii się uczy, tym lepiej. czytam The Art of Computer Programming w wieku 14 lat, choć już trochę pisałem.
Najlepszą rzeczą, jaką możesz zrobić dla swojego brata, to dać mu narzędzia do realizacji jego zainteresowań i włączyć go do społeczności hakerów / programistów, gdy tylko jest to możliwe, aby mógł nauczyć się myślenia doskonałego programisty.
W miarę możliwości odsuń go od zastrzeżonych narzędzi. Jest o wiele więcej dostępnych dla niego w świecie open source. Dostałem się tak dobry, jak jestem w dużej mierze dzięki poradom, które otrzymałem od bardziej doświadczonych ludzi w społeczności open source.
Jeśli możesz sobie na to pozwolić, załóż mu Safari konto lub pomóż mu kupić książki w razie potrzeby. Nawet pożyczenie tego, co już posiadasz, może pomóc.
Upewnij się, że ma dostęp do przyzwoitego komputera stacjonarnego lub laptopa i serwera lub VPS do eksperymentowania. Jeśli lubią aplikacje mobilne, upewnij się, że ma telefon lub urządzenie demonstracyjne do pracy.
Pokaż mu, jak znaleźć kanały IRC, listy mailingowe itp. Dla rzeczy, które są zainteresowane pracą z / nad.
Upewnij się, że wie, jak zadawać mądre pytania i, przeciwnie, dane szczegółowe pijawki pomocniczej aby wiedział, czego nie robić.
Jego pierwszy język programowania nie jest najważniejszym czynnikiem. Całość języków programowania, których się uczy, jest niezwykle ważna. Kodery w jednym języku nigdy nie przechodzą pewnego (stosunkowo niskiego) poziomu kodowania-foo.
źródło
Chodziłbym uczyć się na arenie telefonów komórkowych, to jest tam najlepsza nieruchomość. Ustaw go z IDE, który ma emulator telefonu i załatw mu telefon, na który będzie mógł pchać aplikacje .
Przygotuj go do użycia w prawdziwym świecie i hakowania, uzupełnionego o teorię z twoich książek, aby go poprowadzić. Upewnij się, że mają dobre próbki.
źródło
Chodziłbym do szkoły, jeśli byłbym w college'u. Uczyłbym to w liceum, jeśli w wieku liceum.
Miałem misję i odpowiednio dostosowałem program nauczania o 14.
wielu ludzi mnie z tego powodu zdziwi, ale Visual Basic .NET wydaje się być dla niektórych łatwiejszy, mówiąc tylko ludzie. Wydaje się, że tak jest w przypadku wielu nie wtajemniczonych.
źródło
Począwszy od web dev jest fajnym pomysłem. Możesz uzyskać wyniki, nawet jeśli jesteś prawdziwym początkującym, a jeśli się zepsujesz, nie będzie to miało większego znaczenia.
Powiedziałbym Html / CSS + Php. Jak stwierdził Jeff w swoim komentarzu, hostowanie jego strony będzie miało znaczenie, a hosty php nie są drogie, często nawet bezpłatne.
Jeśli chodzi o teorię, po prostu o tym zapomniałbym. W moim rozumieniu, on przede wszystkim chce się dobrze bawić, i spójrzmy prawdzie w oczy, teoria nie jest zbyt zabawna. Poza tym, jeśli lubi programować, będzie go dużo w szkole.
Oczywiście wszystkim zależy nam na ładnym kodzie, ale jeśli on chce się po prostu bawić, to co ma znaczenie, jeśli jego kod jest nieuporządkowany?
źródło
programowanie web / desktop / mobile / server? Wydaje mi się, że jest zainteresowany wszystkim. Problem jednak polega na tym, że musi zacząć od czegoś.
Wielu się nie zgodzi, ponieważ oczywiście nie ma na to „właściwej” odpowiedzi, ale kupiłbym mu książkę o Pythonie ( Nauka języka Python jest wystarczająco gruba i dokładna, aby był zajęty przez długi czas), a na pewno jest to język, który da mu dobry stosunek rzeczy, których się nauczyłem, do słodyczy (tj. co można dzięki temu osiągnąć). Jest to również dobry punkt wyjścia dla wielu z powyższych.
Następnie zobacz, co mu się najbardziej podoba, i skieruj go dalej z radą w tym kierunku.
źródło
Czy jego liceum oferuje zajęcia z informatyki? Na przykład w Stanach Zjednoczonych program Advanced Placement ma zajęcia z informatyki, które przechodzą przez wiele podstawowych pojęć informatycznych (przepływ kontroli, podstawowe zorientowane obiektowo praktyki programistyczne, pętle itp.).
Byłem w stanie uczęszczać do liceum, które oferowało kursy informatyki przez praktycznie wszystkie 4 lata (od kursu wprowadzającego do podstawowych LIPS, MIPS i Open GL). Skończyłem testowanie podstaw w college'u, a następnie nauczyłem się wielu innych języków i tematów na kursach wyższego poziomu. Mogę powiedzieć, że mózg w wieku 14-17 lat miał o wiele więcej trudności w owijaniu się wokół teorii niż mózg w wieku 18–22 lat. Tematy takie jak rekurencja, arytmetyka wskaźników, programowanie na niskim poziomie, topografia sieci i programowanie funkcjonalne zajęły mi dużo czasu, aby dostać się do liceum, ale po raz drugi w college'u uznałem, że to pestka, być może dlatego, że „
Mimo że było to trudne, przemyślenie CS od 14 jest niezwykle pomocne. Robienie tego bez nauczycieli wydaje się skomplikowane. Spędziłbym czas na tworzeniu stron internetowych dla zabawy, ponieważ to właśnie lubiłem robić wtedy (i teraz), ale nigdy nie nauczyłbym się dla siebie wskazówek, rekursji i LISP dla zabawy w tym czasie.
źródło
Osobiście nie zaczynałbym od teorii hardcore. Zacznę od praktycznego programowania przeplatanego z niektórymi elementami teorii. Mogłoby to zmotywować jeszcze jednego i nie wystraszyć go.
Jest tak na przykład w przypadku szkół muzycznych. Ogromna część uczniów rezygnuje, ponieważ znudzi się teorią i ostatecznie traci zainteresowanie.
Poza tym teoria nie jest tak dobra, gdy się ją uczy, zanim zabrudzisz ręce praktyką. Nie będziesz wiedział, kiedy i jak go zastosować.
Ale jeśli miałeś trochę wiedzy teoretycznej, to dużo ćwiczyłeś, a potem poważny kurs informatyki popchnąłby cię na inny poziom. W przeciwnym razie lata spędzone na uniwersytecie są marnowane na głuchy rok.
W tej kolejności:
Kilka podstawowych teorii na temat sprzętu, architektury komputera i programowania tego sprzętu. Po prostu podstawowe.
Następnie rozwijaj praktyczne rzeczy. Podstawowe aplikacje, aby zachować zainteresowanie. Najpierw lokalnie, potem coś z grafiką. Strony internetowe jeszcze nie, ponieważ chciałbyś zademonstrować programowanie po stronie serwera i często jest bezużyteczne bez baz danych.
Upuść mu trochę zbiorów wiedzy z bazy danych
Interfejs aplikacji lokalnej z bazą danych. Następnie wypróbuj tworzenie stron internetowych.
Dostosuj kurs na bieżąco.
źródło
Moje logiczne preferencje oparte na tym, co teraz wiem:
Zastanawianie się, jak teraz działają rzeczy - gdy twierdzisz, że jest technicznie skłonny, jak dobrze rozumie, jak działa komputer w tym momencie? Na przykład, czy rozumie różnice między narzutami a skryptami? Co powiesz na pisanie małych skryptów, aby to zrobić? To byłaby moja propozycja punktu wyjścia, ponieważ odkrycie, co jest wokół nas, jest dobrym punktem wyjścia, biorąc pod uwagę wszystkie rzeczy, które można eksplorować całkiem swobodnie.
Wybierz język, IDE i kontrolę źródła. Teraz może wydawać się, że ktoś rzuciłby się na kogoś, ale są to raczej podstawowe narzędzia, które przy odrobinie praktyki może on następnie przejść do większych rzeczy. Zastanawianie się, jak zrobić „Hello World!” strona internetowa, w której komunikat jest osadzony w JavaScript, nie jest złym punktem wyjścia, jeśli chce się tutaj czegoś bardziej konkretnego.
Teraz zacznij dodawać niektóre trudniejsze rzeczy. Jak wykonać pętle lub warunki? To jeszcze nie jest tak fantazyjne, ale wciąż rozumiemy etap budowy. Na koniec przedstaw ideę zajęć i jakie są pomysły tej koncepcji.
Zacznę od tego, jeśli ktoś chciałby poznać podstawy mojego zestawu umiejętności.
źródło
Nigdy nie myślałem, że to powiem, ale kup mu Alice 3.0 .
Nienawidzę Alice z płonącą furią tysiąca słońc, ale na pewno dobrze się uczy, ucząc podstaw programowania (pętle, instrukcje, funkcje itp.) W połączeniu z porządnym samouczkiem.
Kiedy opanuje podstawy, przejdź do bardziej praktycznego języka opartego na tekście.
źródło
To wydaje się rozsądne. Przekaż kilka podstawowych umiejętności i pomóż mu zrealizować pomysł na ambitny projekt, którym będzie się interesował.
Jego pierwsze doświadczenia nie muszą być idealne, w rzeczywistości pomoże, jeśli popełni mnóstwo błędów wcześnie. Chcesz tylko upewnić się, że nadal będzie zainteresowany poszerzeniem swojej wiedzy. Kiedy osiągnie swoje ograniczenia, będzie błagał o pomoc, a ty możesz skierować go w dobrym kierunku, jeśli jeszcze nie sięgnął po materiały referencyjne.
źródło
Zdobądź mu książkę o rozwoju opartym na testach. Sprawi, że solidne testy jednostkowe będą dla niego drugą naturą. Żałuję, że nie przetestowałem testów jako rdzenia mojego programowania od pierwszego.
źródło
Zaczynam go od języka opartego na C. Odkryłem, że są dla nich bardziej pomocne zasoby. Możesz także zajrzeć do książki o tym, jak zaprojektować i sformatować kod, aby zaczął od dobrych zasad kodowania. Poświęciłem mu klasę i użyłem książki o nazwie „Czysty kod” i innej zatytułowanej „Rozwój oprogramowania: zasady projektowania”, jeśli dobrze pamiętam. Chciałbym też, żebym został wcześniej wprowadzony na tę stronę, haha.
Najbardziej pomogło mi jednak zdobycie stażu na początku mojej kariery w college'u. Wyjechałem na targi kariery jako student pierwszego roku i otrzymałem staż drugi rok. Staram się też mieć projekt, nad którym cały czas pracuję i lubię robić coś, czego nigdy wcześniej nie robiłem, aby móc się uczyć. Obecnie pracuję nad użyciem ciasta malinowego i wdrożeniem Siri firmy Apple do systemu automatyki domowej.
Zasadniczo rób co trzeba, aby było przyjemnie. Nie denerwuj się. Rób przerwy. Nie daj się zbyt pochłonąć książkom. Czasami najlepszym sposobem na naukę jest po prostu skorzystanie z niego i użycie metody prób i błędów.
Och ... i naucz się Google :)
źródło
poziomy są następujące
nie zapomnij modularyzować rzeczy, kiedy uczysz, rozumie on, że nie zrozumie javascript, dopóki nie zna c / c ++ lub python itp.
Dodano 04/07/2013
w wieku 14 lat, kiedy chcesz najpierw spróbować swoich sił w programowaniu, musisz zrozumieć, jaki zasób potrzebowałem, aby ukończyć zadanie lub projekt lub podstawowe wytyczne, a także w moim poście najpierw nauczyć się programowania podstawowego, to pomoże ci aby zrozumieć, jak programy lub oprogramowanie działają z zapętleniem i warunkiem, kiedy następnym razem myślisz, że rozumiem wszystkie rzeczy, ale nie wiem, jak uzyskać dostęp do myszy lub zrobić coś, gdy gdzieś kliknę, wypróbujesz niektóre biblioteki, takie jak grafika i mysz, więc rozumiesz jak to działa, przyjdzie Ci do głowy kolejne pytanie, jak umieścić moje przyciski i dodawać zdarzenia, aby mogły one wchodzić w interakcje z moim kodem, więc będziesz chciał nauczyć się programowania zdarzeń, a kiedy ukończysz ten etap, pojawi się kolejne pytanie, zrobię bardzo duże kod i nie wiem jak wywołać funkcję jest to trochę skomplikowane,wtedy spróbujesz modularyzacji, obiektu i klas aplikacji,
potem pomyślisz, że wiem, jak zbudować podstawową aplikację, ale chcę zrobić aplikację dla bazy danych, wtedy przychodzi na myśl Baza danych, lubisz się uczyć, ale problem polega na tym, że trudno ci się połączyć z kodem, więc będziesz pracować na bazie danych
wiersz polecenia, to podejście programowe, wierzę i uczę się z tego samego sposobu, a moje podstawy są bardzo jasne, więc mogę zrozumieć, jak działają procedury lub program,
gdy zrozumiesz i będziesz mieć pewność, że możesz zrobić aplikację na komputer, wypróbuj te same umiejętności w HTML
kiedy spróbujesz HTML, poczujesz się o wiele łatwiej niż tego, czego uczysz się wcześniej, tylko dlatego, że spędziłeś dużo czasu na podstawach.
w html, zrozum strukturę i sposób działania kodu, kiedy już to wiesz, możesz sprawdzić poprawność i połączenie z bazą danych dla aplikacji, spróbować i osiągnąć sukces w ciągu jednego dnia, możesz łatwo budować przyciski miejsc i sprawdzać poprawność za pomocą javascript, wtedy zadajesz sobie pytanie, zrobiłem wszystko, ale co z wyglądem, nie pasuje do tego, co widzę w Internecie, więc spróbuj mocno z css, jestem pewien, że jeśli poświęcisz się próbowaniu css z najlepszym IDE lub Dreamweaver, będziesz zakochać się w hTML / css.
wystarczy
, że utworzysz prostą aplikację lub stronę internetową za pomocą HTML, w pewnym momencie zadajesz sobie kolejne pytanie, jak sprawić, by była dynamiczna, gdy wiesz, że hiperłącza działają dobrze, a następnie co dynamiczne, pozwala pomyśleć o bazie danych, której uczysz się poprzednio ,
Tak to jest to mój punkt widzenia, pokaż rekordy, rekord wstawianie, usuwanie nagrywania i odtwarzania z bazy danych lokalnie z JavaScript i programowania po stronie serwera, a następnie inna koncepcja przyjdzie do głowy automatycznie, aby utworzyć użytkownika, walidacji, sesji, historię użytkownika, internacjonalizacji etc
i ty pójdzie naprzód bez wskazówek, ponieważ twoja baza jest jasna i wiesz, co robić i jakie zasoby potrzebne do wykonania zadania
to wszystkie etapy. podstawy są bardzo ważne i właściwe kroki również. gdy znasz już podstawy, możesz łatwo nauczyć się innego języka lub migrować z jednego języka na inny
dzięki za czytanie
Dodano 04/07/2013
progarme to nic innego jak zestaw instrukcji i procedur, np. nasza codzienna rutyna, budzimy się, bierzemy kąpiel, lunch, pracę, obiad, idziemy spać.
ale jeśli nie wykonamy któregoś z zadań, czujemy się nieswojo, to znaczy jeśli dzień jest w niedzielę, kiedy nie ma pracy lub na wakacjach, warunek ulega zmianie i codzienne rutyny, więc dopasowujesz się do innych rzeczy, to jest jak programowanie, naucz się z praktycznego punktu widzenia, nie z tego, co mówią ci książki, książki są dobre w celach informacyjnych, ale rozumiej naturalny sposób, w jaki reagujemy, pracuj za pomocą instrukcji if-else, np .: załóżmy, że mamy dwie prace i obie są bardzo ważne, ale możemy zrobić tylko jeden po drugim, wybierasz pierwszy i kompletny, a następnie możesz iść do domu, jeśli wybierzesz drugi, musisz przepracować kolejne 5 godzin, w przeciwnym razie, jeśli ukończysz obie prace, dostaniesz 1 dzień urlopu, to dotyczy podejścia programistycznego
źródło