Kaip maksimaliai išnaudoti informatikos išsilavinimą

Dauguma šiuolaikinių programuotojų išsilavinimą įgijo universitetuose. Laikui bėgant tai keisis, bet dabar viskas taip, kad geri darbuotojai IT įmonėse vis tiek ateina iš universitetų. Šiame įraše Stanislavas Protasovas, „Acronis“ direktorius ryšiams su universitetais, pasakoja apie savo viziją apie būsimų programuotojų universitetinio rengimo ypatumus. Mokytojai, studentai ir juos samdantys asmenys netgi gali rasti naudingų patarimų.

Kaip maksimaliai išnaudoti informatikos išsilavinimą

Pastaruosius 10 metų įvairiuose universitetuose dėstau matematiką, algoritmus, programavimo kalbas ir mašininį mokymąsi. Šiandien, be pareigų „Acronis“, taip pat esu MIPT Teorinės ir taikomosios informatikos katedros vedėjo pavaduotoja. Iš savo patirties dirbant geruose Rusijos (ir ne tik) universitetuose pateikiau keletą pastebėjimų apie kompiuterių disciplinų studentų rengimą.

30 sekundžių taisyklė nebeveikia

Esu tikras, kad susidūrėte su 30 sekundžių taisykle, kuri teigia, kad programuotojas turėtų suprasti funkcijos paskirtį, greitai pažvelgęs į jos kodą. Jis buvo išrastas seniai, ir nuo tada atsirado daug operacinių sistemų, kalbų, aparatinės įrangos ir algoritmų. Kodą rašau jau 12 metų, tačiau palyginti neseniai pamačiau vieno produkto šaltinio kodą, kuris iš pirmo žvilgsnio man atrodė kaip magiški burtai. Šiandien, jei nesate pasinėrę į dalykinę sritį, 30 sekundžių taisyklė nustoja veikti. Priešingu atveju jums nepakaks ne tik 30, bet ir 300 sekundžių, kad suprastumėte, kas yra kas.

Pavyzdžiui, jei norite rašyti tvarkykles, turėsite pasinerti į šią sritį ir perskaityti tūkstančius konkretaus kodo eilučių. Taikydamas tokį požiūrį į dalyko studijas, specialistas ugdo „tėkmės pojūtį“. Kaip repe, kai be ypatingo racionalizavimo atsiranda gero rimo jausmas ir tinkamas ritmas. Taip pat gerai apmokytas programuotojas gali nesunkiai atpažinti neveiksmingą ar tiesiog blogą kodą, nesigilindamas į išsamų stiliaus pažeidimo vietą ar neoptimalų metodą (tačiau šį jausmą gali būti labai sunku paaiškinti).

Specializacija ir augantis kompleksiškumas lemia tai, kad bakalauro išsilavinimas nebeteikia galimybės pakankamai giliai studijuoti visas sritis. Tačiau būtent tokiame išsilavinimo lygyje reikia įgyti perspektyvą. Vėliau absolventų mokykloje ar darbe turėsite šiek tiek laiko pasinerti į dalykinės srities problemas ir specifiką, mokytis slengo, programavimo kalbų ir kolegų kodo, skaityti straipsnius ir knygas. Man atrodo, kad tai vienintelis būdas su universiteto pagalba „išpumpuoti skersinį“ ateičiai T formos specialistai.

Kokią programavimo kalbą geriausia dėstyti universitete?

Kaip maksimaliai išnaudoti informatikos išsilavinimą
Mano džiaugsmui, universiteto dėstytojai jau atsisakė ieškoti teisingo atsakymo į klausimą: „Kokia kalba geriausia programuoti? Diskusijos apie tai, kas geriau – C# ar Java, Delphi ar C++ – praktiškai išnyko. Daugelio naujų programavimo kalbų atsiradimas ir pedagoginės patirties kaupimas lėmė akademinėje aplinkoje nusistovėjusį supratimą: kiekviena kalba turi savo nišą.

