Kompüter Elmləri Təhsilindən Ən Yaxşı Necə Yaratmaq olar

Müasir proqramçıların əksəriyyəti təhsillərini universitetlərdə alıblar. Zaman keçdikcə bu dəyişəcək, amma indi elədir ki, İT şirkətlərində yaxşı kadrlar hələ də universitetlərdən gəlir. Bu yazıda Acronis-in Universitet Əlaqələri üzrə Direktoru Stanislav Protasov gələcək proqramçılar üçün universitet hazırlığının xüsusiyyətləri haqqında öz baxışından danışır. Müəllimlər, tələbələr və onları işə götürənlər hətta kəsilmənin altında bəzi faydalı məsləhətlər tapa bilərlər.

Kompüter Elmləri Təhsilindən Ən Yaxşı Necə Yaratmaq olar

Son 10 ildir ki, müxtəlif universitetlərdə riyaziyyat, alqoritmlər, proqramlaşdırma dilləri və maşın öyrənməsi üzrə dərs deyirəm. Bu gün mən Acronis-dəki vəzifəmlə yanaşı, həm də MIPT-də nəzəri və tətbiqi kompüter elmləri şöbəsinin müdir müaviniyəm. Rusiyanın yaxşı (tək deyil) universitetlərində işləmək təcrübəmdən tələbələrin kompüter fənləri üzrə hazırlanması ilə bağlı bəzi müşahidələr apardım.

30 saniyə qaydası artıq işləmir

Əminəm ki, 30 saniyəlik qayda ilə rastlaşmısınız, bu qayda proqramçının funksiyanın koduna qısa nəzər saldıqdan sonra onun məqsədini başa düşməsini ifadə edir. Uzun müddət əvvəl icad edilmişdir və o vaxtdan bəri bir çox əməliyyat sistemi, dillər, aparat və alqoritmlər meydana çıxdı. Mən 12 ildir kod yazıram, lakin nisbətən yaxınlarda bir məhsulun mənbə kodunu gördüm, ilk baxışdan mənə sehrli sehr kimi göründü. Bu gün mövzu sahəsinə girməmisinizsə, o zaman 30 saniyə qaydası fəaliyyətini dayandırır. Əks halda, nəyin nə olduğunu anlamaq üçün təkcə 30 deyil, 300 saniyə də kifayət etməyəcək.

Məsələn, sürücülər yazmaq istəyirsinizsə, bu sahəyə dalmaq və minlərlə xüsusi kodu oxumaq lazımdır. Bir mövzunun öyrənilməsinə bu yanaşma ilə mütəxəssis "axın hissi" inkişaf etdirir. Repdə olduğu kimi, xüsusi rasionallaşdırma olmadan yaxşı qafiyə və düzgün ritm hissi yarandıqda. Eyni şəkildə, yaxşı təlim keçmiş proqramçı, üslub pozuntusunun harada baş verdiyini və ya suboptimal yanaşmanın istifadə edildiyini ətraflı araşdırmadan səmərəsiz və ya sadəcə olaraq pis kodu asanlıqla tanıya bilər (lakin bu hissi izah etmək çox çətin ola bilər).

İxtisaslaşma və artan mürəkkəblik ona gətirib çıxarır ki, bakalavr təhsili artıq bütün sahələri kifayət qədər dərindən öyrənmək imkanı vermir. Ancaq təhsilin məhz bu səviyyəsində dünyagörüşünə yiyələnmək lazımdır. Daha sonra, aspiranturada və ya iş yerində özünüzü mövzu sahəsinin problemləri və xüsusiyyətlərinə qərq etmək, jarqon, proqramlaşdırma dilləri və həmkarlarınızın kodunu öyrənmək, məqalələr və kitablar oxumaq üçün bir az vaxt sərf etməlisiniz. Mənə elə gəlir ki, bu, universitetin köməyi ilə gələcək üçün “barmaq dirəyi vurmağın” yeganə yoludur. T formalı mütəxəssislər.

Universitetdə hansı proqramlaşdırma dilini öyrətmək daha yaxşıdır?

