Kā maksimāli izmantot datorzinātņu izglītību

Lielākā daļa mÅ«sdienu programmētāju ir ieguvuÅ”i izglÄ«tÄ«bu universitātēs. Laika gaitā tas mainÄ«sies, bet Å”obrÄ«d ir tā, ka IT uzņēmumos joprojām labi kadri nāk no augstskolām. Å ajā ierakstā Staņislavs Protasovs, Acronis universitāŔu attiecÄ«bu direktors, stāsta par savu redzējumu par universitāŔu apmācÄ«bas iezÄ«mēm topoÅ”ajiem programmētājiem. Skolotāji, studenti un tie, kas viņus pieņem darbā, var pat atrast dažus noderÄ«gus padomus.

Kā maksimāli izmantot datorzinātņu izglītību

Pēdējos 10 gadus esmu mācÄ«jis matemātiku, algoritmus, programmÄ“Å”anas valodas un maŔīnmācÄ«Å”anos dažādās universitātēs. Å odien papildus savam amatam uzņēmumā Acronis esmu arÄ« MIPT teorētiskās un lietiŔķās datorzinātnes katedras vadÄ«tāja vietnieks. No savas pieredzes, strādājot labās Krievijas (un ne tikai) augstskolās, esmu izdarÄ«jis dažus novērojumus par studentu sagatavoÅ”anu datorzinātnēs.

30 sekunžu noteikums vairs nedarbojas

Esmu pārliecināts, ka esat saskāries ar 30 sekunžu likumu, kas nosaka, ka programmētājam ir jāsaprot funkcijas mērÄ·is pēc ātras koda apskatÄ«Å”anas. Tas tika izgudrots jau sen, un kopÅ” tā laika ir parādÄ«juŔās daudzas operētājsistēmas, valodas, aparatÅ«ra un algoritmi. Rakstu kodu jau 12 gadus, bet salÄ«dzinoÅ”i nesen ieraudzÄ«ju viena produkta pirmkodu, kas no pirmā acu uzmetiena man Ŕķita kā burvju burvestÄ«bas. Å odien, ja neesat iegrimis tēmas apgabalā, 30 sekunžu noteikums pārstāj darboties. Pretējā gadÄ«jumā ne tikai ar 30, bet arÄ« 300 sekundēm nepietiks, lai saprastu, kas ir kas.

Piemēram, ja vēlaties rakstÄ«t draiverus, jums bÅ«s jāienirt Å”ajā jomā un jāizlasa tÅ«kstoÅ”iem konkrēta koda rindu. Izmantojot Å”o pieeju priekÅ”meta apguvei, speciālists attÄ«sta "plÅ«smas sajÅ«tu". Tāpat kā repā, kad bez Ä«paÅ”as racionalizācijas parādās laba rÄ«ma un pareizā ritma sajÅ«ta. Tāpat labi apmācÄ«ts programmētājs var viegli atpazÄ«t neefektÄ«vu vai vienkārÅ”i sliktu kodu, neiedziļinoties detalizētā izpētē par to, kur noticis stila pārkāpums vai izmantota neoptimāla pieeja (bet Å”o sajÅ«tu var bÅ«t ļoti grÅ«ti izskaidrot).

Specializācija un pieaugoŔā sarežģītÄ«ba noved pie tā, ka bakalaura izglÄ«tÄ«ba vairs nedod iespēju apgÅ«t visas jomas pietiekami padziļināti. Bet tieÅ”i Å”ajā izglÄ«tÄ«bas lÄ«menÄ« ir jāiegÅ«st skatÄ«jums. Pēc tam augstskolā vai darbā jums bÅ«s jāpavada kāds laiks, iedziļinoties mācÄ«bu jomas problēmās un specifikā, studējot slengu, programmÄ“Å”anas valodas un kolēģu kodu, lasot rakstus un grāmatas. Man Ŕķiet, ka tas ir vienÄ«gais veids, kā ar universitātes palÄ«dzÄ«bu ā€œuzpumpēt Ŕķērsstieniā€ nākotnei T veida speciālisti.

Kādu programmÄ“Å”anas valodu vislabāk mācÄ«t universitātē?

