Хакатон в Телерик – как да (не) спечелиш и да си изкараш страхотно

На 21 и 22 юни в зала Ultimate на Софтуерната академия се проведе първият хакатон под егидата на Телерик. Тъй като си изкарах по-добре, отколкото очаквах, реших да споделя с вас защо, какво и как се случи през тези два дни.

Какво е хакатон?
Хакатонът е надпревара за иновативни идеи в сферата на софтуерното инженерство. Отборите-участници имат на разположение два дни, в които да скечират своя проект за приложение (било то уеб, мобилно или десктоп) и да го защитят пред жури. Противно на очакванията ми това не е състезание по програмиране. На първо място трябва да бъдат представени най-вече идеята и планът за нейната реализация, а не толкова работещ софтуерен продукт.

Усилена работа

Атмосферата
Началото се даде в 9:15 ч, след като регистрацията на участниците беше приключила. Хакатонът не е състезание в истинския смисъл на думата. Контактът между отборите е свободен, даже се поощрява. Специални правила няма, единствено трябва проектът да е съобразен с темата: „Идея за по-добър свят“. Отборите бяха съставени от бивши и настоящи курсисти в Софтуерната академия. Домакините от Телерик осигуриха кафе, вода и обяд за участниците, както подобава на едно добре организирано събитие.

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

Идеите
Проектите на участнитице бяха разнообразни. От приложение за срещи по интереси в Борисовата градина, през софтуер за управление съдържанието на хладилника, та чак до решения за разработчици и игри. Изненадващо беше, че някои от представените идеи бяха много близки едни с други (почти припокриващи се) – нещо, което трудно можеше да се очаква предвид факта, че участие взеха само 15 отбора.

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

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

На трето място се класира приложението за регулиране на съдържанието хладилника YourFood, което цели да намали количеството храна, което домакинствата изхвърлят от хладилника вследствие на престояване и разваляне. То беше предложено от моите колеги и приятели Здравко Георгиев, Стефан Димов и Ясен Михайлов.

Тези момчета са Вашата храна

На второ място се класира мобилно приложение за информиране на потребителите за съдържанието на Е-съставки (консерванти, овкусители и др.) в продуктите, които купуваме, което работи чрез разчитане на етикетите им. То беше представено от Димитър Тодоров – Saykor.

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

Победителите спечелиха консултация с експерти от Телерик за реализация на идеите им, както и символични награди.

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

Как да спечелим
Не е достатъчна само хубавата идея. Важно е тя да бъде достатъчно отличима от близките до нея и продуктът, който се предлага, да не е „поредният“ в този отрасъл. Трябва разработката на приложението да е нискорискова, т.е. да няма нужда от сериозни инвестиции, за да бъде приведена в работещо състояние. И много важно – да разрешава ясно определим проблем.

За финал
Хакатонът е чудесен повод за бъдещите софтуерни инженери да се научат на малко прагматичност извън програмирането, да се запознаят с нови хора и идеи и не на последно място – да изпитат тръпката от публичната защита. Да пожелаем на спечелилите да реализират успешно проектите си! А на неспечелилите – да не си останат само с хубавите впечатления, а да се пробват още веднъж, когато им се открие възможност.

Сите хакатонци заедно

Advertisements

„Football Stats“ – a Telerik Academy educational team project in object-oriented programming with C# and WPF

Hello, dear readers!

