Si të nxjerrim maksimumin nga një diplomë në Informatikë

Shumica e programuesve modernë kanë arsimin e tyre në universitete. Me kalimin e kohës, kjo do të ndryshojë, por për momentin gjërat janë të tilla që individët e mirë në kompanitë IT vazhdojnë të vinë nga universitetet. Në këtë postim, Stanislav Protasov, drejtori i Acronis për marrëdhëniet me universitetet, tregon vizionin e tij mbi veçat e arsimit universitar për programuesit e ardhshëm. Mësuesit, studentët dhe ata që i punësojnë ata, mund të gjejnë nën këtë shkrim disa këshilla të dobishme.

Si të nxjerrim maksimumin nga një diplomë në Informatikë

Gjatë 10 viteve të fundit, kam mësuar matematikë, algoritme, gjuhë programimi dhe mësim të makinerive në universitete të ndryshme. Sot, përveç pozites time në Acronis, jam gjithashtu zëvendës/ drejtues i departamentit të informatikës teorike dhe aplikative në MFTI. Nga eksperienca ime në universitete të mira ruse (dhe jo vetëm), kam përfituar disa vëzhgime mbi përgatitjen e studentëve në disiplinat kompjuterike.

Rregulli i 30 sekondave nuk funksionon më

Jam i sigurt që jeni përballur me rregullin e 30 sekondave, i cili thotë se programuesi duhet të kuptojë qëllimin e funksionit pas një shikimi të shpejtë në kodin e tij. Ky rregull u krijua shumë kohë më parë, dhe që atëherë janë shfaqur shumë sisteme operative, gjuhë, harduer dhe algoritme të reja. Unë shkruaj kod për 12 vjet, por relativisht së fundmi kam parë kodin burimor të një produkti, i cili më dukej si formule magjike që në pamjen e parë. Sot, nëse nuk jeni të thelluar në fushën e temës, atëherë rregulli i 30 sekondave fillon të mos funksionojë. Në këtë rast, nuk do t'ju mjaftojnë as 30, as 300 sekonda për të kuptuar se çfarë po ndodh.

Për shembull, nëse dëshironi të shkruani drejtpërdrejt, do t'ju duhet të zhyteni në këtë fushë, të lexoni mijëra rreshta të kodit të veçantë. Me një qasje të tillë për të mësuar temën, specialisti fiton një "ndjenjë rrjedhjeje". Ashtu si në rap, kur ndjenja e rimës dhe ritmi i saktë ndihen pa një racionalizim të veçantë. Po ashtu, një programues i mirëpërgatitur mund ta identifikojë lehtësisht kodin e pamjaftueshëm ose thjesht të keq, pa e studiuar në detaje se ku ndodhi shkelja e stilit ose u përdor një qasje jo optimale (për ta shpjeguar këtë ndjenjë mund të jetë mjaft e vështirë).

Specializimi dhe rritja e kompleksitetit çojnë në atë që njohja e bachelor-it nuk ofron më mundësinë për të studiuar të gjitha drejtkohësisht me mjaft thellësi. Por pikërisht në këtë nivel arsimi është e nevojshme të fitosh një horizont të gjerë. Më pas, në master ose në punë, do të duhej të harxhohej një kohë për t'u zhytur në problematikën dhe specifikat e fushës, për të studiuar gjuhët e programimit dhe kodin e kolegëve, për të lexuar artikuj dhe libra. Më duket se vetëm kështu, me ndihmën e universitetit, mund të "ngjitet një shirit" për të ardhmen. Specialistët T-shaped.

Cila është gjuha më e mirë e programimit për t'u mësuar në universitet?

Si të nxjerrim maksimumin nga një diplomë në Informatikë
Me gëzim, mësuesit universitarë tashmë janë tërhequr nga kërkimi i përgjigjes së saktë në pyetjen: “Me çfarë është më mirë të programosh?”. Polemikat, cila është më e mira — C# apo Java, Delphi apo C++ — në fakt janë shuar. Shfaqja e shumë gjuhëve të reja të programimit dhe akumulimi i përvojës pedagogjike çuan në atë që në mjedisin akademik u formua një kuptim: çdo gjuha ka niçen e saj.

