How to Survive Telerik Academy

SEB-Ninja

Вчера беше последният изпит в Академията, а днес излязоха резултатите(взет с отличие,
разбира се). В тази статия ще споделя опитът си с преминаването на курсове, изпити и още много неща, които не ги пише в нюз летърите. Целта ми е да предам малко опит на новозаписаните, както и да получат по-пълна визия за нещата, които им предстоят. Ако на мен имаше кой да ми ги каже тези неща със сигурност щях да използвам времето си по по-различен начин, особено в началото.

Disclaimer: Преди да продължим искам първо да уточня, че програмата в Академията е много динамична и е напълно възможно някои от следващите точки да са с изминала давност, въпреки това не смятам, че някога биха били излишни.

Курсове

telerik-academy-program-april-2013-3Ще е достатъчно да ги обобщя по семестри.   I Semester: В първият(C#1/2, HTML, CSS) се учат основите на програмирането – развиване на начин на мислене и синтаксис на C#. Ако имате някакъв предишен опит в програмирането( какъвто имах аз) силно ви съветвам да не подценявате C#2 след като вземете с отличие C#1. На лекции не стига време да се предаде материал и да се пишат задачи. Ключово е и през двата курса да решавате колкото се може повече задачи в BgCoder, по възможност всичките. Винаги ходете на workshop-и, понеже там се решават много задачи. Не знам дали натъртих достатъчно, затова ще го кажа още веднъж – решавайте задачи. :) Ще ви дадат много важен фундамент за курса по “Структури от данни и алгоритми” и когато в практиката се наложи да напишете нещо по-сложно няма да гледате като небрано лозе. И да, правилно казах “когато”, а не “ако”.                                                                                                                  II Semester: OOP & High-Quality Code – два критично важни курса. Материалът е много интересен и основоположен за всеки стабилен софтуерен инженер. Сред някои колеги цари мнението, че курсът по Качествен програмен код е губене на време, но аз винаги съм му бил върл противник. Двата курса са еднакво важни. Добър код се пише с много старание и ако някой се съмнява може да отвори някое по-сложно домашно от миналите курсове – гледката не е приятна. Трябва да научите принципите на ООП, как да го ползвате, от какво се състоят C# проектите, как се разделя кода и как се пишат читави юнит тестове. Ако дотук не сте си намерили допълнителни източници на информация, време е да започнете да черпите знания и от други места. Учи се и JavaScript.                                                                                III Semester: – От тук времето започва да не ви достига. Структури от данни и алгоритми, и JavaScript Apps. DSA е труден курс и до голяма степен това се дължи на липсата на достатъчно време. Ако сте стигнали дотук дори и да не сте писали на C от голяма полза ще ви бъде книгата Програмиране=++Алгоритми, а C-то ще го разберете. Друга много добра книга за този курс е Data Structures and Algorithms for Game Developers, използва къде-къде по-приятният за четене и писане C++. Игрите стъпват много солидно върху алгоритми и структури от данни, така че не се учудвайте от заглавието. Във всеки случай – решете си всички домашни и се уверете, че знаете как работят нещата. Не мога да пропусна факта, че съм написал 2 статии за хеш-таблици и графи + имплементации, които също можете да използвате. Тук отново е добре да решите всички минали изпити от BgCoder, макар и да са доста тегави ще ви подготвят много добре. Учи се и JavaScript.         IV Semester – От тук вече можете да забравите за съботи и недели: Бази данни и Уеб сървиси(+ cloud). Всички приложения, които работят с данни използват бази данни, а тези които не го правят рано или късно стигат до момент, в който се чупят и минават на бази данни. БД е единственият курс, в който ще ви се наложи да пишете SQL (в рамките на академията), но аз лично благодарение на него осъзнах истинската сила на LINQ, query синтаксиса и силата му при работа с колекции/данни. Важно е добре да разберете принципите които се обясняват на лекции, но трябва да кажа, че това не е и половината от основите, но въпреки че е достатъчно да тръгнат проектите. Има много източници за базите от данни и е добре да разберете разликата между клъстерен индекс и неклъстерен, както и как клъстерният оказва влияние върху другите. Значението на типовете и как се съхраняват данните в таблиците. Учи се и NoSQL бази, но там засега няма нужда да навлизате много навътре, използват се много по-лесно, а и с релационни се работи до края на академията, по всяка вероятност и на живота. Уеб сървисите са много важна част от сървис ориентираните и multi-client приложения, както и разбирането им до голяма степен ще ви подготви за работа с ASP.NET MVC. При тях също така няма толкова много теория и неща, с които да се съобразявате.                                                                                                               V Semester – Тук се чекирате сутрин, обед и вечер, няма да е странно ако и спите в академията: В пети семестър идва големият въпрост Web или Mobile, или и двете? Добре би било вече да имате пристрастия към едното, защото ще направи избора по-лесен. Важно е да се отбележи, че което и да завършите винаги можете да научите и другото където вече придобитите умения никак няма да са в излишък. Аз бях в Web track-а и не веднъж ми е минавало през акъла идеята за win 8 клиент на дадено приложение. Добре би било да проучите и трудовият пазар в момента, понеже това също играе важна роля в бъдещата ви кариера. Относно ASP.NET курсовете мога да кажа, че са по-скоро лесни и нещото, което е по-важно е да влагате много старание в работата. Нещата могат да се изпипват до безкрай, но понякога има огромна разлика, ако отделите 15 минути повече за дадено нещо или ако просто внимавате в картинката от самото начало. Учи се и JavaScript.

Защо да пишем домашните колкото се може по-рано?images

Домашните са много важна част от пребиваването ви в академията и имам чувството, че много хора не осъзнават нещата свързани с тях. Освен очевидното – че при писането им наистина научавате материала, те имат много голямо значение за добрите ви резултати на отборни работи и изпити. Ако не сте си написали всички домашни няма да можете да участвате пълноценно в отборната работа, понеже във всеки курс тя е доста обширна и за да допринесете към проекта трябва да имате знанията, а ако оставите домашните за после те ще станат по-добри от проекта, което е напълно безсмислено за нещо, което се оценява с да/не. Нещо повече – поради краткото време в най-добрият случай имате 1 или 2 дни за подготовка за изпит – наистина ли тогава искате да пишете домашни? Колкото по-бързо се оттървете от тях толкова по-добре, а ако по чудо остане време можете да го използвате да обогатите знанията си с нещо допълнително.

Как да се подготвим за изпит?

aM23ewX_700b_v2Най-добрата техника според мен е да се пресъздаде ситуацията на изпита колкото се може повече пъти. В първите семестри има достатъчно време, за да сядате пред BgCoder за 8 часа в дните преди изпита и просто решавате задачите все едно сте там. Допринася много за правилната психическа нагласа, когато дойде изпитният ден, както и всички възможни грешки, които можете да получите или начини по които да оплескате предаването са добре оттренирани. В по-късните етапи ще имате около 1 ден за подготовка и в общи линии се прави същото, като аз съм склонен да прескоча някои детайли, за да направя по-голяма част от примерното задание, ако нямам време, но това има своите подводни камъни. Във всеки случай трябва да сте много наясно с типът задачи на изпита и просто да знаете какво ви очаква.

Защо трябва да споделяме?

Най-краткият параграф, но може би от най-важните. Много е просто – когато пишете по даден проблем или го дискутирате или помогнете на някого вие помагате не само на другите, но и на себе си. Това ви прави по-голям професионалист и неведнъж ми се е случвало докато обсъждаме или показвам, аз самият да науча нещо. Винаги, когато съм сядал да пиша статия ставам от компютъра с много повече знания, отколкото съм имал. Ако ви остава време определено инвестирайте в това и ще ви се отплати. Завързах контакти с много хора около това, аз станах ценен за тях, както и те за мен.

Други източници на знания

Като за начало винаги знайте, че каквото и да правите, когато и да го правите, винаги,images (1) някой друг е питал преди вас за това в stackoverflow.com. Този сайт ми е спестил безброй часове проба-грешка и не само на мен. Важно е да се научите да си формулирате търсенията правилно, а ако няма резултат просто да зададете въпроса по друг начин. Също така за видео курсове задължителни места са Lynda.com и Pluralsight.com. Имат отлични курсове за начинаещи и теми със средна трудност, но по-важното е че можете да намерите алтернатива на всяка лекция в академията, както и много други теми полезни за дивелъпъри. За електронни книги има твърде много, които трябва да се напишат, но мога лесно да посоча издателствата на O’Reilly и Apress като най-полезни. Винаги търсете алтернативни източници, за да научите нови методологии и похвати.

Time Management

homer-simpson-asleep-at-work1Няколко пъти вече споменах, че времето не стига. Ако искате да извлечете най-много от времето прекарано в академията ще се наложи да приоритизирате задачите си и да сте фокусирани върху тях, за да се справяте. Как точно се прави това зависи от човек до човек и не мога да кажа, какво да правите, но мога да обясня как аз процедирах. За мен лекциите бяха в по-голямата си част губене на време, за последно внимавах на лекция по ООП и не съжалявам за това. Вместо да гледам 5 часа с разбиращ поглед(много съм добър в това), предпочитам веднага да се захвана с домашните и да се сблъскам с конкретен проблем или да потърся знания от другаде. Ако например имам за източник книга много по-бързо мога да я прочета и да взема нужното от нея, отколкото да чакам да се каже нещо на видео. Демата, които идват с лекциите също са много добър начин веднага да разбереш как се случват нещата. Няма съмнение, че на лекция има неща, които са важни и аз по никакъв начин не го отричам, те също имат своите плюсове. Познавам хора, които научаваха много успешно материала само като гледат и слушат, но считам, че за мен е по-добре да прочета и понапиша нещо, а после може и лекцията да попрегледам. Това, което е най-важно е да намерите начин да използвате максимално добре времето спрямо начина, по който на вас ви е удобно за учене и да не се страхувате да експериментирате. В голям плюс е и ако понамалите мързела по-отрано, защото може да не стигнете до късното.

Има ли живот след академията?

Днес е първият ми ден след нея и се чувствам страхотно. От сутринта започнах подготовка по проекта, с който смятам да се захвана в свободното си време, а след обяд почивам, ям банани и пиша тази статия, която отново стана по-дълга от препоръчителното(сефте). Успех на всички захванали се с начинанието да станат софтуерни дивелъпъри, пътят е дълъг, но си заслужава!

Posted in Programming Tagged with: , , , ,

Leave a Reply

Your email address will not be published.