Kā maksimāli izmantot datorzinātņu izglītību
Man par prieku, augstskolu pasniedzēji jau ir atteikuÅ”ies meklēt pareizo atbildi uz jautājumu: ā€œKādā valodā vislabāk programmēt?ā€ Debates par to, kas ir labāks - C# vai Java, Delphi vai C++ - praktiski ir pazuduÅ”as. Daudzu jaunu programmÄ“Å”anas valodu parādÄ«Å”anās un pedagoÄ£iskās pieredzes uzkrāŔanās ir novedusi pie akadēmiskajā vidē izveidojuŔās izpratnes: katrai valodai ir sava niÅ”a.

Problēma par mācÄ«Å”anas, izmantojot vienu vai otru programmÄ“Å”anas valodu, vairs nav prioritāte. Nav svarÄ«gi, kādā valodā kurss tiek pasniegts. Galvenais ir pietiekama valodas izteiksmÄ«ba. grāmata"Daudzprocesoru programmÄ“Å”anas mākslaā€ ir laba Ŕī novērojuma ilustrācija. Å ajā nu jau klasiskajā izdevumā visi piemēri ir parādÄ«ti Java valodā ā€“ valodā bez norādēm, bet ar Garbage Collector. Diez vai kāds iebilst, ka Java ir tālu no optimālās izvēles augstas veiktspējas paralēlā koda rakstÄ«Å”anai. Taču valoda bija piemērota, lai izskaidrotu grāmatā izklāstÄ«tos jēdzienus. Vēl viens piemērs - klasisks maŔīnmācÄ«Å”anās kurss EndrjÅ« Nna, mācÄ«ja Matlab vidē Octave. Å odien jÅ«s varētu izvēlēties citu programmÄ“Å”anas valodu, bet kāda ir atŔķirÄ«ba, ja idejas un pieejas ir svarÄ«gas?

Praktiskāks un tuvāk realitātei

Tajā paŔā laikā pēdējos gados augstskolās ir bijis daudz vairāk praktiÄ·u. Ja agrāk Krievijas augstskolu programmas tika aktÄ«vi kritizētas par ŔķirÅ”anos no realitātes, tad Å”odien to nevar teikt par IT izglÄ«tÄ«bu. Pirms 10 gadiem augstskolās tikpat kā nebija pasniedzēju ar reālu nozares pieredzi. MÅ«sdienās arvien biežāk nodarbÄ«bas specializētajā nodaļā pasniedz nevis pilna laika informātikas skolotāji, bet gan praktizējoÅ”i IT speciālisti, kuri no pamatdarba brÄ«vajā laikā pasniedz tikai 1-2 kursus. Šāda pieeja sevi attaisno no kvalitatÄ«vas personāla apmācÄ«bas, atjaunināŔanas kursu un, protams, potenciālo darbinieku meklÄ“Å”anas uzņēmumā viedokļa. Es nedomāju, ka atklāŔu noslēpumu, sakot, ka mēs atbalstām MIPT pamata nodaļu un veidojam attiecÄ«bas ar citām universitātēm, tostarp, lai sagatavotu studentus, kuri varētu sākt savu karjeru Acronis.

Matemātiķis vai programmētājs?

Kā maksimāli izmantot datorzinātņu izglītību
Svētie kari, kas iepriekÅ” risinājās ap programmÄ“Å”anas valodām, ir nonākuÅ”i filozofiskā virzienā. Tagad tā sauktie ā€œprogrammētājiā€ un ā€œmatemātiÄ·iā€ strÄ«das savā starpā. Principā Ŕīs skolas varētu sadalÄ«t divās izglÄ«tÄ«bas programmās, taču nozare joprojām slikti nodala Ŕādus smalkumus, un no augstskolas uz augstskolu mums ir lÄ«dzÄ«ga izglÄ«tÄ«ba ar nedaudz atŔķirÄ«gu fokusu. Tas nozÄ«mē, ka gan skolēnam, gan uzņēmumam, kurā viņŔ turpinās strādāt, zināŔanu puzle bÅ«s jāpapildina ar trÅ«kstoÅ”ajiem gabaliņiem.

