Miten saada kaikki irti tietojenkäsittelytieteen koulutuksesta

Useimmat nykyaikaiset ohjelmoijat saivat koulutuksensa yliopistoissa. Ajan myötä tämä muuttuu, mutta nyt asiat ovat niin, että hyvää henkilöstöä IT-yrityksiin tulee edelleen yliopistoista. Tässä viestissä Stanislav Protasov, Acroniksen yliopistosuhteiden johtaja, kertoo näkemyksestään tulevien ohjelmoijien yliopistokoulutuksen ominaisuuksista. Opettajat, opiskelijat ja heidät palkkaavat voivat jopa löytää hyödyllisiä vinkkejä.

Miten saada kaikki irti tietojenkäsittelytieteen koulutuksesta

Viimeiset 10 vuotta olen opettanut matematiikkaa, algoritmeja, ohjelmointikieliä ja koneoppimista eri yliopistoissa. Nykyään olen Acronis-tehtäväni lisäksi myös MIPT:n teoreettisen ja soveltavan tietojenkäsittelytieteen osaston apulaisjohtaja. Työkokemuksestani hyvissä venäläisissä (eikä vain) yliopistoissa tein joitain havaintoja opiskelijoiden valmentamisesta tietokonealalla.

30 sekunnin sääntö ei enää toimi

Olen varma, että olet törmännyt 30 sekunnin sääntöön, jonka mukaan ohjelmoijan tulee ymmärtää funktion tarkoitus, kun hän on tarkastellut sen koodia nopeasti. Se keksittiin kauan sitten, ja sen jälkeen on ilmestynyt monia käyttöjärjestelmiä, kieliä, laitteistoja ja algoritmeja. Olen kirjoittanut koodia 12 vuotta, mutta suhteellisen äskettäin näin yhdelle tuotteelle lähdekoodin, joka ensisilmäyksellä tuntui minusta taikaloitsuilta. Tänään, jos et ole uppoutunut aihealueeseen, 30 sekunnin sääntö lakkaa toimimasta. Muuten ei vain 30, vaan myös 300 sekuntia ei riitä selvittämään, mikä on mitä.

Jos esimerkiksi haluat kirjoittaa ohjaimia, sinun täytyy sukeltaa tälle alueelle ja lukea tuhansia rivejä tiettyä koodia. Tällä lähestymistavalla aiheen opiskeluun asiantuntija kehittää "virtauksen tunteen". Kuten rapissa, kun hyvän riimin ja oikean rytmin tunne ilmaantuu ilman erityistä rationalisointia. Samoin hyvin koulutettu ohjelmoija voi helposti tunnistaa tehottoman tai yksinkertaisesti huonon koodin menemättä yksityiskohtaiseen tutkimukseen siitä, missä tyylirikkomus tapahtui tai missä on käytetty epäoptimaalista lähestymistapaa (mutta tätä tunnetta voi olla hyvin vaikea selittää).

Erikoistuminen ja lisääntyvä monimutkaisuus johtavat siihen, että kandidaatin koulutus ei enää tarjoa mahdollisuutta opiskella kaikkia osa-alueita riittävän syvällisesti. Mutta juuri tällä koulutustasolla on hankittava näkemys. Myöhemmin tutkijakoulussa tai töissä joudut viettämään jonkin aikaa uppoutuen aihealueen ongelmiin ja erityispiirteisiin, opiskelemaan slängiä, ohjelmointikieliä ja kollegoiden koodia, lukemaan artikkeleita ja kirjoja. Minusta tuntuu, että tämä on ainoa tapa yliopiston avulla "pumpata poikkipalkki" tulevaisuutta varten T-muotoiset asiantuntijat.

Mitä ohjelmointikieltä on parasta opettaa yliopistossa?

Miten saada kaikki irti tietojenkäsittelytieteen koulutuksesta
Ilokseni yliopiston opettajat ovat jo luopuneet etsimästä oikeaa vastausta kysymykseen: "Millä kielellä ohjelmointi on paras?" Keskustelu siitä, kumpi on parempi - C# vai Java, Delphi vai C++ - on käytännössä kadonnut. Monien uusien ohjelmointikielten syntyminen ja pedagogisen kokemuksen kertyminen ovat johtaneet vakiintuneeseen ymmärrykseen akateemisessa ympäristössä: jokaisella kielellä on oma markkinarako.

