Hoe kinne jo it measte meitsje fan in kompjûterwittenskipûnderwiis

De measte moderne programmeurs krigen har oplieding oan universiteiten. Yn de rin fan de tiid sil dat feroarje, mar no giet it sa dat goed personiel yn IT-bedriuwen noch fan universiteiten komt. Yn dizze post fertelt Stanislav Protasov, Acronis direkteur fan universitêre relaasjes, oer syn fyzje fan 'e funksjes fan universitêre oplieding foar takomstige programmeurs. Leararen, studinten en dejingen dy't har ynhiere kinne sels wat nuttige tips fine ûnder de besuniging.

Hoe kinne jo it measte meitsje fan in kompjûterwittenskipûnderwiis

De lêste 10 jier haw ik wiskunde, algoritmen, programmeartalen en masine learen leard oan ferskate universiteiten. Tsjintwurdich bin ik neist myn funksje by Acronis ek de plakferfangend haad fan 'e ôfdieling teoretyske en tapaste kompjûterwittenskip by MIPT. Ut myn ûnderfining wurkjen yn goede Russyske (en net allinnich) universiteiten, Ik makke wat observaasjes oer de tarieding fan studinten yn kompjûter dissiplines.

De regel fan 30 sekonden wurket net mear

Ik bin der wis fan dat jo hawwe komme oer de 30 twadde regel, dy't stelt dat in programmeur moat begripe it doel fan in funksje nei in flugge blik op syn koade. It is in lange tiid lyn útfûn, en sûnt dy tiid binne in protte bestjoeringssystemen, talen, hardware en algoritmen ferskynd. Ik skriuw al 12 jier koade, mar relatyf koartlyn seach ik de boarnekoade foar ien produkt, dy't op it earste each foar my like as magyske spreuken. Hjoed, as jo net ûnderdompele yn it ûnderwerp gebiet, de 30 sekonden regel stopt wurkjen. Oars, net allinnich 30, mar ek 300 sekonden sil net genôch wêze foar jo om út te finen wat is wat.

As jo ​​bygelyks sjauffeurs wolle skriuwe, moatte jo dit gebiet dûke en tûzenen rigels fan spesifike koade lêze. Mei dizze oanpak foar it studearjen fan in ûnderwerp, ûntwikkelet in spesjalist in "gefoel fan stream." Lykas yn rap, as it gefoel fan in goed rym en it goede ritme ferskynt sûnder spesjale rationalisaasje. Likemin kin in goed oplaat programmeur ineffektive of gewoan minne koade maklik werkenne sûnder in detaillearre stúdzje te gean oer wêr't in stylferwûning barde of in suboptimale oanpak waard brûkt (mar dit gefoel kin heul lestich wêze om te ferklearjen).

Spesjalisaasje en tanimmende kompleksiteit liede ta it feit dat in bacheloroplieding net mear de mooglikheid biedt om alle gebieten yn foldwaande djipte te bestudearjen. Mar krekt op dit nivo fan ûnderwiis moat men in útsjoch krije. Nei ôfrin, op ôfstudearskoalle of op it wurk, moatte jo wat tiid besteegje oan josels ûnderdompelje yn 'e problemen en spesifikaasjes fan it fakgebiet, slang studearje, programmeartalen en koade fan kollega's, artikels en boeken lêze. It liket my ta dat dit de ienige manier is om mei help fan 'e universiteit "de dwersbalke op te pompen" foar takomst T-foarmige spesjalisten.

Hokker programmeartaal is it bêste om te learen oan 'e universiteit?

Hoe kinne jo it measte meitsje fan in kompjûterwittenskipûnderwiis
Ta myn wille hawwe universitêre learkrêften al opjûn mei it sykjen nei it goede antwurd op de fraach: "Wat is de bêste taal om yn te programmearjen?" It debat oer wat better is - C # of Java, Delphi of C ++ - is praktysk ferdwûn. It ûntstean fan in protte nije programmeartalen en it sammeljen fan pedagogyske ûnderfining hawwe laat ta in fêst begryp yn 'e akademyske omjouwing: elke taal hat syn eigen niche.