Tādu praktiÄ·u parādÄ«Å”anās universitātēs, kuri raksta industriālo kodu dažādās valodās, sniedz studentiem labākas attÄ«stÄ«bas prasmes. Labi pārzinot standarta bibliotēku, ietvaru un programmÄ“Å”anas metožu ievieÅ”anu, praktizējoÅ”i programmētāji iedveÅ” skolēnos vēlmi rakstÄ«t labu kodu, darÄ«t to ātri un efektÄ«vi.

Tomēr Ŕī noderÄ«gā prasme dažkārt noved pie to cilvēku parādÄ«Å”anās, kam patÄ«k izgudrot riteni no jauna. ProgrammÄ“Å”anas studenti domā Ŕādi: "Vai man vajadzētu uzrakstÄ«t vēl 200 laba koda rindiņas, kas atrisinātu problēmu?"

Skolotāji, kuri ieguvuÅ”i klasisko matemātikas izglÄ«tÄ«bu (piemēram, Matemātikas vai LietiŔķās matemātikas fakultātē), bieži strādā pseidozinātniskā vidē vai modelÄ“Å”anas un datu analÄ«zes jomā. ā€œMatemātiÄ·iā€ problēmas datorzinātņu jomā redz atŔķirÄ«gi. Tie galvenokārt darbojas nevis ar kodu, bet gan ar algoritmiem, teorēmām un formāliem modeļiem. SvarÄ«ga matemātiskās pieejas priekÅ”rocÄ«ba ir skaidra fundamentāla izpratne par to, ko var un ko nevar atrisināt. Un kā to atrisināt.

AttiecÄ«gi matemātikas skolotāji runā par programmÄ“Å”anu ar aizspriedumiem pret teoriju. Studenti, kas nāk no ā€œmatemātiÄ·iemā€, bieži vien nāk klajā ar pārdomātiem un teorētiski pārākiem risinājumiem, taču parasti no lingvistiskā viedokļa neoptimāli un bieži vien vienkārÅ”i pavirÅ”i uzrakstÄ«ti. Šāds students uzskata, ka viņa galvenais mērÄ·is ir demonstrēt spēju principā atrisināt Ŕādas problēmas. Bet Ä«stenoÅ”ana var bÅ«t klibo.

Bērni, kas skolā vai pirmajos gados audzināti par programmētājiem, lÄ«dzi ņem ā€œÄ¼oti skaistu velosipēduā€, kas gan parasti nedarbojas Ä«paÅ”i efektÄ«vi asimptomotiski. Gluži pretēji, viņi neizvirza sev uzdevumu dziļi teoretizēt un pievērsties mācÄ«bu grāmatām, meklējot optimālus risinājumus, dodot priekÅ”roku skaistam kodam.

Dažādās augstskolās studentu interviju laikā es parasti redzu, kura ā€œskolaā€ ir viņa izglÄ«tÄ«bas pamatā. Un gandrÄ«z nekad neesmu sastapies ar ideālu lÄ«dzsvaru pamatizglÄ«tÄ«bā. BērnÄ«bā manā pilsētā varēja gatavoties matemātikas olimpiādēm, bet nebija programmÄ“Å”anas pulciņu. Tagad klubos bērni mācās programmēt ā€œmodēā€ Go un Python. Tāpēc pat augstskolu uzņemÅ”anas lÄ«menÄ« pastāv atŔķirÄ«bas pieejās. Uzskatu, ka augstskolā ir svarÄ«gi saglabāt abas prasmes, pretējā gadÄ«jumā uzņēmumā atnāks vai nu speciālists ar nepietiekamu teorētisko bāzi, vai arÄ« cilvēks, kurÅ” nav iemācÄ«jies un nevēlas rakstÄ«t labu kodu.

Kā ā€œuzpumpēt Ŕķērsstieniā€ nākotnei T veida speciālisti?

