window.pipedriveLeadboosterConfig = { base: leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster on juba olemas') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() ÕPETAMISE RÖÖPAD - The Codest
The Codest
  • Meie kohta
  • Teenused
    • Tarkvaraarendus
      • Frontend arendus
      • Backend arendus
    • Staff Augmentation
      • Frontend arendajad
      • Backend arendajad
      • Andmeinsenerid
      • Pilveinsenerid
      • QA insenerid
      • Muud
    • See nõuandev
      • Audit ja nõustamine
  • Tööstusharud
    • Fintech & pangandus
    • E-commerce
    • Adtech
    • Healthtech
    • Tootmine
    • Logistika
    • Autotööstus
    • IOT
  • Väärtus
    • CEO
    • CTO
    • Tarnejuht
  • Meie meeskond
  • Case Studies
  • Tea kuidas
    • Blogi
    • Kohtumised
    • Veebiseminarid
    • Ressursid
Karjäärivõimalused Võtke ühendust
  • Meie kohta
  • Teenused
    • Tarkvaraarendus
      • Frontend arendus
      • Backend arendus
    • Staff Augmentation
      • Frontend arendajad
      • Backend arendajad
      • Andmeinsenerid
      • Pilveinsenerid
      • QA insenerid
      • Muud
    • See nõuandev
      • Audit ja nõustamine
  • Väärtus
    • CEO
    • CTO
    • Tarnejuht
  • Meie meeskond
  • Case Studies
  • Tea kuidas
    • Blogi
    • Kohtumised
    • Veebiseminarid
    • Ressursid
Karjäärivõimalused Võtke ühendust
Tagasi nool TAGASI
2018-11-05
Tarkvaraarendus

ÕPETUSRATASED

Michal Begejowicz

Kõigepealt paar sõna kursuse enda kohta. Enne kursuse algust anti meie õpilastele "eeltöö" ülesanne, mis sisaldas juhiseid ja harjutusi, mis tuli enne kursuse algust täita. Nende ülesanded hõlmasid Linuxi installimist, terminali tundmaõppimist ning mõningaid HTMLi, CSSi ja Giti põhitõdesid.

Arvutused

Järgmise nelja kuu jooksul kohtusime iga kahe nädala tagant ja samm-sammult avastasime The Awesome World of Ruby et al. Kursus hõlmas Ruby keelt, Ruby on Rails, Javascript ja mõned populaarsed tööriistad RoR-rakenduste jaoks, nagu Devise, Pundit, Sidekiq või Carriewave.

Igal õpilasel oli ka mentor, kes vastutas õpilaste motiveerimise ja nende tööde kontrollimise eest kohtumiste vahel.

Rünnaku plaan

Õpetajana tulin valmis 3-aastase kogemusega Ruby on Rails, 10-aastase kogemusega programmeerimisega üldiselt ja mõne ettekandega, kus olid küsimused ja harjutused, mida tuli teha.

Peale lühikese Linuxi juhtimise kursuse, mille olin varem läbinud, polnud mul mingit kogemust õpetamisega. Mis puutub õpilastesse, siis teadsin vaid, et neid saab olema kümme ja et nad on väga erineva taustaga - mõnele neist on see esimene kokkupuude programmeerimisega, samas kui teised püüdsid enne kursusele registreerumist ise C või Ruby keelt õppida.

Ma otsustasin võtta kaks otsust - ma olen kannatlik ja ma selgitan kõike, kui vaja (ei mingit "me juba käsitlesime seda"). Esimene resolutsioon on ajaproovile vastu pidanud, kuid teine - üsna ilmselgelt - mitte. Otsustasin, et ei tee mingit erilist ettevalmistust seoses asjadega, mida kavatsen õpetada - ma töötan Ruby/Railsiga iga päev ja tunnen end selles valdkonnas oma oskustes üsna kindlalt. Kõige rohkem lugesin ettekandeid, mis mul olid.

Kaks inimest sülearvutite ees

Väljakutse

Üks esimesi asju, mis mulle kohe pärast kursuse algust täiesti selgeks sai - kõike ei saa seletada. See on väga kurb tõdemus sellise inimese jaoks nagu mina, kellele meeldib süveneda ja avastada, kuidas asjad toimivad, kuid ühe kohtumise piiratud aja jooksul on võimalik õpetada vaid nii palju, et see jääks õpilastele meelde. Tuleb välja, et sa võid olla väga korralik Ruby programmeerija, teadmata täpselt, kuidas on Arrays tegelikult mälus esindatud või kuidas täpselt Devise töötab.

Õppetunnid toimusid laupäeviti ja pühapäeviti kell 9.00-17.00. Oluline on mõista, et õpetamine on üsna kurnav töö - lisaks materjali selgitamisele tuleb alati olla valmis vastama seotud (või mitte nii seotud) küsimustele ja lahendama erinevaid probleeme, mis õpilastel tekivad.

Kohv on teie sõber, kuid kõige olulisem on eespool nimetatud kannatlikkus. Inimeste jaoks, kes ei ole varem kodeerinud, tuleb programmeerijatele ilmselged mõisted - nagu silmused, tüübid või isegi muutujad - õppida ja see ei ole kiire protsess. Kui te olete programmeerinud XX aastat, peate matemaatikat lihtsaks, oskate keset ööd loetleda kõik tuntud programmeerimisparadigmad, siis võib olla raske panna end sellise inimese kingadesse, kes ei ole päris kindel, kummal pool võrdusmärki asub muutuja nimi. Aga see on hädavajalik, et te seda teeksite. Põhimõisted nagu muutujad, tsüklid või massiivid muutuvad nii loomulikuks, et on raske mõista, kuidas saab keegi neist kohe mitte aru saada, kuid "meile, programmeerijatele" on need raskemad, kui nad tunduvad.

Täiendavaks raskuseks, eriti kursuse alguses, oli nende mõistete selgitamine nii, et need oleksid hästi arusaadavad. Minu arvates ei ole võimalik õppida Rails'i ilma Ruby't õppimata - kuigi ma tean, et mõned väidavad, et see ei ole nii. On tõsi, et Railsil on omad mustrid ja palju asju saab pigem meelde jätta kui alguses õppida. Kuid ma arvan, et selleks, et saada teadlikuks RoR arendajaks, on Ruby, OOP või SQL mõõdukas mõistmine kohustuslik. Programmeerimise õpetamine on hoopis teine asi kui Railsi õpetamine - kui Railsi puhul võib eeldada, et paljusid asju lihtsalt võetakse omaks või usutakse (keegi ei pea alguses teadma, kuidas callbackid toimivad - ainult seda, mida nad teha saavad), siis programmeerimise mõisteid tuleks üksikasjalikumalt seletada.

Jõudude kaasamine

Kuidas seda siis teha?

Kannatlikult.

Ilmselt tundub, et ma kordan ennast kogu aeg, kuid ma ei saa piisavalt rõhutada, kui oluline on kannatlikkus. Isegi minu kõige motiveeritumad õpilased on teadaolevalt siin ja seal süntaksivigu teinud - see on osa normaalsest õppimisprotsessist ja õpetajal pole tegelikult midagi muud teha, kui näidata, milles viga seisneb ja kuidas seda parandada. Aja jooksul õpivad nad neid ise parandama, kuid selleks on vaja palju rohkem kui üks või kaks viga.

Veel üks asi, mida tuleb tähele panna, on see, et Ruby ei ole nii lihtne, kui tundub. Kui te alustasite Ruby õppimist C/Java/Python tundides, siis tundus kõik ilmselt nii puhas ja kena ja lihtne. Proovige aga mõelda ja te märkate:

  1. Miks on sulgudes? Kas ma peaksin neid kasutama? Kas ma ei peaks?
  2. Mis see on? ise asi? Mõnikord pean ma seda kasutama (nt. attr_writer – self.variable = ...), mõnikord mitte (attr_reader – muutuv) ja mõnikord ma ei saa! (private def some_method – self.some_method viskab vea)
  3. Plokid. Vean kihla, et isegi mõned kogenud programmeerijad (erinevates keeltes) vajaksid oodatust rohkem aega, et mõista #inject

Peale lihtsa vigade parandamise on veel küsimus, kuidas tegelikult oma arusaamist asjadest õpilastele edasi anda. Selleks on teil vaja palju paindlikkust. Mõned õpilased rahuldusid sellega, et Array on lihtsalt järjestatud elementide loetelu. Teised vajasid rohkem visuaalset analoogiat, nagu riiul nummerdatud kohtadega, kuhu saab asju panna. Leidsin end seletamas samu asju mitu korda erinevalt - mis on üsna keeruline harjutus!

Aga nagu ma juba ütlesin, kõike ei saa seletada. Kui ma Railsis suhteid seletasin, siis oli see pigem "nii teete seda, ja see võimaldab teil teha seda ja seda. Sa tahad seda, see on vinge". Õnneks ei küsinud keegi minult, kuidas see toimib - ma ei usu, et nooremad arendajad peavad peegeldustest teadma.

Situatsiooniline positsioneerimine

Meie kursuse formaadi tõttu (kohtumised igal teisel nädalavahetusel ja pikad vaheajad) pidime tagama, et nende nädalavahetuste vahelised perioodid oleksid meie õpilaste jaoks produktiivsed - ilma nende praktikata ei toimiks kursus üldse.

Mõned minu kolleegid nõustusid olema kursuse õpilaste mentorid. Mentorite ülesanne oli kontrollida nädalavahetuse kohtumistel antud harjutusi ja aidata nende täitmisel tekkivate probleemide korral. Õpilased suhtlesid mentoritega Slacki kaudu.

Ma olin kahe oma õpilase mentoriks. See oli oluliselt erinev õpetamise vorm - ja täis omaette lõkse. Üks asi, millest ma natuke liiga hilja aru sain, on see, et hea programmeerija peab olema iseseisev - ta peaks vähemalt proovima probleeme ise lahendada, enne kui abi paluda. Ja kogu aeg Slackis kättesaadav olemine ei võtnud mitte ainult palju minu aega, vaid ei innustanud ka sellist iseseisvust.

Ärge saage minust valesti aru - paljud küsimused, mida mulle mentorina esitati, olid põhjendatud ja neile vastamine oli õpilaste teadmiste laiendamine. Siiski on väga lihtne minna "õpetaja režiimi" - ja seletada uuesti kõiki küsimusi nädalavahetuse kohtumistest. Tänapäeva vaatenurgast arvan, et mentori roll on anda ülevaade, pakkuda kasulikke linke ja esitada küsimusi, mis võivad aidata lahendust leida. Aeg-ajalt võib juhtuda seletamist, kuid see ei tohiks olla enamus.

Luure kasutamine

Iga õpilane on erinev. Üks suuremaid raskusi oli kohandada kursuse tempot nii, et see sobiks kõige paremini kõigile õpilastele. Erineva tausta ja üldise kerguse tõttu uute ideede vastuvõtmisel õpilaste vahel on see peaaegu võimatu ülesanne.

Meie ajakava oli 9 kohtumist - 2 päeva korda 8 tundi andis meile 144 tundi, et jõuda 0-st Ruby-hero'ni. See oli ülimalt tähtis, et kogu õppekava selle aja jooksul läbi teha - mis iseenesest sundis meid üsna kiirele tempole. Esimesed kolm kohtumist olid kõik Ruby kohta - siis üks kohtumine SQL-i, siis RoR-i ja üks kohtumine JS-i kohta vahepeal.

Õpetajana pidin alati teadma, kes enam-vähem mõistab osa materjalist, mida esitasin. Mõnikord piisas, kui küsisin, kas sellest on aru saadud, mõnikord tegin väikeseid teste. Näiteks palusin kõigil oma õpilastel saata mulle oma määratlused Ruby mõistete kohta, näiteks klass, ise, meetod, muutuv jne, Slackis. Kui mõni küsimus oli eriti ebaselge, läheksin tagasi ja üritaksin seda uuesti selgitada.

Illusioon ja tegelikkus

Kokkuvõtteks võib öelda, et õpetamine oli veelgi raskem ettevõtmine, kui ma arvasin. See võib olla ka väga rahuldust pakkuv. Sellegipoolest on see raske töö ja selle mõju ei sõltu ainult õpetajast - õpilase enda pingutused on nende õppimisel veelgi olulisemad. See muudab õpetamise väga erinevaks programmeerimisest, kus tavaliselt saab kõik õnnestumised ja ebaõnnestumised enda kätte. Seda erinevust on oluline meeles pidada.

Samuti sunnib see teid mõtlema teemadele, millele te tavaliselt ei mõtle - asjade selgitamine annab teile ka parema arusaamise neist. Sel moel võib õpetamine muuta teid ka paremaks programmeerijaks.

Seotud artiklid

Tarkvaraarendus

Tulevikukindlate veebirakenduste loomine: The Codest ekspertide meeskonna ülevaade

Avastage, kuidas The Codest paistab skaleeritavate, interaktiivsete veebirakenduste loomisel silma tipptehnoloogiatega, mis pakuvad sujuvat kasutajakogemust kõigil platvormidel. Saate teada, kuidas meie eksperditeadmised aitavad kaasa digitaalsele ümberkujundamisele ja äritegevusele...

THECODEST
Tarkvaraarendus

Top 10 Lätis asuvat tarkvaraarendusettevõtet

Tutvu Läti parimate tarkvaraarendusettevõtete ja nende innovaatiliste lahendustega meie viimases artiklis. Avastage, kuidas need tehnoloogiajuhid saavad aidata teie äri edendada.

thecodest
Enterprise & Scaleups lahendused

Java tarkvaraarenduse põhitõed: A Guide to Outsourcing Successfully

Tutvuge selle olulise juhendiga, kuidas edukalt outsourcing Java tarkvara arendada, et suurendada tõhusust, pääseda ligi eksperditeadmistele ja edendada projekti edu The Codest abil.

thecodest
Tarkvaraarendus

Ülim juhend Poola allhanke kohta

outsourcing kasv Poolas on tingitud majanduslikust, hariduslikust ja tehnoloogilisest arengust, mis soodustab IT kasvu ja ettevõtlussõbralikku kliimat.

TheCodest
Enterprise & Scaleups lahendused

Täielik juhend IT-auditi vahendite ja tehnikate kohta

IT-auditid tagavad turvalised, tõhusad ja nõuetele vastavad süsteemid. Lisateavet nende tähtsuse kohta leiate kogu artiklist.

The Codest
Jakub Jakubowicz CTO & kaasasutajad

Tellige meie teadmistebaas ja jääge kursis IT-sektori eksperditeadmistega.

    Meie kohta

    The Codest - rahvusvaheline tarkvaraarendusettevõte, mille tehnoloogiakeskused asuvad Poolas.

    Ühendkuningriik - peakorter

    • Büroo 303B, 182-184 High Street North E6 2JA
      London, Inglismaa

    Poola - kohalikud tehnoloogiakeskused

    • Fabryczna büroopark, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varssavi, Poola

      The Codest

    • Kodu
    • Meie kohta
    • Teenused
    • Case Studies
    • Tea kuidas
    • Karjäärivõimalused
    • Sõnastik

      Teenused

    • See nõuandev
    • Tarkvaraarendus
    • Backend arendus
    • Frontend arendus
    • Staff Augmentation
    • Backend arendajad
    • Pilveinsenerid
    • Andmeinsenerid
    • Muud
    • QA insenerid

      Ressursid

    • Faktid ja müüdid koostööst välise tarkvaraarenduspartneriga
    • USAst Euroopasse: Miks otsustavad Ameerika idufirmad Euroopasse ümber asuda?
    • Tech Offshore arenduskeskuste võrdlus: Euroopa (Poola), ASEAN (Filipiinid), Euraasia (Türgi).
    • Millised on CTO ja CIOde peamised väljakutsed?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Copyright © 2025 by The Codest. Kõik õigused kaitstud.

    etEstonian
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch elGreek etEstonian