Mans galvenais darbs ir saistÄ«ts ar datiem un programmÄÅ”anu R
, bet Å”ajÄ rakstÄ vÄlos pastÄstÄ«t par savu hobiju, kas pat nes kaut kÄdus ienÄkumus. Mani vienmÄr ir interesÄjis stÄstÄ«t un skaidrot lietas draugiem, klasesbiedriem un kursa biedriem. Man arÄ« vienmÄr ir bijis viegli atrast kopÄ«gu valodu ar bÄrniem, es nezinu, kÄpÄc. KopumÄ uzskatu, ka bÄrnu audzinÄÅ”ana un mÄcÄ«Å”ana ir viena no svarÄ«gÄkajÄm nodarbÄm, un mana sieva ir skolotÄja. TÄpÄc apmÄram pirms gada es reklamÄjos vietÄjÄ Facebook grupÄ, izveidoju grupu un sÄku mÄcÄ«t Scratch un Python vienu reizi nedÄļÄ. Tagad man ir piecas grupas, sava klase mÄjÄs un individuÄlÄs nodarbÄ«bas. KÄ es nonÄcu lÄ«dz Å”Ädai dzÄ«vei un tieÅ”i kÄ es mÄcu bÄrnus, es jums pastÄstÄ«Å”u Å”ajÄ rakstÄ.
Es dzÄ«voju Kalgari, AlbertÄ, KanÄdÄ, tÄpÄc dažas lietas bÅ«s vietÄjÄs specifikas.
Istaba
Vietas pieejamÄ«ba praksei bija liela problÄma jau no paÅ”a sÄkuma. Es mÄÄ£inÄju meklÄt Ä«rÄjamos birojus un klases pa stundÄm, taÄu neizdevÄs. MÅ«su universitÄte un SAIT, MIT vietÄjais ekvivalents, piedÄvÄ nodarbÄ«bas ar un bez datoriem. Cenas tur izrÄdÄ«jÄs ne pÄrÄk humÄnas, un beigÄs izrÄdÄ«jÄs, ka augstskola neielaiž nepilngadÄ«gos, un SAIT vispÄr Ä«rÄ tikai saviem studentiem. TÄtad Ŕī iespÄja tika izslÄgta. Ir daudzi biroju centri, kas Ä«rÄ sanÄksmju telpas un birojus stundÄs, ir veseli uzÅÄmumi, kas piedÄvÄ virkni iespÄju no pilnas klases lÄ«dz telpai ÄetrÄm personÄm. Man bija cerÄ«bas, jo Alberta ir naftas province, kopÅ” 2014. gada mÄs esam gausÄ krÄ«zÄ, un daudzas biznesa telpas ir tukÅ”as. Man nevajadzÄja cerÄt, cenas izrÄdÄ«jÄs tik nežÄlÄ«gas, ka sÄkumÄ pat neticÄju. Saimniekiem ir vieglÄk sÄdÄt tukÅ”os birojos un maksÄt izmaksas, nekÄ izgÄzt.
TajÄ brÄ«dÄ« es atcerÄjos, ka es regulÄri maksÄju nodokļus un vai mÅ«su mīļajam Å”tatam, pareizÄk sakot, Kalgari pilsÄtai, tur kaut kas ir. IzrÄdÄ«jÄs, ka tieÅ”Äm ir. PilsÄtÄ ir arÄnas hokejam un citiem daiļslidoÅ”anas sporta veidiem, un Å”ajÄs arÄnÄs ir telpas, kurÄs izturÄ«gie ledus karotÄji apspriež turpmÄko cÄ«Åu stratÄÄ£ijas. ÄŖsÄk sakot, katrÄ arÄnÄ ir pÄris istabas ar galdiem, krÄsliem, baltu dÄli un pat izlietni ar tÄjkannu. Cena diezgan dievÄ«ga - 25 KanÄdas tugriki stundÄ. SÄkotnÄji nolÄmu nodarbÄ«bas kÄrtot pusotru stundu, tÄpÄc noteicu stundas cenu 35 USD par klasi piecu cilvÄku grupÄ, lai kompensÄtu Ä«ri un kaut ko ieliktu kabatÄ. KopumÄ man patika sportot arÄnÄs, tas atrisinÄja vienu no problÄmÄm - lielÄkÄ daļa krievvalodÄ«go dzÄ«vo dienvidos, bet es dzÄ«voju pilsÄtas ziemeļos, tÄpÄc es izvÄlÄjos arÄnu aptuveni vidÅ«. TaÄu bija arÄ« neÄrtÄ«bas. KanÄdas birokrÄtija ir laba un draudzÄ«ga, taÄu, maigi izsakoties, var bÅ«t nedaudz neveikla. Jau iepriekÅ” pierodot pie ritma un plÄnojot, problÄmu nav, taÄu reizÄm rodas nepatÄ«kami brīži. PiemÄram, pilsÄtas mÄjaslapÄ jÅ«s varat Ärti izvÄlÄties laiku un vietu un rezervÄt istabu, bet jÅ«s nevarat samaksÄt nekÄdÄ veidÄ. ViÅi paÅ”i zvana un pieÅem karÅ”u maksÄjumus. JÅ«s varat doties uz biroju un maksÄt skaidrÄ naudÄ. Bija smieklÄ«gs, bet ne pÄrÄk patÄ«kams brÄ«dis, kad gaidÄ«ju viÅu zvanu, lai samaksÄtu par otro nodarbÄ«bu, tÄ nesanÄca, un pÄdÄjÄ dienÄ nokavÄju piecpadsmit minÅ«tes uz biroju. Man nÄcÄs ar nekaunÄ«gu seju vÄrsties pie apsardzes un melot, ka istaba ir rezervÄta. MÄs, kanÄdieÅ”i, pieÅemam manu vÄrdu; viÅi mani mierÄ«gi ielaida un neko nepÄrbaudÄ«ja, bet es to nedarÄ«tu, ja cilvÄki jau nebÅ«tu ceÄ¼Ä uz nodarbÄ«bu.
TÄ es strÄdÄju ziemu un pavasari, un tad notika pÄrmaiÅas, kas bija pÄdÄjais piliens. PirmkÄrt, birojs apmeklÄtÄjiem tika slÄgts, un viÅi piedÄvÄja pieÅemt maksÄjumus pa tÄlruni aiz stÅ«ra. NosÄdÄju uz ejas vismaz pusstundu, pirms tiku cauri. OtrkÄrt, ja agrÄk mana mÄ«Ä¼Ä tante ÅÄma no manis maksÄjumu par pusotru stundu, tad tagad kÄda meitene atbildÄja uz telefonu un teica, ka maksÄjums ir tikai par stundu. Toreiz manÄ grupÄ bija vai nu trÄ«s vai divi cilvÄki, un papildu 12.5 dolÄri nemaz nebija lieki. Protams, esmu idejisks, bet, ja sieva mani izmetÄ«s uz ielas, tad nebÅ«s kam mÄcÄ«t. Toreiz vÄl biju bezdarbnieks.
Un es nolÄmu doties uz bibliotÄku. BibliotÄkas iznomÄ brÄ«niŔķīgas telpas pilnÄ«gi bez maksas, taÄu ir viens ÄÄ·is - jÅ«s nevarat veikt komercdarbÄ«bu. Pat labdarÄ«bas organizÄcijas nedrÄ«kst tur vÄkt naudu. Man teica, ka tas netiek Ä«paÅ”i kontrolÄts, galvenais ir neÅemt naudu pie ieejas, bet man ļoti nepatÄ«k pÄrkÄpt noteikumus. ProblÄma ir arÄ« tÄ, ka telpas bieži ir noslogotas un ir grÅ«ti novadÄ«t plÄnotÄs nodarbÄ«bas vienÄ reizÄ vienuviet. Es mÄcÄ«ju bibliotÄkÄs vasarÄ un ziemas sÄkumÄ, man bija jÄizvÄlas tÄs, kurÄs ir vieta, un beigÄs nomainÄ«ju piecas vai seÅ”as bibliotÄkas. Tad sÄku rezervÄt vietu divus mÄneÅ”us iepriekÅ”, un arÄ« tad man izdevÄs to izdarÄ«t tikai vienÄ mazÄ bibliotÄkÄ, pÄrÄjÄm regulÄri nebija vietas vajadzÄ«gajam laikam. Un tad es nolÄmu izveidot datorklasi mÄjÄs. Noliku dÄli, nopirku otru galdu un pÄris vecus monitorus no sludinÄjuma. DarbÄ uzÅÄmums man nopirka jaunu jaudÄ«gu klÄpjdatoru, jo analÄ«ze manÄ datorÄ aizÅÄma gandrÄ«z 24 stundas. TÄtad, man bija jauns vecs dators, vecs vecs dators, klÄpjdators, kurÄ mans mazais drupinÄja ekrÄnu, un sens netbook, kuram es pats saspiedu ekrÄnu. Es tos visus savienoju ar monitoriem un visur uzstÄdÄ«ju Linux Mint, izÅemot netbook, uz kura es uzstÄdÄ«ju ļoti vieglu sadales komplektu, Ŕķiet, Pappy. Man vÄl ir vecs jauns portatÄ«vais, pirkts par 200$, pieslÄdzu televizoram. SvarÄ«gi ir arÄ« tas, ka mÅ«su saimnieks nesen mums nomainÄ«ja logus, un Å”ausmÄ«gÄs, brÅ«koÅ”Äs istabÄs esoÅ”Äs sliktÄ«bas vietÄ tagad mums ir jauni balti rÄmji. Mana sieva bÄrnudÄrzam patur dzÄ«vojamo istabu, virtuvi un otro guļamistabu, tÄpÄc viss stÄvs izrÄdÄ«jÄs tÄ«ri pedagoÄ£isks. TÄtad, tagad ar telpÄm viss kÄrtÄ«bÄ, pÄriesim pie mÄcÄ«Å”anas.
NoskrÄpÄt
Es sÄku mÄcÄ«t programmÄÅ”anas pamatus, izmantojot Scratch valodu. Å Ä« ir valoda, kas izmanto gatavus blokus, kas savulaik tika izgudroti MIT. LielÄkÄ daļa bÄrnu jau ir redzÄjuÅ”i Scratch skolÄ, tÄpÄc viÅi to paÅem diezgan Ätri. Ir gatavas programmas un stundu plÄni, bet man tie nemaz nepatÄ«k. Daži ir dÄ«vaini ā izveidojiet, piemÄram, savu stÄstu. Visa programma sastÄv no neskaitÄmiem blokiem say '<...>' for 2 seconds
. Var redzÄt, ka to izgudroja ļoti radoÅ”i cilvÄki, taÄu ar Å”o pieeju jÅ«s varat iemÄcÄ«t rakstÄ«t klasisko Indijas spageti kodu. No paÅ”a sÄkuma es runÄju par tÄdiem principiem kÄ DRY.Citas uzdevumu kolekcijas ir diezgan labas, bet bÄrni Ätri uztver bÅ«tÄ«bu un sÄk tos darÄ«t kÄ ar ložmetÄju. RezultÄtÄ viÅi vienÄ nodarbÄ«bÄ dara to, ko vajadzÄja izdarÄ«t piecÄs. Un uzdevumu meklÄÅ”ana un atlase aizÅem daudz personÄ«gÄ laika. VispÄr Scratch vairÄk atgÄdina nevis valodu, bet IDE, kur tikai jÄatceras, kur noklikŔķinÄt un kur ko meklÄt. TiklÄ«dz studentiem ir vairÄk vai mazÄk Ärti, es cenÅ”os viÅus pÄrnest uz Python. Pat mana septiÅgadÄ«gÄ meitene raksta vienkÄrÅ”as programmas Python valodÄ. Es uzskatu par Scratch priekÅ”rocÄ«bu, ka tajÄ ir ietverti pamatjÄdzieni, kas tiek apgÅ«ti rotaļīgÄ veidÄ. KÄdu iemeslu dÄļ visiem bez izÅÄmuma ir ļoti grÅ«ti saprast mainÄ«gÄ lieluma ideju. SÄkumÄ es Ätri pÄrmeklÄju tÄmu un turpinÄju, lÄ«dz saskÄros ar faktu, ka viÅi pat nezinÄja, ko ar to darÄ«t. Tagad es pavadu daudz laika mainÄ«gajiem lielumiem un pastÄvÄ«gi pie tiem atgriežos. JÄtaisa stulba kalÅ”ana. Es mainu dažÄdus mainÄ«gos uz ekrÄna un lieku tiem runÄt savas vÄrtÄ«bas. Scratch ir arÄ« kontroles struktÅ«ras un vÄrtÄ«bu pÄrbaudes, piemÄram, while
, for
vai if
pitonÄ. Tie ir diezgan vienkÄrÅ”i, taÄu ir problÄmas ar ligzdotÄm cilpÄm. Es cenÅ”os dot vairÄkus uzdevumus ar ligzdotu cilpu un tÄ, lai tÄ darbÄ«ba bÅ«tu skaidra. PÄc tam es pÄreju uz funkcijÄm. Pat pieauguÅ”ajiem funkcijas jÄdziens nav acÄ«mredzams, un vÄl jo vairÄk bÄrniem. Es ilgi runÄju par to, kas ir funkcija kopumÄ, es runÄju par rÅ«pnÄ«cu, kas saÅem preces kÄ ievadi un izsniedz preces, par pavÄru, kurÅ” gatavo Ädienu no izejvielÄm. Tad ar produktiem veidojam programmu ātaisÄ«t sviestmaiziā, un tad no tÄs izveidojam funkciju, kurai produkti tiek nodoti kÄ parametri. Pabeidzu apgÅ«t funkcijas ar Scratch.
Pitons
Ar python viss ir vienkÄrÅ”Äk. Ir laba grÄmata Python for Kids, no kuras es mÄcu. Tur viss ir standarta - rindas, darbÄ«bu secÄ«ba, print()
, input()
utt. UzrakstÄ«ts vieglÄ valodÄ, ar humoru, bÄrniem patÄ«k. Tam ir daudzÄm programmÄÅ”anas grÄmatÄm kopÄ«gs trÅ«kums. KÄ jau slavenajÄ jokÄ ā kÄ uzzÄ«mÄt pÅ«ci. OvÄls - aplis - pÅ«ce. PÄreja no vienkÄrÅ”iem jÄdzieniem uz diezgan sarežģītiem jÄdzieniem ir pÄrÄk pÄkÅ”Åa. Man ir vajadzÄ«gas vairÄkas sesijas, lai objektu pievienotu punktu metodei. No otras puses, es nesteidzos, atkÄrtoju vienu un to paÅ”u dažÄdos veidos, lÄ«dz sanÄk vismaz kÄda bilde. Es sÄku ar mainÄ«gajiem un izmetu tos vÄlreiz, Å”oreiz Python. MainÄ«gie ir sava veida lÄsts.
Gudrs students, kurÅ” pirms pÄris mÄneÅ”iem veikli uzspieda mainÄ«gos uz Skratch, izskatÄs kÄ auns pie jaunajiem vÄrtiem un nevar pievienot X ar Y, kas ir skaidri rakstÄ«ts uz tÄfeles rindiÅu augstÄk. MÄs atkÄrtojam! Kas ir mainÄ«gajam? VÄrds un nozÄ«me! Ko nozÄ«mÄ vienÄdÄ«bas zÄ«me? Uzdevums! KÄ mÄs pÄrbaudÄm vienlÄ«dzÄ«bu? DubultÄ vienÄdÄ«bas zÄ«me! Un mÄs to atkÄrtojam atkal un atkal lÄ«dz pilnÄ«gai apgaismÄ«bai. Tad pÄrejam pie funkcijÄm, kur argumentu skaidroÅ”ana aizÅem visilgÄk. Nosauktie argumenti pÄc pozÄ«cijas, pÄc noklusÄjuma un tÄ tÄlÄk. MÄs vÄl neesam sasnieguÅ”i nodarbÄ«bas nevienÄ grupÄ. Papildus Python mÄs pÄtÄm populÄros algoritmus no grÄmatas, vairÄk par to vÄlÄk.
PatiesÄ«bÄ, apmÄcÄ«ba
Mana stunda ir strukturÄta Å”Ädi: pusstundu pasniedzu teoriju, pÄrbaudu zinÄÅ”anas un nostiprinÄju apgÅ«to. Ir pienÄcis laiks laboratorijÄm. Es bieži aizraujos un runÄju lÄ«dz stundai, tad atliek pusstunda praksei. Kad mÄcÄ«jos pitonu, skatÄ«jos kursu Algoritmi un datu struktÅ«ras Khiryanov no MIPT. Man ļoti patika viÅa prezentÄcija un lekciju struktÅ«ra. ViÅa ideja ir Å”Äda: ietvari, sintakse, bibliotÄkas kļūst novecojuÅ”as. ArhitektÅ«ra, komandas darbs, versiju kontroles sistÄmas ā tas vÄl ir agrs. RezultÄtÄ paliek algoritmi un datu struktÅ«ras, kas zinÄmas jau sen un vienmÄr bÅ«s lÄ«dzÄ«gÄ formÄ. Es pats atceros tikai veselus skaitļus no institÅ«ta pascal. TÄ kÄ mani skolÄni pÄrsvarÄ ir jauni, no septiÅiem lÄ«dz piecpadsmit gadiem, uzskatu, ka viÅu nÄkotnei svarÄ«gÄk ir likt pamatus, nevis Ätri uzrakstÄ«t platformas spÄli Python valodÄ. Lai gan viÅi vairÄk vÄlas platformera, un es viÅus saprotu. Es dodu viÅiem vienkÄrÅ”us algoritmus ā burbulis, binÄrÄ meklÄÅ”ana sakÄrtotÄ sarakstÄ, apgrieztÄ poļu apzÄ«mÄjums, izmantojot steku, bet mÄs katru analizÄjam ļoti detalizÄti. IzrÄdÄ«jÄs, ka mÅ«sdienu bÄrni principÄ nezina, kÄ darbojas dators, es arÄ« jums pateikÅ”u. Es cenÅ”os katrÄ lekcijÄ sasaistÄ«t vairÄkus jÄdzienus. PiemÄram, dators - atmiÅa/procenti - atmiÅa, kas sastÄv no ŔūnÄm (atļauÅ”os turÄt atmiÅas mikroshÄmu, uzmini cik ir Ŕūnu) - katra Ŕūna ir kÄ spuldzÄ«te - ir divi stÄvokļi - patiess/nepatiess - un/vai - binÄrs/decimÄls - 8 biti = 1 baits - baits = 256 opcijas - loÄ£iskais datu tips vienÄ bitÄ - veseli skaitļi vienÄ baitÄ - float
uz diviem baitiem - string
vienÄ baitÄ - lielÄkais skaits uz 64 bitiem - saraksts un kortežs no iepriekÅ”Äjiem veidiem. Izdaru atrunu, ka reÄlÄ datorÄ viss ir nedaudz savÄdÄk un atmiÅas apjoms Å”iem datu tipiem ir atŔķirÄ«gs, bet galvenais, ka mÄs paÅ”i procesÄ veidojam sarežģītÄkus datu tipus no vienkÄrÅ”Äkiem. Datu tipi, iespÄjams, ir visgrÅ«tÄk atcerÄties. TÄpÄc katru stundu sÄku ar Ätru iesildÄ«Å”anos ā viens skolÄns nosauc datu veidu, nÄkamais dod divus piemÄrus un tÄ tÄlÄk pa apli. RezultÄtÄ panÄcu, ka pat mazÄkie bÄrni jautri kliedz - peld! BÅ«la! septiÅi, pieci! pica, auto! Lekcijas laikÄ nemitÄ«gi velku pirmais vai otrs, citÄdi Ätri sÄk raut degunu un skatÄ«ties griestos. Un katra zinÄÅ”anu lÄ«menis Å”ad un tad ir jÄpÄrbauda.
Mani skolÄni nebeidz mani pÄrsteigt gan ar savu stulbumu, gan negaidÄ«to inteliÄ£enci. Par laimi, biežÄk ar inteliÄ£enci.
Es gribÄju rakstÄ«t vairÄk, bet tas izrÄdÄ«jÄs tikai palags. LabprÄt atbildÄÅ”u uz visiem jautÄjumiem. Es atzinÄ«gi vÄrtÄju jebkuru kritiku visos iespÄjamos veidos, tikai aicinu bÅ«t iecietÄ«gÄkiem vienam pret otru komentÄros. Å is ir labs raksts.
Avots: www.habr.com