It’s high time I published an elaborate review of a team project I recently had the pleasure to take part in. First off, let me introduce you to the preceding events.

  1. Introduction
    Perhaps many of you already know about my current occupation as a student at Telerik Academy. In the last 10 months I had the opportunity to attend courses in computer programming along with hundreds of other students united in the effort to become skillful junior software engineers. While we had been under the impression that we were making quick progress it was not until the recent months that we finally began to see a bigger picture – one not strictly inside the world of algorithms, but rather in how one can develop software that can solve more than a few tasks and do that in a systematic way.
    The OOP team project was the third team project I had been involved in since starting my education at the Academy. Of the other two only one involved actual programming. (If you are interested you can read more about it here (in Bulgarian): LINK) So, being only the second one, it was bound to be very different than the first.
  2. Task
    Our task was to „design and implement an object-oriented application by choice.“… but not a game! We had roughly one month to complete the task and fulfil the requirements, all of which you can read here: LINK The biggest surprise came from the requirement to implement a GUI. For that we had to use XAML/WPF – a technology completely unknown to most students. As it proved later, it was  the hardest feature to implement. But now I think it’s time to introduce you to… 
  3. The team

    It was the Academy that picked the teams and the students had no controll over who they were going to work with. While not completely random, each team consisted of five students, selected by their performance in previous exams. I got picked alongside Martin Anastasov and Martin Marinov.
    Me and Martin Anastasov

    Me and Martin Anastasov

  4. The concept – what we wanted to do
    A blank sheet of paper is a dangerous adversary. The program we wanted to create had to be both impressive and relatively easy to develop, having in mind the close deadline and our own limitations as programmers. Unfortunately we went for a plan for something big, not taking into account the difficulties it posed and the sheer scale of the project we had in mind.
    The night before our first team meeting I came up with an idea after two days of fruitless thinking. Considering myself an educated football fan I spend a lot of time browsing sites and meddling with statistical data. So I told myself: „Why not try and create a software that keeps information about football competitions and displays information about players and clubs while providing the user with well presented stats?“ When I proposed it to my teammates they accepted it eagerly.
    So, to sum it up, our software was supposed to keep data about competitions, seasons, clubs, players, staff members and possibly about matches as well and at the same time provide complex stats analysis and its visualization. Perhaps you’re already getting the idea that such task could hardly be accomplished in time and competently by a team of budding programmers. Nevertheless, we managed to develop a stable program with basic functionality and some nice GUI and in the end we were fairly satisfied with our effort.
    Main Window

    The Main Window

  5. Technologies used: WPF/XAML, C#
  6. Project management
    We used SVN source control system. The project is hosted on GoogleCode. You can find the project repository here: LINK  We held a few live meetings, but used Skype as our main method of communication. To organize our work, we assigned most of the tasks in such a way that no more than one person would work on a single one. I worked on the project architecture and made extensive use of interfaces to „shape“ the project’s class hierarchy and functionality. My teammates developed some of the classes and the exception handling. I spent the biggest amount of time studying XAML as neither of us had previous experience with any kind of UI technology and GUI was a required feature of our program.
  7. Features
    The final version of „Football Stats“ has the following features:
    – creation of players, staff members and referees;
    – creation of clubs;
    – display of detailed information about players and clubs;
    – adding/removing players to/from clubs;
    – provision of statistical data for selected clubs;
    – save/load to/from text file;
    – GUI.
  8. Classes and methods
    Let me explain in short our class hierarchy.The basis of the football world are the persons – players, coaches and other members of the staff. Together they form the class hierarchy Persons. Each person has a name, date of birth and nationality. Players and coaches are club affiliated unlike referees who aren’t. They also have a wage. Each player knows the positions he can play in and each staff member knows if he is a coach, a manager, an owner etc.
    The club class is an organization of players and staff (the club affiliated persons). It holds a list of players and a list of staff. In the Club class we put the majority of methods that return statistical data – like average age, average/max/min wage, if the club has an appointed manager or the position is vacant, how many players can play in certain position and so on.
    PersonsClassDiagram

    One of the class hierarchies

  9. User experience and GUI
    The main window presents the user with four options – to create a new player, to create a new club, to show info about players and to show info about clubs. What they do is pretty self-explanatory but here are some screenshots:
    The Create Person Window

    The Create Person Window

    – The Player Creation window requires the user to fill all the fields otherwise an error message would appear instructing him to provide more information. The drop-down menus for player/staff position become enabled/disabled depending on the type of person selected through the radio buttons. After successful creation, the person is added to a static list of persons you can find in the World class. From there the person is visible to all other classes which allows easier access and manipulation;
    – The Club Creation window provides a minimalistic interface. The user is only able to enter a name and nationality for the new club. Upon creation, the club is added yet again in a static list in the World class;
    – The Show Persons window displays a list of all persons, whether club affiliated or not (referees). When selected, verbose information about them appears on the right side;

    The Show Clubs Window

    The Show Clubs Window

    – The Show Clubs window is divided into three sections. The leftmost shows a list of all Clubs currently loaded in the program. When the user makes a selection, the two other sections become active. The middle one will show comprehensive stats, displaying the name of the club, its active manager, the total number of players, average wage etc. The right section is reserved for the players currently affiliated to the club. When selected, players can simply be removed by clicking the corresponding button which will remove them from the club’s players list and change their club affiliation to „Free Agent“. The Add button opens a new window. There, all free agents are available for selection and addition to the club.
    Changes to the data are automatically saved on almost each action or on closing a window. No dedicated save command is available. The data is exported to a text file. On program initialization the data which is stored in text files is parsed into the memory.

  10. Project defense and marks
    The defense went well. The project received very good marks – 3.6 out of 4. A short note about the program was included in the Telerik Academy Newsletter.
  11. Personal satisfaction and conclusion
    The project started ambitiously, but our inexperience in software development meant that we had to abandon the initial ideas we had and cut a lot of planned features from the final product. Nevertheless, I’m very satisfied that midway through development we realized we needed to create and integrate small but functional features one by one, rather than working on many features simultaneously. Later, when I got familiar with the agile development methodologies I found out that back then we’ve been on the right track, coming to the conclusion by trial and error approach.

It has become a rather long post and I hope it didn’t bore you to death :).  Here’s the link to the repository again if you want to take a more in-depth look. Please bear in mind that „Football Stats“ is an educational project which main objective is more the promotion of teamwork skills rather than the development of high quality software. I’m well aware a lot of things could’ve been done better and I look upon this work merely as a small step on a long journey.