Problemi i mësimdhënies me përdorimin e një gjuhe të caktuar të programimit nuk ka më prioritet. 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 të klasifikuar, të gjitha shembujt janë dhënë në Java — një gjuhë pa tregues, por me Garbage Collector. Nuk ka asnjë dyshim që askush nuk do të diskutojë se Java është larg zgjedhjes optimale për të shkruar kod paralel me performancë të lartë. Por për shpjegimin e koncepteve të paraqitura në libër, gjuha u përshtat. Një kurs klasik i mësimit të makinës i Andrew Ng, i mësuar në gjuhën Matlab në ambientin Octave. Sot do të ishte e mundur të zgjidhje një gjuhë tjetër programimi, por çfarë rëndësie ka, nëse idetë dhe qasjet janë ato që kanë rëndësi?

Më praktik dhe më afër realitetit

Në të njëjtën kohë, në vitet e fundit, ka pasur një rritje të madhe të praktikanëve në universitetet. Nëse më parë programet universitare ruse kritikoheshin për shkak se ishin të shkëputura nga realiteti, sot për IT-arsimin nuk mund të thuhet më. 10 vite më parë në universitetet nuk kishte praktikues me përvojë reale pune në industri. Tani gjithnjë e më shpesh në departamentet përkatëse ligjëratat mbahen nga specialistë të IT-së që praktikojnë, të cilët përfitoni mundësinë të mbajnë 1-2 kurse në kohën e lirë nga puna e tyre kryesore. Ky qasje justifikohet nga pikëpamja e përgatitjes cilësore të stafit, përmirësimit të kurseve dhe, sigurisht, gjetjes së punonjësve potencialë për kompanitë. Nuk mendoj se do të zbuloj ndonjë sekret duke thënë se ne mbështesim departamentin bazë në MFTI dhe ndërtojmë marrëdhënie me universitete të tjera përfshirë qëllimin e përgatitjes së studentëve që mund të fillojnë karrierën e tyre në Acronis.

Matematikani apo programuesi?

Si të nxjerrim maksimumin nga një diplomë në Informatikë
Holivaret që më parë zhvilloheshin rreth gjuhëve të programimit, janë kthyer në një debat filozofik. Tani po diskutojnë mes tyre “programuesit” dhe “matematikat”. Në parim, këto shkolla mund të dalin në dy programe arsimore, por industria ende nuk ndan mirë këto nuanca dhe nga universiteti në universitet kemi një arsimim të ngjashëm me pak ndryshime. Kështu që, si studentit, ashtu edhe kompanisë në të cilën do të punojë më tej, do t’i duhet të plotësojë me pjesët e humbura të njohurive.

Shfaqja e praktikuesve në universitete që shkruajnë kod industrial në gjuhë të ndryshme u jep studentëve një aftësi zhvillimi më cilësore. Duke qenë të njohura mirë me implementimet e bibliotekave standarde, frameworkeve dhe teknikat e programimit, programuesit praktikë i edukojnë studentët për të shkruar kod të mirë, ta bëjnë këtë shpejt dhe me cilësi.

Megjithatë, kjo aftësi e dobishme ndonjëherë çon në shfaqjen e pasionantëve që shpiknin biçikletën. Studentët programues mendojnë kështu: “Çfarë do të më kushtonte që të shkruaja edhe 200 rreshta të kodit të mirë, i cili do të zgjidhej drejtpërdrejt problemin e paraqitur?”.

Mësuesit që kanë marrë një arsim klasik në matematikë (p.sh., fakulteti i matematikës ose matematika e aplikuar) shpesh punojnë në një mjedis shkencor ose në fushën e modelimit dhe analizës së të dhënave. "Matematikanët" e shohin ndryshe problemet në fushën e Informatikës. Ata kryesisht operojnë jo me kod, por me algorithe, teorema dhe modele formale. Një përfitim i rëndësishëm i qasjes matematikore është kuptimi i qartë e principit se çfarë mund dhe çfarë nuk mund të zgjidhet. Dhe si mund të zgjidhet.