Kā maksimāli izmantot datorzinātņu izglītību
Skaidrs, ka Ŕādos apstākļos skolēns vienkārÅ”i izvēlas to, kas viņam patÄ«k vislabāk. Skolotājs vienkārÅ”i nodod viņam tuvāko viedokli. Bet visi bÅ«s ieguvēji, ja kods bÅ«s uzrakstÄ«ts skaisti, un no algoritmu viedokļa viss ir skaidrs, saprātÄ«gs un efektÄ«vs.

  • IT apvārŔņi. Datorzinātņu bakalaura grāda ieguvējs ir gatavs speciālists ar attÄ«stÄ«tu tehnisko skatÄ«jumu, kurÅ”, iespējams, ir izvēlējies savu profilu. Bet junioru gadā mēs nezinām, ko viņŔ vai viņa darÄ«s. ViņŔ var iedziļināties zinātnē vai analÄ«tikā vai, gluži pretēji, katru dienu var uzrakstÄ«t milzÄ«gu daudzumu koda. Tāpēc studentam ir jāparāda visi IT jomā darba aspekti un jāiepazÄ«stina ar visiem instrumentiem. Ideālā gadÄ«jumā teorētisko kursu skolotāji parādÄ«s saikni ar praksi (un otrādi).
  • Izaugsmes punkts. PaÅ”a skolēna interesēs ir neļauties galējÄ«bām. Nav grÅ«ti saprast, vai esat "matemātiÄ·is" vai "programmētājs". Risinot problēmu, pietiek ieklausÄ«ties pirmajā impulsā: ko vēlies darÄ«t ā€“ ieskatÄ«ties mācÄ«bu grāmatā, meklējot optimālo pieeju vai ierakstÄ«t pāris funkcijas, kas noteikti noderēs vēlāk? Pamatojoties uz to, jÅ«s varat izveidot papildu papildu mācÄ«bu trajektoriju.
  • AlternatÄ«vie zināŔanu avoti. Gadās, ka programma ir labi sabalansēta, bet ā€œSistēmas programmÄ“Å”anuā€ un ā€œAlgoritmusā€ māca pilnÄ«gi dažādi cilvēki, un daži skolēni ir tuvāk pirmajam skolotājam, bet citi - otrajam. Bet pat tad, ja jums nepatÄ«k profesors, tas nav iemesls atstāt novārtā dažus priekÅ”metus par labu citiem. PaÅ”i bakalauri ir ieinteresēti atrast vēlmi strādāt ar zināŔanu avotiem un nekādā gadÄ«jumā neuzticas tādiem radikāliem viedokļiem kā ā€œmatemātika ir zinātņu karaliene, galvenais zināt algoritmusā€ vai ā€œlabs kods kompensē visu pārējoā€.

JÅ«s varat padziļināt savas zināŔanas teorijā, pievērÅ”oties specializētajai literatÅ«rai un tieÅ”saistes kursiem. JÅ«s varat uzlabot savas prasmes programmÄ“Å”anas valodās vietnēs Coursera, Udacity vai Stepik, kur tiek piedāvāti daudzi dažādi kursi. Tāpat studenti nereti sāk skatÄ«ties hardcore valodu kursus, ja viņiem Ŕķiet, ka algoritmu skolotājs labi zina matemātiku, bet nevar atbildēt uz sarežģītiem ievieÅ”anas jautājumiem. Ne visi man piekritÄ«s, bet manā praksē tas ir sevi labi pierādÄ«jis specializācija C++ no Yandex, kurā secÄ«gi tiek analizētas arvien sarežģītākas valodas iezÄ«mes. Kopumā izvēlieties kursu ar augstiem vērtējumiem no cienÄ«jamiem uzņēmumiem vai universitātēm.

Mīkstās prasmes

Kā maksimāli izmantot datorzinātņu izglītību
No universitātes, lai strādātu jebkurā uzņēmumā, no jaunizveidota uzņēmuma lÄ«dz lielai korporācijai, studenti pat no labākajām universitātēm ir slikti pielāgoti reālajai darba videi. Fakts ir tāds, ka mÅ«sdienās augstskolas ļoti daudz ā€œauklēā€ studentus. Pat pēc daudzu nodarbÄ«bu nokavÄ“Å”anas, laicÄ«gas nesagatavoÅ”anās ieskaitēm un ieskaitēm, pārgulÄ“Å”anas vai nokavÄ“Å”anās uz eksāmenu, ikviens var to nokārtot un kārtot vēlreiz ā€“ un beigās tomēr saņemt diplomu.