Till next time!

Обзор на курса по Обектно-ориентирано програмиране (ООП)

Telerik Academy Logo

Telerik Academy Logo

Привет!

Приключи курсът по ООП за пролетния прием на Софтуерната академия на „Телерик“. Малко повече от два месеца изучавахме принципите на обектно-ориентираното програмиране, решавахме домашни и писахме отборни проекти.

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

Светлин Наков

Светлин Наков

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

Курсът приключи със защита на отборен проект и изпит. За проекта ще разкажа в отделна публикация. Оценяването на изпита, от своя страна, се състоеше от два компонента – обичайното автоматизирано оценяване и ръчна оценка на качеството на кода. На първия компонент изкарах максималния възможен резултат – 200 точки, който формираше 40% от крайна оценка за изпита (80 т). 120 точки беше максималният възможен резултат при ръчното оценяване, на което получих 101 точки. Така общият ми резултат на изпита беше 181 т. от 200 възможни.

В генералното класиране завърших 11-ти – отстъпление с 6 позиции от предходния ми резултат (по C#2). Въпреки лекото първоначално разочарование, което изпитах, имайки предвид голямото старание, което положих, установих, че само стотни и десети ме отделят от най-добрите места.

Сериозни усилия тепърва ще трябва да бъдат полагани, тъй като предстоят курсовете по HTML и CSS, които ще караме паралелно. Очаква се изпитът по тях да е през януари.

До скоро!

GitHub Repository Update – OOP Course

GitHub Logo

В GitHub хранилището ми вече са добавени:

домашните ми по ООП;

– решения на изпитните задачи по ООП: Sample Exam (Document System, Geometry API), 25 March 2013 – Evening (HTML Renderer, Academy Ecosystem) и 25 March 2013 – Morning (Software Academy, AcademyRPG).

Първите ми опити да реша изпитни задачи не се увенчаха с голям успех. Sample Exam е пример за неправилно решена задача. Доста по-добре се справих с HTML Renderer и Academy Ecosystem и най-добре – със Software Academy, AcademyRPG. Със сигурност всяка от задачите може да имплементира по-добре някои от принципите на ООП, но при подготовката ми основно се стараех да напиша решение, което да издържи тестовете в bgcoder.com.

Октомври – обзор

Макар октомври да беше пълен със събития, календарът ми беше претрупан със задължения от различен характер и не можех да пиша редовно. За сметка на честотата ще компенсирам с обем. И така: важното през месеца:

1. … и малко по-назад. На 16-ти септември завърши четириседмичното ми участие в курса „Умението да общуваме“. В рамките на четири срещи с вещите напътствия на енигматичната фигура, която ще нарека просто Капитана, 15-тина несофтуерни пирати кандидат-нинджи (сложничко стана) се дуелирахме със силата на словото и потайните хватки на невербалната комуникация. Прекарахме си чудесно, опознахме се и свършихме доста работа. Ролеви игри, дебати, речи и малко теория бяха основното ни занимание всеки четвъртък от 19 до 23 ч. или кой колкото издържи 🙂 Накрая поляхме всичко в заведение, името на което се заклех да не издавам…

Четирима от мнозина

2. По воля на Капитана курсът продължи и през октомври. Интензивен, предизвикателен, стресиращ и много изморителен. Този път премеждията пред престрашилите се да участват включваха близки срещи от трети вид с напълно непознати (и невинни) хора, които бяха принудени да търпят нестандартните сценарии, в които ги поставяхме. Акцента без колебание ще поставя върху речите, които държахме не къде, а на пъпа на София – на пл. Славейков. Черешката върху тортата обаче тепърва Баба типредстои. 🙂 За разлика от предходния курс, този наблягаше на пълното преобразяване – както в поведението, маниерите и гласа, така и в облеклото – всичко това благодарение на богат реквизит, с помощта на който се преобразих за кратко в блондинка, а за малко по-дълго – в съмнително палава баба. Очаква се финал на този курс в близките седмици.

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

4. Нови 500 курсисти бяха приети в присъствена форма през есенния прием. Пожелаваме им успех и ще им помагаме!

5. Изключително съм горд и щастлив, че бях поканен за асистент на есенния прием в първата част от курса по C#! Всеки вторник и петък от 15:45 до 18:15 ще съм на разположение на младите нинджи в залите на Академията! Първото ми упражнение вече мина и се радвам много, че видях хора, които се отнасят сериозно и с интерес. Да се надяваме, че ще си помагаме взаимно. 🙂

6. Вече правоспособен юрист! Да, това е малко встрани от основната тема на блога, но на 17 октомври положих успешно изпита за юридическа правоспособност пред Министерството на правосъдието. Така сложих своеобразен финал на продължилото 6 години обучение по право. Ще го запомня със смесени чувства.

Обзор на курса по С# Част 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.