Si të nxjerrim maksimumin nga arsimi në Shkencat Kompjuterike

Shumë prej programuesve modernë kanë kryer arsimin e lartë. Me kalimin e kohës, kjo do të ndryshojë, por tani është kështu që punonjësit e mirë në kompanitë IT përsëri vijnë nga universitetet. Në këtë postim, Stanislav Protasov, drejtori i Acronis për marrëdhëniet me universitetet, ndan vizionin e tij mbi veçoritë e përgatitjes universitare për programuesit e ardhshëm. Mësuesit, studentët dhe ata që i punësojnë mund të gjejnë disa këshilla të dobishme më poshtë.

Si të nxjerrim maksimumin nga arsimi në Shkencat Kompjuterike

Gjatë 10 viteve të fundit, kam mësuar matematikë, algoritme, gjuhë programimi dhe mësim të makinerive në universitete të ndryshme. Sot, përveç rolit tim në Acronis, unë gjithashtu jam zëvendësshef i departamentit të Informatikës Teorike dhe Aplikative në MPTI. Nga përvoja ime në universitete të mira ruse (dhe jo vetëm), kam marrë disa vëzhgime mbi përgatitjen e studentëve në disiplinat kompjuterike.

Rregulli i 30 sekondave nuk funksionon më

Jam i sigurt që ju keni qenë ndonjëherë përballë rregullit të 30 sekondave, i cili thotë se një programues duhet të kuptojë qëllimin e një funksioni pas një shikimi të shpejtë në kodin e tij. Ky rregull është shpikur shumë kohë më parë, dhe që atëherë janë shfaqur shumë sisteme operative, gjuhë, harduer dhe algoritme. Unë shkruaj kod për 12 vjet, por relativisht kohët e fundit kam parë kode të një produkti, të cilat, edhe në shikim të parë, më janë dukur magjike. Sot, nëse nuk jeni të përfshirë në fushën e subjektit, rregulli i 30 sekondave nuk funksionon më. Në këtë rast, do t'ju duhen jo vetëm 30, por edhe 300 sekonda për të kuptuar se çfarë po ndodh.

Për shembull, nëse dëshironi të shkruani driver, do t'ju duhet të hyni thellë në këtë fushë, të lexoni mijëra rreshta kode specifike. Me këtë qasje në studimin e subjektit, specialisti zhvillon një "ndjenjë flow". Si në rap, kur ndjenja e rimës së mirë dhe ritmit të duhur vjen pa racionalizim të veçantë. Po ashtu, një programues i mirëpritur mund të njohë lehtësisht kodin joefikas ose të keq, pa u thelluar në studimin e detajuar të atij stili ose qasjeje jo optimale (ndërsa shpjegimi i këtij ndjesi mund të jetë mjaft i vështirë).

Specializimi dhe rritja e kompleksitetit çojnë në atë që edukimi bachelor tashmë nuk ofron mundësinë e studimit të të gjitha drejtimeve mjaft thellë. Por pikërisht në këtë nivel arsimor duhet të krijohet një horizont i gjerë. Pas kësaj, në master ose në punë, do të duhet të kaloni disa kohë duke u thelluar në problemin dhe specifikat e fushës, të studioni gjuhët e programimit dhe kodin e kolegëve, të lexoni artikuj dhe libra. Më duket se vetëm në këtë mënyrë, përmes universitetit, mund të "mbushni bar" për të ardhmen T-shaped specialists. T-shaped specialists.

Cila gjuhë programimi është më e mira për t'u mësuar në universitet?

Si të nxjerrim maksimumin nga arsimi në Shkencat Kompjuterike
Për kënaqësinë time, mësuesit e universiteteve tashmë janë larguar nga kërkimi i përgjigjes së saktë ndaj pyetjes: “Në çfarë duhet të programohet?”. Debatet mbi se çfarë është më mirë — C# apo Java, Delphi apo C++ — praktikisht kanë pushuar. Shfaqja e shumë gjuhëve të reja të programimit dhe grumbullimi i përvojës pedagogjike kanë çuar në kuptimin në mjedisin akademik se për çdo gjuhë ka një nişë të saj.