Për pasojë, pedagogët matematikë tregojnë për programimin duke iu dhënë rëndësi teorisë. Studentët, që vijnë "nga matematikanët", shpesh ofrojnë zgjidhje të mirë menduara dhe teorikisht më të shkëlqyera, por, si rregull, janë jo optimale nga pikëpamja e gjuhës dhe, shpesh, thjesht të shkruara në mënyrë të papërgjegjshme. Ky student mendon se qëllimi i tij kryesor është të demonstrojë aftësinë për të zgjidhur probleme të tilla në parim. Ndërsa realizimi mund të jetë deficitar.

Djemtë, që në shkollë ose në vitet e para janë formuar nga programuesit, sjellin me vete një "bicikletë shumë të bukur", e cila, megjithatë, zakonisht nuk funksionon shumë efektivisht asimptotikisht. Ata, përkundrazi, nuk e vendosin para vetes detyrën për të teorizuar thellë dhe për të kërkuar në libra për zgjidhje optimale, duke preferuar kodin e bukur.

Në universitete të ndryshme, gjatë intervistave me studentët zakonisht shoh cila "shkollë" qëndron në bazë të arsimimit të tij. Dhe unë kam hasur shumë pak me një ekuilibër të përsosur në arsimin bazë. Në fëmijëri në qytetin tim mund të përgatitesha për matematikën olimpike, por nuk kishte grupe për programim. Tani, megjithatë, në këto grupe fëmijët mësojnë të programojnë në gjuhët "të modës" Go dhe Python. Për këtë arsye, edhe në nivelin e pranimit në universitete ka dallime në qasje. Unë besoj se në universitet është e rëndësishme të mbështetet të dyja aftësitë, përndryshe në kompanitë do të vijë të punojë ose 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 në të vërtetë "të forcojmë traversën" për specialistët e ardhshëm T-shaped?

Si të nxjerrim maksimumin nga një diplomë në Informatikë
Është e qartë se në këto kushte, studenti thjesht zgjedh atë që i pëlqen më shumë. Mësuesi, nga ana e tij, vetëm transmeton pikëpamjen që i përshtatet më shumë. Por të gjithë do të përfitojnë nëse kodi do të jetë shkruar bukur, dhe nga pikëpamja e algoritmeve gjithçka do të jetë e qartë, e arsyeshme dhe e efektshme.

  • Horizonti IT. Një diplomant i bachelorit në fushën e Computer Science - është një specialist i gatshëm me një horizont teknik të zhvilluar, i cili ndoshta ka zgjedhur profilin e tij. Por në kursin e ulët, ne nuk e dimë se çfarë do të bëjë ai ose ajo. Mund të shkojë në shkencë ose analizë, ose ndoshta, përkundrazi, të shkruaj një sasi të madhe kodi çdo ditë. Prandaj, studentëve duhet t'u tregohen të gjithë aspektet e punës në fushën e IT-së, t'i njoftojnë me të gjitha mjetet. Ideale do të ishte që mësuesit në kurset teorike të tregojnë lidhjen me praktikën (dhe e kundërta).
  • Pika e rritjes. Të mos lejohet ndonjë skajshmëri - në interes të vetë studentit. Të kuptosh se kush je - “matematikan” apo “programues” - nuk është e vështirë. Mjafton të dëgjosh impulsin e parë kur zgjidh një problem: çfarë do të dëshironit të bëni - të hedhësh një sy në librin e studimit për të kërkuar qasjen optimale ose të shkruash disa funksione që me siguri do t'ju nevojiten më vonë? Nga kjo mund të ndërtohet trajektoren e mësimit komplementar.
  • Burime alternative njohurie. Ndonjëherë ndodh që programi të jetë mirë i balancuar, por “Programimi sistemik” dhe “Algoritmet” udhëhiqen nga njerëz krejtësisht të ndryshëm, dhe disa studentë janë më afër mësuesit të parë, ndërsa të tjerët - mësuesit të dytë. Por edhe nëse nuk ju pëlqen profesori, kjo nuk është një arsye për të ndaluar studimin e disa lëndëve në favor të të tjerave. Vetë bachelorët janë të interesuar të gjejnë vullnetin për të punuar me burimet e njohurisë dhe asnjëherë të mos u besojnë mendimeve 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”.