Yhden tai toisen ohjelmointikielen opettamisen ongelma on lakannut olemasta prioriteetti. Ei ole väliä millä kielellä kurssi opetetaan. Pääasia on kielen riittävä ilmaisukyky. kirja"Moniprosessoriohjelmoinnin taito” on hyvä esimerkki tästä havainnosta. Tässä nyt klassisessa versiossa kaikki esimerkit esitetään Javalla - kielellä, jossa ei ole osoittimia, mutta jossa on Garbage Collector. Tuskin kukaan väittäisi, että Java on kaukana optimaalisesta valinnasta tehokkaan rinnakkaiskoodin kirjoittamiseen. Mutta kieli oli sopiva selittämään kirjassa esitettyjä käsitteitä. Toinen esimerkki - klassinen koneoppimiskurssi Andrew Nna, opetti Matlabissa Octave-ympäristössä. Nykyään voit valita toisen ohjelmointikielen, mutta mitä väliä sillä on, jos ideat ja lähestymistavat ovat tärkeitä?

Käytännöllisempi ja lähempänä todellisuutta

Samaan aikaan yliopistoissa on viime vuosina ollut paljon enemmän ammatinharjoittajia. Jos aiemmin venäläisiä yliopisto-ohjelmia kritisoitiin aktiivisesti todellisuudesta irtautumisesta, niin nykyään samaa ei voida sanoa IT-koulutuksesta. 10 vuotta sitten yliopistoissa ei ollut juuri lainkaan opettajia, joilla olisi todellista alan kokemusta. Nykyään yhä useammin erikoistuneen laitoksen luokkia eivät opeta kokopäiväiset tietojenkäsittelytieteen opettajat, vaan harjoittavat IT-asiantuntijat, jotka opettavat vain 1-2 kurssia vapaa-ajallaan päätyöstään. Tämä lähestymistapa oikeuttaa laadukkaan henkilöstökoulutuksen, päivityskurssien ja tietysti potentiaalisten työntekijöiden etsimisen yritykseen. En usko, että paljastan salaisuutta sanomalla, että tuemme MIPT:n perusosastoa ja rakennamme suhteita muihin yliopistoihin, muun muassa valmistaaksemme opiskelijoita, jotka voisivat aloittaa uransa Acronisissa.

Matemaatikko vai ohjelmoija?

Miten saada kaikki irti tietojenkäsittelytieteen koulutuksesta
Pyhät sodat, jotka aiemmin pyörivät ohjelmointikielten ympärillä, ovat siirtyneet filosofiseen suuntaan. Nyt niin sanotut "ohjelmoijat" ja "matemaatikot" riitelevät keskenään. Periaatteessa nämä koulut voitaisiin jakaa kahdeksi koulutusohjelmaksi, mutta toimiala on edelleen huono erottamaan näitä hienouksia, ja yliopistosta yliopistoon meillä on samanlainen koulutus hieman eri painopisteellä. Tämä tarkoittaa, että sekä opiskelijan että yrityksen, jossa hän jatkaa työskentelyä, on täydennettävä tiedon palapeliä puuttuvilla palasilla.

Eri kielillä teollista koodia kirjoittavien ammattilaisten ilmaantuminen yliopistoihin antaa opiskelijoille parempia kehitystaitoja. Koska hän tuntee hyvin standardikirjastojen, viitekehysten ja ohjelmointitekniikoiden toteutukset, harjoittelevat ohjelmoijat juurruttavat opiskelijoihin halun kirjoittaa hyvää koodia, tehdä se nopeasti ja tehokkaasti.

Tämä hyödyllinen taito johtaa kuitenkin joskus sellaisten ihmisten ilmaantumista, jotka haluavat keksiä pyörän uudelleen. Ohjelmointiopiskelijat ajattelevat näin: "Pitäisikö minun kirjoittaa vielä 200 riviä hyvää koodia, joka ratkaisee ongelman suoraan?"

Klassisen matematiikan koulutuksen (esim. matematiikan tai sovelletun matematiikan tiedekunnasta) saaneet opettajat työskentelevät usein pseudotieteellisessä ympäristössä tai mallinnuksen ja data-analyysin parissa. "Matemaatikot" näkevät tietojenkäsittelytieteen ongelmat eri tavalla. Ne eivät ensisijaisesti toimi koodilla, vaan algoritmeilla, lauseilla ja muodollisilla malleilla. Matemaattisen lähestymistavan tärkeä etu on selkeä perustavanlaatuinen käsitys siitä, mitä voidaan ja mitä ei voida ratkaista. Ja miten se ratkaistaan.

