Обзор на курса по С# Част 2 (есен 2013) и класиране

Telerik Academy Logo

Telerik Academy Logo

Преди малко повече от седмица приключи курсът по C#2 за пролетния прием на 2013 г., в който участвах и аз. В продължение на малко повече от два месеца надграждахме наученото по C#1 и се запознахме задълбочено с многомерните масиви, методите, обработката на изключения, работата с текстови файлове и текстообработката.

Като част от обучението ни трябваше да участваме и в екипен проект, целта на който беше разработването на конзолна игра. За нея подробно съм написал в една от предишните ми публикации.

Паралелно с курса по C#2 участвахме и в курса по „Споделяне на знания и работа в екип“. Към него също имахме отборна задача, за която вече писах в една от предишните публикации в блога ми. Освен нея други от задачите ми в рамките на курса включваха създаването на лично хранилище за домашните и проектите ми (избрах за тази цел GitHub), писането на Есе за софтуерни инженери, рисуването на мисловна карта и разбира се – съставянето на собствен блог.

Големият финал беше изпитът по C#2. Определян от мнозина, вече минали през него курсисти, като един от най-трудните в цялото обучение, резултатът по него щеше да бъде особено важен за мен, за да преценя дали имам качествата да се занимавам сериозно с програмиране. Подготовката ми за изпита се състоеше в решаване на изпитни задачи, давани на предходните курсове. Поради сложността на материята не успях да прегледам и реша всички. Все пак останах доволен от подготовката си и си поставих като разумна цел изкарването на поне 300 точки (от 500) и малко отгоре.

Изпитът се проведе на 14-ти септември. Записах се в сутрешната група. 5 задачи за 6 часа. Една на тема бройни системи, една по-лесна с масиви, една в тримерното пространство, една задача с акцент върху работата със стрингове и една по-трудна („за шампиони“, както обичат да казват лекторите). Изпитът за мен протече добре. Изкарах 324 т., колкото горе-долу си бях поставил за цел. Реших изцяло първата, втората и четвъртата задача и малко от петата. Третата затрудни както мен, така и повечето колеги и на нея не регистрирах никакви точки. В крайна сметка резултатът ми стигна да се класирам на 13-та позиция в моя поток. Средният резултат за изпита беше 164 т., а максималният постигнат – 467.Image

Генералното класиране излезе на 18-ти септември и бе още по-благосклонно към мен. С радост и гордост установих, че се класирам 5-и! Преди мен се класираха двама мои приятели – Мартин Николов на първо място и Стефан Върбанов – на четвърто. Високият резултат ме убеди, че трябва да се отнасям още по-сериозно към обучението си.Image

Какво предстои? Следващата дисциплина, която ще изучаваме, е Обектно-ориентирано програмиране, изпитът по която ще е в началото на декември.

До нови срещи!

Софтуерната академия на Телерик

Telerik Academy Logo

Telerik Academy Logo

Скъпи читатели!

Вече 5 месеца съм част от Софтуерната академия на Телерик, която предлага безплатно обучение за професията Софтуерен инженер. Програмата е напълно подходяща за начинаещи (какъвто бях и аз – а в момента съм сред курсистите с най-високи резултати). Затова приканвам всеки от вас, който има интерес да научи нещо в областта на програмирането да помисли сериозно за тази страхотна възможност и да се свърже с мен, за да му обясня подробно. Да бъдеш част от Академията е истинско удоволствие. Там не само ти предлагат сериозно обучение на високо ниво, но и възможността да попаднеш в едно общество от преподаватели и студенти, изградено върху принципите на споделянето на знания, взаимопомощ и силна мотивация за развитие!

IT секторът продължава да е един от най-бързоразвиващите се сектори в целия свят. Търсенето на квалифицирани кадри в България е огромно. Отворете произволен сайт за търсене на работа и вижте първите няколко страници с обяви за свободни места. Редовно правя този експеримент и никога не оставам разочарован – повече от половината свободни позиции са свързани с работа като софтуерен инженер – developer, QA, support. Нужно ли е да споменавам и високите възнаграждения?