Theoretical knowledge can be deepened by referring to specialized literature and online courses. Improving programming skills can be done on Coursera, Udacity, or Stepik, where many different courses are offered. Additionally, students often start looking at hardcore language courses if they feel that the algorithms instructor has a strong grasp of mathematics but cannot answer complex questions in the area of implementation. Not everyone may agree with me, but in my experience, this approach has worked well. C++ specialization from Yandex, which systematically explores increasingly complex features of the language. Overall, choose a course with high ratings from reputable companies or universities.

Soft skills

Si të nxjerrim maksimumin nga një diplomë në Informatikë
When coming from university to work in any company, from a startup to a large corporation, even students from top universities find themselves poorly adapted to the real working environment. The fact is that universities today tend to coddle students a lot. Even if they miss many classes, fail to prepare in time for tests and exams, or oversleep and arrive late to exams, anyone can pass, and retake if necessary — ultimately still earning their diploma.

Nevertheless, today there are all conditions for preparing students for adult life and independent professional activity. They will need to not only program but also communicate. This needs to be taught as well. There are various formats in universities to enhance these skills, but unfortunately, they often do not receive enough attention. However, we have many opportunities to gain effective teamwork skills.

  • Written business communication. Unfortunately, most specialists graduating from university have no understanding of the etiquette of correspondence. The specifics of communication in messengers involve exchanging messages at night and during the day and using a conversational style and informal vocabulary. However, written speech could have been trained through communication between the student and the department and the university.

    Në praktikë, menaxherët shpesh përballen me nevojën për të decompozuar një projekt të madh në detyra të vogla. Për këtë, është e nevojshme të përshkruhet mirë secila detyrë dhe komponentët e saj, në mënyrë që zhvilluesit e rinj të kuptojnë se çfarë pritet prej tyre. Një detyrë e vendosur keq shpesh çon në nevojën për të rikonceptuar diçka, prandaj përvoja në komunikimin me shkrim ndihmon studentët të punojnë në ekipe të shpërndara.

  • Prezantimi me shkrim i rezultateve të punës së tij. Për të prezantuar projektet e tyre studimore, studentët e vitit 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ë detyrat e kursit. Gjithashtu, mund të përdoret eseja si një formë kontrolli — zakonisht ato janë më të afërta me artikujt publicistik. Ky qasje tashmë është realizuar në NIU HSE.

    Nëse kompania praktikon një qasje fleksibile në zhvillim, prezantimi i rezultateve të punës bëhet në mënyrë më të vogël, por më shpesh. Për këtë, është e rëndësishme të jesh në gjendje të përshkruash shkurtimisht rezultatin e punës së një specialisti ose të gjithë ekipit. gjithashtu, në shumë kompani sot organizohen "rishikime" — vjetore ose gjysmëvjeçare. Punonjësit diskutojnë rezultatet dhe perspektivat e punës. Një rishikim i suksesshëm është arsyeja kryesore për rritjen në karrierë, shpërblimet, për shembull, në Microsoft, Acronis ose Yandex. Po, mund të programosh mirë, por "duke u ulur në qoshe" edhe një specialist i shkëlqyer gjithmonë do të humbasë kundrejt atij që di të prezantojë mirë suksesin e tij.

  • Shkrimi Akademik. veçojmë shkrimin akademik. Studentëve u bën mirë të njohin rregullat e shkrimit të teksteve shkencore, përdorimin e argumenteve, kërkimin e informacionit në burime të ndryshme dhe formatimin e referencave në këto burime. Është e dëshirueshme të bëhet në gjuhën angleze, 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 janë të nevojshme edhe gjatë përgatitjes së publikimeve në gjuhën ruse, por numri i shembujve të artikujve modernë të mirë në anglisht është shumë më i vogël. Këto aftësi mund të fitohen në kuadër të një kursi përkatës, i cili tani është pjesë e shumë programeve arsimore.
  • Të bësh takime. Shumica e studentëve nuk dinë të përgatiten për takime, të mbajnë protokollin dhe të trajtojnë të dhënat. Por nëse zhvillojmë këtë aftësi në universitet, për shembull, duke marrë pjesë në projekte kolektive, do të mund të shmangim humbjen e kohës në vendin e punës. Për këtë nevojitet kontroll mbi punët projektore të studentëve, për t'i mësuar ata si të zhvillojnë takime efektive. Në praktikë, kjo i kushton çdo korporate një shumë të madhe parash – sepse nëse disa njerëz, që marrin paga të larta, kalojnë një orë të punës në një takim, dëshirojmë që të ketë një rikthim të duhur nga ai.
  • Fjalimi publik. Shumë studentë përballen me nevojën për të folur në publik vetëm gjatë mbrojtjes së punës së diplomës. Dhe shumë prej tyre nuk janë të gatshëm për këtë. Kam parë shumë studentë që:
    • qëndrojnë me shpinë ndaj dëgjuesve,
    • të lëvizin duke përpjekur të hyjnë në transin e komisionit,
    • thyejnë stilolapsa, lapsa dhe tregues,
    • shëtisin rreth,
    • shikojnë në tokë.

    Është normale që një person të flasë për herë të parë. Por me këtë stres duhet të fillojmë të punojmë më herët – nga mbrojtja e punëve të kursit në një atmosferë miqësore, mes bashkëstudentëve.

    Për më tepër, praktika standarde në korporata është të japin mundësinë për një punonjës që të propozojë një ide, të krijojë financim për të, pozita apo një projekt të veçantë. Por, nëse e mendon – kjo është e njëjta mbrojtje e punës së kursit, thjesht në një nivel më të lartë. Pse t'i mos e stërvitim këto aftësi të dobishme për karrierën gjatë studimeve?