Taču mÅ«sdienās ir visi nosacÄ«jumi, lai studenti bÅ«tu gatavi pieauguÅ”o dzÄ«vei un patstāvÄ«gai profesionālai darbÄ«bai. Viņiem bÅ«s ne tikai jāprogrammē, bet arÄ« jāsazinās. Un tas arÄ« ir jāmāca. Augstskolām ir dažādi formāti Å”o prasmju attÄ«stÄ«Å”anai, taču, diemžēl, tām bieži netiek pievērsta pietiekama uzmanÄ«ba. Tomēr mums ir daudz iespēju iegÅ«t efektÄ«vas komandas darba prasmes.

  • Rakstiska biznesa komunikācija. Diemžēl lielākajai daļai augstskolas absolventu nav ne jausmas par korespondences etiÄ·eti. TÅ«lÄ«tējo kurjeru komunikācijas specifika ir ziņu apmaiņā naktÄ« un dienā, kā arÄ« sarunvalodas stila un neformālas vārdu krājuma lietoÅ”anā. Taču rakstisku runu bÅ«tu iespējams apmācÄ«t, kad students sazinās ar katedru un augstskolu.

    Praksē vadÄ«tāji bieži saskaras ar nepiecieÅ”amÄ«bu sadalÄ«t lielu projektu mazos uzdevumos. Lai to izdarÄ«tu, jums ir skaidri jāapraksta katrs uzdevums un tā sastāvdaļas, lai jaunākie izstrādātāji saprastu, kas no viņiem tiek prasÄ«ts. Slikti definēts uzdevums bieži vien rada nepiecieÅ”amÄ«bu kaut ko pārtaisÄ«t, tāpēc pieredze rakstiskā saziņā palÄ«dz absolventiem strādāt sadalÄ«tās komandās.

  • Rakstiska prezentācija par sava darba rezultātiem. Lai prezentētu savus izglÄ«tÄ«bas projektus, vecāko klaÅ”u skolēni var rakstÄ«t ierakstus par Habr, zinātniskus rakstus un arÄ« tikai ziņojumus. Tam ir daudz iespēju ā€“ dažās augstskolās kursu darbs sākas otrajā kursā. Kā kontroles veidu varat izmantot arÄ« esejas ā€“ tās parasti pēc formas ir tuvākas žurnālistikas rakstam. Å Ä« pieeja jau ir ieviesta Nacionālās pētniecÄ«bas universitātes Ekonomikas augstskolā.

    Ja uzņēmums piekopj elastÄ«gu pieeju attÄ«stÄ«bai, tam sava darba rezultāti ir jāprezentē mazākās porcijās, bet biežāk. Lai to izdarÄ«tu, ir svarÄ«gi Ä«si nodot viena speciālista vai visas komandas darba rezultātus. ArÄ« daudzi uzņēmumi mÅ«sdienās veic ā€œpārskatÄ«Å”anuā€ - reizi gadā vai pusgadā. Darbinieki pārrunā rezultātus un darba izredzes. VeiksmÄ«ga pārskatÄ«Å”ana ir galvenais karjeras izaugsmes iemesls, prēmijas, piemēram, Microsoft, Acronis vai Yandex. Jā, programmēt var labi, bet ā€œsēdēt stÅ«rÄ«ā€ pat forÅ”s speciālists vienmēr zaudēs kādam, kurÅ” prot labi pasniegt savus panākumus.

  • Akadēmiskā rakstÄ«Å”ana. Akadēmiskā rakstÄ«Å”ana ir pelnÄ«jusi Ä«paÅ”u uzmanÄ«bu. Studentiem ir lietderÄ«gi iepazÄ«ties ar zinātnisko tekstu rakstÄ«Å”anas noteikumiem, argumentāciju, informācijas meklÄ“Å”anu dažādos avotos un atsauču uz Å”iem avotiem formatÄ“Å”anu. Vēlams to darÄ«t angļu valodā, jo starptautiskajā akadēmiskajā sabiedrÄ«bā ir daudz vairāk labu tekstu, un dažādām disciplÄ«nām jau ir izveidotas veidnes zinātnisko rezultātu prezentÄ“Å”anai. Protams, akadēmiskās rakstÄ«Å”anas prasmes ir nepiecieÅ”amas arÄ«, gatavojot publikācijas krievu valodā, taču labu mÅ«sdienu rakstu piemēru angļu valodā ir daudz mazāk. Å Ä«s prasmes var apgÅ«t atbilstoŔā kursā, kas tagad ir iekļauts daudzās izglÄ«tÄ«bas programmās.
  • Sanāksmju vadÄ«Å”ana. Lielākā daļa skolēnu nezina, kā sagatavoties sanāksmēm, protokolēt un apstrādāt datus. Bet, ja Å”o prasmi attÄ«stām koledžā, piemēram, piedaloties komandas projektos, varam izvairÄ«ties no laika tērÄ“Å”anas darba vietā. Tam nepiecieÅ”ama studentu projektu darba uzraudzÄ«ba, lai iemācÄ«tu viņiem efektÄ«vi vadÄ«t sanāksmes. Praksē tas katrai korporācijai maksā lielu naudu - galu galā, ja vairāki cilvēki, kas saņem lielu algu, pavada stundu darba laika mÄ«tiņā, jÅ«s vēlaties, lai no tā bÅ«tu atbilstoÅ”a atdeve.
  • Publiska runa. Daudzi studenti saskaras ar nepiecieÅ”amÄ«bu publiski uzstāties tikai promocijas darba aizstāvÄ“Å”anas laikā. Un ne visi ir tam gatavi. Esmu redzējis daudzus studentus, kuri:
    • stāvēt ar muguru pret publiku,
    • Ŕūpojoties, mēģinot iepazÄ«stināt komisiju ar transu,
    • salauzt pildspalvas, zÄ«muļus un rādÄ«tājus,
    • staigājot pa apļiem
    • paskaties uz grÄ«du.

    Tas ir normāli, ja cilvēks uzstājas pirmo reizi. Taču ar Å”o stresu jāsāk strādāt agrāk ā€“ draudzÄ«gā gaisotnē, kursabiedru vidÅ« aizstāvot kursa darbus.

    Turklāt korporācijās standarta prakse ir dot darbiniekam iespēju ierosināt ideju un saņemt tai finansējumu, amatu vai Ä«paÅ”u projektu. Bet, ja tā padomā, tā ir tāda pati kursa darbu aizsardzÄ«ba, tikai augstākā lÄ«menÄ«. Kāpēc gan nepraktizēt tik noderÄ«gas karjeras prasmes studiju laikā?