Mokymo naudojant vieną ar kitą programavimo kalbą problema nustojo būti prioritetinė. Nesvarbu, kokia kalba dėstomas kursas. Svarbiausia – pakankamas kalbos išraiškingumas. Knyga "Daugiaprocesorinio programavimo menas“ yra gera šio pastebėjimo iliustracija. Šiame dabar jau klasikiniame leidime visi pavyzdžiai pateikiami „Java“ kalba – kalba be nuorodų, bet su „Grabage Collector“. Vargu ar kas nors ginčytųsi, kad „Java“ toli gražu nėra optimalus pasirinkimas norint rašyti didelio našumo lygiagretųjį kodą. Tačiau kalba tiko paaiškinti knygoje pateiktas sąvokas. Kitas pavyzdys - klasikinis mašininio mokymosi kursas Andrew Nna, dėstė Matlab „Octave“ aplinkoje. Šiandien galite pasirinkti kitą programavimo kalbą, bet koks skirtumas, jei idėjos ir metodai yra svarbūs?

Praktiškesnis ir arčiau realybės

Tuo pačiu metu pastaraisiais metais universitetuose daug daugiau praktikų. Jei anksčiau Rusijos universitetų programos buvo aktyviai kritikuojamos dėl atitrūkimo nuo realybės, šiandien to negalima pasakyti apie IT išsilavinimą. Prieš 10 metų universitetuose beveik nebuvo dėstytojų, turinčių tikrą pramonės patirtį. Šiais laikais vis dažniau pamokas specializuotame skyriuje veda ne etatiniai informatikos mokytojai, o praktikuojantys IT specialistai, kurie laisvu nuo pagrindinio darbo laiku dėsto tik 1-2 kursus. Toks požiūris pasiteisina kokybiško personalo mokymo, kvalifikacijos kėlimo kursų ir, žinoma, potencialių darbuotojų paieškos įmonėje požiūriu. Nemanau, kad atskleisiu paslaptį sakydamas, kad palaikome pagrindinį MIPT skyrių ir palaikome ryšius su kitais universitetais, įskaitant tam, kad paruoštume studentus, kurie galėtų pradėti savo karjerą Acronis.

Matematikas ar programuotojas?

Kaip maksimaliai išnaudoti informatikos išsilavinimą
Šventieji karai, kurie anksčiau sukdavosi apie programavimo kalbas, pakrypo į filosofinę kryptį. Dabar vadinamieji „programuotojai“ ir „matematikai“ ginčijasi tarpusavyje. Iš principo šias mokyklas būtų galima atskirti į dvi edukacines programas, tačiau pramonė vis dar prastai atskiria tokias subtilybes, o iš universiteto į universitetą turime panašų išsilavinimą su šiek tiek kitokiu akcentu. Vadinasi, tiek studentas, tiek įmonė, kurioje jis toliau dirbs, žinių dėlionę turės papildyti trūkstamais gabalėliais.

Universitetuose atsiradę praktikai, rašantys pramoninį kodą skirtingomis kalbomis, suteikia studentams geresnių tobulėjimo įgūdžių. Puikiai susipažinę su standartinių bibliotekų diegimu, karkasais ir programavimo technikomis, praktikuojantys programuotojai įskiepija mokiniams norą rašyti gerą kodą, tai padaryti greitai ir efektyviai.

Tačiau šis naudingas įgūdis kartais priveda prie tų, kurie mėgsta išradinėti dviratį iš naujo. Programavimo studentai galvoja taip: „Ar turėčiau parašyti dar 200 eilučių gero kodo, kuris išspręstų problemą?

Klasikinį matematikos išsilavinimą (pavyzdžiui, Matematikos ar Taikomosios matematikos fakultete) įgiję mokytojai dažnai dirba pseudomokslinėje aplinkoje arba modeliavimo ir duomenų analizės srityje. „Matematikai“ skirtingai mato kompiuterių mokslo srities problemas. Jie pirmiausia veikia ne su kodu, o su algoritmais, teoremomis ir formaliais modeliais. Svarbus matematinio požiūrio privalumas yra aiškus esminis supratimas, ką galima ir ko negalima išspręsti. Ir kaip tai išspręsti.

