6 prosjekter for å lære ungdomscomputeren din med Linux denne sommeren
Det er offisielt. I ordene til glamrocklegenden Alice Cooper, Skolen er ute om sommeren.
Det er ingen mer klasse. Ikke mer skole løp. Ikke flere lekser. Bare lenge, endeløse sommerdager som tilsynelatende trekker på for alltid. Men hvordan holder du barnet ditt opptatt i de lange, sommermånedene? Kanskje enda viktigere, hvordan holder du barnet ditt opptatt og underholdt mens du lærer dem en viktig karriereferdighet, for eksempel databehandling?
Hvis du leter etter inspirasjon, ikke bekymre deg. Jeg har deg dekket. Sjekk ut disse seks prosjektene som skal lære barnet ditt grunnleggende om databehandling, med Linux i sentrum av dem alle.
Bygg et spill eller en telefonapp med Kivy
Python programmeringsspråket er et favorisert introduksjonsprogrammeringsspråk undervist i datavitenskapsklasser i USA og Storbritannia, takket være sin enkle syntaks og den enkle måten den kan læres på. En av fordelene med Python over andre språk - som MIT's Scratch (vi kommer til det senere) - er det et bredt utvalg av plugins og biblioteker.
Biblioteker brukes til å utvide funksjonaliteten til et program. Det er hundretusener av dem for Python. Et populært bibliotek er Kivy, som gjør det mulig å utvikle spill og programmer til skrivebordet og for mobile enheter.
Med Kivy kan du bygge et sofistikert mobilspill for iOS og Android - som Pong - med bare noen få hundre linjer med kode. Du kan til og med bygge skrivebordsspill og programmer for Windows, OS X og Linux.
Og fordi det er Python, bruker du fortsatt den samme, milde syntaksen ditt barn har sannsynligvis lært i skolen.
Et godt utgangspunkt for å lære Kivy er på den offisielle Kivy-dokumentasjonen, der de har bygget et enkelt Pong-spill. Her kan du lære hvordan du bruker noen få linjer med kode, du kan plassere objekter på skjermen, kontrollere spillets fysikk og til og med holde oversikt over score.
Dette demospillet er lisensiert under MIT-lisensen - et gratis, permissivt programvarelisens som tillater å gjøre endringer og kopier - slik at du kan slå den inn i ditt eget spill, og dele det på nettet uten å måtte be om tillatelse først. Du kan til og med bygge Android-APKer, og distribuere Kivy-spillet i Apples appbutikk. Men for en mer guidet opplæring for Kivy, sjekk ut Richard Jones PyCon Montreal-tale.
Det er enkelt å installere Kivy på Linux. Hvis du bruker en Debian-basert distro, gjør du dette.
sudo add-apt-depot ppa: kivy-team / kivy
sudo apt-get install python-kivy
Instruksjoner om hvordan du installerer Ubuntu for OpenSUSE, Gentoo og Fedora finner du her.
Lær grunnlaget for kode med grunnen
Hvis du har et yngre barn som ennå ikke skal ta en formell datalogi, og du vil introdusere dem til programmering, vil du kanskje vurdere å installere Scratch - tilgjengelig for OS X, Windows og Linux..
Skrape Hvordan lære barna programmering fra grunnen av! Hvordan lære barna programmering fra grunnen av! Les mer er ikke et programmeringsspråk som gir deg en lukrativ programmeringskarriere. Hvordan velge et programmeringsspråk for å lære i dag og få en god jobb i 2 år. Hvordan velge et programmeringsspråk for å lære i dag og få en god jobb i 2 År Det kan ta mange år med dedikert arbeid å bli en virkelig god programmerer; så er det en måte å velge riktig språk for å starte fra i dag, for å bli ansatt i morgen? Les mer . Men det er greit. Det er ikke ment for det. Snarere er det vant til å undervise de grunnleggende begreper bak datavitenskap.
Scratch er et visuelt programmeringsspråk, så i stedet for å skrive kode, drar du og slipper byggeblokker for å lage enkle programmer. Dette gir en enkel, tilnærmet måte å lære barnet på hvordan programvare er bygget, og programmeringskonsept som betingelse, iterasjon og rekursjon.
Men ikke la den forenklede naturen Skrape lure deg. Bare fordi det er enkelt betyr det ikke at du er begrenset i det du lager. Folk har bygget alt fra spill - som et multiplayer pong spill - til animasjoner - som et lunefullt gratulasjonskort - til interaktiv kunst.
Og når du er ferdig med ditt mesterverk, kan du dele det med det innbydende Scratch-fellesskapet på nettet, som kan gi tilbakemelding og oppmuntring gjennom "liker" og kommentarer.
Og hvis du kjeder deg der, kan du bruke Scratch til å bygge bange for programmering i kode? Prøv Scratch For Arduino redd for programmering i kode? Prøv Scratch For Arduino Scratch 4 Arduino tillater nybegynnere som meg å bygge spennende Arduino-prosjekter med et visuelt grensesnitt. Det er enkelt, det er morsomt, og det skal lære deg de grunnleggende byggesteinene i programmeringen. Les mer Arduino-baserte Internett av ting-prosjekter. Ryddig, rett?
Styr ditt hjem med Raspberry Pi
Raspberry Pi er en liten, rimelig, kredittkort-størrelse datamaskin som er i stand til å kjøre Linux. Forresten er det også i stand til å kjøre en nedkjørt versjon av Windows 10 Windows 10 - Kommer til en Arduino i nærheten av deg? Windows 10 - Kommer til en Arduino i nærheten av deg? Les mer, designet for bygging Internett av ting prosjekter.
Pi er et allsidig dyr, som gjentatte ganger har vist seg å være i stand til å kjøre alt fra kunstinstallasjoner, til webservere, til til og med Minecraft-servere.
En søknad om Raspberry Pi som fikk øye med meg var James Bruces hjemautomatiseringsprosjekt Hjemmautomatiseringsguide Med Raspberry Pi og Arduino Home Automation Guide Med Raspberry Pi og Arduino Hjemmautomatiseringsmarkedet er oversvømmet med dyre forbrukersystemer, inkompatible med hverandre og kostbart å installere. Hvis du har en Raspberry Pi og en Arduino, kan du i utgangspunktet oppnå det samme ved ... Les mer, som bruker et bredt smorgasbord av teknologier for å kontrollere husets belysning.
Bruce bruker alt fra MongoDB (som eksplisitt ble forklart av Taylor Bolduc. Hvordan en MongoDB-database kan bedre organisere dataene dine. Hvordan en MongoDB-database kan bedre organisere dataene dine MongoDB (fra "humongous") er en dokumentbasert database på tvers av plattformene som brukes som et alternativ til MySQL. Men hva betyr det? Les mer), til JavaScript webutviklingsramme NodeJS Hva er Node.JS og hvorfor skal jeg bry deg? [Webutvikling] Hva er Node.JS og hvorfor skal jeg bryr meg? [Webutvikling] JavaScript er et bare programmeringsspråk på klientsiden som kjører i nettleseren, ikke sant? Ikke nå lenger. Node.js er en måte å kjøre JavaScript på serveren på; men det er så mye mer også. Hvis ... Les mer, til Arduino. Men i sentrum av alt er Linux og Raspberry Pi.
Prosjektets tverrfaglige karakter betyr at det vil introdusere barnet ditt til en rekke fasetter innen datavitenskap, som JavaScript, systemadministrasjon og elektronikk.
Hvis du ikke har spilt rundt med Raspberry Pi før, og du leter etter et enklere prosjekt for å synke dine melketenner, vurderer du Christian Crawley's Raspberry Pi trådløs skriver. Lag din egen trådløse skriver med en Raspberry Pi Lag din egen trådløse Skriver med en bringebær Pi Færre kabler, fleksibilitet om hvor du kan sette skriveren din - trådløs utskrift er en vinn-vinn. Med mindre du har en eldre skriver. Raspberry Pi til redning! Les mer .
Bygg en Twitter Bot
Det er ingen hemmelighet Jeg er en massiv fan av Python programmeringsspråk.
Det er bare så kraftig, og allsidig, og det brede tilbudet av plugins og biblioteker betyr at du kan gjøre nesten alt.
Python får deg til å føle deg som en superhelt. Tenk bare på noe, og sjansene er høye, du kan bygge den med Python. Men jeg snakker ikke bare spill, eller Raspberry Pi hjemmeautomatiseringssystemer. Du kan til og med bygge applikasjoner som bygger på eksisterende nettsamfunn.
Facebook. Linkedin. Twitter. De har alle APIer (Application Programming Interfaces) Hva er APIer, og hvordan er åpne APIer forandre Internett Hva er APIer, og hvordan er åpne APIer forandre Internett Har du noen gang lurt på hvordan programmer på datamaskinen din og nettstedene du besøker, snakkes? til hverandre? Les mer som lar deg bruke dataene og funksjonaliteten til disse nettstedene innenfor omfanget av dine egne programmer. De kan i begynnelsen være ganske skremmende. Men de er det ikke.
Mastering av dem kan ta noen timers arbeidstid, men når du har lært hvordan du bruker en bestemt API, kan du gjøre noen utrolige ting.
Ta for eksempel Twitter, som gir utviklere tilgang til sine data gjennom tre separate APIer. Det er Firehose API, som gir ubegrenset, sanntids tilgang til hver enkelt tweet, men kommer med en bratt prislapp som når inn i tusenvis av dollar.
Det er også to APIer som er gratis å bruke. Twitter har Streaming API, som lar deg spore tweets i sanntid, men uten garanti for at du får hver tweet. Det er også søkeprogrammet, som lar deg søke i Twitter-databasen, men antall spørringer du kan lage er svært begrenset.
Streaming API er spesielt interessant, fordi du kan bygge programmer som kan svare på tweets i sanntid. Det er en uendelig mengde prosjekter du kan bygge.
Du kan for eksempel ta James Bruces Arduino-drevne LED-kube. Hvordan lage en pulserende Arduino LED-kube som ser ut som den kom fra fremtiden. Hvordan lage en pulserende Arduino LED-kube som ser ut som den kom fra fremtiden. Hvis du har dabbled med noen nybegynnere Arduino-prosjekter, men leter etter noe litt permanent og på et helt annet nivå, er den ydmyke 4 x 4 x 4 LED-kuben ... Les mer og lys opp den når noen legger inn en tweet som inneholder en viss ord. Eller du kan bygge en Twitter bot som tweets spoilers når noen poster “Bare begynt å se Game of Thrones“. Eller du kan bygge en bot som også bruker Wolfram Alpha API til å svare på enkle spørsmål, som “hva er hovedstaden i burkina faso”.
På Linux kan du dra nytte av Twitter-APIene ved hjelp av det populære Python programmeringsspråket, og Tweepy-biblioteket, tilgjengelig for nedlasting gjennom PIP-pakkebehandleren. For å få det, åpner du bare kommandolinjen din og skriver inn:
pip installere topy
Hvis du ikke har PIP-pakkebehandleren installert, ikke bekymre deg. Du kan også installere Tweepy manuelt. For å gjøre dette må du installere Git.
git klon https://github.com/tweepy/tweepy.git
cd tweepy
python setup.py installere
Det er ingen mangel på opplæringsprogrammer som vil lære deg hvordan du bruker Tweepy. En av de beste jeg har funnet var på PythonProgramming.net, som følger med en tilhørende videoopplæring.
Mulighetene er uendelige, og fordi Twitter API er så lett å bruke med Tweepy, trenger du ikke en datavitenskapelig grad. Du trenger bare å kjenne Python og ha en fantastisk ide.
Bygg et nettsted
Hvis du lærer barnet ditt å kode, og spørre dem hva de vil gjøre, vil de sannsynligvis si en mobilapp. Hvordan lage en iPhone-spill fra grunnen. Hvordan lage en iPhone-spill fra grunnen. På et tidspunkt har du sikkert ønsket deg kan lage dine egne iPhone-spill. Det er på tide å slutte å ønske og begynne å gjøre. Les mer . Fordi - la oss innse det - hvilket barn vil ikke gjøre den neste Flappy Birden. Den korte historien om Flappy Bird. Den rare historien om Flappy Bird. Det er få mobile spill som går inn i den kollektive bevisstheten av de vanlige i måten Flappy Bird har gjort. Den går over til Internett-folklore, men disse videoene vil bidra til å bevare sin viralitet. Les mer ? Men etter det vil de sannsynligvis si at de vil bygge et nettsted.
Problemet er at når du først lærer å bygge på nettet, konfronteres du med et svimlende utvalg av teknologier. Skal du bruke den prøvde og testede LAMP-stakken Signed Up for SSH-only Web Hosting? Ikke vær bekymret - enkelt installer hvilken som helst webprogramvare som er registrert for SSH-only web hosting? Ikke vær bekymret - enkelt installer hvilken som helst webprogramvare. Kjenner ikke den første tingen om operativsystemet Linux gjennom sin kraftige kommandolinje? Bekymre ikke mer. Les mer, som bruker Linux, Apache, MySQL og PHP? Eller kanskje noe litt mer moderne (og, tør jeg si trendy) som Ruby on Rails, Flask eller Node.js?
Hva er verre, denne brede bufferen av teknologier kan være utrolig distraherende når du er en journeyman coder, mens du flirter mellom rammer og språk med all fokus for en Labrador Retriever.
Det er mye å ta inn.
Men jeg synes det er viktig å huske at det å lære å bygge nettsteder er noe som er fundamentalt tverrfaglig.
Grunnlaget for et nettsted er HTML. Da får du det til å se bra ut med en liberal sprut av CSS. Når du har de grunnleggende byggesteiene nede, begynner du å legge til interaktivitet og dynamikk. Du begynner å lære å animere HTML og CSS med JavaScript og JQuery.
Deretter lærer du om utholdenhet, og behovet for å lagre ting i en database for å hente dem senere. Så lærer du om MySQL, og kanskje MongoDB. Du lærer om skjemaer, forstøvning og relasjoner.
Deretter lærer du å knytte alt sammen sammen med et programmeringsspråk som server, som PHP, Python, JavaScript (med Node.js) eller Ruby, og vert det på en server (ofte Linux), som må konfigureres fagmessig for å kunne sørg for at den forblir sikker og pålitelig.
Poenget jeg prøver å gjøre er at det å lære å bygge nettsteder er en tverrfaglig prosess, som avhenger av personen som lærer en "stakk" av helt forskjellige teknologier og deretter mentalt binder dem sammen og forstår hvordan de jobber i forhold til hverandre.
For å lære barnet ditt HTML, CSS og JavaScript, få dem til å registrere seg på CodeAcademy Codecademy - Hands Down Den enkleste måten å kode Codecademy - Hands Down Den enkleste måten å kode Codecademy er en ny nettside slash interaktiv programmering veiledning som går deg gjennom det grunnleggende om Javascript. Selv om det ikke har eksistert lenge, har nettstedet allerede generert mye buzz på ... Les mer, som forklarer hver av disse teknologiene gjennom interaktive utfordringer. Dette, jeg har funnet, er flott for å opprettholde motivasjon, da du får øyeblikkelige resultater og tilbakemeldinger.
Selvfølgelig kan CodeAcademy ikke fullt ut lære noe så stort og komplekst som CSS eller JavaScript. For det må du presentere barnet ditt til noe godt referansemateriale. Jeg ville unngå W3Schools, som har vært kjent for å inneholde feilaktig - eller rett og slett falsk - informasjon. Mozilla Developer Network er en grundig, nøyaktig og tilnærmet guide til alle ting HTML, CSS og JavaScript, og kommer sterkt anbefalt.
Når det kommer til å velge en back-end teknologi, vil jeg oppmuntre barnet ditt til å lære PHP, som har en mild læringskurve. Det er mye dokumentasjon tilgjengelig for det. Og dessuten er det bare en sak å skrive en LAMP-server på Ubuntu, eller skrive 'sudo apt-get install lamp-server ^'.
CodeAcademy har et PHP kurs. Det gjør også Tuts +, og Lynda. Alle er flotte. Selv om jeg personlig vil anbefale Larry Ullman PHP og MySQL for dynamiske nettsteder, som på tidspunktet for skriving er tilgjengelig for $ 28,90 på Amazon. Jeg eier en kopi selv, og har funnet det å være en tilnærmet, tilgjengelig, veiledning til webutvikling med PHP-programmeringsspråket.
Jeg har ingen tvil om at den gjennomsnittlige tenåringen ville kunne forstå innholdet i denne boken.
Hvis du ikke har gjort det, har MakeUseOf publisert en veiledning til PHP, som du kan lese gratis her. Lær å bygge med PHP: En Crash Course Lær å bygge med PHP: En Crash Course PHP er språket som Facebook og Wikipedia bruker. å tjene tusenvis av forespørsler daglig; de-facto-språket som brukes til å lære folk webprogrammering. Det er vakkert enkelt, men briljant kraftig. Les mer .
Men fremfor alt, innfyll i barnet ditt at det å lære å bygge på nettet er en lære prosess, og en som tar tid og engasjement. For å holde barnet motivert, vil du kanskje sette dem et prosjekt de kan jobbe for.
Det er mange enkle nettsteder som kan bygges av en lærerutvikler. Kanskje en gjestebok, eller et microblogging-nettsted som Twitter.
En av de mest oversett aspekter ved å lære å kode er tilbakemelding. Når de har bygget noe, bør du vurdere å overbevise dem om å dele det på Github, så flere erfarne utviklere kan kritisere og tilby veiledning. Lær Programmering subreddit er også ganske bra for det.
Og så lærer du barnet ditt hvordan du kan være vert for og administrere sine egne Linux-webservere ved å kjøpe dem en Digital Ocean-dråpe DigitalOcean: Den beste ustyrte VPS-verten for nybegynnere DigitalOcean: Den beste ustyrte VPS-verten for nybegynnere Hvis du trenger VPS-hosting og du vil ha å håndtere all serveradministrasjonen selv, så her er hvorfor DigitalOcean er ditt beste alternativ. Les mer, som koster så lite som $ 5 per måned.
Delta på en kodeklubb
Ok, jeg snyder her.
Dette er ikke et prosjekt, i seg selv. Men hvis du vil lære barnet ditt grunnleggende om databehandling, og du vil gjøre det på en mer strukturert, sosial måte, bør du ta dem til en kodeklubb.
Tilgjengeligheten av disse vil selvfølgelig variere basert på hvor du bor. I Storbritannia er det Kode Club, en ikke-for-profit som tar sikte på å undervise barn mellom 9 og 11 år for å kode. Kode Klubber finnes i de fleste større byer, med undervisningen organisert i 'vilkår'. Hvert semester lærer en annen fasett av programmering, som Skrape, HTML og CSS, og Python, med kursinnholdet blir mer og mer komplekst etter hvert som hvert begrep utvikler seg.
Kodeklubber benytter seg ofte av Raspberry Pis og Linux, på grunn av at de er ekstremt billige å skaffe seg i forhold til tradisjonelle datamaskiner.
Men hva med tvers over dammen?
Amerika har langt, altfor mange Kode Club-like organisasjoner å nevne i en artikkel. Men det er noen som skiller seg ut.
Gates og Zuckerberg finansiert Code.org er mest kjent for sin Klokkeslett prosjekt, som forsøker å få både voksne og barn til å tilbringe en time i året å lære å kode. Men visste du at det er vert for en nesten omfattende liste over datavitenskapsklasser tilgjengelig i USA, med mange tilgjengelige i biblioteker, fellessentre og skoler?
Men jeg ville være remiss hvis jeg ikke nevnte den briljante Black Girls Code, som gjør noe veldig viktig arbeid. De forsøker å løse det skamfylte etniske og kjønnsforskjellet i STEM (vitenskap, teknologi, ingeniørfag og matematikk) ved å gi gratis datavitenskapsklasser til svarte jenter over hele USA. Klasser er tilgjengelige i en rekke større byer, avhengig av tilgjengelighet. Sjekk nettsiden for Black Girls Code for mer informasjon.
Tid til kode
Ok folk. Sommeren er offisielt her. Skolene har enten stengt, eller lukkes. Hva skal du gjøre? Skal du ta dem til en kodeklubb, eller skal du gi dem en Raspberry Pi og se hvor fantasien tar dem?
Uansett vil jeg høre om det. Send meg en kommentar nedenfor, og gi meg beskjed.
Fotokreditt: HTML-kode (Marjan Krebeji), PHP-kode (Bull3t Hughes), lærer å bruke bærbar PC via Shutterstock
Utforsk mer om: Linux, Python, Scratch.