It probleem fan lesjaan mei ien of oare programmeartaal is net mear in prioriteit. It makket net út yn hokker taal de kursus jûn wurdt. It wichtichste ding is genôch ekspressiviteit fan 'e taal. Boek"De keunst fan Multiprocessor Programming” is in goede yllustraasje fan dizze observaasje. Yn dizze no klassike edysje wurde alle foarbylden presintearre yn Java - in taal sûnder oanwizers, mar mei Garbage Collector. Hast gjinien soe stelle dat Java fier fan 'e optimale kar is foar it skriuwen fan hege prestaasjes parallelle koade. Mar de taal wie geskikt foar it ferklearjen fan de yn it boek presintearre begripen. In oar foarbyld - klassike masine learen kursus Andrew Nna, learde yn Matlab yn 'e Octave-omjouwing. Hjoed koene jo in oare programmeartaal kieze, mar wat makket it echt as de ideeën en oanpakken wichtich binne?

Mear praktysk en tichter by de werklikheid

Tagelyk binne der de lêste jierren folle mear beoefeners op universiteiten. As eardere Russyske universitêre programma's aktyf bekritisearre waarden foar skieding fan 'e realiteit, hjoed kin itselde net sein wurde oer IT-ûnderwiis. 10 jier lyn wiene d'r hast gjin leararen op universiteiten mei echte yndustryûnderfining. Tsjintwurdich, hieltyd faker, lessen op in spesjalisearre ôfdieling wurde leard net troch fulltime kompjûter wittenskip leararen, mar troch it praktisearjen fan IT-spesjalisten dy't leare mar 1-2 kursussen yn harren frije tiid út harren wichtichste wurk. Dizze oanpak rjochtfeardiget himsels út it eachpunt fan heechweardige training fan personiel, bywurkjen fan kursussen en, fansels, sykjen nei potinsjele meiwurkers yn it bedriuw. Ik tink net dat ik it geheim sil iepenbierje troch te sizzen dat wy in basisôfdieling stypje by MIPT en relaasjes bouwe mei oare universiteiten, ynklusyf om studinten foar te bereiden dy't har karriêre by Acronis kinne begjinne.

Wiskundige of programmeur?

Hoe kinne jo it measte meitsje fan in kompjûterwittenskipûnderwiis
Hillige oarloggen, dy't earder rûnen om programmeartalen, binne yn in filosofyske rjochting ferpleatst. No sprekke de saneamde "programmeurs" en "wiskundigen" mei-inoar. Yn prinsipe kinne dizze skoallen skieden wurde yn twa edukative programma's, mar de yndustry is noch min yn it skieden fan sokke subtiliteiten, en fan universiteit nei universiteit hawwe wy ferlykber ûnderwiis mei in wat oare fokus. Dat betsjut dat sawol de studint as it bedriuw dêr't er yn wurkje sil de puzel fan kennis oanfolje moatte mei de ûntbrekkende stikken.

De opkomst fan beoefeners yn universiteiten dy't yndustriële koade yn ferskate talen skriuwe, jout studinten bettere ûntwikkelingsfeardigens. Wês goed bekend mei ymplemintaasjes fan standert biblioteken, kaders en programmearring techniken, oefenjen programmeurs instill by studinten de winsk om te skriuwen goede koade, om te dwaan it fluch en effisjint.

Dizze nuttige feardigens liedt lykwols soms ta it ûntstean fan dyjingen dy't graach it tsjil opnij útfine. Programma-learlingen tinke sa: "Moat ik noch 200 rigels fan goede koade skriuwe dy't it probleem direkt oplost?"

Leararen dy't in klassike wiskundige oplieding krigen hawwe (bygelyks fan de Fakulteit Wiskunde of Toegepaste Wiskunde) wurkje faak yn in pseudo-wittenskiplike omjouwing, of op it mêd fan modellering en data-analyze. "Wiskundigen" sjogge problemen op it mêd fan Computer Science oars. Se operearje primêr net mei koade, mar mei algoritmen, stellingen en formele modellen. In wichtich foardiel fan 'e wiskundige oanpak is in dúdlik fûnemintele begryp fan wat kin en net oplost wurde. En hoe te lossen it.

Dêrtroch prate wiskundeleararen oer programmearring mei in bias nei teory. Learlingen dy't út "wiskunde eftergrûnen" komme, komme earder mei goed trochtochte en teoretysk superieure oplossings, mar meastal suboptimaal fan taalkundich eachpunt en faak gewoan sljocht skreaun. Sa'n studint is fan betinken dat syn wichtichste doel is te demonstrearjen de mooglikheid om te lossen sokke problemen yn prinsipe. Mar de ymplemintaasje kin lamme wêze.

