Iga programmitöö alus on
 pusled

Tere, Habrovchid!

Selles artiklis tahan rÀÀkida oma kogemusest C++ programmeerimise Ă”petajana tehnikaĂŒlikooli kolledĆŸis. See oli ainulaadne kogemus elus, mis mind palju Ă”petas. Kui rÀÀkida huvitavatest faktidest isiklikust minevikust – see eluperiood tuleb meelde ĂŒhe esimesena.
LĂ€hme.

Esiteks natuke enda kohta.
2016. aastal lĂ”petasin instituudi punase diplomiga „Automatiseeritud sĂŒsteemide infotehnoloogia” erialal. Õpingute ajal olen korduvalt suutnud oma potentsiaali realiseerida teadusartiklite kirjutamises, konkurssidel ja stipendiumides osalemises. 2015. aastal olin ĂŒleriikliku noorte teadlaste konkursi „UMNIK” vĂ”itja. 2016. aastal, enne lĂ”petamist, sain suurest organisatsioonist tööd ametikohal „Infoturbe, krĂŒptograafia ja salastamise spetsialist”.
KokkuvÔttes oli see just nii. VÔib öelda, et programmeerimisest olin ma siiski midagi kuulnud.

Ja siis oli 2017. aastaks aspirantuur. Mind paluti Ă”petama C++-d kolledĆŸis semestri jooksul, millega lubati mulle hĂ€id boonuseid aspirandi koormuse vĂ€hendamiseks ja mitte midagi enamat.

Ausalt öeldes oli mul siiralt huvitav proovida end selles ametis.

Esimene tund
September. Esimene Ă”ppenĂ€dal. Tulid minu juurde tudengid. „KĂ”ige sĂ”nakuulematum grupp” – kutsuti neid nii.
23 inimest. „Programmeersijad”.

Nagu kombeks, alustasin tutvustamisega. RÀÀkisin neile tagasihoidlikult osa „Esiteks natuke enda kohta” sisu...
Siis algas Ă”udus. KĂŒsimusele „Mida te oskate?” vastasid tudengid (nimetame neid edaspidi nii), et nad oskavad pisut rohkem kui mitte midagi (see tĂ€hendas, et mĂ”ni neist teadis, kuidas MS VS vĂ€lja nĂ€eb ja oskab luua projekti „Hello world”)
 Programmeerijad. Viimane kursus...

Edasi selgitasid nad pĂ”hjalikult, „vĂ€rvikalt”, et neid ei Ă”petatud millestki ja et nad on ĂŒldiselt programmeerimisest pettunud...

Peaaegu kÔik pÀevad kuni jÀrgmiseks Ôppetunniks möödusid nii:
Iga programmitöö alus on
 pusled

... aga pĂ€ev enne seda tekkis mĂ”te pĂŒĂŒda oma jĂ”ud tegeleda selle noorte peade ja teadvuse olukorra parandamisega. Ja siis „Ostapa viidi Ă€ra”.

Sissejuhatus programmeerimisse
JÀrgmiseks Ôppetunniks tÔin ma ... pusle.
Jah, jah. Pusle. „Kuidas taltsutada lohet“. Reeglid olid lihtsad. RĂŒhm jagati kolme meeskonda. Iga meeskond kogus oma osa. Ühed — mets, teised — maa, kolmandad — lohe pildi keskel. Kui nad kogu sessiooni jooksul puslet kokku panid, rÀÀkisin, et pusle kokkupanemine on ka programmeerimine, et programmeerijad kasutavad sageli teiste koodi, et igas projektis on mitmeid erinevaid meeskondi, funktsioone, mooduleid

Aja jooksul liitusid protsessiga ka kĂ”ige vĂ€sinumad ĂŒliĂ”pilased.
Kui lÔpetasin programmeerimise idee tutvustamise Àri, protsesside ja
 puslede kontekstis, oli aeg seadistada Ôpikute reeglid.