Problemi i mësimit me përdorimin e një gjuhe programimi ka pushuar së qeni prioritar. Nuk ka rëndësi se në cilën gjuhë zhvillohet kursi. E rëndësishme është shprehshmëria e mjaftueshme e gjuhës. Libri "The Art of Multiprocessor Programming" është një ilustrim i mirë i këtij vëzhgimi. Në këtë botim tashmë klasik, të gjithë shembujt janë të dhëna në Java — një gjuhë pa tregues, por me Garbage Collector. Me siguri askush nuk do të diskutojë se Java është shumë larg një zgjedhjeje optimale për shkruarjen e kodit paralel me performancë të lartë. Por për shpjegimin e koncepteve të paraqitura në libër, gjuha u tregua e përshtatshme. Një shembull tjetër është " kursi klasik i mësimit të makinerive i Andrew Ng, i mësuar në gjuhën Matlab në mjedisin Octave. Sot mund të zgjidhet një gjuhë tjetër programimi, por cila është, në esencë, ndryshimi, nëse idetë dhe qasjet janë të rëndësishme?

Më praktik dhe më afër realitetit

Së bashku me këtë, në vitet e fundit ka pasur shumë më tepër praktikantë në universitetet. Nëse dikur programet universitare ruse kritikoheshin për shkak të shkëputjes së tyre nga realiteti, sot nuk mund të thuhet më këtë për arsimimin në IT. 10 vjet më parë, në universitetet kishte pothuajse asnjë pedagog me përvojë reale në industri. Tani, gjithnjë e më shpesh në katedrat përkatëse, ligjëratat mbahen nga specialistë IT praktikantë, të cilët japin vetëm 1-2 kurse në kohën e lirë nga puna e tyre kryesore. Ky qasje zgjidhet nga pikëpamja e përgatitjes cilësore të punonjësve, rikthimit të kurseve dhe, natyrisht, kërkimit të punonjësve potencialë për kompanitë. Nuk mendoj se po zbuloj një sekret duke thënë se ne mbështesim katedrën bazë në MFTI dhe ndërtojmë marrëdhënie me universitete të tjera, përfshirë për të përgatitur studentë që mund të fillojnë karrierën e tyre në Acronis.

Matematikan apo programues?

Si të nxjerrim maksimumin nga arsimi në Shkencat Kompjuterike
Hollivaret, të cilat më parë zhvilloheshin rreth gjuhëve të programimit, kaluan në një nivel filozofik. Tani, “programuesit” dhe “matematikanët” debatojnë së bashku. Në përgjithësi, këto shkolla mund të ndahen në dy programe arsimore, por industria ende nuk ndan këto nuanca mirë, dhe nga universiteti në universitet kemi një arsimim të ngjashëm me pak ndryshime. Kështu që si studenti, ashtu edhe kompanisë ku ai do të punojë më pas, do t'u duhet të plotësojnë puzzlin e njohurive me copëzat e mungesës.

Shfaqja e praktikantëve në universitetet, të cilët shkruajnë kod industrial në gjuhë të ndryshme, i jep studentëve një aftësi më cilësore në zhvillim. Duke qenë të njohur mirë me implementimet e biblioteka standarde, frameworkeve dhe teknikave të programimit, programuesit praktikantë zhvillojnë në studentë dëshirën për të shkruar kod të mirë, për ta bërë këtë shpejt dhe cilësisht.

Megjithatë, kjo aftësi e dobishme herë pas here çon në shfaqjen e entuziastëve që shpikin biçikleta. Studentët programues mendojnë kështu: “çfarë më kushton të shkruaj edhe 200 rreshta kod të mirë, i cili do të zgjidhë problemin e caktuar?”

Mësuesit që kanë marrë një arsim klasik matematikor (p.sh. fakulteti i matematikës ose matematika e aplikuar), më shpesh punojnë në mjedise shkencore, ose në fushën e modelimit dhe analizës së të dhënave. “Matematicienët” e shohin ndryshe problemet në fushën e Shkencës Kompjuterike. Ata, në radhë të parë, operojnë jo me kod, por me algoritme, teorema, modele formale. Një përparësi e rëndësishme e qasjes matematikore është kuptimi i qartë se çfarë mund dhe çfarë nuk mund të zgjidhet. Dhe si duhet të zgjidhen ato.

Për rrjedhojë, mësuesit matematikë flasin për programimin me një theks në teori. Studentët që vijnë “nga matematikantë”, më shpesh propozojnë zgjidhje të konceptuara mirë dhe teorikisht më të avancuara, por, si rregull, jo optimale nga pikëpamja e gjuhës dhe, shpesh, thjesht të shkruara pa kujdes. Një student i tillë mendon se qëllimi i tij kryesor është të demonstrojë aftësinë për të zgjidhur këto lloje problemesh në parim. Ndërsa realizimi mund të jetë i mangët.