Bern dy't op skoalle of yn de earste jierren as programmeur grutbrocht binne, bringe in "hiel moaie fyts" mei, dy't lykwols meastentiids net asymptotysk sa effisjint wurket. Krektoarsom, se sette harsels net de taak fan djip teoretisearjen en keare nei learboeken op syk nei optimale oplossingen, leaver moaie koade.

Op ferskate universiteiten sjoch ik by studintepetearen meastentiids hokker "skoalle" syn oplieding leit. En in perfekte lykwicht bin ik yn it basisûnderwiis hast nea tsjinkommen. As bern koene jo yn myn stêd jo tariede op wiskunde-olympiades, mar d'r wiene gjin programmearklups. No, yn klups, bern leare te programmearjen yn "modieuze" Go en Python. Dêrom, sels op it nivo fan talitting oan universiteiten, binne d'r ferskillen yn oanpak. Ik leau dat it wichtich is om beide feardichheden op in universiteit te behâlden, oars komt of in spesjalist mei in net genôch teoretyske basis, of in persoan dy't net leard hat en gjin goede koade skriuwe wol, by it bedriuw oan it wurk komt.

Hoe kinne jo "de crossbar oppompe" foar takomst T-foarmige spesjalisten?

Hoe kinne jo it measte meitsje fan in kompjûterwittenskipûnderwiis
It is dúdlik dat yn sokke omstannichheden de studint gewoan kiest wat er it bêste fynt. De learaar bringt gewoan it stânpunt oer dat him tichterby leit. Mar elkenien sil profitearje as de koade is prachtich skreaun, en út it eachpunt fan algoritmen, alles is dúdlik, ridlik en effektyf.

  • IT horizonten. In ôfstudearre fan in bachelorstitel yn Computer Science is in ready-made spesjalist mei in ûntwikkele technyske perspektyf, dy't wierskynlik syn profyl keazen hat. Mar yn it juniorjier witte wy net wat hy of sy sil dwaan. Hy kin gean yn wittenskip of analytics, of krekt oarsom, hy kin skriuwe in grutte hoemannichte koade alle dagen. Dêrom moat de studint alle aspekten fan wurkjen op it IT-fjild sjen litte en wurde yntrodusearre oan alle ark. It leafst sille leararen fan teoretyske kursussen in ferbining mei de praktyk sjen litte (en oarsom).
  • Groeipunt. It is yn it belang fan de studint sels om him net ta utersten gean te litten. It is net dreech om te begripen oft jo in "wiskundige" of in "programmeur" binne. It is genôch om te harkjen nei de earste ympuls by it oplossen fan in probleem: wat wolle jo dwaan - sjoch yn it learboek op syk nei de optimale oanpak of skriuw in pear funksjes dy't letter wis nuttich sille wêze? Op grûn dêrfan kinne jo in fierdere komplementêr trajekt bouwe fan jo learen.
  • Alternative boarnen fan kennis. It bart dat it programma is goed lykwichtich, mar "Systeem Programming" en "Algorithmen" wurde leard troch folslein ferskillende minsken, en guon studinten binne tichter by de earste learaar, en oaren - nei de twadde. Mar sels as jo de heechlearaar net leuk fine, is dit gjin reden om guon ûnderwerpen te negearjen yn it foardiel fan oaren. Bachelors sels binne ynteressearre yn it finen fan de wil om te wurkjen mei boarnen fan kennis en fertrouwe yn gjin gefal radikale mieningen lykas "wiskunde is de keninginne fan 'e wittenskippen, it wichtichste is om de algoritmen te kennen" of "goede koade kompensearret foar al it oare."