Iga tunni jaoks pidi iga ĂŒliĂ”pilane kirjutama oma vihikusse 10 IT-termi. ÜkskĂ”ik milliseid. Igal ĂŒhel on oma. Idee on see, et ma vĂ”tsin ĂŒhe ĂŒliĂ”pilase vihiku, leidsin kĂ”igi terminite seast kĂ”ige rakenduslikumad ja kĂŒsisin teine ĂŒliĂ”pilaselt neid. Kui teine ĂŒliĂ”pilane ĂŒtleb: „Ma ei kirjutanud seda terminit“, ei olnud see karistatav (terve mĂ”istus), kuid see ĂŒliĂ”pilane pidi kirjutama „puuduvaid“ termineid (nagu kĂ”ik, kellel neid ei olnud) ja leidma nende tĂ€hendused jĂ€rgmise tunni jaoks.

Nii me tegutsesime. Iga tund algas mĂ”ne energilise juhuslikult valitud kahe-kolme ĂŒliĂ”pilasega. Poisid olid selle protsessi suhtes innukad.

Tundide teemad
Koolitust alustades on vÀga oluline anda Ôppijatele head kirjandust. Minu arvates oli ideaalne Ôpik:
Iga programmitöö alus on
 pusled

Oma ajal pidin selle vaikselt lugema Microsoft Visual Studioga. Siis Ônnestus mÔista programmeerimist praktiliselt nullist. Ideaalne variant.

Astud tagasi Ă”pilaste juurde ja ĂŒtled: „Et saada programmeerijaks, peate lihtsalt lugema ja proovima kĂ”ike, mis selles raamatus on“, ja viskad raamatu lauale. Peamine on mitte segamini ajada raamatuid oma seljakotis


Iga teema eel pidin ma ilma kahtluseta pÔhjalikult valmistuma. Lugesin sama Lafore'i ja veel mÔnelt huvitavalt allikalt vÔrgu kaudu.
Selgitama pidi pea iga kord algusest peale. Ja mĂ”ista, kus ĂŒliĂ”pilaste pĂ”hi teadmiste tase on puudu, tuli deduktiivselt.
Massiivid -> MĂ€luga töötamine (konstruktorid) -> Viidatud -> Kuidas mĂ€lu töötab -> Ahnurud -> Mis on fĂŒĂŒsiline mĂ€luseade -> Binaarne andmete esitamine

Iga programmitöö alus on
 pusled

VÀga pÔhjalik test programmeerimise aluste teadmiste kohta. Ma ei ole enam programmeerija, vaid ajaloolane!

Nii et ajaloolised lahingud toimuvad mitu korda jĂ€rjest. Üks pĂ€ev tuleb meie kabinetti referent ja nĂ€hes rĂŒhma, silmad lahti ja vaatab, ning sulgeb ukse. Kuidas mulle hiljem öeldi, oli ta ĆĄokis, et SEE grupp istus nii vaikselt ja kuulas mind nii tĂ€helepanelikult
 TĆĄehh, lihtne.

Laboratoorsed tööd
Esimesed praktilised teadmised — esimesed «laborid». Kogu semestri jooksul tegi grupp 10 laboratoorset tööd. Esimeste seas tegid nad lihtsamaid konsool... a+b, ja viimastes kirjutasid nad, ehkki konsooliprogramme, aga ĂŒsna huvitavaid rakendusi, nĂ€iteks mingi suvalise funktsiooni integraali vÀÀrtuse arvutamist kolme meetodi abil — sarnased ĂŒlesanded olid ka lĂ”putööde hindamisel.

Kuid vastuvĂ”tumeetod oli ei olnud harjumuspĂ€rane. Kogu Ă”pingute ajal instituudis kohtusin ma sellega, et olla tark ja osata esitada aruandeid — see ei ole sama. See ei rahuldanud mind ĂŒldse.

— Lapsed, ma mĂ”tlesin. Teeme «mĂ”isted» selgeks. Kui keegi teist arvab, et programmeerimine ei ole talle vajalik — uks on seal. Ma Ă”petan teile tasuta. Soovin nĂ€ha siin ainult uudishimulikke, mitte ĂŒkskĂ”ikseid ja entusiaste. KĂ”iki teisi palun mitte raisata meie aega — ĂŒtlesin ma laboratoorsete tööde vastuvĂ”tu esimesel pĂ€eval. PĂ€rast seda lĂ”petas viie inimese kohe tundides kĂ€imine. See oli loogiline ja ootuspĂ€rane. ÜlejÀÀnutega oli vĂ”imalik midagi arusaadavat teha.