Djemtë, të cilët në shkollë ose në vitet e para janë formuar nga programuesit, sjellin me vete “një biçikletë shumë të bukur”, e cila, megjithatë, zakonisht nuk funksionon shumë efektivisht asimptotikisht. Ata, përkundrazi, nuk e vendosin si qëllim të thellohen në teori dhe të kthehen në libra për të gjetur zgjidhje optimale, duke i dhënë përparësi kodit të bukur.

Në universitete të ndryshme gjatë intervistave me studentët, zakonisht shoh se cila “shkollë” qëndron në bazë të arsimimit të tij. Dhe gati asnjëherë nuk kam hasur në një ekuilibër të përsosur në arsimimin bazë. Në fëmijëri, në qytetin tim mund të përgatitesha për matematikën olimpike, por nuk kishte grupe për programimin. Tani, megjithatë, në grupe fëmijët mësojnë të programojnë në gjuhët “në modë” Go dhe Python. Prandaj, tashmë në nivelin e pranimit në universitete ka divergjenca në qasje. Unë besoj se në universitet është e rëndësishme të mbështetet të dyja aftësitë, nd otherwise do të vijë në kompani një specialist me një bazë teorike të pamjaftueshme, ose një person që nuk ka mësuar dhe nuk dëshiron të shkruajë kod të mirë.

Si të “forcojmë” shkallën për profesionistët e ardhshëm T-shaped?

Si të nxjerrim maksimumin nga arsimi në Shkencat Kompjuterike
Është e qartë se në këto kushte studenti thjesht zgjedh atë që i pëlqen më shumë. Mësuesi, nga ana tjetër, thjesht transmeton pikëpamjen që i është më afër. Por të gjithë do të përfitojnë, nëse dhe kodi do të jetë i shkruar bukur, dhe nga aspekti i algoritmeve gjithçka do të jetë e qartë, e arsyeshme dhe efektive.

  • Horizonti IT. Absolventët e Bachelor në Shkencën e Kompjuterëve janë tashmë specialistë të përgatitur me një horizont teknik të zhvilluar, të cilët përjashtimisht kanë zgjedhur profilin e tyre. Por në vitet e para, ne nuk dimë se çfarë do të bëjnë ata. Mund të shkojnë në shkencë ose analizë, apo mund të shkruajnë një sasi të madhe kodi çdo ditë. Prandaj, studentëve duhet të u tregohen të gjitha aspektet e punës në fushën IT, të njihet me të gjitha mjetet. Ideali është që mësuesit e kurseve teorike të tregojnë lidhjen me praktikën (dhe anasjelltas).
  • Pika e rritjes. Nuk duhet të lejohet që të kalojmë në ekstremitete — në interesin e vet studentit. Të kuptosh se kush je — “matematik” apo “programues” — nuk është e vështirë. Mjafton të dëgjosh instiktin e parë kur zgjidh një problem: çfarë dëshiron të bësh — të shikosh një manual për të gjetur qasjen optimale apo të shkruash disa funksione që më vonë do të jenë të dobishme? Nga kjo mund të ndërtohet një trajektore e mësimit të mëtejshëm.
  • Burime alternative të dijes. Ndonjëherë ndodh që programi është mirë i balancuar, por “Programimi i Sistemeve” dhe “Algoritmet” drejtohen nga njerëz krejt të ndryshëm, dhe disa studentë e preferojnë mësuesin e parë, ndërsa të tjerë të dytin. Por edhe nëse nuk të pëlqen profesori, kjo nuk është arsye për të injoruar disa lëndë në favor të të tjerave. Vetë bachelorët janë të interesuar të gjejnë forcën për të punuar me burimet e dijes dhe kurrë mos t’i besojnë mendime radikale, si “matematika është mbretëresha e shkencave, e rëndësishme është të dish algoritmet” ose “kodi i mirë kompenson gjithçka tjetër”.