Näin ollen matematiikan opettajat puhuvat ohjelmoinnista teorian suuntaisesti. "Matemaatikoista" tulevat opiskelijat keksivät usein hyvin harkittuja ja teoreettisesti ylivoimaisia ​​ratkaisuja, mutta yleensä kielellisesti epäoptimaalisia ja usein yksinkertaisesti huolimattomasti kirjoitettuja. Tällainen opiskelija uskoo, että hänen päätavoitteensa on osoittaa kykynsä ratkaista tällaiset ongelmat periaatteessa. Mutta toteutus voi olla tylsää.

Koulussa tai ensimmäisinä vuosina ohjelmoijaksi kasvatetut lapset tuovat mukanaan ”erittäin kauniin polkupyörän”, joka ei kuitenkaan yleensä toimi kovin tehokkaasti asymptoottisesti. Päinvastoin, he eivät aseta itselleen tehtävää syvällisesti teoretisoida ja kääntyä oppikirjojen puoleen etsiessään optimaalisia ratkaisuja, suosien kaunista koodia.

Eri yliopistoissa opiskelijahaastatteluissa näen yleensä, mikä "koulu" on hänen koulutuksensa taustalla. Ja en ole lähes koskaan tavannut täydellistä tasapainoa peruskoulutuksessa. Lapsena kaupungissani saattoi valmistautua matematiikan olympialaisiin, mutta ohjelmointikerhoja ei ollut. Nyt kerhoissa lapset oppivat ohjelmoimaan "muodikkaalla" Golla ja Pythonilla. Siksi jopa yliopistoihin pääsyn tasolla lähestymistapoissa on eroja. Uskon, että molempien taitojen ylläpitäminen yliopistossa on tärkeää, muuten yritykseen tulee töihin joko asiantuntija, jolla on riittämätön teoreettinen pohja, tai henkilö, joka ei ole oppinut eikä halua kirjoittaa hyvää koodia.

Kuinka "pumpata poikkipalkki" tulevaisuutta varten T-muotoiset asiantuntijat?

Miten saada kaikki irti tietojenkäsittelytieteen koulutuksesta
On selvää, että tällaisissa olosuhteissa opiskelija valitsee vain sen, mistä hän pitää eniten. Opettaja yksinkertaisesti välittää häntä lähempänä olevan näkökulman. Mutta kaikki hyötyvät, jos koodi on kirjoitettu kauniisti, ja algoritmien näkökulmasta kaikki on selkeää, järkevää ja tehokasta.

  • IT-horisontteja. Tietojenkäsittelytieteen kandidaatin tutkinnon suorittanut on valmis asiantuntija, jolla on kehittynyt tekninen näkemys ja joka on luultavasti valinnut profiilinsa. Mutta juniorivuotena emme tiedä, mitä hän tekee. Hän voi mennä tieteeseen tai analytiikkaan, tai päinvastoin, hän voi kirjoittaa valtavan määrän koodia joka päivä. Siksi opiskelijalle on esitettävä kaikki IT-alan työskentelyn osa-alueet ja tutustuttava kaikkiin työkaluihin. Ihannetapauksessa teoreettisten kurssien opettajat osoittavat yhteyden käytäntöön (ja päinvastoin).
  • Kasvupiste. On opiskelijan itsensä edun mukaista, ettei hän anna mennä äärimmäisyyksiin. Ei ole vaikeaa ymmärtää, oletko "matemaatiko" vai "ohjelmoija". Riittää, kun kuuntelet ensimmäistä impulssia ongelman ratkaisemisessa: mitä haluat tehdä - tutkia oppikirjaa etsiessäsi optimaalista lähestymistapaa tai kirjoittaa pari toimintoa, joista on varmasti hyötyä myöhemmin? Tämän perusteella voit rakentaa täydentävän oppimisradan.
  • Vaihtoehtoiset tiedon lähteet. Sattuu niin, että ohjelma on hyvin tasapainoinen, mutta "Järjestelmäohjelmointia" ja "Algoritmeja" opettavat täysin erilaiset ihmiset, ja jotkut opiskelijat ovat lähempänä ensimmäistä opettajaa ja toiset - toista. Mutta vaikka et pidä professorista, tämä ei ole syy laiminlyödä joitain aiheita toisten hyväksi. Kandidaatit itse ovat kiinnostuneita löytämään tahtoa työskennellä tiedon lähteiden kanssa eivätkä missään tapauksessa luota radikaaleihin mielipiteisiin, kuten "matematiikka on tieteiden kuningatar, tärkeintä on tuntea algoritmit" tai "hyvä koodi kompensoi kaiken muun".