Цялото обучение продължава една година. Залягането над материала е здраво. Най-добрите завършват и гарантирано започват работа в IT сектора. А най-добрите от най-добрите получават предложение за интервю за работа в Телерик – една от най-големите фирми за разработка на софтуер в България.

За повече информация можете да погледне тази инфографика: http://academy.telerik.com/academy/infographics

Прием има всяка есен и всяка пролет. Кампанията по кандидатстване за есенния прием е отворена и в момента! Ако смятате, че имате нужда от повече време за подготовка, съветвам ви да кандидатствате за пролетния прием, защото там темпото на обучение в началото е по-ниско.

Отново повтарям – обучението е напълно безплатно. Уловка няма. Пишете ми – с радост ще отговоря на всичките ви въпроси!

Ако решите да кандидатствате – пишете ми, за да знам, че съм успял да ви запаля. Ще се радвам при регистрацията ви сайта на Академията да ме посочите като референт с потребителското ми име – easlavov .

Конзолната игра на Team „Piglet“ – проект към Софтуерната академия на Телерик

Team Piglet In-game Logo

Pig Invaders

Pig Invaders е играта, която аз и моят отбор Team Piglet създадохме като част от обучението ни в Софтуерната академия на „Телерик“ по курса C# Част Втора. Ще споделя накратко как протече процесът по разработката й.

0. Отборът

Членовете на отбор „Прасчо“ бяха определени служебно от Академията. Състоеше се от пет души от различни възрастови групи и с различен опит в програмирането. От тях активно участие взехме трима – аз, Асен Радушев и Галя Тодорова.

1. Задача

Задачата ни беше да разработим конзолна игра. Параметрите на заданието могат да бъдат прочетени тук: ЗАДАНИЕ

2. Първа среща

Решихме да се видим на живо, за да обсъдим каква игра да създадем. Срещата се проведе в сградата на Софтуерната академия. Разбрахме се да направим Space Invaders игра. За комуникация щяхме да използваме Скайп и Google+ група.

3. Архитектура

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

Разделих логически проекта на няколко класа: Main, Events, Ships, Weapons и Settings. След което написах механиките за движение на кораба на играча, генериране на противникови кораби, стрелба. По-късно добавих и механика за попадение. Генерираните кораби реших да съхраняваме в лист от int масиви (List<int[]>). Всеки елемент от този масив щеше да съхранява друг масив, в който щеше да се съдържа информацията за характеристиките на всеки кораб. Тези характеристики включват визуален модел, хоризонтална и вертикална позиция, измерения на кораба по хоризонтала и вертикала – общо 5 елемента. При унищожаване на кораб се премахва съответният елемент от листа. Нулевият елемент е корабът на играча, останалите – противниковите.

Моделите на корабите реших да съхраняваме в матрица от символи. Това улесняваше написването на нови модели кораби.

Накрая написах и кода за поведението на противниците, който се базираше на .NET класа Random. Всеки противников кораб действаше самостоятелно от останалите. Възможните действия на един противников кораб в рамките на един цикъл бяха четири (две действия и две бездействия) – да промени или запази позицията си и да стреля или не.

4. Визуална част и озвучение

С тези два компонента се захвана съотборникът ми Асен. Той написа интрото на играта, както и интерфейсът за избор на кораб. Те използват външни текстови файлове. Освен това и създаде всички модели на кораби. Добави още звуци при стрелба и експлозия на противник, а също и анимация за експлозиите. Благодарение на него играта вече беше по-впечатляваща – и като визия, и като звук.

Интерфейс за избор на кораб

5. Други благинки

Съотборникът ми Галя имплементира пауза, scoring система, механика за съхраняване на резултатите във външен текстов файл и in-game меню. Благодарение на старанието й успяхме да отстраним и редица бъгове.

Играчът може да избира с колко живота да започне, както и срещу колко противници да играе.

6. Защитата на проекта

… пред жури от Академията премина успешно и отборът ни получи максималните 11 точки!

Снимка от играта

7. Бъдещето на проекта