Çfarë kam lënë pas?

Një nga arsyet për të shkruar këtë postim ishte një artikull, publikuar në faqen e Tjumen State University. Autori i artikullit fokusohet vetëm në disavantazhet e studentëve rusë, të vërejtura nga mësuesit e huaj. Praktika ime e mësimdhënies në universitete të ndryshme tregon se arsimi shkollor dhe i lartë rus ofron një bazë të mirë. Studentët rusë janë të përgatitur në matematikë dhe algoritme, është më e lehtë të kemi komunikim profesional me ta.

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 bazik të përgatitjes në matematikë, studentët indianë që kam takuar duken si ata rusë. Megjithatë, atyre ndonjëherë u mungojnë njohuritë speciale pas përfundimit të studimeve të bachelor-it. Studentët e mirë evropianë me siguri do të kenë një përgatitje më të dobët në matematikë në nivelin shkollor.

Dhe nëse studioni ose punoni në universitet, mund të filloni tani ndërtimin e aftësive komunikuese (të tuat ose të studentëve), të shkëmbeni një bazë të thellë dhe të praktikoni programimin. Për këtë, sistemi i arsimit rus ofron të gjitha mundësitë — duhet vetëm t'i shfrytëzoni ato siç duhet.

Do të isha i lumtur nëse në komentet e postit do të ndani lidhjet tuaja për kurset dhe metodat që ndihmojnë në balancimin e arsimit, si dhe mënyra të tjera për të zhvilluar soft skills gjatë studimeve në universitet.

Burimi: habr.com

Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS 🔥 Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS | ProHoster