— 
 mulle ei ole huvitav vaadata, kuidas keegi tegi teie töö, ainult et lĂ€bida. TĂ”enĂ€oliselt ei pea te olema programmeerijad, kuid minu tundides peate te olema kĂŒll.

See nÀgi vÀlja nii:

juhtum viieheategija

Istub minu juurde tudeng töö esitama.
— Kas sa ise tegid?
— Jah.
— Mis see on?
— *vastab Ă”igesti*.
*KĂŒsin veel paar kĂŒsimust. Vastab Ă”igesti*
— vastu vĂ”etud. SuurepĂ€rane.

juhtum lobiseja

— Kas sa ise tegid?
— Jah.
— Mis see on?
— *vastab VALESTI / ei vasta*.
*KĂŒsin veel paar kĂŒsimust. Sama tulemus*
— EI ole vastu vĂ”etud. EBAÕNN. Ootan uuesti.

juhtum korralik

— Kas sa ise tegid?
— Jah.
— Mis see on?
— *vastab Ă”igesti, aga ebakindlalt, eksleb*.
*KĂŒsin veel paar kĂŒsimust. Sama tulemus*
— vastu vĂ”etud. HĂ€sti.

juhtum tasakaalus kolmes

— Kas sa ise tegid?
— Ei.
— Miks?
— Raskus. Aitasin
 *ausalt nimetab grupist esimest Ă”pilast*
— Kas said aru?
— Jah, peaaegu kĂ”ik sain aru.

— Mis see on?
— *vastab Ă”igesti*.
*KĂŒsin veel mĂ”ne asja kohta. Vastab enam-vĂ€hem Ă”igesti, mĂ”nikord tĂ€iesti vale, ehkki 50-50 Ă”igete ja vale vastuste osas*
— vastu vĂ”etud. HĂ€sti.

ÜlejÀÀnud juhtumeid ei ole mĂ”tet kirjeldada. Jah, "hea Ă”ppija" vĂ”ib olla nördinud, et "keskmine" saab sama hindega, tuginedes aususele. Siis sĂ”ltub kĂ”ik tujust. Kas ma palun "hea Ă”ppija" vaadata pĂ”randat, sest "nĂŒĂŒd annan ma vĂ€ikese tarkuse", ja siis seletan lĂ€henemist, kirjeldan, mis elus on suurem vÀÀrtus, ja selgitan, et "keskmisel" oli palju raskem eksam sooritada kui tal, "hea Ă”ppijal", jne...

 vĂ”i, nagu kunagi, joonistan ma pĂ€evikus selle rahulolematuse kĂ”rvale vĂ€ikese hamba ja jĂ€rgmisel korral tĂ€iendavalt isiklikult tema jaoks laboritööd. Lihtsalt niisama. Et mitte "hĂ€vitada" kaaslasi.

Iga programmitöö alus on
 pusled

Hinded
Õppeprotsess, nagu ka terve maailm, on sĂ”na otseses mĂ”ttes hindadega tulvil.
ÜliĂ”pilased on ka inimesed, kuid "raamid", minu arvates, oleks pidanud "raputama" ka siin.
Semestri jooksul anti kĂ”igile boonuste ĂŒlesanne. Registreeruda github.com, laadida sinna tĂŒhine projekt C++ keeles, teha 2 uuendust, kommitida need ja pushida. Nende tegevuste eest mÀÀrati 15 punkti. Jah, jah, mitte 4, mitte 5, vaid 15. Kolm said aru. ÜliĂ”pilaste psĂŒhhotĂŒĂŒbile oli see veel kuidagi arusaadav, kuid siis tuli teine juhtum.
Kord meie paar lĂŒkati nii, et sellest sai viimane, ja veel akna vahel. Kuid sellele tuli siiski 15 inimest. Uue teema seletamine sellise kangelasteo tĂ”ttu ei olnud mulle soovitav, kuna olime teemasid piisavalt hĂ€sti lĂ€binud + jĂ€rgmine teema ei olnud vĂ€sinud ajude jaoks (minu ja Ă”pilaste) vĂ€ga lihtne. Siis otsustasin rÀÀkida filosoofiast.