Jo kinne jo kennis yn teory ferdjipje troch te wikseljen nei spesjalisearre literatuer en online kursussen. Jo kinne jo feardigens ferbetterje yn programmeartalen op Coursera, Udacity of Stepik, wêr't in protte ferskate kursussen wurde presintearre. Ek begjinne studinten faak nei hardcore taalkursussen te sjen as se fiele dat de algoritme-learaar wiskunde goed wit, mar komplekse ymplemintaasjefragen net beantwurdzje kin. Net elkenien sil it mei my iens wêze, mar yn myn praktyk hat it him goed bewiisd spesjalisaasje yn C ++ út Yandex, wêrby't hieltyd kompleksere skaaimerken fan 'e taal opfolgjend analysearre wurde. Kies yn 't algemien in kursus mei hege wurdearrings fan renommearre bedriuwen of universiteiten.

Soft skills

Hoe kinne jo it measte meitsje fan in kompjûterwittenskipûnderwiis
Komend fan 'e universiteit om te wurkjen yn elk bedriuw, fan in opstart oant in grut bedriuw, fine studinten fan sels topuniversiteiten har min oanpast oan' e echte wurkomjouwing. It feit is dat universiteiten hjoed in protte studinten "babysit". Ek nei in protte lessen mis te hawwen, net op 'e tiid tariede op toetsen en toetsen, oersliepe of te let wêze op in eksamen, kin elkenien it nochris slagje en opnij helje - en op it lêst noch in diploma krije.

D'r binne hjoed lykwols alle betingsten foar studinten om te wurde taret op it folwoeksen libben en ûnôfhinklike profesjonele aktiviteit. Se sille net allinich programmearje, mar ek kommunisearje moatte. En dit moat ek leard wurde. Universiteiten hawwe ferskate formaten foar it ûntwikkeljen fan dizze feardichheden, mar, helaas, se wurde faak net genôch omtinken jûn. Wy hawwe lykwols in protte kânsen om effektive teamwurkfeardigens te krijen.

  • Skriftlike saaklike kommunikaasje. Spitigernôch hawwe de measte ôfstudearden dy't de universiteit ferlitte gjin idee oer korrespondinsjeetikette. De spesifisiteit fan kommunikaasje yn instant messengers is yn 'e útwikseling fan berjochten nacht en dei en it brûken fan konversaasjestyl en ynformele wurdskat. It soe lykwols mooglik wêze om skriftlike spraak op te trenen as de studint kommunisearret mei de ôfdieling en de universiteit.

    Yn 'e praktyk wurde managers faak konfrontearre mei de needsaak om in grut projekt te ûntbinen yn lytse taken. Om dit te dwaan, moatte jo elke taak en har komponinten dúdlik beskriuwe, sadat junior ûntwikkelders begripe wat fan har fereaske is. In min definieare taak liedt faak ta de needsaak om wat opnij te meitsjen, en dêrom helpt ûnderfining yn skriftlike kommunikaasje ôfstudearden te wurkjen yn ferdielde teams.

  • Skriftlike presintaasje fan de resultaten fan jo wurk. Om har edukative projekten te presintearjen, kinne senioaren berjochten skriuwe oer Habr, wittenskiplike artikels, en ek gewoan rapporten. D'r binne in protte kânsen foar dit - kursuswurk begjint yn it twadde jier by guon universiteiten. Jo kinne ek essays brûke as in foarm fan kontrôle - se binne meastentiids tichter by in sjoernalistyk artikel. Dizze oanpak is al ymplementearre oan 'e National Research University Higher School of Economics.

    As in bedriuw in fleksibele oanpak fan ûntwikkeling oefenet, moat it de resultaten fan har wurk yn lytsere dielen, mar faker, presintearje. Om dit te dwaan is it wichtich om de resultaten fan it wurk fan ien spesjalist of it hiele team koart oer te bringen. Ek, in protte bedriuwen hjoed fiere "resinsjes" - jierliks ​​of semi-jierliks. Meiwurkers beprate resultaten en wurkperspektyf. Súksesfolle resinsje is de wichtichste reden foar karriêre groei, bonussen, bygelyks, yn Microsoft, Acronis of Yandex. Ja, jo kinne goed programmearje, mar "sittend yn 'e hoeke" sels in koele spesjalist sil altyd ferlieze oan ien dy't wit hoe't er syn súkses goed presintearje kin.

  • Akademysk skriuwen. Akademysk skriuwen fertsjinnet spesjale fermelding. It is nuttich foar studinten om fertroud te wurden mei de regels fan it skriuwen fan wittenskiplike teksten, it brûken fan arguminten, it sykjen nei ynformaasje yn ferskate boarnen, en it opmaak fan ferwizings nei dizze boarnen. It is oan te rieden om dit yn it Ingelsk te dwaan, om't d'r folle mear goede teksten binne yn 'e ynternasjonale akademyske mienskip, en foar ferskate dissiplines binne der al sjabloanen foar it presintearjen fan wittenskiplike resultaten. Fansels binne ek akademyske skriuwfeardigens nedich by it tarieden fan Russysktalige publikaasjes, mar der binne folle minder foarbylden fan goede moderne artikels yn it Ingelsk. Dizze feardichheden kinne wurde oanhelle fia in passende kursus, dy't no is opnommen yn in protte edukative programma's.
  • Leading gearkomsten. De measte studinten witte net hoe't se har tariede op gearkomsten, minuten nimme en gegevens ferwurkje. Mar as wy dizze feardigens yn 'e kolleezje ûntwikkelje, bygelyks troch diel te nimmen oan teamprojekten, kinne wy ​​​​foarkomme dat jo tiid fergrieme op' e wurkflier. Dit fereasket tafersjoch op it projektwurk fan studinten om har te learen hoe't se gearkomsten effektyf kinne fiere. Yn 'e praktyk kostet dit elke korporaasje in soad jild - ommers, as ferskate minsken dy't in grut salaris krije in oere wurktiid besteegje oan in rally, wolle jo dat der in oerienkommende rendemint op komt.
  • Iepenbier sprekke. In protte studinten wurde konfrontearre mei de needsaak om allinich iepenbier te praten by it ferdigenjen fan har proefskrift. En net elkenien is hjir klear foar. Ik haw in protte studinten sjoen dy't:
    • stean mei de rêch nei it publyk,
    • swaaiend, besykje de kommisje foar de trance yn te fieren,
    • brekke pennen, potloden en oanwizers,
    • rinne yn sirkels
    • sjoch nei de flier.

    Dit is normaal as in persoan foar it earst optreedt. Mar jo moatte earder begjinne mei dizze stress te wurkjen - troch jo kursussen te ferdigenjen yn in freonlike sfear, ûnder jo klasgenoaten.

    Derneist is standertpraktyk yn korporaasjes om in meiwurker de kâns te jaan om in idee foar te stellen en dêr finansiering, in posysje of in tawijd projekt foar te ûntfangen. Mar, as jo der oer tinke, is dit deselde beskerming fan kursussen, gewoan op in heger nivo. Wêrom net oefenje sokke nuttige karriêrefeardigens by it studearjen?