Atitinkamai, matematikos mokytojai kalba apie programavimą žvelgdami į teoriją. Mokiniai, kilę iš „matematikos sluoksnių“, dažnai sugalvoja gerai apgalvotus ir teoriškai geresnius sprendimus, tačiau dažniausiai neoptimalius kalbiniu požiūriu ir dažnai tiesiog aplaidžiai parašytus. Toks studentas mano, kad pagrindinis jo tikslas – parodyti gebėjimą tokias problemas spręsti iš esmės. Tačiau įgyvendinimas gali būti šlykštus.

Vaikai, kurie buvo užauginti programuotojais mokykloje ar pirmaisiais metais, su savimi atsineša „labai gražų dviratį“, kuris, tiesa, dažniausiai neveikia labai efektyviai besimptomis. Priešingai, jie nekelia sau uždavinio giliai teorizuoti ir vartyti vadovėlius, ieškodami optimalių sprendimų, pirmenybę teikdami gražiam kodui.

Įvairiuose universitetuose studentų pokalbių metu dažniausiai matau, kokia „mokykla“ yra jo išsilavinimo pagrindas. Ir aš beveik niekada nesusidūriau su tobula pusiausvyra pagrindiniame ugdyme. Vaikystėje mano mieste galėjai ruoštis matematikos olimpiadoms, bet nebuvo programavimo būrelių. Dabar būreliuose vaikai mokosi programuoti „madingomis“ Go ir Python kalbomis. Todėl net ir stojant į universitetus skiriasi požiūriai. Manau, kad universitete svarbu išlaikyti abu įgūdžius, antraip į įmonę ateis arba specialistas, turintis nepakankamą teorinį pagrindą, arba žmogus, kuris neišmoko ir nenori rašyti gero kodo.

Kaip „pripumpuoti skersinį“ ateičiai T formos specialistai?

Kaip maksimaliai išnaudoti informatikos išsilavinimą
Akivaizdu, kad tokiomis sąlygomis mokinys tiesiog pasirenka tai, kas jam labiausiai patinka. Mokytojas tiesiog perteikia jam artimesnį požiūrį. Tačiau visiems bus naudinga, jei kodas bus parašytas gražiai, o algoritmų požiūriu viskas aišku, pagrįsta ir efektyvu.

  • IT horizontai. Informatikos bakalauro studijas baigęs yra pasiruošęs specialistas su išvystytu techniniu žvilgsniu, tikriausiai pasirinkęs savo profilį. Tačiau jaunesniame amžiuje mes nežinome, ką jis ar ji veiks. Jis gali eiti į mokslą ar analitiką, arba, priešingai, kasdien gali parašyti didžiulį kodo kiekį. Todėl studentui reikia parodyti visus darbo IT srityje aspektus ir supažindinti su visomis priemonėmis. Idealiu atveju dėstytojai iš teorinių kursų parodys ryšį su praktika (ir atvirkščiai).
  • Augimo taškas. Paties mokinio interesai yra neleisti sau į kraštutinumus. Nesunku suprasti, ar esate „matematikas“, ar „programuotojas“. Sprendžiant problemą pakanka įsiklausyti į pirmąjį impulsą: ką nori daryti – pažvelgti į vadovėlį ieškant optimalaus požiūrio ar parašyti porą funkcijų, kurios vėliau tikrai pravers? Remdamiesi tuo, galite sukurti tolesnę papildomą mokymosi trajektoriją.
  • Alternatyvūs žinių šaltiniai. Būna, kad programa gerai subalansuota, tačiau „Sistemos programavimą“ ir „Algoritmus“ moko visiškai skirtingi žmonės, o vieni mokiniai artimesni pirmajam, kiti – antrojo. Bet net jei jums nepatinka profesorius, tai nėra priežastis apleisti kai kuriuos dalykus kitų naudai. Patys bakalaurai domisi noro dirbti su žinių šaltiniais ir jokiu būdu nepasitiki radikaliomis nuomonėmis, tokiomis kaip „matematika – mokslų karalienė, svarbiausia žinoti algoritmus“ arba „geras kodas kompensuoja visa kita“.

