
Mark Lucas
0
2963
628
Det er officielt. Med glam rock-legenden Alice Cooper ord, skolen er ude om sommeren.
Der er ikke mere klasse. Ikke mere skoleløb. Ikke mere hjemmearbejde. Bare lange, uendelige sommerdage, der tilsyneladende trækker for evigt. Men hvordan holder du dit barn besat i de lange sommermåneder? Måske mere vigtigt, hvordan holder du dit barn besat og underholdt, mens du lærer dem en vigtig karriereevne, som computing?
Hvis du leder efter inspiration, skal du ikke bekymre dig. Jeg har dig dækket. Tjek disse seks projekter, der lærer dit barn det grundlæggende ved computing, med Linux i centrum af dem alle.
Lav et spil- eller telefonapp med Kivy
Python-programmeringssprog er et foretrukket indledende programmeringssprog, der undervises i datalogi i USA og England, takket være dets ukomplicerede syntaks og den lethed, hvorpå det kan læres. En af fordelene ved Python over andre sprog - som MIT's Scratch (vi kommer til det senere) - er dets brede udbud af plugins og biblioteker.
Biblioteker bruges til at udvide funktionaliteten af et program. Der er hundretusinder 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 - som Pong - med bare et par hundrede linjer kode. Du kan endda bygge desktopspil og applikationer til Windows, OS X og Linux.
Og fordi det er Python, bruger du stadig den samme, blide syntaks, som dit barn sandsynligvis 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 med et par kodelinjer kan placere objekter på skærmen, kontrollere spillets fysik og endda holde styr på scoringer.
Dette demospil er licenseret under MIT-licensen - en gratis, tilladt softwarelicens, der tillader at foretage ændringer og kopier - så du kan omdanne det til dit eget spil og dele det online uden først at skulle bede om tilladelse. Du kan endda bygge Android APK'er og distribuere dit Kivy-spil i Apple app store. Men for en mere guidet tutorial til Kivy, se Richard Jones's PyCon Montreal-tale.
Det er let 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 grundlæggende koder med ridser
Hvis du har fået et yngre barn, der endnu ikke tager en formel lektion i computervidenskab, og du vil introducere dem til programmering, kan du overveje at installere Scratch - tilgængelig til OS X, Windows og Linux.
Scratch Hvordan man lærer børn programmering fra Scratch! Sådan undervises børn i programmering fra bunden! 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å et godt job om 2 år Sådan vælger du et programmeringssprog at lære i dag og få et godt job om 2 år kan tage mange års dedikeret arbejde for 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? . Men det er fint. Det er ikke beregnet til det. Det bruges snarere til at undervise de grundlæggende koncepter bag datalogi.
Scratch er et visuelt programmeringssprog, så snarere end at indtaste kode trækker du-og-slipper byggesten for at oprette enkle programmer. Dette præsenterer en enkel, tilgængelig måde at lære dit barn om, hvordan software bygges, og programmeringskoncepter som conditionals, iteration og rekursion.
Men lad ikke den forenklede natur af Scratch narre dig. Bare fordi det er let, betyder det ikke, at du er begrænset til, hvad du opretter. Folk har bygget alt fra spil - som et multiplayer-pong-spil - til animationer - som et finurligt lykønskningskort - til interaktiv kunst.
Og når du er færdig med dit mesterværk, kan du dele det med det indbydende Scratch-community online, som kan give feedback og opmuntring gennem 'likes' og kommentarer.
Og hvis du keder dig der, kan du bruge Scratch til at opbygge 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 et visuelt interface. Det er enkelt, det er sjovt, og det lærer dig de grundlæggende byggesten til programmering. Arduino-baserede Internet of Things-projekter. Pæn, ret?
Styr dit hjem med Raspberry Pi
Raspberry Pi er en lille, overkommelig computer med kreditkortstørrelse, der er i stand til at køre Linux. I øvrigt er det også i stand til at køre en fjernet version af Windows 10 Windows 10 - Kommer du til en Arduino i nærheden af dig? Windows 10 - Kommer du til en Arduino i nærheden af dig? , designet til bygning Internet of Things projekter.
Pi er et alsidigt udyr, der gentagne gange har vist sig at være i stand til at køre alt fra kunstinstallationer, webservere til endda Minecraft-servere.
Ét program til Raspberry Pi, der fangede mit øje, var James Bruces hjemmeautomatiseringsprojekt Hjemmeautomatiseringsvejledning med Raspberry Pi og Arduino Hjemmeautomatiseringsvejledning med Raspberry Pi og Arduino Hjemme-automatiseringsmarkedet er oversvømmet med dyre forbrugersystemer, uforenelige med hinanden og dyre at installere. Hvis du har en Raspberry Pi og en Arduino, kan du dybest set opnå det samme ved ..., der bruger et bredt smorgasbord af teknologier til at kontrollere hans huss belysning.
Bruce bruger alt fra MongoDB (som blev forklaret med ekspert af Taylor Bolduc her. Hvordan en MongoDB-database kan organisere dine data bedre. Hvordan en MongoDB-database bedre kan organisere dine data. MongoDB (fra "humongous") er en tværorienteret dokumentorienteret database, der bruges som et alternativ til MySQL. Men hvad betyder det?) til JavaScript-webudviklingsrammen NodeJS Hvad er Node.JS, og hvorfor skal jeg pleje? [Webudvikling] Hvad er Node.JS, og hvorfor skal jeg pleje? [Webudvikling] JavaScript er et bare et programmeringssprog på klientsiden, der kører i browseren, ikke? Ikke mere. Node.js er en måde at køre JavaScript på serveren på; men det er så meget mere også. Hvis ..., til Arduino. Men i midten 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 at synke dine mælketænder i, skal du overveje Christian Crawleys Raspberry Pi trådløs printer Lav din egen trådløse printer med en Raspberry Pi Lav din egen trådløs Printer med Raspberry Pi Færre kabler, fleksibilitet omkring, hvor du kan placere din printer - trådløs udskrivning er en win-win. Medmindre du har en ældre printer. Raspberry Pi til undsætning! .
Lav en Twitter-bot
Det er ingen hemmelighed, at jeg er en stor fan af Python-programmeringssprog.
Det er bare så kraftfuldt og alsidigt, og den store udbud af plugins og biblioteker betyder, at du kan gøre næsten hvad som helst.
Python får dig til at føle dig som en superhelt. Bare tænk på noget, og chancerne er store for at du kan bygge det med Python. Men jeg taler ikke kun spil eller Raspberry Pi hjemmeautomatiseringssystemer. Du kan endda bygge applikationer, der bygger på eksisterende sociale netværkswebsteder.
Facebook. LinkedIn. Twitter. De har alle API'er (applikationsprogrammeringsgrænseflader) Hvad er API'er, og hvordan ændrer åbne API'er Internettet Hvad er API'er, og hvordan er åbne API'er ændrer Internettet Har du nogensinde spekuleret på, hvordan programmer på din computer og de websteder, du besøger "talk" til hinanden? der giver dig mulighed for at bruge disse websteds data og funktionalitet inden for dit eget program. De kan i første omgang være ret skræmmende. Men det er de ikke.
At mestre dem kan tage et par timers værdi af arbejde, men når du først har lært dig, hvordan du bruger et bestemt API, vil du være i stand til at gøre nogle utrolige ting.
Tag f.eks. Twitter, som giver udviklere adgang til deres data gennem tre separate API'er. Der er Firehose API, som tilbyder ubegrænset adgang i realtid til hver eneste tweet, men kommer med en stejl pris, der når 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 nogen garanti for, at du får hver tweet. Der findes også Search API, som giver dig mulighed for at søge på Twitter-databasen, men antallet af forespørgsler, du kan stille, er meget begrænset.
Streaming-API'et er især interessant, fordi du kan oprette applikationer, der kan svare på tweets i realtid. Der er en utallig mængde projekter, du kan bygge.
Du kunne f.eks. Tage James Bruces Arduino-drevne LED-terning Hvordan man fremstiller en pulserende Arduino LED-terning der ser ud som om den kom fra fremtiden Hvordan man fremstiller en pulserende Arduino LED-terning der ligner den kom fra fremtiden, hvis du har dybt med nogle nybegynder Arduino-projekter, men leder efter noget, der er lidt permanent og på et helt andet niveau af awesome, så er den ydmyge 4 x 4 x 4 LED-terning ..., og lyser det, når nogen lægger en tweet indeholdende et bestemt ord. Eller du kan opbygge en Twitter-bot, der tweets spoilere, når nogen poster “Lige begyndt at se på Game of Thrones“. Eller du kan opbygge en bot, der også bruger Wolfram Alpha API til at svare på enkle spørgsmål, f.eks “hvad er hovedstaden i Burkina Faso”.
På Linux kan du drage fordel af Twitter API'er ved hjælp af det populære Python-programmeringssprog og Tweepy-biblioteket, der kan downloades via PIP-pakkeadministratoren. For at få det, skal du blot åbne din kommandolinje og skrive:
pip installere tweepy
Hvis du ikke har PIP-pakkehåndtering 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 installation
Der er ingen mangel på tutorials online, der lærer dig, hvordan du bruger Tweepy. En af de bedste, jeg har fundet, var på PythonProgramming.net, som kommer med en ledsagende videotutorial.
Mulighederne er uendelige, og fordi Twitter API er så let at bruge med Tweepy, behøver du ikke en computervidenskabelig grad. Du skal bare kende Python og have en fantastisk idé.
Byg et websted
Hvis du lærer dit barn at kode, og spørger dem, hvad de vil lave, siger de sandsynligvis en mobilapp Sådan opretter du et iPhone-spil fra ridsen Sådan opretter du et iPhone-spil fra ridsen På et tidspunkt har du sandsynligvis ønsket dig kunne lave dine egne iPhone-spil. Det er tid til at stoppe med at ønske og begynde at gøre. . Fordi - lad os indse det - hvilket barn ikke ønsker at lave den næste Flappy Bird Den korte historie om Flappy Bird [Weird & Wonderful Web] The Short Story Of Flappy Bird [Weird & Wonderful Web] Få mobilspil indgår i den kollektive bevidsthed af mainstream på den måde, Flappy Bird har gjort. Det går over i Internet-folklore, men disse videoer hjælper med at bevare dens viralitet. ? Men efter det siger de sandsynligvis, at de ønsker at oprette et websted.
Problemet er, når du først lærer at bygge til internettet, bliver du konfronteret med en svimlende vifte af teknologier. Skal du bruge den afprøvede LAMP-stak tilmeldt til SSH-web-hosting? Vær ikke bekymret - Installér let websoftware, der er tilmeldt SSH-kun Web Hosting? Vær ikke bekymret - Installer let websoftware Kender du ikke den første ting til at betjene Linux gennem dens magtfulde kommandolinje? Bekymre dig ikke mere. , der 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 der er værre, denne brede buffet af teknologier kan være utroligt distraherende, når du er en travelskoder, når du flyver mellem rammer og sprog med alt fokus i en Labrador Retriever.
Det er meget at tage ind.
Men jeg synes, det er vigtigt at huske, at det at lære at opbygge websteder er noget, der er grundlæggende tværfaglig.
Grundlaget for ethvert websted er HTML. Derefter får du det til at se godt ud med en liberal sprøjtning af CSS. Når du har fået de grundlæggende byggesten, 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å du lærer om MySQL og måske MongoDB. Du lærer om skemaer, forstøvning og relationer.
Derefter lærer du at binde det hele sammen med et serversides programmeringssprog som PHP, Python, JavaScript (med Node.js) eller Ruby, og være vært for det på en server (ofte Linux), som skal konfigureres fagligt for at Sørg for, at det forbliver sikkert og pålideligt.
Pointen jeg prøver at gøre er, at det at lære at opbygge websteder er en tværfaglig proces, der afhænger af, at personen lærer en 'stak' med vildt forskellige teknologier og derefter mentalt binder dem sammen, og forstår, hvordan de fungerer i forhold til hinanden.
For at lære dit barn HTML, CSS og JavaScript skal du få dem tilmeldt CodeAcademy Codecademy - Hænder ned Den nemmeste måde at kode Codecademy - Hænder ned Den nemmeste måde at kode Codecademy er en ny webside skrå interaktiv programmeringsvejledning, der leder dig gennem det grundlæggende i JavaScript. Selvom det ikke har været meget længe, har webstedet allerede genereret en masse brummer på…, hvilket forklarer hver af disse teknologier gennem interaktive udfordringer. Dette, har jeg fundet, er godt til at opretholde motivation, da du får øjeblikkelige resultater og feedback.
Selvfølgelig kan CodeAcademy ikke omfattende lære noget så stort og komplekst som CSS eller JavaScript. For det skal du introducere dit barn til noget godt referencemateriale. Jeg ville undgå W3Schools, som har været kendt for at indeholde forkerte - eller ligefremme falske - oplysninger. Mozilla Developer Network er en grundig, nøjagtig 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 mild indlæringskurve. Der findes en masse dokumentation til det. Desuden 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 samme gør Tuts +, og Lynda. Alle er gode. Selvom jeg personligt vil anbefale Larry Ullmans PHP og MySQL til dynamiske websteder, som i skrivende stund er tilgængelig for $ 28,90 på Amazon. Jeg ejer en kopi selv og har fundet det være en tilgængelig, tilgængelig guide til webudvikling med PHP-programmeringssprog.
Jeg er ikke i tvivl om, at den gennemsnitlige teenager ville være i stand til at forstå indholdet af denne bog.
I modsat fald har MakeUseOf udgivet en guide til PHP (skrevet af din virkelig), der er tilgængelig til gratis her. Lær at bygge med PHP: Et Crash Course Lær at bygge med PHP: A Crash Course PHP er det sprog, som Facebook og Wikipedia bruger at tjene milliarder af anmodninger dagligt; de-facto-sproget, der bruges til at lære folk webprogrammering. Det er smukt enkelt, men strålende kraftfuldt. .
Men frem for alt, tilføj dit barn, at det at lære at bygge til internettet er en læringsproces, og en, der tager tid og dedikation. For at holde dit barn motiveret, skal du måske sætte dem et projekt, de kan arbejde mod.
Der er masser af enkle websteder, der kunne bygges af en lærerudvikler. Måske en gæstebog eller et microblogging-sted som Twitter.
Et af de mest oversete aspekter ved at lære at kode er feedback. Når de har bygget noget, skal du overveje at overbevise dem om at dele det på Github, så mere erfarne udviklere kan kritisere og tilbyde vejledning. Learn Programming subreddit er også temmelig godt til det.
Og lær derefter måske dit barn, hvordan man hostes og administrerer deres egne Linux-webservere ved at købe dem en Digital Ocean-dråbe DigitalOcean: Den bedste ustyrede VPS-vært for nybegynderne DigitalOcean: Den bedste ustyrede VPS-vært til nybegynder Hvis du har brug for VPS-hosting, og du vil at håndtere al serveradministration selv, så her er hvorfor DigitalOcean er din bedste mulighed. , som koster så lidt som $ 5 pr. måned.
Deltag i en kodeklub
Okay, jeg snyder her.
Dette er ikke et projekt, i sig selv. Men hvis du vil lære dit barn det grundlæggende ved computing, og du vil gøre det på en mere struktureret, social måde, skal du tage dem med til en kodeklub.
Tilgængeligheden af disse vil selvfølgelig variere afhængigt af hvor du bor. I England er der Code Club, en ikke-for-profit, der sigter mod at lære børn mellem 9 og 11 år at kode. Kodeklubber findes i de fleste større byer med undervisningen organiseret i 'termer'. Hvert sigt lærer en anden facet af programmering, såsom Scratch, HTML og CSS, og Python, hvor kursets indhold bliver mere og mere komplekst, efterhånden som hvert sæson skrider frem.
Kodeklubber drager ofte fordel af Raspberry Pis og Linux, fordi de er ekstremt billige at købe sammenlignet med traditionelle computere.
Men hvad med over dammen?
Amerika har alt for mange Kode Club-lignende organisationer at nævne i en artikel. Men der er nogle, der skiller sig ud.
Gates og Zuckerberg-finansierede Code.org er mest kendt for dets Kodetid projekt, der forsøger at få både voksne og børn til at bruge en time om året på at lære at kode. Men vidste du, at det er vært for en næsten omfattende liste over datalogi, der findes i USA, med mange tilgængelige i biblioteker, samfundscentre og skoler?
Men jeg ville være forladt, hvis jeg ikke nævnte den strålende Black Girls Code, der laver noget virkelig vigtigt arbejde. De forsøger at tackle det skammelige etniske og kønsmæssige kløft i området STEM (videnskab, teknologi, teknik og matematik) ved at give gratis datalogi klasser til sorte piger i hele USA. Klasser er tilgængelige i en række større byer, afhængigt af tilgængelighed. Tjek webstedet for Black Girls Code for mere information.
Tid til kode
Okay folkens. Sommeren er officielt her. Skolerne er enten lukket eller lukker. Hvad vil du gøre? Skal du tage dem med til en kodeklub, eller skal du give dem en Raspberry Pi og se, hvor deres fantasi tager dem?
Uanset hvad vil jeg høre om det. Giv mig en kommentar nedenfor, og lad mig vide det.
Fotokreditter: HTML-kode (Marjan Krebeji), PHP-kode (Bull3t Hughes), læring af at bruge bærbar computer via Shutterstock