4 седмици в дълбокото на Програмиране 101

Изминаха 4 седмици след старта на Програмиране 101!

И тъй като се случиха много интересни неща през тези 4 седмици, редно е да споделим и с вас :)

Седмица 1 - седмицата на Git, Github и Polyglot

Git & Github

След като се справихме с доволно количество задачи, започнахме с един от най-важните инструменти, който ще използваме нявсякъде - Git!

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

Може би най-интересно беше обясняването на разликата между клониране по SSH и клониране по HTTPS.

Винаги е полезно човек да хвърли едно око на help-a в Github - https://help.github.com/articles/which-remote-url-should-i-use :)

Polyglot

Веднъж, след като се преборихме с Git и Github, минахме към една от най-интересните задачи, които сме правили досега - Polyglot!

Задачата представлява Python-ски скрипт, чрез който могат да се генерират файлове за 8 различни езика за програмиране!

Задачата Polyglot имаше две основни цели:

  • Да успее човек да подкара дадения език (или платформа) под Linux
  • След това, да компилира (или интерпретира) генерираният код, за да вземе изхода от програмата

Веднъж взет, човек дава изхода на Polyglot, за да се увери, че отговорът е правилен и за да зачеркне още един език, с който се е справил!

В крайна сметка, хората трябваше да се справят със следните езици:

  • Python
  • Go
  • Java
  • Haskell
  • C#
  • Ruby
  • C++
  • JavaScript

Сорс кода от задачата можете да разгледате тук - https://github.com/HackBulgaria/Polyglot

Тъй като ефекта от задачата беше много добър, а и хората се забавляваха и научиха нови неща, смятаме да я разширим, така че да стане още по-полезна :)

Седмица 2 - Red, Green, Refactor

Философията ни в Хак България е да правим наистина практически занятия!

Липсата на лекции е само една страна от цялата картина.

Цялата втора седмица беше белязана от идеята за писане на Unit Test-ове и използването на Test Driven Development като методология за разработване на софтуер.

TDD - Red Green Refactor (Снимка от http://agileinaflash.blogspot.com/2009/02/red-green-refactor.html)

Имахме щастието именно Стефан Кънев да направи първото показно за TDD, като след това възприехме модела за Continious Testing, използвайки командата watch:

watch python run_tests.py  

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

Силно ви препоръчваме да разгледате задачките от седмица 2 тук - https://github.com/HackBulgaria/Programming101/tree/master/week2 - защото се постарахме да има Орки и Герои, които да се сражават в лабиритни!

Като цяло задачи, добре подготвени, за прилагане и учене на TDD върху тях :)

Седмица 3 - Object Oriented Python!

Тук излязохме извън програмата и се почувствахме много добре от това!

Решихме да покажем OOP концепцията в Pythоn, за да затворим цикъла на TDD-то от една страна, а от друга - за да разполагат курсистите с по-добър инструмент за изграждане на абстракции.

За целта създадохме една малко по-сложна задача - да се направи Mail List софтуер, който да се управлява през конзолата.

С CRUD (Create Read Update Delete) действия за елементите (списъци и хора), както и условие, всичко да се пише във файлове (Примитивна форма на база от данни)

В рамките на 3те занятия разширихме задачата и се получи много добре, като успяхме да прокараме идеята за OOP, концепциите зад OOP и дори няколко design pattern-a!

Условието на задачата можете да погледнете тук - https://github.com/HackBulgaria/Programming101/blob/master/week3/problems.md

Имахме гости от SAP Labs Bulgaria

Стоян Велве от SAP

Както знаете, стартирахме курса с 4 партньора!

През 3тата седмица имахме гости от SAP Labs Bulgaria, като срещата се получи повече от добре!

Имаше неформален разговор на терасата (Стоян Велев от SAP е на снимката) и много въпроси от страна на курсистите! Това ни показа, че хората се интересуват и искат да си говорят в подобна обстановка с повечето софтуерни компании!

Снимки от гостуването може да разгледате както в албума на Хак България, така и в албума на Сапьор :)

Teambuilding-ЪТ!

И разбира се, завършваме с едно много приятно преживяване - първият teambuilding за всички хора от Програмиране 101!

Първо се преборихме с около 40 литра бира в Ale House, а след това, завършихме с четене в Библиотеката (Once Upon A Time) :)

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

Linux инсталиране

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

Слагахме Dual Boot Linux на всички желаещи - Elementary, Ubuntu или Mint по избор.

Тук е редно да похвалим и двама от курсистите за усилията, които положиха за автоматизиране на част от процеса:

Какво следва?

Разбира се, продължаваме с пълна сила напред. До края на месец април ще минем през теми като SQL, Project Management Tools, Bug Tracking системи и още работа в екип.

Освен това, ще обявим и следващите курсове за Java и JavaScript :)

Може да ни следите както тук, така и в Twitter и Facebook!



comments powered by Disqus