Jūs galite pagilinti savo žinias teorijoje kreipdamiesi į specializuotą literatūrą ir internetinius kursus. Savo programavimo kalbų įgūdžius galite patobulinti „Coursera“, „Udacity“ ar „Stepik“, kur pristatoma daug įvairių kursų. Taip pat studentai dažnai pradeda žiūrėti sudėtingus kalbos kursus, jei jaučia, kad algoritmų mokytojas gerai išmano matematiką, bet negali atsakyti į sudėtingus įgyvendinimo klausimus. Ne visi su manimi sutiks, bet mano praktikoje tai pasitvirtino specializacija C++ iš Yandex, kuriame nuosekliai analizuojami vis sudėtingesni kalbos bruožai. Apskritai rinkitės kursą su aukštais įvertinimais iš gerbiamų įmonių ar universitetų.

Minkšti įgūdžiai

Kaip maksimaliai išnaudoti informatikos išsilavinimą
Atėję iš universiteto dirbti bet kurioje įmonėje, nuo startuolio iki didelės korporacijos, studentai net iš geriausių universitetų jaučiasi prastai prisitaikę prie realios darbo aplinkos. Faktas yra tas, kad šiandien universitetai daug auklėja studentus. Net ir praleidęs daug pamokų, laiku nepasiruošęs įskaitoms ir įskaitoms, permiegojęs ar pavėlavęs į egzaminą, kiekvienas gali jį išlaikyti ir perlaikyti dar kartą – ir galiausiai vis tiek gauti diplomą.

Tačiau šiandien yra visos sąlygos studentams pasiruošti suaugusiųjų gyvenimui ir savarankiškai profesinei veiklai. Jiems teks ne tik programuoti, bet ir bendrauti. Ir to taip pat reikia išmokyti. Universitetai turi įvairių formatų šiems įgūdžiams lavinti, bet, deja, jiems dažnai neskiriama pakankamai dėmesio. Tačiau turime daug galimybių įgyti efektyvių komandinio darbo įgūdžių.

  • Rašytinė dalykinė komunikacija. Deja, dauguma baigusių universitetą neturi supratimo apie susirašinėjimo etiketą. Bendravimo momentiniuose pasiuntiniuose ypatumas yra apsikeitimas žinutėmis dieną ir naktį bei pokalbio stiliaus ir neformalaus žodyno naudojimas. Tačiau rašytinę kalbą būtų galima lavinti studentui bendraujant su katedra ir universitetu.

    Praktikoje vadovai dažnai susiduria su būtinybe išskaidyti didelį projektą į mažas užduotis. Norėdami tai padaryti, turite aiškiai aprašyti kiekvieną užduotį ir jos komponentus, kad jaunesnieji kūrėjai suprastų, ko iš jų reikalaujama. Dėl prastai apibrėžtos užduoties dažnai reikia ką nors perdaryti, todėl bendravimo raštu patirtis padeda absolventams dirbti paskirstytose komandose.

  • Savo darbo rezultatų pristatymas raštu. Norėdami pristatyti savo edukacinius projektus, vyresniųjų klasių mokiniai gali rašyti pranešimus apie Habr, mokslinius straipsnius ir tiesiog pranešimus. Tam yra daug galimybių – kursinis darbas kai kuriuose universitetuose prasideda antraisiais metais. Taip pat galite naudoti rašinius kaip kontrolės formą – jie dažniausiai savo forma artimesni žurnalistiniam straipsniui. Šis metodas jau buvo įgyvendintas Nacionalinio mokslo universiteto aukštojoje ekonomikos mokykloje.

    Jei įmonė taiko lankstų požiūrį į plėtrą, darbo rezultatus ji turi pateikti mažesnėmis porcijomis, bet dažniau. Tam svarbu mokėti trumpai perteikti vieno specialisto ar visos komandos darbo rezultatus. Be to, daugelis įmonių šiandien atlieka „peržiūras“ - kasmet ar pusmetį. Darbuotojai aptaria rezultatus ir darbo perspektyvas. Sėkminga peržiūra yra pagrindinė karjeros augimo priežastis, premijos, pavyzdžiui, „Microsoft“, „Acronis“ ar „Yandex“. Taip, tu gali gerai programuoti, bet „sėdėdamas kampe“ net ir šaunus specialistas visada pralaimės tam, kuris moka gerai pristatyti savo sėkmę.

  • Akademinis rašymas. Akademinis rašymas nusipelno ypatingo dėmesio. Studentams naudinga susipažinti su mokslinių tekstų rašymo, argumentavimo, informacijos paieškos įvairiuose šaltiniuose, nuorodų į šiuos šaltinius formatavimu taisyklėmis. Patartina tai daryti anglų kalba, nes tarptautinėje akademinėje bendruomenėje yra daug daugiau gerų tekstų, o įvairioms disciplinoms jau yra nusistovėję mokslinių rezultatų pateikimo šablonai. Žinoma, rengiant publikacijas rusų kalba reikia ir akademinio rašymo įgūdžių, tačiau gerų šiuolaikinių straipsnių anglų kalba pavyzdžių kur kas mažiau. Šiuos įgūdžius galima įgyti per atitinkamą kursą, kuris dabar įtrauktas į daugelį švietimo programų.
  • Susitikimų vedimas. Dauguma mokinių nemoka pasiruošti susitikimams, protokoluoti ir apdoroti duomenų. Bet jei šį įgūdį išsiugdysime kolegijoje, pavyzdžiui, dalyvaudami komandiniuose projektuose, galime neeikvoti laiko darbo vietoje. Tam reikia prižiūrėti studentų projektinį darbą, kad jie būtų išmokyti efektyviai vesti susitikimus. Praktiškai tai kiekvienai korporacijai kainuoja nemažus pinigus – juk jei keli žmonės, gaunantys didelį atlyginimą, praleidžia valandą darbo laiko mitinge, norisi, kad iš to būtų atitinkama grąža.
  • Viešojo kalbėjimo. Daugelis studentų su poreikiu viešai kalbėti susiduria tik gindami baigiamąjį darbą. Ir ne visi tam pasiruošę. Mačiau daug studentų, kurie:
    • stovėti nugara į publiką,
    • siūbuodamas, bandydamas įvesti komisiją į transą,
    • sulaužyti rašiklius, pieštukus ir rodykles,
    • vaikščiojimas ratu
    • pažiūrėk į grindis.

    Tai normalu, kai žmogus koncertuoja pirmą kartą. Tačiau su šiuo stresu reikia pradėti dirbti anksčiau – ginant kursinius darbus draugiškoje atmosferoje, tarp kurso draugų.

    Be to, standartinė praktika korporacijose yra suteikti darbuotojui galimybę pasiūlyti idėją ir gauti jai finansavimą, pareigas ar specialų projektą. Bet jei gerai pagalvoji, tai ta pati kursinių darbų apsauga, tik aukštesnio lygio. Kodėl tokių naudingų karjeros įgūdžių neišlavinus studijuojant?