Единственото, което ме дразни в играта, е, че моделите треперят на екрана. Това е резултат от метода Console.Clear(); Възнамерявам по-нататък, когато имам повече време, да намеря разрешение на този дразнещ проблем. Освен това могат да бъдат добавени още много възможности – различни нива, босове, нови оръжия, power-ups и други.

8. Ресурси

Кодът

Играта

Документация

Презентационен файл

Отбор „English Test“ – какво създадохме и как

telerik-academy-logoЗдравейте!

На 6.09.2013 г. успешно приключи проектът на отбор „English Test“, който имаше за задача да състави примерни тестове и ръководство за подготовка по английски език за входния изпит на Софтуерната академия на „Телерик“ като част от задължителния курс „Споделяне на знания и работа в екип“. Освен че съм много доволен от крайния продукт, останах и приятно изненадан от удоволствието, което ми донесе съвместната работа с колеги от Академията. Имах щастието да общувам с амбицирани и отговорни хора, обединени от общата цел да създадат нещо качествено.

Екипът ни се състоеше от 9 души, избрани служебно от Академията и получили най-високи резултати на теста по английски от входния изпит, от които само един не взе активно участие в работата. Параметрите на задачата ни първоначално бяха тесни, но по предложение и на останалите два отбора („IQ Test“ и „IT Test“) преценихме, че можем да съставим ръководства за подготовка за всеки конкретен тест, а не само примерни тестове и линкове към външни ресурси, каквата беше първоначалната идея.

В хода на работата направихме три срещи на живо в Академията с колеги от София. Основното общуване се осъществяваше в Скайп стая. Работата се разпределяше равномерно и на доброволни начала. Всеки сам си избра една или повече теми, по които трябваше да събере материали и да състави тестови въпроси. Всички се отнесоха отговорно към работата си и това е видно от крайния резултат.

Моето участие се състоеше в работа по темата „Идиоми“. С течение на времето започнах да упражнявам известни организационни и представителни функции, които споделях с още двама колеги. Друга част от работата ми се състоеше във въвеждането на подготвените от колегите ми тестови въпроси в програма за тестове (Free Quiz Maker), както и в събиране и обработка на готови теми, написани от останалите.

За голяма радост на всички, в отбора ни имаше трима бивши и настоящи преподаватели по английски – Антоанета, Деница и Кремена, на които искам специално да благодаря за  непрестанно оказваната експертна помощ в областта на английския. Страхотни сте!

Специални благодарности искам да изкажа и на колегата Сашо, който успя да свърши много работа „на пожар“, особено в последния ден, когато ца няколко часа спешно преформатира цялото ръководство, за да го приведе в наистина приличен вид.

Разбира се, не на последно по важност място искам да благодаря и на Орлин, Пламена и Ярослав! 🙂

Тук не мога да не подчертая и отдадеността на колегата Йордан Банков от отбор „IQ Test“, който осъществяваше координацията между трите отбора и Академията.

Резултатите от работата на моя отбор, както и на останалитe отбори, можете да видите на следния адрес в секцията „Материали за подготовка“: http://academy.telerik.com/academy/entrance-exam

The free book „Fundamentals of Computer Programming with C#“ translated into English!

IntroProgrammingToday the programming-oriented Bulgarian literature has reached a new major milestone!

The free book „Fundamentals of Computer Programming with C#“ has finally been released in English. The combined work of over 20 authors serves as a great guide to beginners and will as well help experienced software engineers with practical advices and numerous examples. The book covers a wide area of topics starting with fundamental concepts such as Loops, Conditional Statements, Operators and Expressions and continues with Object-Oriented Programming, Data Structures and Algorithms to allow in-depth familiarization with the C# programming language and programming as a whole. The book contains 26 chapters.

Bonus materials include:
– Mind Maps;
– Presentations;
– Live Lectures Video Recordings;
– Problem solving guides;

The official site of the FREE Book: http://www.introprogramming.info/

You can download the book as PDF, DOCX or read it directly online.

As a Telerik Academy student (http://academy.telerik.com/) I highly recommend this book as it helped me make my first step into programming.