— Declaareerin enneolematut heldust. KĂ”ik ĂŒtlevad mulle, missugune hinne talle tĂ€na paarist panna.
KÔiksoovis "viit".
— Arvake, et see on juba olemas, — ĂŒtlesin ma. KĂ”ik rÔÔmustasid.
Vaikus.
— aga miks keegi ei soovinud 7- kaja vĂ”i 10- kaja?
KÔik vaatasid suured silmad ja hakkasid rumalalt naeratama.
— Kas te tĂ”esti panete? PĂ€evikus?! — kostus hÀÀl tagumisest lauast.
— Jah, kerge töö! — ĂŒtlesin ma, — kuulutan vĂ€lja terminide blitz'i, kes vastab 10 minu kĂŒsimusele — panen 20 punkti pĂ€evikusse, ilma trikki, kes ei vasta — sellele -10 (miinus kĂŒmme).

„Meeskond elavnes, algas diskussioon“, kĂ”ikidel olid ausalt teenitud hinded. Kaks inimest pakkusid end ĂŒles. MĂ”ningate vĂ€ikeste ebatĂ€psustega vastasid nad vaheldumisi kĂŒmnele kĂŒsimusele virnast, jĂ€rjekorrast, konstruktorist, destruktorist, prĂŒgikorjajast, kapseldamisest, polĂŒmorfismist, hash-funktsioonidest

IgaĂŒhele joonistati ajakirja. 20-punt.
 aga ajakirja ja hindade tĂ€htsus langes igaĂŒhe silmis. NĂŒĂŒd kahetsen, et ei kĂŒsinud, kas nad tahaksid kellegagi "jaga" oma hinnet. Mul on tunne, et nad oleksid jaganud... Edaspidi andis igaĂŒks "labori" teadmiste ja aususega.

Sellest hetkest peale tekkis veel ĂŒks labori andmise tĂŒĂŒp:


juhtum ausaltEiTemaAgaTaProovis

— Kas sa ise tegid?
— Ei.
— Miks?
— Raskus. Aitasin
 *ausalt nimetab grupist esimest Ă”pilast*
— Kas said aru?
— Sergei NikolajevitĆĄ, tĂ”esti — ma ei saa aru, ma ise kirjutasin iga rea kĂ”rval kommentaare — aga see ei ole minu asi, ma tahan olla traktorist.
— Mis see on?
— *loeb kommentaari rea kĂ”rval.*
— 

— 

— Mida erineb Belarus MTZ Don 500-st ja K700-st?
— ??!.. Esimene on Minskis valmistatud ratastega traktor, mida kasutatakse sageli kergete ja keskmise ulatusega pĂ”llumajandustegevustes. Tal on ees vĂ€ikesed ja taga suured rattad. Don 500 on peamiselt koristustraktor, kuid K-700 „Kirovets“ on NĂ”ukogude ratastega universaaltraktor, millel on suur lĂ€bitavus, tĂ”mbe klass 5.
— aktsepteeritud. HĂ€sti (!!!).
— AitĂ€h, Sergei NikolajevitĆĄ!!!

Minu kodumaal on traktori ĂŒle rÀÀkida sama, mis siin SOLID-ist.

Geenius.
Mul oli grupis Geenius. ÜliĂ”pilane, kes esimesest loengust hilines ja ei hakanud koos teistega pusle kokku panema. Siis palusin tal teha seda, mida ma kĂ”ikidele jĂ€rgmiseks klassiks plaanisin — kirjutada paberile enda kohta, mida ta armastab, mis teda huvitab. Tulemuseks oli „Geeniusel“ 2-3 rida: midagi sellist nagu „mĂ”istan elutuks olemise tĂŒhjust“



 Oh, Jumal, mul on grupis samas isikus samaaegselt kaks Laozi ja Kojima