Kompüter Elmləri Təhsilindən Ən Yaxşı Necə Yaratmaq olar
Sevincim odur ki, universitet müəllimləri “proqram etmək üçün ən yaxşı dil hansıdır?” sualına düzgün cavab axtarmaqdan artıq vaz keçiblər. Hansının daha yaxşı olması ilə bağlı mübahisələr - C# və ya Java, Delphi və ya C++ - faktiki olaraq ortadan qalxdı. Bir çox yeni proqramlaşdırma dillərinin yaranması və pedaqoji təcrübənin toplanması akademik mühitdə müəyyən bir anlayışa səbəb oldu: hər bir dilin öz yuvası var.

Bu və ya digər proqramlaşdırma dilindən istifadə etməklə tədris problemi artıq prioritet olmaqdan çıxıb. Kursun hansı dildə tədris olunmasının əhəmiyyəti yoxdur. Əsas odur ki, dilin kifayət qədər ifadəli olması. Kitab "Çoxprosessorlu proqramlaşdırma sənəti” bu müşahidənin yaxşı nümunəsidir. İndiki bu klassik nəşrdə bütün nümunələr Java-da təqdim olunur - göstəricisiz, lakin Garbage Collector ilə dil. Heç kim Java-nın yüksək performanslı paralel kod yazmaq üçün optimal seçimdən uzaq olduğunu iddia edə bilməz. Amma dil kitabda təqdim olunan anlayışların izahı üçün uyğun idi. Başqa bir misal - klassik maşın öyrənmə kursu Andrew Nna, Oktava mühitində Matlabda dərs deyirdi. Bu gün siz fərqli bir proqramlaşdırma dili seçə bilərsiniz, lakin ideyalar və yanaşmalar vacibdirsə, bunun həqiqətən nə fərqi var?

Daha praktik və reallığa daha yaxındır

Eyni zamanda, son illərdə universitetlərdə daha çox praktikant var. Əgər əvvəllər Rusiya universitetlərinin proqramları reallıqdan qopduğu üçün fəal şəkildə tənqid olunurdusa, bu gün eyni şeyi İT təhsili haqqında demək olmaz. 10 il əvvəl universitetlərdə real sənaye təcrübəsi olan müəllimlər demək olar ki, yox idi. İndi getdikcə daha çox ixtisaslaşdırılmış kafedrada dərsləri tam ştatlı informatika müəllimləri deyil, əsas işlərindən asudə vaxtlarında yalnız 1-2 kurs keçirən praktiki İT mütəxəssisləri keçirlər. Bu yanaşma yüksək keyfiyyətli kadr hazırlığı, kursların yenilənməsi və təbii ki, şirkətdə potensial işçilərin axtarışı baxımından özünü doğruldur. MIPT-də əsas şöbəni dəstəklədiyimizi və Acronis-də karyerasına başlaya biləcək tələbələri hazırlamaq da daxil olmaqla, digər universitetlərlə əlaqələr qurduğumuzu söyləməklə sirri açacağımı düşünmürəm.

Riyaziyyatçı yoxsa proqramçı?

Kompüter Elmləri Təhsilindən Ən Yaxşı Necə Yaratmaq olar
Əvvəllər proqramlaşdırma dilləri ətrafında fırlanan müqəddəs müharibələr fəlsəfi istiqamətə keçdi. İndi “proqramçılar” və “riyaziyyatçılar” deyilənlər bir-biri ilə mübahisə edirlər. Prinsipcə, bu məktəbləri iki təhsil proqramına bölmək olardı, lakin sənaye hələ də bu cür incəlikləri ayırmaqda zəifdir və universitetdən universitetə ​​qədər bir az fərqli diqqət mərkəzində olan oxşar təhsilimiz var. Bu o deməkdir ki, həm tələbə, həm də onun işləməyə davam edəcəyi şirkət bilik tapmacasını çatışmayan parçalarla tamamlamalı olacaq.