Voit syventää osaamistasi teoriassa kääntymällä erikoiskirjallisuuteen ja verkkokursseihin. Voit parantaa ohjelmointikielten taitojasi Courserassa, Udacityssä tai Stepikissä, joissa on tarjolla monia erilaisia ​​kursseja. Myös opiskelijat alkavat usein katsoa kovia kielikursseja, jos he kokevat, että algoritmien opettaja osaa hyvin matematiikkaa, mutta ei osaa vastata monimutkaisiin toteutuskysymyksiin. Kaikki eivät ole kanssani samaa mieltä, mutta käytännössä se on osoittautunut hyvin erikoistuminen C++:aan Yandexistä, jossa kielen yhä monimutkaisempia ominaisuuksia analysoidaan peräkkäin. Yleensä valitse kurssi, jolla on hyvät arvosanat arvostetuilta yrityksiltä tai yliopistoilta.

Pehmeitä taitoja

Miten saada kaikki irti tietojenkäsittelytieteen koulutuksesta
Yliopistosta töihin mihin tahansa yritykseen, startupista suuryritykseen, opiskelijat huippuyliopistoistakin huomaavat huonosti sopeutuvansa todelliseen työympäristöön. Tosiasia on, että nykyään yliopistot "vahtivat" opiskelijoita paljon. Jopa monista tunneista väliin jäämisen, kokeisiin ja kokeisiin ajoissa valmistautumatta, ylinukkumisen tai kokeen myöhästymisen jälkeen jokainen voi läpäistä ja suorittaa sen uudelleen - ja lopulta saa silti tutkinnon.

Nykyään on kuitenkin olemassa kaikki edellytykset opiskelijoille valmistautua aikuiselämään ja itsenäiseen ammatilliseen toimintaan. Heidän ei tarvitse vain ohjelmoida, vaan myös kommunikoida. Ja tämäkin pitää opettaa. Yliopistoissa on erilaisia ​​muotoja näiden taitojen kehittämiseen, mutta valitettavasti niihin ei usein kiinnitetä riittävästi huomiota. Meillä on kuitenkin monia mahdollisuuksia saada tehokkaita tiimityötaitoja.

  • Kirjallinen yritysviestintä. Valitettavasti useimmilla yliopistosta valmistuneilla ei ole aavistustakaan kirjeen etiketistä. Viestinnän erityispiirre pikaviestinnässä on viestien vaihto yöllä ja päivällä sekä keskustelutyylin ja epämuodollisen sanaston käyttö. Kirjallista puhetta olisi kuitenkin mahdollista harjoitella, kun opiskelija kommunikoi laitoksen ja yliopiston kanssa.

    Käytännössä johtajat kohtaavat usein tarpeen jakaa suuri projekti pieniksi tehtäviksi. Tätä varten sinun on kuvattava selkeästi jokainen tehtävä ja sen komponentit, jotta nuoremmat kehittäjät ymmärtävät, mitä heiltä vaaditaan. Huonosti määritelty tehtävä johtaa usein tarpeeseen tehdä jotain uudelleen, minkä vuoksi kirjallisen viestinnän kokemus auttaa valmistuneita työskentelemään hajautetuissa ryhmissä.

  • Kirjallinen esittely työsi tuloksista. Esitelläkseen koulutusprojektejaan vanhemmat opiskelijat voivat kirjoittaa postauksia Habrista, tieteellisiä artikkeleita ja myös vain raportteja. Mahdollisuuksia tähän on monia – kurssityöt alkavat joissakin yliopistoissa toisena vuonna. Voit myös käyttää esseitä kontrollina - ne ovat yleensä muodoltaan lähempänä journalistista artikkelia. Tämä lähestymistapa on jo otettu käyttöön Kansallisen tutkimusyliopiston kauppakorkeakoulussa.

    Jos yritys harjoittaa joustavaa lähestymistapaa kehittämiseen, sen on esitettävä työnsä tulokset pienemmissä erissä, mutta useammin. Tätä varten on tärkeää pystyä välittämään lyhyesti yhden asiantuntijan tai koko tiimin työn tulokset. Lisäksi monet yritykset tekevät nykyään "tarkastuksia" - vuosittain tai puolivuosittain. Työntekijät keskustelevat tuloksista ja työnäkymistä. Onnistunut tarkistus on tärkein syy uran kasvuun, bonuksiin esimerkiksi Microsoftissa, Acronisissa tai Yandexissä. Kyllä, osaat ohjelmoida hyvin, mutta "nurkassa istuen" myös siisti asiantuntija häviää aina sellaiselle, joka osaa esittää menestymisensä hyvin.

  • Akateeminen kirjoittaminen. Akateeminen kirjoittaminen ansaitsee erityismaininnan. Opiskelijan on hyödyllistä perehtyä tieteellisten tekstien kirjoittamisen sääntöihin, argumentointiin, tiedon etsimiseen eri lähteistä ja viittausten muotoiluun. Tämä on suositeltavaa tehdä englanniksi, koska kansainvälisessä akateemisessa yhteisössä on paljon enemmän hyviä tekstejä ja eri tieteenaloilla on jo vakiintuneet mallit tieteellisten tulosten esittämiseen. Tietysti akateemista kirjoitustaitoa tarvitaan myös venäjänkielisten julkaisujen valmistuksessa, mutta esimerkkejä hyvistä nykyaikaisista englanninkielisistä artikkeleista on paljon vähemmän. Nämä taidot voidaan hankkia sopivalla kurssilla, joka sisältyy nyt moniin koulutusohjelmiin.
  • Johtavat kokoukset. Useimmat opiskelijat eivät osaa valmistautua kokouksiin, pitää pöytäkirjaa ja käsitellä tietoja. Mutta jos kehitämme tätä taitoa yliopistossa esimerkiksi osallistumalla tiimiprojekteihin, voimme välttää ajanhukkaa työpaikalla. Tämä edellyttää opiskelijoiden projektityön ohjausta, jotta heille voidaan opettaa tapaamisia tehokkaasti. Käytännössä tämä maksaa jokaiselle yritykselle paljon rahaa - kunhan useat ison palkan saajat viettävät tunnin työaikaa mielenosoituksissa, halutaan sille vastaava tuotto.
  • Julkinen puhuminen. Monet opiskelijat kohtaavat tarpeen puhua julkisesti vain väitöskirjaansa puolustaessaan. Ja kaikki eivät ole valmiita tähän. Olen nähnyt monia opiskelijoita, jotka:
    • seisoa selkä yleisöä kohti,
    • huojuvat, yrittävät esitellä komission transsiin,
    • rikkoa kyniä, kyniä ja osoittimia,
    • kävelyä ympyröissä
    • katso lattiaa.

    Tämä on normaalia, kun henkilö esiintyy ensimmäistä kertaa. Mutta sinun on aloitettava työskentely tämän stressin kanssa aikaisemmin - puolustamalla kursseja ystävällisessä ilmapiirissä, luokkatovereidesi keskuudessa.

    Lisäksi yrityksissä yleinen käytäntö on antaa työntekijälle mahdollisuus ehdottaa ideaa ja saada siihen rahoitus, työpaikka tai oma projekti. Mutta jos ajattelee sitä, tämä on sama kurssityön suoja, vain korkeammalla tasolla. Miksi et harjoittaisi tällaisia ​​hyödyllisiä urataitoja opiskelun aikana?