Të thellosh njohuritë e tua në teori mund të bëhet duke u drejtuar në literaturë të specializuar dhe kurse online. Të përmirësosh aftësinë për të punuar me gjuhë programimi mund të bëhet në Coursera, Udacity ose Stepik, ku ofrohen shumë kurse të ndryshme. Gjithashtu, studentët shpesh fillojnë të shohin kurse të ashpra për gjuhët, nëse ndiejnë se profesori për algoritmet e njeh mirë matematikën, por nuk mund të përgjigjet në pyetje të komplikuara në fushën e zbatimit. Jo të gjithë do të bien dakord me mua, por në praktikën time, është treguar se specializimi në C++ nga Yandex, ku shqyrtohen rregullisht tipare gjithnjë e më komplekse të gjuhës. Në përgjithësi, zgjidhni një kurs me vlerësime të larta, nga kompani ose universitete të njohura.

Aftësitë e buta

Si të nxjerrim maksimumin nga arsimi në Shkencat Kompjuterike
Kur arrijnë në punë nga universiteti në çdo kompani, nga startup deri te një korporatë të madhe, studentët madje edhe të universiteteve më të njohura shpesh dështojnë të adaptohen në mjedisin real të punës. Kjo ndodh sepse sot universitetet shumë “kallëzojnë” studentët. Edhe duke humbur shumë orë mësimi, duke mos u përgatitur në kohë për kontrollet dhe provimet, duke humbur ose duke vonuar në provim, çdo student mund të kalojë dhe përsëri të kalojë — dhe për pasojë të marrë diplomën.

Megjithatë, sot ekzistojnë të gjitha kushtet që studentët të përgatiten për jetën e rritur dhe aktivitetin e tyre profesional të pavarur. Ata do të duhet të programojnë, por gjithashtu të komunikojnë. Dhe edhe kjo duhet mësuar. Në universitetet ekzistojnë formate të ndryshme për zhvillimin e këtyre aftësive, por, fatkeqësisht, shpesh nuk iu kushtohet mjaftueshëm vëmendje. Megjithatë, ne kemi shumë mundësi për të marrë aftësi efektive në punën në ekip.

  • Komunikimi i shkruar biznesor. Fatkeqësisht, shumica e specialistëve që dalin nga universiteti nuk kanë njohuri për etikën e komunikimit. Specificiteti i komunikimit në mesazhe gjithashtu përfshin këmbimin e mesazheve natë dhe ditë dhe përdorimin e stilit të bisedës dhe fjalorit joformal. Megjithatë, stërvitjen e të shkruarit mund ta praktikohej gjatë komunikimit të studentëve me departamentin dhe universitetin.

    Në praktikë, menaxherët shpesh përballen me nevojën për të ndarë një projekt të madh në detyra të vogla. Për këtë, duhet të përshkruhet mirë secila detyrë dhe përbërësit e saj, që zhvilluesit e rinj të kuptojnë se çfarë pritet nga ata. Një detyrë e keqformuluar shpesh çon në nevojën për të ribërë diçka, dhe për këtë arsye përvoja në komunikimin e shkruar ndihmon të diplomuarit të punojnë në ekipe të shpërndara.

  • Prezantimi i shkruar i rezultateve të punës së vet. Për të prezantuar projektet e tyre mësimore, studentët e kursit të fundit mund të shkruajnë postime në Habr, artikuj shkencorë, si dhe thjesht raporte. Ka shumë mundësi për këtë — që nga viti i dytë në disa universitete fillojnë punët e kursit. Gjithashtu, mund të përdoren ese si një formë kontrolli — ato zakonisht janë më afër formës së një artikulli publicistik. Ky qasje është tashmë implementuar në HSE.

    Nëse një kompani praktikon një qasje fleksibile në zhvillim, rezultatet e punës së saj paraqiten me porcione më të vogla, por më shpesh. Prandaj, është e rëndësishme të jesh në gjendje të shprehësh shkurtimisht rezultatin e punës së një specialisti ose të gjithë ekipit. Gjithashtu, shumë kompani sot organizojnë "rishikime" — çdo vit ose çdo gjashtë muaj. Punonjësit diskutojnë rezultatet dhe perspektivat e punës. Një rishikim i suksesshëm është arsyeja kryesore e avancimit në karrierë, shpërblimeve, për shembull, në Microsoft, Acronis ose Yandex. Po, mund të programosh mirë, por "duke u ulur në qoshe", një specialist i shkëlqyer gjithmonë do të humbasë ndaj atij që di të prezantojë mirë suksesin e tij.

  • Shkrimi Akademik. Një pjesë e rëndësishme është shkrimi akademik. Studentët është e rëndësishme të njoftohen me rregullat e shkrimit të teksteve shkencore, përdorimit të argumenteve, kërkimit të informacionit në burime të ndryshme dhe formatimit të referencave për këto burime. Preferohet që kjo të bëhet në anglisht, pasi në komunitetin akademik ndërkombëtar ka shumë më tepër tekste të mira, dhe për disiplinat e ndryshme tashmë ekzistojnë modele të konsoliduara për paraqitjen e rezultateve shkencore. Sigurisht, aftësitë e shkrimit akademik nevojiten edhe për përgatitjen e publikimeve në gjuhën ruse, por numri i shembujve të artikujve të shkelqyer modern në anglisht është shumë më i vogël. Këto aftësi mund të fitojnë në kuadër të një kursi përkatës, i cili tani përfshihet në shumë programe arsimore.
  • Të drejtat e mbledhjeve. Shumica e studentëve nuk dinë të përgatiten për mbledhje, të mbajnë protokoll dhe të përpunojnë të dhëna. Por nëse e zhvillojmë këtë aftësi në universitet, për shembull, duke marrë pjesë në projekte kolektive, mund të shmangim humbjen e kohës në vendin e punës. Kështu, nevojitet kontrolli mbi punën projektore të studentëve, që t'i mësojmë ata si të realizojnë mbledhje në mënyrë efektive. Në praktikë, kjo kushton shumë për çdo korporatë — sepse nëse disa njerëz, që marrin pagën e lartë, kalojnë një orë në një mbledhje, dëshirohet që të ketë një kthim përkatës.
  • Fjalim Publik. Shumë studentë përballen me nevojën për të folur publikisht vetëm gjatë mbrojtjes së diplomës. Dhe jo të gjithë janë gati për këtë. Kam parë shumë studentë të cilët:
    • qëndrojnë me shpinë ndaj dëgjuesve,
    • lëvizin duke përpiqeshin të futin komisionin në trance,
    • thyejnë stilolapsa, lapsa dhe tregues,
    • shkruajnë rreth e rrotull,
    • kanë sytë në tokë.

    Kjo është normale kur një person flet për herë të parë. Por me këtë stres duhet të fillojmë të punojmë më herët — me mbrojtjen e punimeve të kursit në një atmosferë miqësore, mes kolegëve.

    Përveç kësaj, praktika standarde në korporata është që të lejohet një punonjës të propozojë një ide, të miratohet financimi, pozita ose projekti i dedikuar. Por, nëse e mendoni — kjo është e njëjta mbrojtje e punës kursi, thjesht në një nivel më të lartë. Pse të mos stërvitni këto aftësi të dobishme për karrierën gjatë studimeve?