Universitetlərdə müxtəlif dillərdə sənaye kodu yazan praktikantların meydana çıxması tələbələrə daha yaxşı inkişaf bacarıqları verir. Standart kitabxanaların tətbiqinə, çərçivələrə və proqramlaşdırma texnikalarına yaxşı bələd olan praktik proqramçılar tələbələrdə yaxşı kod yazmaq, onu tez və səmərəli etmək istəyini aşılayır.

Bu faydalı bacarıq bəzən təkəri yenidən kəşf etməyi sevənlərin meydana çıxmasına səbəb olur. Proqramlaşdırma tələbələri belə düşünürlər: “Problemi baş-başa həll edəcək daha 200 sətir yaxşı kod yazmalıyam?”

Klassik riyazi təhsil almış müəllimlər (məsələn, riyaziyyat və ya tətbiqi riyaziyyat fakültəsindən) çox vaxt psevdoelmi mühitdə və ya modelləşdirmə və məlumatların təhlili sahəsində çalışırlar. “Riyaziyyatçılar” Kompüter Elmləri sahəsindəki problemlərə fərqli baxırlar. Onlar ilk növbədə kodla deyil, alqoritmlər, teoremlər və formal modellərlə işləyirlər. Riyazi yanaşmanın mühüm üstünlüyü nəyin həll oluna biləcəyini və nəyin qeyri-mümkün olduğuna dair aydın fundamental anlayışdır. Və necə həll etmək olar.

Müvafiq olaraq, riyaziyyat müəllimləri proqramlaşdırma haqqında nəzəriyyəyə meylli danışırlar. “Riyaziyyatçılar”dan gələn tələbələr çox vaxt yaxşı düşünülmüş və nəzəri cəhətdən üstün həllər tapırlar, lakin dil baxımından adətən qeyri-optimaldır və çox vaxt sadəcə səliqəsiz yazılır. Belə bir tələbə hesab edir ki, onun əsas məqsədi bu cür problemləri prinsipcə həll etmək bacarığını nümayiş etdirməkdir. Amma icrası axsaya bilər.

Məktəbdə və ya ilk illərində proqramçı kimi böyüyən uşaqlar özləri ilə "çox gözəl velosiped" gətirirlər, lakin bu, adətən asimptotik şəkildə çox səmərəli işləmir. Əksinə, onlar gözəl koda üstünlük verərək, optimal həll yolları axtarışında dərindən nəzəriləşdirmə və dərsliklərə müraciət etməyi qarşılarına vəzifə qoymurlar.

Müxtəlif universitetlərdə tələbə müsahibələri zamanı adətən onun təhsilinin əsasında hansı “məktəb”in dayandığını görürəm. Və mən əsas təhsildə demək olar ki, heç vaxt mükəmməl balansla qarşılaşmamışam. Uşaq vaxtı mənim şəhərimdə riyaziyyat olimpiadalarına hazırlaşa bilərdin, amma proqramlaşdırma dərnəkləri yox idi. İndi klublarda uşaqlar “dəbli” Go və Python-da proqramlaşdırmağı öyrənirlər. Ona görə də ali məktəblərə qəbul səviyyəsində belə yanaşmalarda fərqliliklər var. İnanıram ki, universitetdə hər iki bacarığı saxlamaq vacibdir, əks halda ya nəzəri bazası kifayət qədər olmayan mütəxəssis, ya da öyrənməmiş və yaxşı kod yazmaq istəməyən şəxs şirkətə işə gələcək.

Gələcək üçün "çarpaz çubuğunu pompalamaq" üçün necə T formalı mütəxəssislər?

Kompüter Elmləri Təhsilindən Ən Yaxşı Necə Yaratmaq olar
Aydındır ki, belə şəraitdə tələbə sadəcə olaraq ən çox bəyəndiyini seçir. Müəllim sadəcə olaraq ona daha yaxın olan nöqteyi-nəzəri çatdırır. Amma kod gözəl yazılsa, alqoritmlər baxımından hər şey aydın, əsaslı və effektiv olsa, hamı faydalanacaq.

  • İT üfüqləri. Kompüter Elmləri üzrə bakalavr pilləsinin məzunu texniki dünyagörüşü inkişaf etmiş, yəqin ki, öz profilini seçmiş hazır mütəxəssisdir. Amma kiçik kursda onun nə edəcəyini bilmirik. O, elmə və ya analitikaya gedə bilər və ya əksinə, hər gün böyük miqdarda kod yaza bilər. Buna görə də tələbəyə İT sahəsində işləməyin bütün aspektləri göstərilməli və bütün alətlərlə tanış edilməlidir. İdeal olaraq, nəzəri kurslardan gələn müəllimlər təcrübə ilə əlaqəni göstərəcəklər (və əksinə).
  • Artım nöqtəsi. Tələbənin özünün maraqlarına uyğundur ki, ifrata varmağa imkan verməsin. “Riyaziyyatçı” və ya “proqramçı” olduğunuzu başa düşmək çətin deyil. Problemi həll edərkən ilk impulsu dinləmək kifayətdir: nə etmək istəyirsən - optimal yanaşma axtarmaq üçün dərsliyə baxın və ya sonradan mütləq faydalı olacaq bir neçə funksiya yazın? Buna əsaslanaraq, siz öyrənmənizin əlavə tamamlayıcı trayektoriyasını qura bilərsiniz.
  • Alternativ bilik mənbələri. Belə olur ki, proqram yaxşı balanslaşdırılmışdır, lakin "Sistem Proqramlaşdırması" və "Alqoritmlər" tamamilə fərqli insanlar tərəfindən öyrədilir və bəzi tələbələr birinci müəllimə, digərləri isə ikinciyə daha yaxındırlar. Ancaq professoru bəyənməsəniz belə, bu, bəzi fənləri başqalarının xeyrinə buraxmaq üçün səbəb deyil. Bakalavrların özləri bilik mənbələri ilə işləmək iradəsini tapmaqda maraqlıdırlar və heç bir halda “riyaziyyat elmlərin kraliçasıdır, əsas odur ki, alqoritmləri bilməkdir” və ya “yaxşı kod hər şeyi kompensasiya edir” kimi radikal fikirlərə etibar etmirlər.

Xüsusi ədəbiyyata və onlayn kurslara müraciət edərək nəzəri cəhətdən biliklərinizi dərinləşdirə bilərsiniz. Bir çox müxtəlif kursların təqdim olunduğu Coursera, Udacity və ya Stepik-də proqramlaşdırma dillərində bacarıqlarınızı təkmilləşdirə bilərsiniz. Həmçinin, tələbələr alqoritm müəlliminin riyaziyyatı yaxşı bildiyini, lakin mürəkkəb tətbiq suallarına cavab verə bilməyəcəyini hiss edərlərsə, tez-tez sərt dil kurslarına baxmağa başlayırlar. Hər kəs mənimlə razılaşmayacaq, amma təcrübəmdə bu, özünü yaxşı sübut etdi Yandex-dən C++ üzrə ixtisas, burada dilin getdikcə daha mürəkkəb xüsusiyyətləri ardıcıl olaraq təhlil edilir. Ümumiyyətlə, nüfuzlu şirkətlərin və ya universitetlərin yüksək reytinqli kursunu seçin.

Yumşaq bacarıqları

Kompüter Elmləri Təhsilindən Ən Yaxşı Necə Yaratmaq olar
Universitetdən istənilən şirkətdə işə, startapdan iri korporasiyaya qədər, hətta ən yaxşı universitetlərin tələbələri özlərini real iş mühitinə zəif uyğunlaşdırırlar. Məsələ burasındadır ki, bu gün universitetlər tələbələrə çox “uşağa baxır”. Çox dərs buraxandan, vaxtında testlərə, sınaqlara hazırlaşmayandan, çox yatdıqdan və ya imtahana gecikəndən sonra da hər kəs imtahandan keçib yenidən imtahan verə bilər - axırda yenə də diplom alır.

Bununla belə, bu gün tələbələrin böyüklər həyatına və müstəqil peşə fəaliyyətinə hazırlanması üçün hər cür şərait var. Onlar təkcə proqramlaşdırmalı deyil, həm də ünsiyyət qurmalı olacaqlar. Və bunu da öyrətmək lazımdır. Universitetlərdə bu bacarıqları inkişaf etdirmək üçün müxtəlif formatlar var, lakin təəssüf ki, onlara çox vaxt lazımi diqqət yetirilmir. Bununla belə, effektiv komanda işi bacarıqları əldə etmək üçün çoxlu imkanlarımız var.

  • Yazılı işgüzar ünsiyyət. Təəssüf ki, universiteti tərk edən məzunların əksəriyyətinin yazışma etiketi haqqında heç bir təsəvvürü yoxdur. Instant messenger-lərdə ünsiyyətin spesifikliyi gecə-gündüz mesaj mübadiləsində və danışıq üslubundan və qeyri-rəsmi lüğətdən istifadə edilməsindədir. Bununla belə, tələbə kafedra və universitetlə əlaqə saxladıqda yazılı nitq öyrətmək mümkün olardı.

    Təcrübədə menecerlər tez-tez böyük bir layihəni kiçik vəzifələrə bölmək ehtiyacı ilə qarşılaşırlar. Bunu etmək üçün hər bir tapşırığı və onun komponentlərini aydın şəkildə təsvir etməlisiniz ki, kiçik tərtibatçılar onlardan nə tələb olunduğunu başa düşsünlər. Zəif müəyyən edilmiş tapşırıq tez-tez bir şeyi yenidən etmək ehtiyacına səbəb olur, buna görə də yazılı ünsiyyət təcrübəsi məzunlara paylanmış komandalarda işləməyə kömək edir.

  • İşinizin nəticələrinin yazılı təqdimatı. Tədris layihələrini təqdim etmək üçün yuxarı kurs tələbələri Habr-da yazılar, elmi məqalələr, həmçinin sadəcə hesabatlar yaza bilərlər. Bunun üçün çoxlu imkanlar var - bəzi universitetlərdə kurs işi ikinci kursdan başlayır. Nəzarət forması kimi esselərdən də istifadə edə bilərsiniz - onlar adətən publisistik məqaləyə formaca daha yaxın olurlar. Bu yanaşma artıq Milli Tədqiqat Universitetinin İqtisadiyyat Ali Məktəbində tətbiq edilib.

    Əgər şirkət inkişafa çevik yanaşma tətbiq edirsə, o, öz işinin nəticələrini daha kiçik hissələrdə, lakin daha tez-tez təqdim etməlidir. Bunun üçün bir mütəxəssisin və ya bütün komandanın işinin nəticələrini qısaca çatdıra bilmək vacibdir. Həmçinin, bu gün bir çox şirkətlər illik və ya yarımillik "nəzarətlər" keçirirlər. İşçilər nəticələri və iş perspektivlərini müzakirə edirlər. Uğurlu baxış karyera yüksəlişinin əsas səbəbidir, bonuslar, məsələn, Microsoft, Acronis və ya Yandex. Bəli, yaxşı proqramlaşdıra bilərsiniz, amma “küncə oturan” hətta sərin mütəxəssis də uğurunu yaxşı təqdim etməyi bilən birinə həmişə uduzacaq.

  • Akademik Yazı. Akademik yazı xüsusi qeyd edilməlidir. Tələbələrin elmi mətnlərin yazılması, arqumentlərdən istifadə, müxtəlif mənbələrdə məlumat axtarmaq və bu mənbələrə istinadların formatlaşdırılması qaydaları ilə tanış olması faydalıdır. Bunu ingilis dilində etmək məqsədəuyğundur, çünki beynəlxalq akademik ictimaiyyətdə daha çox yaxşı mətnlər var və müxtəlif fənlər üçün elmi nəticələrin təqdim edilməsi üçün artıq qurulmuş şablonlar var. Təbii ki, rusdilli nəşrlər hazırlayarkən akademik yazı bacarıqları da lazımdır, lakin ingilis dilində yaxşı müasir məqalələrin nümunələri çox azdır. Bu bacarıqları indi bir çox təhsil proqramlarına daxil olan müvafiq kurs vasitəsilə əldə etmək olar.
  • Aparıcı görüşlər. Tələbələrin əksəriyyəti görüşlərə necə hazırlaşmalı, protokollar aparmalı və məlumatları emal etməyi bilmir. Amma bu bacarığı kollecdə inkişaf etdirsək, məsələn, komanda layihələrində iştirak etməklə, iş yerində vaxt itkisinin qarşısını ala bilərik. Bu, tələbələrə görüşləri necə səmərəli keçirməyi öyrətmək üçün onların layihə işlərinə nəzarət etməyi tələb edir. Praktikada bu, hər bir korporasiyaya çoxlu pul xərcləyir - axır ki, böyük əmək haqqı alan bir neçə nəfər mitinqdə bir saat iş vaxtını keçirirsə, bunun üçün müvafiq gəlirin olmasını istəyirsən.
  • İctimai danışan. Bir çox tələbələr yalnız dissertasiyalarını müdafiə edərkən ictimaiyyət qarşısında çıxış etmək zərurəti ilə üzləşirlər. Və hamı buna hazır deyil. Mən bir çox tələbə görmüşəm ki:
    • arxasını tamaşaçılara tərəf tutaraq,
    • yırğalanır, komissiyanı transa təqdim etməyə çalışır,
    • qələmləri, qələmləri və göstəriciləri sındırmaq,
    • dairələrdə gəzmək
    • döşəməyə baxın.

    Bir insan ilk dəfə çıxış edərkən bu normaldır. Ancaq bu stresslə işləməyə daha erkən başlamalısan - kurs işini dostluq şəraitində, sinif yoldaşların arasında müdafiə etməklə.

    Bundan əlavə, korporasiyalarda standart təcrübə işçiyə ideya təklif etmək və bunun üçün maliyyə, vəzifə və ya xüsusi layihə almaq imkanı verməkdir. Ancaq bu barədə düşünsəniz, bu kurs işinin eyni qorunmasıdır, daha yüksək səviyyədə. Niyə təhsil alarkən belə faydalı karyera bacarıqlarını tətbiq etməyək?

Nə darıxdım?

Bu yazının yazılmasının səbəblərindən biri də, Tümen Dövlət Universitetinin saytında dərc olunub. Məqalə müəllifi yalnız rus tələbələrinin əcnəbi müəllimlər tərəfindən diqqət çəkdiyi çatışmazlıqlara diqqət yetirir. Mənim müxtəlif universitetlərdə dərs deməyim praktikası onu deməyə əsas verir ki, rus məktəbi və ali təhsili yaxşı zəmin yaradır. Rus tələbələri riyaziyyat və alqoritmlərdə fərasətlidirlər və onlarla peşəkar ünsiyyət qurmaq daha asandır.

Xarici tələbələrə gəldikdə isə, əksinə, rus dili müəllimindən gözləntilər bəzən çox yüksək ola bilir. Məsələn, riyaziyyat baxımından əsas hazırlıq səviyyəsində tanış olduğum hind tələbələri rus tələbələrinə bənzəyir. Bununla belə, onlar bakalavr təhsilini bitirdikdə bəzən xüsusi biliklərə malik olmurlar. Yaxşı avropalı tələbələr, ehtimal ki, məktəb səviyyəsində daha az güclü riyaziyyat biliklərinə malikdirlər.

Əgər siz universitetdə oxuyur və ya işləyirsinizsə, indi ünsiyyət bacarıqları (özünüzün və ya tələbələrinizin) üzərində işləyə, fundamental bazanızı genişləndirə və proqramlaşdırma ilə məşğul ola bilərsiniz. Bunun üçün Rusiya təhsil sistemi bütün imkanları təmin edir - sadəcə olaraq onlardan düzgün istifadə etmək lazımdır.

Yazıya şərhlərdə təhsildə tarazlığı bərabərləşdirməyə kömək edən kurslar və metodlar, eləcə də universitetdə oxuyarkən yumşaq bacarıqları təkmilləşdirməyin digər yolları ilə əlaqənizi paylaşsanız, şad olaram.

Mənbə: www.habr.com

Добавить комментарий