Ką aš praleidau?

Viena iš priežasčių parašyti šį įrašą buvo straipsnis, paskelbta Tiumenės valstybinio universiteto svetainėje. Straipsnio autorė daugiausia dėmesio skiria tik užsienio mokytojų pastebėtiems rusų studentų trūkumams. Mano dėstymo praktika skirtinguose universitetuose rodo, kad rusiška mokykla ir aukštasis mokslas yra geras pagrindas. Rusų studentai išmano matematiką ir algoritmus, su jais lengviau užmegzti profesionalų bendravimą.

Užsienio studentų atveju, atvirkščiai, rusų kalbos mokytojo lūkesčiai kartais gali būti per dideli. Pavyzdžiui, matematikos pagrindinio mokymo lygmenyje mano sutikti mokiniai indai yra panašūs į rusus. Tačiau jiems kartais pritrūksta specialių žinių, kai baigia bakalauro studijas. Tikėtina, kad gerų Europos mokinių matematikos išsilavinimas mokykloje yra silpnesnis.

O jei studijuojate ar dirbate universitete, dabar galite tobulinti bendravimo įgūdžius (savo ar studentų), plėsti pagrindinę bazę ir praktikuoti programavimą. Tam Rusijos švietimo sistema suteikia visas galimybes – tereikia teisingai jomis pasinaudoti.

Džiaugsiuosi, jei komentaruose prie įrašo pasidalinsite nuorodomis į kursus ir metodus, kurie padeda išlyginti pusiausvyrą ugdyme, taip pat kitais būdais tobulinti minkštuosius įgūdžius studijuojant universitete.

Šaltinis: www.habr.com

Добавить комментарий