Документ с напътствия за инструктори и организатори на Rails Girls Sofia 2014, връзки към ресурси, бележки, уточнения и прочее.
Стартира в края на 2010 година във Финландия, като еднократно събитие, но бързо набира популярност. Днес – вече стотици събития в над 130 града по цял свят.
Ще бъде в зала "Ultimate" (етаж 2) в сградата на Telerik Academy (гр. София 1729, ж.к. Младост 1А, бул. "Ал. Малинов" 31). Петък от 19:00 до 21:00 и събота от 09:00 до около 17-18 ч.
Спонсори и партньори са:
- Телерик
- Суперхостинг
- Информационно обслужване
- Телелинк
- Майкрософт
- Пепси
И други. От спонсорите имаме:
- Ваучери за cloud услуги (Суперхостинг)
- Персонализирани чаши (Суперхостинг)
- Томбола от Телерик за безплатно обучение за един участник
- Финансова подкрепа
Принтираме name tags, стикери, имаме плакати от минали години. Спонсорите също предоставят рекламни материали, листи, химикалки. Суперхостинг осигуряват персонализирани чаши, което е супер (дизайн 1, дизайн 2, дизайн 3). Имаме и GitHub стикери, останали от миналото издание (пристигнаха със закъснение).
Начало - събота, от 20 ч. Цел - социализация, особено между участниците, за да помогне за създаването на общност.
Не сме измислили място все още. Имаме предложения за Dada Cultural Bar. Ще има събитие във Facebook, за да се ориентираме каква приблизителна бройка хора ще искат да дойдат. Приемаме предложения за места.
Да запалим участниците.
Да им покажем, че технологиите и програмирането не са изобщо толкова страшни и необятни, колкото изглеждат на пръв поглед и че това не е занаят само за богоизбрани, или за хора с бради. Че в умели ръце, технологиите се превръщат в могъщ инструмент за постигане на невероятни цели и – защо не – за промяна на света.
Ще следваме предварително дефинирана програма. Важно е да се стигне до крайната цел - работещо приложение, но не на абсолютно всяка цена. Бъдете гъвкави.
Най-важното нещо са времето и мотивацията на участниците. Това е ресурсът, който в никакъв случай не трябва да пропиляваме и към който трябва да се отнасяме с изключително внимание.
Всички ние, като инструктори, имаме тежката задача да преглътнем гордостта и егото си. Не е важно ние да блеснем с нещо – важно е да се движим към основната цел на събитието и да се грижим участниците да се чувстват комфортно.
На миналото събитие имахме малки проблеми в някои групи – участнички се оплакаха от инструкторите си след края на събитието (анонимно).
Искам този път да опитаме да адресираме този проблем със система за ранна обратна връзка, която вие, като инструктори, трябва да насърчавате (за сметка на собствените си чувства и гордост). Първата стъпка е разговор какво не е наред и опит да се адресира проблема от ваша страна. Следващата стъпка е местене на участника при друг инструктор.
Приемам предложения в тази посока, как можем да направим това по-оптимално.
Извадки на много, много важни моменти от ръководството за инструктори, което всеки трябва да прочете преди петък:
- Ask students "What do you want to get out of class?" (Всеки инструктор ще получи информация за участниците си - мотивация, информация за опит, данни за контакт и др. Целта е да се настроите максимално на правилната честота.)
- Assume that anyone you're teaching to has 0 knowledge but infinite intelligence
- Admit your ignorance
- Tell people it's ok to make mistakes
- Try to avoid technical jargon
- Don't say "any questions?"; say "What questions do you have?"
- Get the students talking to each other
How to introduce yourself to the class:
- tell your story
- tell why you like programming and teaching.
- beware of bragging
- tell why you care! Why are you getting up on saturday morning to come in here?
Pace:
- Slow down! Wait much longer than you feel is comfortable for questions/comments
Темата е спорна. В ръководствата на Rails Girls насърчават copy/paste, докато има хора (включително и моята първоначална реакция), които смятат, че не трябва да се използва copy/paste.
В крайна сметка, всичко зависи от целите и времето, с което разполагаме. Някои команди на конзолата, особено тези за генериране на scaffold с определени полета, са доста дълги и дори един сбъркан символ ще доведе до нуждата от пренаписване на командата. Това отнема време и човек трябва да прецени доколко инвестираното време ще има възвращаемост и дали не е по-добре да се инвестира в обяснения на по-високо ниво.
За нашите конкретни цели - да запалим интерес и предвид времето, с което разполагаме, copy/paste се препоръчва, особено ако командата е повече от една-две думи. За кратки команди може да ги карате да ги пишат.
Моля да дойдете максимално рано, по възможност да не е след 18:30. Аз ще съм там в 17:30, тъй като има нужда от подготвителни действия. Ще съм благодарен на всеки, който успее да дойде по-рано, за да помага.
Започва официално около 18:45. Ще я поема аз и още някой от организаторите. Инструкторите трябва да са по местата си, за да може да се опознаят с новодошлите, да разчупят леда и, ако им е скучно или има очаквания за проблеми, да започнат процедурата по инсталация.
За да бъде максимално стройна организацията и да не се лутат хората, съм подготвил предварително разпределение на участничките по инструктори.
Всички инструктори трябва да имат name tags. При регистрация, всяка участничка ще бъде информирана как се казва нейният инструктор и ще трявба да го намери. Затова вероятно ще подредим всички инструктори по азбучен ред в залата :)
Очаква се към 19-19:10 да направим официално откриване. Ще има няколкоминутни изявления от някои от спонсорите и организаторите, както и приветствия и разяснения от мен. След това ще започнем с инсталацията.
Необходимият софтуер, който трябва да се инсталира на машините на участниците, е: Ruby (2.x), Git, компилатор (gcc или еквивалент), SQLite и текстов редактор. Rails е Ruby пакет (gem), който обикновено се инсталира след като имате Ruby. Ще предпочитаме да ползваме последната версия на Rails, която към момента е 4.0.3.
Използва се Rails Installer, като за OS X Mavericks (10.9.x) има малко по-сложна процедура, тъй като Rails Installer не работи за тази версия на OS X.
Текстовият редактор, който се препоръчва за събитието, е Sublime Text, дори за Windows. В инсталационното ръководство не се споменава, но е добра идея да сложите и Package Control плъгина за Sublime Text.
Когато се работи под Windows е добре да се настрои Command Prompt-a да бъде малко по-приветлив. Лесен вариант може да намерите Тук. Идва с удобен resize и paste, който работи както очаквате.
Инсталира се така:
- Сваляме го от тук
- Разaрхивираме в удобна папка (hint: C:\console\ )
- Стартирате Console.exe
- Настройваме Ctrl + V да копира:
- Edit -> Setting -> Hotkeys
- Намираме Paste и го assign-ваме на Ctrl + V
- Щастливо започваме да работим.
Опитайте се да оставите участниците да се борят с това, като им помагате при проблеми, за предпочитане като им показвате схема как да се борят с даден клас (инсталационни) проблеми.
По възможност, трябва да приключим с инсталацията до към 20 ч. Ако някой не е успял да приключи инсталацията до тогава, ще може да продължи сутринта на следващия ден, ако участникът не си реши проблема сам вкъщи вечерта.
След инсталацията ще преминем към играта "How to train a robot". Ще се движим по обяснителния блог пост на Ира и по инструкциите в тази презентация.
Накратко, участничките пишат съвкупност от команди на хартия, формиращи програми. Команите са предварително дефинирани. Командите управляват инструктора, който играе ролята на робот и се движи в "лабиринт", очертан с тиксо на пода. Роботът разбира само предварително дефинираните команди. Трябва да са изрично разписани. "Хвърля изключения" при изчерпване на програмата, преди достигнане на целта (хартиено кексче), удар в стена и прочее.
Цели:
- Участничките да усетят болката от повторение на команди, за да могат да стигнат естествено до нуждата от абстракция - функция. Тя се вкарва на следващ етап, след няколко опита за писане-изключение-дебъг-писане-изключение-дебъг.
- Да свикнат с идеята, че да грешат е не само нормално, а е съществена част от процеса ни на работа. Цикълът експеримент-грешка е безценен.
- Когато се общува с машина, емоциите не винаги помагат, по-скоро вредят. Машината разбира само точно определени команди, в точно определен ред. Развиване умения за дебъгване е много важно.
- Да се даде реално усещане какво представлява програмирането и да могат участничките да преценят дали им се занимава с това, т.е. доколко е за тях, за да можем по-нататък да помагаме на групата, която наистина го харесва и да станат реални програмисти.
Разрешени команди (по една на ред, или разделени с точка и запетая):
left step
right step
left turn
right turn
squat
pick object
stand up
Командите трябва да се изпълняват в определен ред. Не може да направите две поредни леви стъпки, например, или пък да изпълните pick object
, ако не сте приклекнали. pick object
"работи" само ако обектът (кексчето) е в радиус от около една стъпка от робота и ако роботът е приклекнал. Целта е изпълнена след pick object
и stand up
, т.е. pick object
трябва да има timeout, след който да гърми, ако не следва stand up
:)
Общо-взето, настава един забавен хаос.
Към 21 ч. спираме с играта, събираме се и правим един #Friday Hug. Вероятно всички сте виждали миналогодишната снимка.
След това разпускаме народа да се наспи за утрешния ден.
Участниците започват да се събират от 9 ч. Ще има кафе и кексчета, плодове или нещо подобно. В 10 ч. е началото на съботния ден. Ако са останали машини за доинсталиране от предния ден, това е моментът, в който трябва да бъде завършена инсталацията.
Уводни думи, отново няколко думи за спонсорите, програма за деня, що е то "Rails Girls", какви са целите на събитието и какво да очакват участниците.
След тях уводната презентация ще продължи с въведение в програмирането за уеб и напътствия за дизайн на уеб приложения. Би трябвало да приключи към 10:30-10:45.
Започваме с tryruby.org. Sъстои от 8 нива с по няколко стъпки всяко.
Забележки:
- За начинаещи е (твърде) рязко задълбаване, с много термини; обясненията са прости, но термините не са спестени.
- Много терминология, внимавайте с нея - не опитвайте да превеждате термините с българските им еквиваленти (например “conditionals” = “условни конструкции”); по-скоро обяснявайте на прост български какво прави нещо.
- Чувствайте се свободни да пропуснете определени стъпки, ако ви се струват твърде сложни.
- Ако не може да обясните добре нещо, или ви се струва ненужно задълбаване, продължете.
Неща да се пропуснат:
- Level 3, challenge 2.
- Не задълбавайте в level 3 като цяло; основната идея там е да се усети как работи chaining-ът на методи и че методите могат да завършват на ! и ?; може да обясните какво допринася “?" (по-ясен смисъл, нищо от техническа гледна точка), но не задълбавайте в проблемите на именуването.
- Цялото level 5 (за файлове и директории). Не пропускайте обобщението на Level 4, което се намира в level 5, challenge 1.
Напомням, че copy/paste на по-дълги пасажи е окей.
Добре е да приключите с това най-късно до към 11:30.
Веднага след tryruby.org се започва работа по приложението.
Ще използваме това ръководство: http://guides.railsgirls.com/simpleapp/, вместо стандартното http://guides.railsgirls.com/app/. Разликата се състои в два реда код в началото, които значително опростяват кода, който Rails ще генерира за вас.
Повече подробности за т. нар. simple_scaffold в тази презентация от няколко слайда.
Има "Ръководство за ръководството", обясняващо в детайли какво се случва зад завесите при всяка една от стъпките от ръководството за приложението "Idea". Като подробности, има и безплатна за участниците в Rails Girls книга "Learn Rails". Вижте секцията "Ресурси" за подробности.
Обядът ще е на място и е осигурен от спонсорите.
След обяда ще направим Bentobox упражнението (слайдове, видео). Целта му е да покаже на учсатниците как да се ориентират в морето от термини и специфичен жаргон.
Между 13:30 и 14:30 ще има сесия от 6-8 кратки (петминутини) презентации.
Събирам предложения за желаещи да говорят и темите им. Пишете до групата [email protected] с предложенията си. Вижте миналогодишните теми за вдъхновение.
Към момента имаме следните теми и предложения:
- "Да променим света с програмиране!" (аз, различна от м.г.)
- "Научени уроци от ръководене на бизнес с Рейлс", "Начини на реализация (roadmap) за начинаещи разработчици" и "Анализ на предимствата на Рейлс от гледанта точка на един разработчик" (Димитър Шалварджиев от conit-bg.com; вероятно ще изберем 1 или 2 от тези, в зависимост от броя на другите предложения)
Силно препоръчвам истории пред (суха) теория. Това прави впечатление и се запомня. Мотивационните и забавни, неангажиращи презентации са много подходящи.
След lightning talks започваме workshop сесията. Продължение на workshop 1. Вероятно ще направим кратка почивка към 15:45.
Туитене и шерване на снимки и текст във Facebook се насърчава. Официален хештаг: #RailsGirlsSofia.
Имаме доста пълно ръководство за това как да продължи човек след събитието. Въпреки това, може да се разшири и да се добавят още ресурси. Най-малкото има нови материали, които трябва да се добавят. Трябва обаче да внимаваме да не стане overwhelming.
Хората не продължават да се занимават много - сами им е трудно, или пък им липсва достатъчно мотивация. Затова имаме идеи (да се изброят накратко на тоя slide, че ги няма).
Искаме да организираме нещо като study групи и/или регулярни срещи някъде, примерно веднъж седмично, на които да присъстват поне 1-3 инструктора и желаещи участници, както от това, така и от минали Rails Girls събития, или неодобрени участници, вкл. такива от ФМИ/Телерик.
Това, което трябва да осигурим, е място и структура за тези срещи.
Също така, да съберем достатъчно достъпна и не-пиратствана литература за различни основни неща (алгоритми, инфраструктура и т.н.) за желаещите да четат.
Тази година на всеки инструктор се падат само двама участника. Искаме да изградим нещо като менторска връзка в групата и инструкторът да поеме отговорност да подтиква участничките си към по-нататъшно развитие. Да ги пита докъде са, какви въпроси имат, какви проблеми срещат, как може да им помогне и прочее. Да ги насърчава да ходят на регулярните срещи.
-
Безплатни копия на "Learn Rails" от Daniel Kehoe
Visit the web address learn-rails.com/railsgirls and enter the invitation code
RAILSGIRLS
to register and download the ebook. -
ExplainShell е полезен сайт за обяснение на shell команди
-
Microsoft осигуряват DreamSpark акаунти за всички учащи (студенти, ученици, магистри, докторанти...), кандидатствали за Rails Girls, не само за одобрените.
-
Python и Clojure курсовете във ФМИ (текущия семестър) и Ruby курса зимния семестър са свободни за посещение
Това ръководство е в процес на развитие.