Наръчник за начинаещи: Основи на програмирането и приемен изпит
На всеки му се е случвало да се изправи пред ново предизвикателство. Това не винаги е лесно, а ние не винаги сме безстрашни. Затова за предизвикателството, което ние наричаме курсът ни по „Основи на програмирането“, решихме да ви дадем насоки и съвети, за да се чувствате уверени, когато седнете пред клавиатурата.
Допитахме се до наши топ студенти и лектори от курса Programming Basics и споделяме с вас техния опит, насоки и съвети.
Защо Programming Basics е чудесен курс за начинаещи, без опит в програмирането?
Програмата на Programming Basics е разработена с презумпцията, че по-голямата част от хората, които записват курса, нямат предишен опит в програмирането. Материалът е разделен на малки стъпки, обяснява се с много примери, а в домашните има множество задачи – от лесни, с които човек да навлезе в ритъм, до предизвикателни – за отличниците. Фил Колев, който е топ студент от втория випуск и част от екипа на СофтУни, вижда като преимущество факта, че курсът е по-продължителен, което дава възможност на хората с по-малко свободно време да усвоят взетата материя на добро ниво преди да се предаде нов материал.
Иван Йонков, топ студент от първия випуск и лектор на СофтУни, също споделя мнението си за курса Programming Basics. Според Иван, който работи в ИТ сферата от 2011 г. насам, обучението разглежда програмирането от приложимия му модел, като изгражда у обучаващите се най-важните две неща за по-нататъшната им кариера в софтуерната индустрия – логическо (алгоритмично) мислене и умения за разрешаване на произволни проблеми (problem solving skills).
Един от стипендиантите ни от четвъртия випуск, Тонислав Атанасов, прави паралел на обучението в Софтуерния университет и ВУЗ-овете. Тони споделя, че за разлика от държавните университети, където често се учи по остарели програми и учебници, в СофтУни няма учебници. „Учебникът са преподавателите, асистентите и, разбира се, Stack Overflow и безкрайността на Интернет. Основно мото при програмирането e "Не преоткривай топлата вода", казва Тони. Технологиите в ИТ сферата се променят толкова динамично, че никой учебник не може да е достатъчно актуален.
За Преслав Михайлов, също лектор от Programming Basics, едно от най-полезните неща от курса е ентусиазмът, с който се зарежда човек след него. За него, това е бил един от най-важните курсове, основно защото е спомогнал за изграждане на силни основи за придобиване на нови знания след това.
Александър Апостолов определя атмосферата по време на обучението като „приятна и подстрекаваща въпросите“. Александър е топ студент от третия випуск на СофтУни и асистент в част от курсовете. По време на учебните занятия, освен теория, се включва и много практика – точно във втората част се наместват асистентите, които са готови да помогнат на всеки и да отговорят на всякакви въпроси по задачите за упражнение.
Естественото продължение на Programming Basics – курсът Advanced C# (първият от модул Fundamentals), както и цикълът от обучителни модули в СофтУни, са пряко зависими от знанията и уменията, които курсистите са получили в обучението по Основи на програмирането.
Защо C# е подходящ първи език за програмиране?
C# – Този програмен език, произнасян „си шарп“, е разработен от Microsoft и представен за първи път през 2000 г. Това е и езикът, с който в СофтУни запознаваме студентите с фундаментите на програмирането. Едуард Евлогиев, топ студент от третия випуск и част от екипа на Софтуерния университет, определя C# като модерен език, който позволява на начинаещите да наблегнат върху основни аспекти от програмирането, без да се налага да разбират как точно работят компютрите в дълбочина. Част от предимствата на езика са:
- Интуитивна среда за разработка (Visual Studio);
- Много помощни материали;
- Достатъчно гъвкав, за да се разработват всякакви приложения – т.е. предполага сериозно развитие след началното ниво.
Към този списък, Тони добавя още няколко важни характеристики на програмния език на Microsoft:
- Търсенето на C# програмисти е голямо и специалистите са много добре заплатени. Ако разгледате обявите за работа, ще се убедите сами;
- Силно типизираните езици като C# и Java са по-лесни за научаване, тъй като самият език ограничава възможността на начинаещите да правят грешки.
Фил допълва, че C# е доста добре развит език, с богат набор от инструменти за постигане на различни цели. Той може да бъде използван както за изучаване принципите на обектно-ориентираното програмиране, така и на концепции от функционалното програмиране – два много различни подхода към писането на код.
Как да подходим към материала, който учим в Programming Basics?
Отговорът, който получаваме от всички лектори и студенти, на този въпрос, е еднозначен: сериозно.
Филип казва, че за някои хора записването за подготвителния курс по програмиране е експеримент (да видят дали програмирането им се отдава); за други е ясна стъпка към поставена цел, а именно професия. Във всеки случай, човек трябва да подходи с търпение, любознателност и упоритост. В свят, в който почти всичко около нас се управлява от софтуер, владеенето на умението да програмираш, дори на базово ниво, става почти задължително условие, за да може да се нарече един човек грамотен. В този смисъл курсът е много добър избор от гледна точка на личностното развитие, независимо дали писането на код е или ще бъде част от работата на студентите в бъдеще.
За успешното усвояване на материята е нужно огромно посвещаване на личното време, особено ако сте напълно начинаещи. Изисква се сериозно отношение, но Иван дава следния съвет: подходете към обучението като към игра и/или състезание и ще видите, че ученето ще ви е по-приятно и интересно.
Като лектор на вече няколко курса по Основи на програмирането, Преслав забелязва, че много хора се фокусират върху това да си вземат изпита, а не да научат материала. Неговият съвет е, за да се вземе максималната добавена стойност, да не се пренебрегват домашните и да се бори човек с всяка една задача. За това ще се наложи човек да придобие нови знания извън рамките на курса, но пък ще се изгради като качествен програмист.
В началото всичко изглежда неразбираемо, дори няколко реда код ни се струват прекалено сложни като концепция. Според Едо, с постоянство се запълват дупките в познанията и се развива логическото мислене, докато в един момент започнем сами да пишем програмите си.
Тони определя програмирането по интересен начин: „Писането на код е като да имаш бездънна торба с всякакви парчета ЛЕГО. Можеш да направиш всичко, за което си помислиш. От теб зависи дали ще построиш небостъргач или разпадаща се барака.“
Откъде да решаваме задачи за упражнение?
Упражненията и домашните от курсовете в СофтУни са така подбрани, че да помогнат на студентите да усвоят материала. Затова е важно да започнем от решаването на домашните най-напред. Когато един кандидат-програмист се почувства достатъчно в свои води, може да започне да решава задачи от изминали изпити. В Judge системата има над 30 изпита по Programming Basics, които тестват всички теми от преподавания материал и освен това упражняват и логическото мислене.
Атанас Русенов, лектор на СофтУни, препоръчва и решаване на математически задачи от https://projecteuler.net/, освен писането на домашните и решаването на задачи в Judge системата. Постоянното търсене на нови и непознати подходи и неща в Google е също важна част от ежедневието на един програмист. Както вече споменахме, форумът Stack Overflow е важен източник на знания за всеки ИТ специалист.
Тони съветва: “Поставяйте си все по-трудни задачи, усложнявайте вече решените, пробвайте различни решения. Четете, пишете, трийте, търсете в Google, четете, пишете...”
Как да се подготвим най-добре за приемния изпит?
Няма по-добра подготовка от решаването на задачи от предишни изпити. Студент, който може да се справи сам с 70% от задачите, няма повод за никакви притеснения относно представянето си.
Едо дава добра идея – след като една задача бъде решена самостоятелно, да се погледне и авторското решение. Така може да се научат доста полезни техники за справяне с даден тип проблем.
Приемният изпит изисква от студентите стабилна подготовка, която обсъдихме по-горе, както и трезва преценка за времето и възможностите. Ако на дадена задача, студентите вземат по-малко от максималния брой точки и не знаят къде им е грешката, би било най-добре да продължат напред с решаването на следващата задача, където също да изкарат точки, вместо да убият времето до края на изпита за взимането на останалите, например 30, точки от текущата задача. Иван съветва да се правят регулярни почивки, тъй като те също са фактор за добро представяне и предотвратяват т.нар. burnout.
Според Преслав е важно да се изгради стабилно алгоритмично мислене чрез решаване на разнообразни задачи, а не механизъм за решаване на конкретен тип задачи.
Формулата за успех според Тони е следната: Код. Много код. Решавайте изпитни задачи. Идвайте на подготовките за изпит. Идвайте, когато имате свободно време и решавайте задачи заедно с приятели. Идвайте на менторските сбирки на вашата или друга група, питайте, четете, пишете. И нещо изключително важно – не забравяйте да си почивате! Правете си регулярни почивки, разсейвайте се. Ако се затрудните на някоя задача, починете си, разходете се. После пробвайте пак, изтрийте написаното и почнете наново. Потърсете идеи в Интернет. Питайте приятел.
Съвет към всички кандидат-студенти (начинаещи в програмирането)
Сашо събира целия си опит в следния съвет към кандидат-студентите в курса Programming Basics: „Не изпускайте лекции, пишете си домашните, оценявайте чуждите, за да виждате нови видове грешки и видове код, решете всички изпитни задачи. Като цяло, не си представяйте, че сте в училище или в университета. Това е нещо изцяло ново, дайте му всичко и ще получите всичко.“
Едо е минал съм по същия път, по който всеки месец поемат стотици хора, и знае много добре, че нещата понякога може да изглеждат невъзможни и безнадеждни. Съветът му е никой никога да не се предава – рано или късно винаги има просветване и така наречения „Аха!” момент. :)
Най-важно е да не губите ентусиазъм, за да се справите с предизвикателствата, които предстоят. Преслав предупреждава: „Пригответе се за много нощи, изпълнени със сънища за матрици и битове.“
Ако и вие искате да се впуснете в приключението, наречено „Основи на програмирането“, не пропускайте да се запишете за следващия безплатен курс от тук.