Det er officielt. I ordene med glamrocklegenden Alice Cooper er skolens ud til sommer .
Der er ikke mere klasse. Ikke mere skole løb. Ikke flere lektier. Bare længe, uendelige sommerdage, der tilsyneladende trækker på for evigt. Men hvordan holder du dit barn optaget i de lange, sommermåneder? Måske vigtigere, hvordan holder du dit barn besat og underholdt, mens du lærer dem en vigtig karrierefærdighed som computing?
Hvis du leder efter inspiration, skal du ikke bekymre dig. Jeg har dig dækket. Tjek disse seks projekter, der skal lære dit barn grundlæggende computerens grundlæggende, med Linux i centrum af dem alle.
Byg et spil eller telefonapp med Kivy
Python programmeringssprog er et begunstiget indledende programmeringssprog undervist i computer science klasser i USA og Storbritannien takket være sin enkle syntaks og den lethed, som den kan læres. En af fordelene ved Python over andre sprog - som MIT's Scratch (vi kommer til det senere) - er dens brede udbud af plugins og biblioteker.
Biblioteker bruges til at udvide funktionaliteten af et program. Der er hundredvis af dem til Python. Et populært bibliotek er Kivy, som gør det muligt at udvikle spil og apps til skrivebordet og til mobile enheder.
Med Kivy kan du opbygge et sofistikeret mobilspil til iOS og Android - ligesom Pong - med blot et par hundrede linjer kode. Du kan endda bygge skrivebordsspil og applikationer til Windows, OS X og Linux.
Og fordi det er Python, bruger du stadig den samme, blide syntaks, som dit barn nok har lært i skolen.
Et godt udgangspunkt for at lære Kivy er på den officielle Kivy dokumentation, hvor de har bygget et simpelt Pong spil. Her kan du lære hvordan du kan bruge nogle få linjer kode, du kan placere objekter på skærmen, styre spilets fysik og endda holde øje med score.
Dette demo-spil er licenseret under MIT-licensen - en gratis, permissiv softwarelicens, der tillader ændringer og kopier - så du kan gøre det til dit eget spil og dele det online uden at skulle anmode om tilladelse først. Du kan endda oprette Android APK'er og distribuere dit Kivy-spil på Apples appbutik. Men for en mere guidet vejledning til Kivy, så tjek Richard Jones PyCon Montreal-tale.
Det er nemt at installere Kivy på Linux. Hvis du bruger en Debian-baseret distro, skal du gøre dette.
sudo add-apt-repository ppa: kivy-team / kivy
sudo apt-get install python-kivy
Instruktioner til installation af Ubuntu til OpenSUSE, Gentoo og Fedora kan findes her.
Lær Grundlaget for Koden med Scratch
Hvis du har et yngre barn, der endnu ikke skal tage en formel computervidenskabslære, og du vil introducere dem til programmering, kan du overveje at installere Scratch - tilgængelig til OS X, Windows og Linux.
Scratch Sådan lærer du børn programmering fra bunden! Sådan lærer du børn programmering fra bunden! Læs mere er ikke et programmeringssprog, der giver dig en lukrativ programmeringskarriere Sådan vælger du et programmeringssprog for at lære i dag og få en god job om 2 år Sådan vælger du et programmeringssprog for at lære i dag og få en god job i 2 År Det kan tage mange år med dedikeret arbejde at blive en virkelig god programmør; så er der en måde at vælge det rigtige sprog til at starte fra i dag for at blive ansat i morgen? Læs mere . Men det er fint. Det er ikke beregnet til det. Det er snarere brugt til at undervise de grundlæggende begreber bag datalogi.
Scratch er et visuelt programmeringssprog, så i stedet for at skrive kode, skal du trække og slippe byggesten for at skabe enkle programmer. Dette giver en enkel og tilgængelig måde at lære dit barn om, hvordan software er bygget og programmeringskoncepter som conditional, iteration og recursion.
Men lad ikke den forklare karakter af Scratch narre dig. Bare fordi det er nemt betyder det ikke, at du er begrænset i det, du opretter. Folk har bygget alt fra spil - som et multiplayer pong spil - til animationer - som et lunefuldt lykønskningskort - til interaktiv kunst.
Og når du er færdig med dit mesterværk, kan du dele det med det indbydende Scratch-fællesskab online, som kan give feedback og opmuntring gennem 'likes' og kommentarer.
Og hvis du keder dig der, kan du bruge Scratch til at bygge bange for programmering i kode? Prøv Scratch For Arduino bange for programmering i kode? Prøv Scratch For Arduino Scratch 4 Arduino giver nybegyndere som mig mulighed for at opbygge spændende Arduino-projekter med en visuel grænseflade. Det er simpelt, det er sjovt, og det vil lære dig de grundlæggende byggesten til programmering. Læs mere Arduino-baserede Internet of Things-projekter. Rart, ikke?
Styr dit hjem med Raspberry Pi
Raspberry Pi er en lille, overkommelig computer med kreditkort, der er i stand til at køre Linux. For øvrigt er det også i stand til at køre en udpakket version af Windows 10 Windows 10 - Kommer til en Arduino i nærheden af dig? Windows 10 - Kommer til en Arduino i nærheden af dig? Læs mere, designet til at bygge Internet af Things projekter.
Pi er et alsidigt dyr, der gentagne gange har vist sig at være i stand til at køre alt fra kunstinstallationer til webservere til selv Minecraft-servere.
En ansøgning til Raspberry Pi, der blev øje med mig, var James Bruces hjemmeautomatiseringsprojekt. Home Automation Guide Med Raspberry Pi og Arduino Home Automation Guide med Raspberry Pi og Arduino Hjemmautomatiseringsmarkedet oversvømmes med dyre forbrugersystemer, der er uforenelige med hinanden og kostbare at installere. Hvis du har en Raspberry Pi og en Arduino, kan du stort set opnå det samme ved ... Læs mere, som bruger et bredt smorgasbord af teknologier til at styre sit huss belysning.
Bruce bruger alt fra MongoDB (som eksplicit blev forklaret af Taylor Bolduc, hvordan en MongoDB-database kan bedre organisere dine data Hvordan en MongoDB-database kan bedre organisere dine data MongoDB (fra "humongous") er en platformbaseret dokumentorienteret database, der bruges som et alternativ til MySQL. Men hvad betyder det? Læs mere), til JavaScript-webudviklingsrammen NodeJS Hvad er Node.JS og hvorfor skal jeg passe? [Webudvikling] Hvad er Node.JS og hvorfor skal jeg passe? [Webudvikling] JavaScript er et blot et klientside programmeringssprog, der kører i browseren, ikke? Ikke mere. Node.js er en måde at køre JavaScript på serveren; men det er også meget mere. Hvis ... Læs mere, til Arduino. Men i centrum af alt er Linux og Raspberry Pi.
Projektets tværfaglige karakter betyder, at det vil introducere dit barn til en række facetter inden for datalogi, som JavaScript, systemadministration og elektronik.
Hvis du ikke har spillet rundt med Raspberry Pi før, og du leder efter et mere enklere projekt til at synke dine mælketænder ind, overvej Christian Crawley's Raspberry Pi Trådløs Printer Lav din egen trådløse printer med en hindbær Pi Lav din egen trådløse Printer med en Raspberry Pi Færre kabler, fleksibilitet om hvor du kan sætte din printer - trådløs udskrivning er en win-win. Medmindre du har en ældre printer. Hindbær Pi til undsætning! Læs mere .
Byg en Twitter Bot
Det er ingen hemmelighed Jeg er en massiv fan af Python programmeringssprog.
Det er bare så kraftfuldt og alsidigt, og det store udbud af plugins og biblioteker betyder at du kan gøre næsten alt.
Python får dig til at føle dig som en superhelt . Tænk bare på noget, og chancerne er høje, du kan bygge det med Python. Men jeg taler ikke kun spil, eller Raspberry Pi hjemmeautomatiseringssystemer. Du kan endda opbygge applikationer, som bygger på eksisterende sociale netværkssider.
Facebook. LinkedIn. Twitter. De har alle API'er (Application Programming Interfaces) Hvad er API'er, og hvordan er åbne API'er, der ændrer internettet Hvad er API'er, og hvordan er åbne API'er, der ændrer internettet Har du nogensinde spekuleret på, hvordan programmer på din computer og de websteder, du besøger "talk" til hinanden? Læs mere, som giver dig mulighed for at bruge data og funktionalitet på disse websteder inden for rammerne af dine egne programmer. De kan i første omgang være ret skræmmende. Men de er det ikke.
Mastering af dem kan tage et par timers arbejde, men når du har lært at bruge en bestemt API, kan du gøre nogle utrolige ting.
Tag f.eks. Twitter, som giver udviklere adgang til deres data via tre separate API'er. Der er Firehose API, som giver ubegrænset realtid adgang til hver enkelt tweet, men kommer med et bratt pris, der når op i tusinder af dollars.
Der er også to API'er, der er gratis at bruge. Twitter har Streaming API, som giver dig mulighed for at spore tweets i realtid, men uden garanti for, at du får hver tweet. Der er også Search API, som lader dig søge i Twitter-databasen, men mængden af forespørgsler, du kan gøre, er stærkt begrænset.
Streaming API er specielt interessant, fordi du kan bygge applikationer, der kan reagere på tweets i realtid. Der er endeløs mængde projekter, du kan bygge.
Du kan for eksempel tage James Bruces Arduino-drevne LED-kube. Sådan laver du en pulserende Arduino LED-kube, der ligner den kom fra fremtiden. Sådan laver du en pulserende Arduino LED-kasse, der ligner den kom fra fremtiden. Hvis du har dabbled med nogle nybegyndere Arduino projekter, men søger noget lidt permanent og på et helt andet niveau awesome, så er den ydmyge 4 x 4 x 4 LED-terning ... Læs mere, og belys det, når nogen poster en tweet indeholdende et bestemt ord. Eller du kan opbygge en Twitter-bot, der tweets spoilers, når nogen poster "Bare begyndt at se Game of Thrones ". Eller du kan bygge en bot, der også bruger Wolfram Alpha API til at svare på enkle spørgsmål, som "hvad er hovedstaden i Burkina Faso".
På Linux kan du udnytte Twitter API'erne ved hjælp af det populære Python programmeringssprog og Tweepy-biblioteket, der kan downloades via PIP-pakkechefen. For at få det, skal du blot åbne din kommandolinje og skrive:
pip installation tweepy
Hvis du ikke har PIP-pakkehåndteringen installeret, skal du ikke bekymre dig. Du kan også installere Tweepy manuelt. For at gøre dette skal du have Git installeret.
git klon https://github.com/tweepy/tweepy.git
cd tweepy
python setup.py installere
Der er ingen mangel på selvstudier online, der lærer dig, hvordan du bruger Tweepy. Et af de bedste jeg har fundet var på PythonProgramming.net, som følger med en ledsagende video tutorial.
Mulighederne er uendelige, og fordi Twitter API er så nemt at bruge med Tweepy, behøver du ikke en computer science grad. Du skal bare kende Python og have en fantastisk ide.
Byg en hjemmeside
Hvis du lærer dit barn at kode og spørge dem, hvad de vil lave, vil de nok sige en mobilapp Sådan opretter du en iPhone-spil fra bunden Sådan oprettes en iPhone-spil fra bunden På et tidspunkt har du sikkert ønsket dig kunne lave dine egne iPhone spil. Det er på tide at stoppe med at ønske og begynde at gøre. Læs mere . Fordi - lad os se det - hvilket barn vil ikke lave den næste Flappy Bird Flappy Birds korte historie [Rar og vidunderlig web] Flappy Birds korte historie [Rar og vidunderlig web] Få mobile spil går ind i den kollektive bevidsthed af mainstream i den måde, Flappy Bird har gjort. Den passerer ind i folklore på Internettet, men disse videoer vil bidrage til at bevare sin viralitet. Læs mere ? Men efter det vil de nok sige, at de vil bygge en hjemmeside.
Problemet er, når du først lærer at opbygge til internettet, konfronteres du med en svimlende række teknologier. Skal du bruge den testede LAMP-stak, der er signeret til SSH-only web hosting? Vær ikke bekymret - nemt installer enhver websoftware, der er signeret til SSH-only webhosting? Vær ikke bekymret - nemt installer en hvilken som helst websoftware. Kender ikke den første ting ved at operere Linux via dens kraftfulde kommandolinje? Bekymre ikke mere. Læs mere, som bruger Linux, Apache, MySQL og PHP? Eller måske noget mere moderne (og tør jeg sige trendy) som Ruby on Rails, Flask eller Node.js?
Hvad er værre, denne bred buffet af teknologier kan være utroligt distraherende, når du er en journeyman-koder, mens du flirter mellem rammer og sprog med hele fokus på en Labrador Retriever.
Det er meget at tage ind.
Men jeg synes, det er vigtigt at huske at lære at opbygge hjemmesider er noget, der grundlæggende er tværfagligt .
Grundlaget for enhver hjemmeside er HTML. Derefter får du det til at se godt ud med et liberalt sprøjt af CSS. Når du først har de grundlæggende byggesten ned, begynder du at tilføje interaktivitet og dynamik. Du begynder at lære at animere din HTML og CSS med JavaScript og JQuery.
Derefter lærer du om vedholdenhed og behovet for at gemme ting i en database for at hente dem senere. Så lærer du om MySQL, og måske MongoDB. Du lærer om skemaer, forstøvning og relationer.
Derefter lærer du at knytte det hele sammen med et server-side programmeringssprog som PHP, Python, JavaScript (med Node.js) eller Ruby, og hoster det på en server (ofte Linux), som skal konfigureres fagligt for at sørg for, at det forbliver sikkert og pålideligt.
Det punkt, jeg forsøger at gøre, er at lære at opbygge hjemmesider er en tværfaglig proces, der afhænger af den person, der lærer en "stak" af vildt forskellige teknologier og derefter mentalt binder dem sammen og forstår hvordan de arbejder i forhold til hinanden .
For at lære dit barn HTML, CSS og JavaScript, få dem tilmeldt CodeAcademy Codecademy - Hands Down Den nemmeste måde at kode Codecademy på - Hands Down Den nemmeste måde at kode Codecademy er en ny hjemmeside slash interaktive programmering tutorial, der går dig gennem det grundlæggende i JavaScript. Selv om det ikke har eksisteret meget længe, har webstedet allerede genereret en masse buzz på ... Læs mere, som forklarer hver af disse teknologier gennem interaktive udfordringer. Dette, jeg har fundet, er fantastisk til opretholdelse af motivation, da du får øjeblikkelige resultater og feedback.
Selvfølgelig kan CodeAcademy ikke udførligt undervise noget så stort og komplekst som CSS eller JavaScript. For det skal du introducere dit barn til nogle gode referencematerialer. Jeg ville undgå W3Schools, som har været kendt for at indeholde fejlagtige - eller ligefrem falske - oplysninger. Mozilla Developer Network er en grundig, præcis og tilgængelig guide til alle ting, HTML, CSS og JavaScript, og det anbefales stærkt.
Når det kommer til at vælge en back-end teknologi, vil jeg opfordre dit barn til at lære PHP, som har en blid læringskurve. Der er meget dokumentation til rådighed for det. Og derudover er installation af en LAMP-server på Ubuntu blot et spørgsmål eller at skrive 'sudo apt-get install lamp-server ^'.
CodeAcademy har et PHP kursus. Det gør også Tuts + og Lynda. Alle er gode. Selvom jeg personligt ville anbefale Larry Ullmans PHP og MySQL til dynamiske websteder, som på tidspunktet for skrivningen er tilgængelig for $ 28, 90 på Amazon. Jeg ejer selv en kopi og har fundet det til en tilgængelig, tilgængelig guide til webudvikling med PHP-programmeringssproget.
Jeg har ingen tvivl om, at den gennemsnitlige teenager ville kunne forstå indholdet af denne bog.
Hvis du har undladt det, har MakeUseOf udgivet en guide til PHP, som du kan læse gratis her. Lær at bygge med PHP: Et crash kursus Lær at bygge med PHP: Et crash kursus PHP er det sprog, som Facebook og Wikipedia bruger at tjene milliarder af anmodninger dagligt de facto-sproget, der anvendes til undervisning af web-programmering. Det er smukt simpelt, men strålende kraftigt. Læs mere .
Men først og fremmest er det i dit barn at lære at bygge på nettet er en læringsproces, og en der tager tid og engagement. For at holde dit barn motiveret, vil du måske sætte dem et projekt, de kan arbejde hen imod.
Der er mange enkle hjemmesider, der kan bygges af en lærerudvikler. Måske en gæstebog eller et microblogging websted som Twitter.
Et af de mest oversete aspekter ved at lære at kode er feedback. Når de har bygget noget, overveje at overbevise dem om at dele det på Github, så mere erfarne udviklere kan kritisere og tilbyde vejledning. Learn Programming subreddit er også ret godt for det.
Og så lær måske dit barn hvordan du kan hoste og styre deres egne Linux-webservere ved at købe dem en Digital Ocean-dråbe DigitalOcean: Den bedste VPS-vært for Newbies DigitalOcean: Den bedste VPS-vært for Newbies Læs mere, som koster så lidt som $ 5 per måned.
Deltag i en kodeklub
Okay, jeg snyder her.
Dette er ikke et projekt i sig selv . Men hvis du vil undervise dit barn i computerens grundlæggende grunde, og du vil gøre det på en mere struktureret, social måde, så skal du tage dem til en kodeklub.
Tilgængeligheden af disse vil naturligvis variere afhængigt af, hvor du bor. I Det Forenede Kongerige er der Code Club, en ikke-for-profit, der har til formål at undervise børn mellem 9 og 11 år for at kode. Kode Klubber findes i de fleste større byer, med undervisningen arrangeret i 'vilkår'. Hvert semester lærer en anden programmeringsfase, som f.eks. Scratch, HTML og CSS, og Python, hvor kursusindholdet bliver mere og mere komplekst, når hvert begreb skrider frem.
Kodeklubber bruger ofte Raspberry Pis og Linux, fordi de er ekstremt billige at erhverve i forhold til traditionelle computere.
Men hvad med over dammen?
Amerika har langt, alt for mange Code Club-lignende organisationer til at nævne i en artikel. Men der er nogle der skiller sig ud.
Gates og Zuckerberg finansieret Code.org er mest kendt for sin Time of Code- projekt, der forsøger at få både voksne og børn til at tilbringe en time om året at lære at kode. Men vidste du at det er vært for en næsten omfattende liste over computervidenskabelige klasser, der er tilgængelige i USA, hvor mange er tilgængelige i biblioteker, samfundscentre og skoler?
Men jeg ville være remiss, hvis jeg ikke nævnte den strålende Black Girls Code, som gør noget rigtig vigtigt arbejde. De forsøger at løse det skamfuldt etniske og kønsforskelle i STEM (naturvidenskab, teknologi, teknik og matematik) ved at levere gratis computer science klasser til sorte piger i hele USA. Klasser er tilgængelige i en række større byer, afhængig af tilgængelighed. Se webstedet Black Girls Code for mere information.
Tid til kode
Okay folk. Sommeren er officielt her. Skolerne er enten lukket eller lukker. Hvad vil du gøre? Skal du tage dem til en kodeklub, eller vil du give dem en Raspberry Pi og se, hvor deres fantasi tager dem?
Uanset hvad jeg vil høre om det. Send mig en kommentar nedenfor, og lad mig vide.
Foto Credits: HTML Code (Marjan Krebeji), PHP Code (Bull3t Hughes), lærer at bruge laptop via Shutterstock