Ko es palaidu garām?

Viens no Ŕīs ziņas rakstÄ«Å”anas iemesliem bija raksts, publicēts Tjumeņas Valsts universitātes tÄ«mekļa vietnē. Raksta autore pievērÅ”as tikai tiem krievu skolēnu trÅ«kumiem, ko pamanÄ«juÅ”i ārzemju skolotāji. Mana mācÄ«Å”anas prakse dažādās augstskolās liecina, ka krievu skola un augstākā izglÄ«tÄ«ba ir labs pamats. Krievu skolēni ir gudri matemātikā un algoritmos, un ar viņiem ir vieglāk veidot profesionālu komunikāciju.

AttiecÄ«bā uz ārzemju studentiem, gluži otrādi, cerÄ«bas uz krievu valodas skolotāju dažkārt var bÅ«t pārāk augstas. Piemēram, pamatapmācÄ«bas lÄ«menÄ« matemātikas ziņā mani satiktie Indijas skolēni ir lÄ«dzÄ«gi krievu skolēniem. Tomēr viņiem dažkārt trÅ«kst speciālu zināŔanu, kad viņi absolvē bakalaura studijas. Labiem Eiropas skolēniem skolas lÄ«menÄ«, visticamāk, ir mazāk spēcÄ«gas matemātikas zināŔanas.

Un, ja jÅ«s studējat vai strādājat universitātē, tagad varat strādāt pie komunikācijas prasmēm (savām vai studentiem), paplaÅ”ināt savu pamatbāzi un praktizēt programmÄ“Å”anu. Å im nolÅ«kam Krievijas izglÄ«tÄ«bas sistēma nodroÅ”ina visas iespējas ā€“ vajag tikai pareizi tās izmantot.

PriecāŔos, ja ieraksta komentāros padalÄ«sities ar savām saitēm uz kursiem un metodēm, kas palÄ«dz izlÄ«dzināt lÄ«dzsvaru izglÄ«tÄ«bā, kā arÄ« citiem veidiem, kā uzlabot mÄ«kstās prasmes, studējot augstskolā.

Avots: www.habr.com

Pievieno komentāru