Iga programmitöö alus on
 pusled

Minu ĂŒllatuseks vastas ta esimestel kahel loengul tĂ”eliselt suurepĂ€raselt terminite kĂŒsimustele, kuid efekt ei kestnud kaua. „Geenius“ lĂ”petas tundide kĂ€imise ja tuli jĂ€rgmine kord ainult esimese laboritöö sooritamiseks, mille ta edukalt ei sooritanud objektiivsetel pĂ”hjustel. SeejĂ€rel, kuna tal oli puudumisi, kogunes tal loomulikult kohustusi, mida ta arvas, ma pidin lihtsalt talle arvesse vĂ”tma, nii öelda, „vendlikult“..
Klasside mittevisiit + liialdatud enesehinnang olid vastuolus kehtestatud pĂ”himĂ”tetega minu tundide kĂŒlastamiseks. „Geniusel“ oli olukorrast vaid 2 vĂ€ljapÀÀsu — rehabiliteeruda (oodatav tee) vĂ”i ignoreerida tunde ja loota, et dekaan paneb „kolme“, et vabaneda lohakiast.
No see on ju „Genius“... siin tuleb kĂ€ituda „geniaalselt“. See noormees ei leidnud midagi paremat, kui kirjutada ĂŒldises VK dialoogis (kus olin mina ja kĂ”ik selle grupi tudengid) raevukas tirade roppustega ja solvava sisu juurde minu aadressil.

Hmm
 Pettumus.
KĂ”ige enam ĂŒllatas mind, et enne karistusprotsessi lĂ”petamist kolledĆŸi juhtkonna poolt otsustas ta minu ees vabandada. Miks? — see on mulle siiralt arusaamatu. Sel hetkel olin ma juba ammu sĂ”ltumatu kriitikast, eriti nii rumalast. Minu isikut see ei puudutanud, kuid protsessid — need on protsessid, kui Ă”petaja, ma ei saanud sellest mitte teatada. Selgus, et tema peale oli kogu Ă”ppeaja jooksul kogunenud nii palju kaebusi, et see juhtum osutus viimaseks. Ta ekspelleeriti. Kutsekooli viimase klassi lĂ”petaja.
VÔib-olla on ta juba ammu jÀlginud mind nagu snaiperi eesmÀrgistaja, kuid ausalt öeldes, ei huvita mind see.
Ahh, geniaalsus, sa sĂŒdameetu


Epilog
Isiklikult oli minu Ă”petamiskogemus ĂŒks kĂ”ige Ă”petlikumaid. See aitas mul kinnistada fundamentaalsed teadmised programmeerimisest pĂ€rast ĂŒlikooli. Tundsin enesekindlust valitud erialas (saadaval erialade spekter). Eriti oluline on see, et „kĂ”ige vaimsem grupp“ oli minu vastu austust ja sĂ”bralikkust tundnud — see maksab palju. Ma suutsin leida tee nende sisemiste uuendajateni, pĂŒĂŒdsin sisendada reaalsust, mitte neid mallipĂ”hiseid prioriteete. Kahju, et me ei jĂ”udnud „puzzle‘deni“ kodeerimises — kui igaĂŒks oleks pidanud tegema osa koodist ja, ĂŒhendades kĂ”ik osad ĂŒheks, oleksime saanud ĂŒhe suure töötava programmi

Loodan, et kunagi tunnevad nad seda kÔik
 aga praegu on allolevalt kogutud ekraanipildid mÔnede tudengite arvustustest kahe aasta jooksul.

Iga programmitöö alus on
 pusled

Töödeldes jÀreldusi kellegi programmeerija karjÀÀri edust on veel liiga vara, kuna praegu Ôpib enamik sellest grupist kÔrgkoolis. Aeg nÀitab.

Loodan, et artikkel oli kasulik. AitÀh tÀhelepanu eest!
Loovust ja positiivset meeleolu, kolleegid!

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster