Милан обнови решението на 29.04.2013 15:45 (преди над 11 години)
+REPOSITORY = 'https://github.com/milanov/python-retrospective'
+
+# Двадесет неща, които научих.
+#
+# Общи:
+# 1) Малко дисциплина. Въпреки заканите на първата лекция, не очаквах да е наистина
+# токова сериозен курса.
+# 2) Много по-добре е домашните да се предават рано отколкото късно. Дори и да не бъдат
+# максимално изпипани feedback-а от преподавател е много по-ценен от търсене в Google.
+# 3) Да се замислям как си именовам променливите/методите/класовете/всичко.
+# 4) Научих се да си стилизирам кода по-добре или по-скоро да не си държа прекалено много
+# на собствения стил (да не навлизам в прекалено тесни рамки).
+# 5) Затвърдих знанията и разбиранията си за писането на тестове и TDD като цяло.
+# 6) Колко хубаво е едно community да си има style guide. Решенията на всички, макар и различни,
+# са толкова по-разбираеми, когато са написани с еднакъв стил.
+#
+# Първа задача:
+# 7) Да си изнасям константите извън методите, както и да ги SCREAMING_SNAKE_CASE-вам.
+# 8) Винаги да си мисля за по-оптимално решение. В моя случай реших, че съм намерил "най-доброто"
+# далеч преди срока за предаване, което се оказа не толкова вярно.
+# 9) Употребата на отрицателни индекси за достъп до елементите на наредена колекция (първият
+# елемент 0 минус 1 ни дава точно последния)
+# 10) Да използвам tuple-и, когато смятам, че информацията в дадена колекция няма да се променя.
+#
+# Втора задача:
+# 11) Съществува синтаксис за генератори, подобен на list comprehension-ите и по-кратък и разбираем
+# от просто yield в цикъл.
+# 12) Модула OrderedDict ни предоставя лесен FIFO речник.
+# 13) Да си чета условията по-добре, защото един от методите ми беше (полу)грешен, защото си бях разбрал
+# условието грешно. Добре че тестовите ви не го хванаха. :)
+#
+# Трета задача:
+# 14) Да започнам имената на private методите/променливите ми с две долни черти.
+# 15) Да правя методите статични, когато са класови, но не използват никакви данни от инстанциите.
+# 16) Затвърдих идеята за преизползването на методите в класовете ми. Така нещата стават по-елегантно, а и
+# има по-малко код, който трябва да се тества/поддържа/дебъгва.
+#
+# Четвърта задача:
+# 17) Как да raise-вам exception-и и как да създавам свой собствени.
+# 18) Как да форматирам елегантно информацията, съдържаща се като стойности в речник.
+# 19) Метода #all, който е много удобен начин за проверка за само True стойности.
+# 20) Метода #pop с параметър на list, който може да служи за лесно
+# създаване на FIFO структури.