Çfarë më ka shpëtuar?

Një nga arsyet për shkrimin e këtij postimi ishte një artikull, publikuar në faqen e Tjumen State University. Autori i artikullit fokusohet vetëm në disavantazhet e studentëve rusë, siç janë vënë në dukje nga mësuesit e huaj. Praktika ime e mësimdhënies në universitete të ndryshme tregon se arsimimi rus dhe ai i lartë ofron një bazë të mirë. Studentët rusë janë të njohur me matematikën dhe algoritmet, dhe me ta është më e lehtë të krijohet komunikimi profesional.

Në rastin e studentëve të huaj, përkundrazi, pritshmëritë e mësuesit rus ndonjëherë mund të jenë të larta. Për shembull, në nivelin e përgatitjes fillestare në matematikë, studentët indianë që kam takuar janë të ngjashëm me ata rusë. Megjithatë, herë pas here u mungojnë njohuritë speciale të nevojshme pas diplomimit. Studentët e mirë evropianë, përkundrazi, shpesh kanë një përgatitje të dobët në matematikë në nivel shkollor.

Dhe nëse studioni ose punoni në universitet, mund të filloni tani të punoni në zhvillimin e aftësive komunikuese (të tuat ose të studentëve), të zgjeroni bazën tuaj themelore dhe të praktikoni programimin. Për këtë, sistemi i arsimit rus ofron të gjitha mundësitë — duhet vetëm t'i përdorni ato siç duhet.

Do të isha i lumtur nëse në komentet e postit do të ndanit lidhjet tuaja për kurset dhe metodat që ndihmojnë në balancimin e arsimit, si dhe mënyrat e tjera për të përmirësuar aftësitë e buta gjatë studimeve në universitet.

Burimi: habr.com

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster