Информатика бойынша білімнен қалай барынша пайда алуға болады

Қазіргі заманғы бағдарламашылардың көпшілігі жоғары оқу орындарында білім алды. Уақыт өте келе бұл өзгереді, бірақ қазір IT-компаниялардағы жақсы кадрлар әлі де университеттерден келеді. Бұл жазбада Acronis университетімен байланыс жөніндегі директоры Станислав Протасов болашақ бағдарламашылар үшін университеттік оқыту ерекшеліктері туралы өзінің көзқарасы туралы әңгімелейді. Мұғалімдер, студенттер және оларды жұмысқа алатындар тіпті қысқаша пайдалы кеңестерді таба алады.

Информатика бойынша білімнен қалай барынша пайда алуға болады

Соңғы 10 жылда мен әртүрлі университеттерде математикадан, алгоритмдерден, бағдарламалау тілдерінен және машиналық оқытудан сабақ бердім. Бүгінгі күні мен Acronis-тегі лауазымыммен қатар, MIPT-те теориялық және қолданбалы информатика кафедрасы меңгерушісінің орынбасарымын. Ресейдің жақсы (тек қана емес) университеттерінде жұмыс істеген тәжірибемнен мен студенттерді компьютерлік пәндер бойынша дайындауға қатысты кейбір бақылаулар жасадым.

30 секунд ережесі енді жұмыс істемейді

Бағдарламашы оның кодын жылдам қарап шыққаннан кейін функцияның мақсатын түсінуі керек деген 30 секунд ережесін кездестіргеніңізге сенімдімін. Ол көп уақыт бұрын ойлап табылды, содан бері көптеген операциялық жүйелер, тілдер, аппараттық құралдар және алгоритмдер пайда болды. Мен 12 жыл бойы код жазып келемін, бірақ салыстырмалы түрде жақында бір өнімнің бастапқы кодын көрдім, ол бір қарағанда маған сиқырлы заклинание сияқты көрінді. Бүгін, егер сіз тақырыптық аймаққа енбесеңіз, 30 секунд ережесі жұмысын тоқтатады. Әйтпесе, не екенін анықтау үшін 30 ғана емес, 300 секунд та жеткіліксіз.

Мысалы, драйверлерді жазғыңыз келсе, осы аймаққа еніп, нақты кодтың мыңдаған жолдарын оқуыңыз керек. Пәнді зерделеудің бұл тәсілімен маманда «ағым сезімі» қалыптасады. Рэптегідей, жақсы рифма мен дұрыс ырғақ сезімі ерекше рационализациясыз пайда болған кезде. Сол сияқты, жақсы дайындалған бағдарламашы стиль бұзылған немесе оңтайлы емес тәсіл қолданылғанын егжей-тегжейлі зерттеуге бармай-ақ тиімсіз немесе жай ғана нашар кодты оңай тани алады (бірақ бұл сезімді түсіндіру өте қиын болуы мүмкін).

Мамандандыру және өсіп келе жатқан күрделілік бакалавриат білімі барлық салаларды жеткілікті тереңдетіп оқуға мүмкіндік бермейді. Бірақ дәл осы білім деңгейінде адамның дүниетанымы болуы керек. Содан кейін, аспирантурада немесе жұмыста сізге біраз уақытты пәндік саланың мәселелері мен ерекшеліктеріне енуге, сленгтерді, бағдарламалау тілдерін және әріптестер кодын оқуға, мақалалар мен кітаптарды оқуға жұмсауға тура келеді. Менің ойымша, бұл университеттің көмегімен болашаққа «шыбықты көтерудің» жалғыз жолы. Т-тәрізді мамандар.

Университетте қандай бағдарламалау тілін оқыту тиімді?

Информатика бойынша білімнен қалай барынша пайда алуға болады
Менің қуанышым, университет оқытушылары «Бағдарламалау үшін ең жақсы тіл қандай?» деген сұраққа дұрыс жауап іздеуден бас тартты. Қайсысы жақсы - C# немесе Java, Delphi немесе C++ - туралы пікірталас іс жүзінде жойылды. Көптеген жаңа бағдарламалау тілдерінің пайда болуы және педагогикалық тәжірибенің жинақталуы академиялық ортада қалыптасқан түсінікке әкелді: әр тілдің өз тауашасы бар.

Бір немесе басқа бағдарламалау тілін пайдалана отырып оқыту мәселесі басымдық болудан қалды. Курстың қай тілде оқытылатыны маңызды емес. Ең бастысы - тілдің жеткілікті экспрессивтілігі. кітап»Көппроцессорлық бағдарламалау өнері” бұл бақылаудың жақсы көрінісі. Бұл қазіргі классикалық басылымда барлық мысалдар Java тілінде берілген – көрсеткіші жоқ, бірақ қоқыс жинағышы бар тіл. Java жоғары өнімді параллель кодты жазу үшін оңтайлы таңдаудан алыс екеніне ешкім дауласуы екіталай. Бірақ тіл кітапта берілген ұғымдарды түсіндіруге қолайлы болды. Тағы бір мысал - классикалық машинаны оқыту курсы Эндрю Нна, Матлабта октава ортасында сабақ берді. Бүгін сіз басқа бағдарламалау тілін таңдай аласыз, бірақ идеялар мен тәсілдер маңызды болса, оның шын мәнінде қандай айырмашылығы бар?

Неғұрлым практикалық және шындыққа жақын

Сонымен қатар, соңғы жылдары жоғары оқу орындарында практиктер көбейіп кетті. Егер бұрын ресейлік университеттердің бағдарламалары шындықтан алшақ деп белсенді түрде сынға алынса, бүгінде IT-білім туралы бұлай айту мүмкін емес. 10 жыл бұрын жоғары оқу орындарында нақты салалық тәжірибесі бар оқытушылар жоқтың қасы. Қазіргі уақытта мамандандырылған кафедрада сабақтарды күндізгі информатика пәнінің мұғалімдері емес, негізгі жұмысынан бос уақытында 1-2 курстан ғана сабақ беретін тәжірибелік IT мамандары жиі өткізеді. Бұл тәсіл жоғары сапалы кадрларды дайындау, курстарды жаңарту және, әрине, компанияда әлеуетті қызметкерлерді іздеу тұрғысынан өзін ақтайды. Мен MIPT-те негізгі бөлімді қолдаймыз және басқа университеттермен, соның ішінде Acronis-те мансабын бастай алатын студенттерді дайындау үшін қарым-қатынас орнатамыз деп құпияны ашамын деп ойламаймын.

Математик немесе программист?

Информатика бойынша білімнен қалай барынша пайда алуға болады
Бұрын бағдарламалау тілдерінің айналасында болған қасиетті соғыстар философиялық бағытқа көшті. Қазір «бағдарламашылар» мен «математиктер» дегендер бір-бірімен айтысып жатыр. Негізінде, бұл мектептерді екі білім беру бағдарламасына бөлуге болады, бірақ сала мұндай нәзіктіктерді әлі де ажырата алмайды, ал университеттен университетке дейін бізде сәл басқаша бағытталған білім бар. Бұл студент те, ол жұмыс істейтін компания да білім жұмбағын жетіспейтін бөліктермен толықтыруы керек дегенді білдіреді.

Университеттерде әртүрлі тілдерде өндірістік код жазатын практиктердің пайда болуы студенттерге жақсы даму дағдыларын береді. Стандартты кітапханаларды, фреймворктарды және бағдарламалау әдістерін енгізуді жақсы меңгерген тәжірибелі программистер студенттерде жақсы код жазуға, оны тез және сапалы орындауға деген ұмтылысты оятады.

Бұл пайдалы дағды кейде дөңгелекті қайта ойлап табуды ұнататындардың пайда болуына әкеледі. Бағдарламалау студенттері былай деп ойлайды: «Мәселені бірден шешетін жақсы кодтың тағы 200 жолын жазуым керек пе?»

Классикалық математикалық білім алған мұғалімдер (мысалы, математика немесе қолданбалы математика факультетінен) көбінесе псевдоғылыми ортада немесе модельдеу және деректерді талдау саласында жұмыс істейді. «Математиктер» информатика саласындағы мәселелерді басқаша көреді. Олар ең алдымен кодпен емес, алгоритмдермен, теоремалармен және формальды модельдермен жұмыс істейді. Математикалық тәсілдің маңызды артықшылығы нені шешуге болатынын және нені шешуге болмайтынын нақты іргелі түсіну болып табылады. Және оны қалай шешуге болады.

Тиісінше, математика мұғалімдері бағдарламалау туралы теорияға бейімділікпен айтады. «Математиктерден» шыққан студенттер жиі ойластырылған және теориялық жағынан жоғары шешімдерді ұсынады, бірақ әдетте лингвистикалық тұрғыдан оңтайлы емес және көбінесе жай ғана ұқыпсыз жазылған. Мұндай оқушы өзінің басты мақсаты осындай есептерді принципті түрде шешу қабілетін көрсету деп есептейді. Бірақ іске асыру сәтсіз болуы мүмкін.

Мектепте немесе алғашқы жылдарында бағдарламашы ретінде тәрбиеленген балалар өздерімен бірге «өте әдемі велосипедті» әкеледі, бірақ әдетте асимптоталық түрде өте тиімді жұмыс істемейді. Керісінше, олар әдемі кодқа басымдық беріп, оңтайлы шешімдерді іздеуде терең теориялық және оқулықтарға жүгіну міндетін қоймайды.

Әртүрлі университеттерде студенттермен сұхбат кезінде мен оның білімінің негізінде қандай «мектеп» жатқанын көремін. Ал мен негізгі білім беруде мінсіз тепе-теңдікті ешқашан кездестірген емеспін. Бала кезімде менің қаламда математикадан олимпиадаға дайындалуға болатын еді, бірақ бағдарламалау үйірмелері болмады. Енді үйірмелерде балалар «сәнді» Go және Python тілдерінде бағдарламалауды үйренеді. Сондықтан жоғары оқу орындарына түсу деңгейінде де тәсілдерде айырмашылықтар бар. Университетте екі дағдыны да сақтау маңызды деп есептеймін, әйтпесе не теориялық негізі жеткіліксіз маман, не үйренбеген және жақсы код жазуды қаламайтын адам компанияға жұмысқа келеді.

Болашаққа қалай «айқастарды сорғызуға» болады Т-тәрізді мамандар?

Информатика бойынша білімнен қалай барынша пайда алуға болады
Мұндай жағдайда студент өзіне ұнайтын нәрсені таңдайтыны анық. Мұғалім жай ғана өзіне жақын көзқарасты жеткізеді. Бірақ код әдемі жазылса, ал алгоритмдер тұрғысынан бәрі түсінікті, ақылға қонымды және тиімді болса, барлығына пайда әкеледі.

  • IT көкжиектері. «Информатика» мамандығы бойынша бакалавриат түлегі – техникалық дүниетанымы дамыған дайын маман, ол өз профилін таңдаған шығар. Бірақ кіші курста оның не істейтінін білмейміз. Ол ғылымға немесе аналитикаға кіре алады, немесе, керісінше, күн сайын орасан зор код жаза алады. Сондықтан студентке IT саласындағы жұмыстың барлық аспектілерін көрсетіп, барлық құралдармен таныстыру қажет. Ең дұрысы, теориялық курстардың мұғалімдері практикамен байланысын көрсетеді (және керісінше).
  • Өсу нүктесі. Шектен шығуға жол бермеу – оқушының өз мүддесі. Сіз «математик» немесе «бағдарламашы» екеніңізді түсіну қиын емес. Мәселені шешу кезінде бірінші импульсті тыңдау жеткілікті: сіз не істегіңіз келеді - оңтайлы тәсілді іздеу үшін оқулықты қараңыз немесе кейінірек пайдалы болатын бірнеше функцияларды жазыңыз ба? Осының негізінде сіз өзіңіздің оқуыңыздың қосымша траекториясын құра аласыз.
  • Баламалы білім көздері. Бағдарлама жақсы теңдестірілген, бірақ «Жүйелік бағдарламалау» және «Алгоритмдерді» мүлдем басқа адамдар оқытады, ал кейбір студенттер бірінші мұғалімге, ал басқалары екіншісіне жақынырақ. Бірақ сіз профессорды ұнатпасаңыз да, бұл кейбір пәндерді басқалардың пайдасына елемеуге себеп емес. Бакалаврлардың өздері білім көздерімен жұмыс істеу ерік-жігерін табуға мүдделі және ешбір жағдайда «математика - ғылымдардың патшайымы, бастысы - алгоритмдерді білу» немесе «жақсы код қалғанының бәрін өтейді» сияқты радикалды пікірлерге сенбейді.

Арнайы әдебиеттерге және онлайн курстарға жүгіну арқылы теориялық біліміңізді тереңдете аласыз. Сіз көптеген түрлі курстар ұсынылған Coursera, Udacity немесе Stepik-те бағдарламалау тілдеріндегі дағдыларыңызды жетілдіре аласыз. Сондай-ақ, студенттер алгоритм мұғалімінің математиканы жақсы білетінін, бірақ іске асырудың күрделі сұрақтарына жауап бере алмайтынын сезсе, қатты тіл курстарын қарай бастайды. Менімен бәрі келіспейді, бірақ менің тәжірибемде ол өзін жақсы дәлелдеді Яндекстен C++ тілінде мамандану, онда тілдің барған сайын күрделі ерекшеліктері рет-ретімен талданады. Жалпы, беделді компаниялардың немесе университеттердің рейтингі жоғары курсты таңдаңыз.

Жұмсақ дағдылар

Информатика бойынша білімнен қалай барынша пайда алуға болады
Университеттен кез келген компанияда, стартаптан ірі корпорацияда жұмыс істеуге келгенде, тіпті үздік университеттердің студенттері өздерін нақты жұмыс ортасына нашар бейімдейді. Өйткені, бүгінде университеттер студенттерге «бала күтеді». Талай сабақтан қалса да, тестілеуге, тестілеуге уақытында дайындалмай, ұйықтап немесе емтиханға кешігіп келсе де, әркім оны тапсырып, қайта тапсыра алады – соңында бәрібір диплом алады.

Дегенмен, бүгінгі таңда студенттердің ересек өмірге және өз бетінше кәсіби қызметке дайын болуына барлық жағдай жасалған. Олар тек бағдарлама жасап қана қоймай, қарым-қатынас жасауы керек болады. Және мұны да үйрету керек. Университеттерде бұл дағдыларды дамытудың әртүрлі форматтары бар, бірақ, өкінішке орай, оларға көп көңіл бөлінбейді. Дегенмен, бізде тиімді командалық жұмыс дағдыларын алуға көптеген мүмкіндіктер бар.

  • Жазбаша іскерлік байланыс. Өкінішке орай, университетті бітіретін түлектердің көпшілігі сырттай хат алмасу этикасы туралы түсініксіз. Жедел мессенджерлердегі коммуникацияның ерекшелігі күндіз-түні хабарлама алмасуда және сөйлесу стилі мен бейресми лексиканы пайдалануда. Дегенмен, студент кафедрамен және университетпен байланысқан кезде жазбаша сөйлеуді үйретуге болады.

    Іс жүзінде менеджерлер үлкен жобаны шағын тапсырмаларға бөлу қажеттілігімен жиі кездеседі. Ол үшін кіші әзірлеушілер олардан не талап етілетінін түсінуі үшін әрбір тапсырманы және оның құрамдастарын нақты сипаттау керек. Нашар анықталған тапсырма көбінесе бір нәрсені қайталау қажеттілігіне әкеледі, сондықтан жазбаша қарым-қатынас тәжірибесі түлектерге бөлінген топтарда жұмыс істеуге көмектеседі.

  • Жұмыс нәтижелерін жазбаша түрде көрсету. Жоғары курс студенттері өздерінің білім беру жобаларын ұсыну үшін Habr сайтында посттар, ғылыми мақалалар, сонымен қатар жай есептер жаза алады. Бұл үшін көптеген мүмкіндіктер бар - кейбір университеттерде курстық жұмыс екінші курста басталады. Бақылау нысаны ретінде эсселерді де пайдалануға болады – олар әдетте публицистикалық мақалаға нысаны жағынан жақынырақ. Бұл тәсіл Ұлттық зерттеу университетінің Экономика жоғары мектебінде қазірдің өзінде енгізілген.

    Егер компания дамудың икемді тәсілін қолданатын болса, ол өз жұмысының нәтижелерін кішірек бөліктерде, бірақ жиірек ұсынуы керек. Ол үшін бір маманның немесе бүкіл ұжымның жұмысының нәтижесін қысқаша жеткізе білу маңызды. Сондай-ақ, бүгінде көптеген компаниялар жыл сайынғы немесе жартыжылдық «шолулар» жүргізеді. Қызметкерлер нәтижелер мен жұмыс перспективаларын талқылайды. Сәтті шолу - мансаптық өсудің негізгі себебі, бонустар, мысалы, Microsoft, Acronis немесе Yandex. Иә, сіз жақсы бағдарламалай аласыз, бірақ «бұрышта отыру» тіпті керемет маман әрқашан өз табысын жақсы көрсетуді білетін адамға ұтылады.

  • Академиялық жазу. Академиялық жазуды ерекше атап өту керек. Студенттерге ғылыми мәтіндерді жазу, аргументтерді қолдану, әртүрлі дереккөздерден ақпаратты іздеу және осы дереккөздерге сілтемелерді пішімдеу ережелерімен танысу пайдалы. Мұны ағылшын тілінде жасаған жөн, өйткені халықаралық академиялық қоғамдастықта жақсы мәтіндер көп және әртүрлі пәндер үшін ғылыми нәтижелерді ұсынуға арналған үлгілер бар. Әрине, орыс тілді басылымдарды дайындау кезінде академиялық жазу дағдылары да қажет, бірақ ағылшын тіліндегі жақсы заманауи мақалалардың мысалдары әлдеқайда аз. Бұл дағдыларды қазіргі уақытта көптеген білім беру бағдарламаларына енгізілген тиісті курс арқылы алуға болады.
  • Жетекші кездесулер. Оқушылардың көпшілігі жиналыстарға дайындалуды, хаттамаларды алуды және деректерді өңдеуді білмейді. Бірақ егер біз бұл дағдыны колледжде дамытсақ, мысалы, командалық жобаларға қатысу арқылы біз жұмыс орнында уақытты босқа өткізуден аулақ бола аламыз. Бұл студенттерді жиналыстарды тиімді өткізуге үйрету үшін жобалық жұмыстарын қадағалауды талап етеді. Іс жүзінде бұл әр корпорацияға көп ақша жұмсайды - ақыр соңында, егер үлкен жалақы алатын бірнеше адам митингіде бір сағат жұмыс уақытын өткізсе, сіз оған сәйкес кіріс болғанын қалайсыз.
  • Көпшілікке сөйлеу. Көптеген студенттер дипломдық жұмысты қорғау кезінде ғана көпшілік алдында сөйлеу қажеттілігіне тап болады. Және бәрі бұған дайын емес. Мен көптеген студенттерді көрдім:
    • аудиторияға арқасымен тұру,
    • теңселіп, комиссияны трансқа енгізуге тырысып,
    • қаламдарды, қарындаштарды және меңзерлерді сындырыңыз,
    • шеңбер бойымен жүру
    • еденге қараңыз.

    Бұл адам бірінші рет орындаған кезде қалыпты жағдай. Бірақ бұл стресспен жұмысты ертерек бастау керек - курстық жұмысты достық атмосферада, сыныптастарыңыздың арасында қорғау арқылы.

    Сонымен қатар, корпорациялардағы стандартты тәжірибе қызметкерге идея ұсынып, оған қаржыландыру, лауазым немесе арнайы жоба алу мүмкіндігін беру болып табылады. Бірақ, егер сіз бұл туралы ойласаңыз, бұл курстық жұмыстың бірдей қорғанысы, тек жоғары деңгейде. Неге оқу кезінде осындай пайдалы мансап дағдыларын қолданбасқа?

Мен нені сағындым?

Бұл жазбаны жазуға себеп болған мақала, Түмен мемлекеттік университетінің сайтында жарияланған. Мақала авторы шетелдік оқытушылар байқаған ресейлік студенттердің кемшіліктеріне ғана тоқталған. Әртүрлі университеттердегі сабақ беру тәжірибесі орыс мектебі мен жоғары оқу орындарының жақсы негіз болатынын көрсетеді. Орыс студенттері математика мен алгоритмдерді меңгереді және олармен кәсіби қарым-қатынас орнату оңайырақ.

Шетелдік студенттерге келсек, керісінше, орыс мұғалімінің үміті кейде тым жоғары болуы мүмкін. Мысалы, математика бойынша базалық дайындық деңгейінде мен кездестірген үнді студенттері орыстарға ұқсайды. Алайда, олар кейде бакалавриатты бітірген кезде арнайы білімнен айырылады. Жақсы еуропалық студенттердің мектеп деңгейінде математикалық білімі төмен болуы мүмкін.

Ал егер сіз университетте оқысаңыз немесе жұмыс істесеңіз, енді сіз коммуникациялық дағдылармен (өзіңіздің немесе студенттеріңіздің) жұмыс істей аласыз, іргелі базаңызды кеңейтіп, бағдарламалауды үйрене аласыз. Ол үшін ресейлік білім беру жүйесі барлық мүмкіндіктерді береді – тек оларды дұрыс пайдалану керек.

Егер сіз жазбаға түсініктемелерде білім берудегі тепе-теңдікті теңестіруге көмектесетін курстар мен әдістерге, сондай-ақ университетте оқу кезінде жұмсақ дағдыларды жақсартудың басқа әдістеріне сілтемелеріңізді бөліссеңіз, мен қуаныштымын.

Ақпарат көзі: www.habr.com

пікір қалдыру