Mitä minulta meni ohi?

Yksi syy tämän postauksen kirjoittamiseen oli artikkeli, julkaistu Tjumenin osavaltion yliopiston verkkosivuilla. Artikkelin kirjoittaja keskittyy vain ulkomaisten opettajien havaitsemiin venäläisten opiskelijoiden puutteisiin. Opetuskäytäntöni eri yliopistoissa viittaa siihen, että venäläinen koulu ja korkeakoulu tarjoavat hyvän pohjan. Venäläiset opiskelijat ovat taitavia matematiikassa ja algoritmeissa, ja heidän kanssaan on helpompi rakentaa ammattimaista viestintää.

Ulkomaisten opiskelijoiden kohdalla odotukset venäläistä opettajaa kohtaan voivat toisinaan olla liian korkeat. Esimerkiksi matematiikan peruskoulutuksen tasolla tapaamani intialaiset opiskelijat ovat samanlaisia ​​kuin venäläiset. Heiltä kuitenkin puuttuu joskus erikoisosaamista valmistuessaan perustutkinto-opinnoistaan. Hyvillä eurooppalaisilla opiskelijoilla on todennäköisesti vähemmän vahva matematiikan tausta koulun tasolla.

Ja jos opiskelet tai työskentelet yliopistossa, voit nyt kehittää viestintätaitojasi (omien tai opiskelijoiden), laajentaa perusperustaasi ja harjoitella ohjelmointia. Tätä tarkoitusta varten Venäjän koulutusjärjestelmä tarjoaa kaikki mahdollisuudet - sinun tarvitsee vain käyttää niitä oikein.

Olen iloinen, jos jaat postauksen kommenteissa linkkejä kursseille ja menetelmiin, jotka auttavat tasoittamaan koulutuksen tasapainoa, sekä muita tapoja parantaa pehmeitä taitoja yliopisto-opintojen aikana.

Lähde: will.com

Lisää kommentti