Wat haw ik miste?

Ien fan 'e redenen foar it skriuwen fan dizze post wie it artikel, publisearre op 'e webside fan Tyumen State University. De skriuwer fan it artikel rjochtet him allinnich op de tekoartkommingen fan Russyske studinten opmurken troch bûtenlânske leararen. De praktyk fan myn les oan ferskate universiteiten suggerearret dat Russyske skoalle en heger ûnderwiis in goede basis biedt. Russyske studinten binne yntelligint yn wiskunde en algoritmen, en it is makliker te bouwen profesjonele kommunikaasje mei harren.

Yn it gefal fan bûtenlânske studinten, krekt oarsom, de ferwachtings fan in Russyske learaar kinne soms te heech. Bygelyks, op it nivo fan basisoplieding yn termen fan wiskunde, binne de Yndiaanske studinten dy't ik moete, fergelykber mei Russyske. Se misse lykwols soms spesjale kennis as se ôfstudearje fan har undergraduate-stúdzjes. Goede Jeropeeske learlingen hawwe wierskynlik minder sterke wiskundige eftergrûn op skoalnivo.

En as jo studearje of wurkje oan in universiteit, kinne jo no wurkje oan kommunikaasjefeardigens (jo eigen as jo studinten), jo fûnemintele basis útwreidzje en programmearring oefenje. Foar dit doel biedt it Russyske ûnderwiissysteem alle kânsen - jo moatte se gewoan korrekt brûke.

Ik sil bliid wêze as jo yn 'e opmerkingen op' e post jo keppelings diele nei kursussen en metoaden dy't helpe om it lykwicht yn it ûnderwiis lyk te meitsjen, lykas ek oare manieren om sêfte feardigens te ferbetterjen by it studearjen oan in universiteit.

Boarne: www.habr.com

Add a comment