Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Програмиране с Ruby 2014, лекция 0 (с бележки)

Програмиране с Ruby 2014, лекция 0 (с бележки)

Уводна лекция за курса "Програмиране с Ruby", който се води във ФМИ към СУ през учебната 2014/15 г. Версия на презентацията с бележки. Повече информация: http://fmi.ruby.bg/

More Decks by Programming Ruby @ fmi.uni-sofia.bg

Other Decks in Programming

Transcript

  1. Две целеви групи: 1. По-напреднали и по-“лакоми” за информация 2.

    Студенти с минимални познания, опит и понякога – демотивирани Нашите наблюдения от предишни курсове са, че има основно два типа студенти: ! 1. Силно мотивирани, с повече опит и теоретични познания, готови да отделят много време на курса и които напредват с много бързи темпове. 2. Студенти на ръба на демотивацията,с минимални познания и минимален или никакъв опит. ! Втората група обикновено е жертва на проблеми както в образователната система като цяло, така и във ФМИ в частност.
  2. Помагай на другарчето Ако има въпрос, по който се чувствате

    по-компетентни и видите възможност за помощ – включете се. Така помагате не само на свой колега, но и на себе си. Не мога да изброя всички примери, в които съм осмислил или задълбочил познанията си за дадена концепция, опитвайки се да я обясня на друг. Също така, ще си помогнете за оценката :) ! Програмистката общност винаги ми е харесвала със своята готовност да приема начинаещи и да споделя знание. Винаги сме готови да разказваме разпалено за технология, език, принцип… И това е чудесно. Така се развиваме, защото притокът на свежи хора и идеи ни кара да се движим напред.
  3. Задавай въпроси
 Не се отказвай Ако пък чувствате, че има

    нещо, което не сте осмислили добре – не се отказвайте лесно. Задайте въпрос. Няма нищо срамно в това. ! Няма нито един от нас, в тази зала, който да е с неограничена компетентност. Всеки се е борил с определен клас проблеми и е опитен в едни неща, но не толкова в други неща. ! И ключът в това да не спрем развитието си, е да си признаем – пред себе си и пред другите – когато не разбираме или не знаем нещо. И да се опитаме да разберем. ! Умението да програмираш, без значение от език или платформа, е невероятно оръжие. Сега, в този университет, имате златен шанс да се въоръжите. Не го пропускайте. Не се отказвайте. Ще помагаме :)
  4. http://fmi.ruby.bg/ Регистрацията е отворена. Имаме сайт. Това е основното място,

    където ще се случват нещата в курса – там ще качваме материали, ще пускаме новини, ще предавате домашни, ще дискутираме проблеми. Това ще е вашият нов дом във следващите четири месеца. Когато напишете “f” в лентата за URL на браузъра, трябва първото предложение да ви бъде fmi.ruby.bg, а не facebook.com. ! Затова, трябва да се регистрирате максимално скоро. За целта ще имате нужда от три имена на кирилица и факултетен номер.
  5. Записване с молба Става, но трябва да ни пишете, ако

    ви няма в СУСИ – три имена и факултетен номер [email protected] В СУСИ има лимит от 100 човека. Обикновено го достигаме и много хора записват курса с молба. Това е напълно окей с нас. Няма проблем да ви я подпишем, така или иначе е само формалност. ! За да се регистрирате в сайта в този случай, ще има нужда да ни изпратите на [email protected] три имена и факултетен номер.
  6. Свободен достъп Ако не сте студент във ФМИ, или ако

    не сте студент изобщо – няма проблем да идвате на курса. Ще се отнасяме към вас както към другите студенти. Ще ви направим и регистрация в сайта. ! Изпратете ни три имена на [email protected] и ще ви върнем фиктивен факултетен номер, с който да се регистрирате.
  7. Група “Програмиране с Ruby” https://facebook.com/groups/programming.ruby/ Много удобна за организация на

    различни извънкласни занимания, за които ще споменем ей сега.
  8. @rbfmi Не е особено активен в момента, но може и

    да ни хрумне да го посъбудим. Съветваме да го следите.
  9. Много е важно да разчупим леда и да изградим малка

    общност. Така най-ефективно ще споделяме знания и опит.
  10. “Лекция” на “по бира” (подробности скоро) Най-вероятно ще е четвъртата

    ни сбирка, тоест 20 октомври. Ще я обявим като новина в сайта и ще направим събитие във фейсбук. Ще ни е важно да знаем колко от вас ще идват, за да изберем подходящо място, така че преценете рано.
  11. Code Jam Session Тази година планираме да направим експериментално 1-2

    “code jam sessions”, в които вместо лекция, идвате с лаптоп и решавате един или повече малки проблеми, които ние поставим. Ще има повече от екипа в тези дни и ще ви помагаме с решенията. Ако имате коментари по тази точка, може да ни пишете.
  12. Задачите • десет броя • предават се онлайн • проверяват

    се автоматично • обикновено 0-6 точки • могат да дават допълнителни точки • има и наказателни точки • имате право да пропуснете три • чуждите решения са публични
  13. Тестове • два броя • 30 въпроса за един час

    • 30 точки на тест • много гнусни, но не са критични за оценката
  14. Проекти • на края на семестъра • вие измисляте или

    ние избираме • 60 точки • 1/3 функционалност, 1/3 стил, 1/3 тестове • да работят е задължително, но не достатъчно
  15. Бонуси • Предизвикателства • Участие в час • Участие във

    форумите (помощ на другарчето) • Бонус точки за елегантни решения • Принос в GitHub • Изнасяне на кратка презентация по време на курса
  16. Участие в час • даваме Snickers за добри въпроси, отговори

    или коментари • обикновено на тях има код, който ви носи 1 точка • насърчават да не спите в час • ако прекалите с глупостите ще хванете захарна болест
  17. Предизвикателства • малка задачки относително често • малки: 4-10 реда

    код • често: 1-2 пъти в седмицата • ще имате около 24 часа за всяко
  18. Тежките ограничения максимум X реда код в метод максимум Х

    нива на влагане в метод максимум Х метода в клас
  19. Тежките ограничения максимум 7 реда код в метод максимум 2

    нива на влагане в метод максимум 10 метода в клас
  20. В края оценяваме усилия Точковата система ни помага да се

    ориентираме, но малки вариации там не са фатални. Това, което е най-важно за нас, е вашето желание да се развивате и усилията, които ще положите. Това е, което ще е ключово за оценката. ! Ако записвате курса само за оценка и кредити – по-добре го отпишете сега и направете места за хората, които имат желанието да инвестират време в развитието си.
  21. 1. Език за програмиране Очевидно, ще говорим за езика за

    програмиране Ruby и екосистемата около него.
  22. 2. Принципи Но ще говорим много и за принципи. Смятаме,

    че принципните неща, до които сме достигнали като изводи от опита си, са от основополагащо значение. ! Дори може да се каже, че езикът, който ще изучаваме, е по-скоро платформа, с чиято помощ ще се опитаме да ви предадем принципните неща, които не са пряко свързани с една конкретна технология.
  23. “Besides a mathematical inclination, an exceptionally good mastery of one's

    native tongue is the most vital asset of a competent programmer.” ! — Edsger Dijkstra* * изобретател на blog post-а
  24. “Programs must be written for people to read, and only

    incidentally for machines to execute.” ! — H. Abelson and G. Sussman
  25. web framework най-популярното нещо в Ruby няма да говорим за

    него (или поне най-много лекция-две)
  26. В този курс ще се учим как се дялкат камъни,

    а не как се строят катедрали.
  27. designed for programmer productivity and fun Въпреки, че не е

    толкова популярен колкото Java, C++, Python, C# - е съвсем зрял инструмент, с който спокойно и прилично може да си изкарвате прехраната. Има търсене и недостиг на качествени Ruby кадри, както у нас, така и на международния пазар. ! Накратко – Ruby не е език-играчка. Ruby е като Tesla Model S. Може би не е с най-бързите параметри, но не е и никак бавен. Едно превозно средство, което е представител на бъдещето и което ти доставя уникално удоволствие, когато го използваш. И определено може да те придвижи от точка А до точка Б. ! Дори и да не ползвате Ruby в ежедневната си работа, покрай него ще научите неща, които ще са ви полезни и там. Дори това да е, че не може да продължите да пишете повече на текущите си език и технология, при положение, че има неща като Ruby.
  28. $ cat hello.rb puts "Hello world!" forty_two = 6 *

    9 puts "The answer is #{forty_two}" ! $ ruby hello.rb Hello world! The answer to is 54 интерпретира се
  29. през 2011: зрялост Този слайд е отпреди 3 години. :)

    Ако през 2011 г. сме казали, че Ruby и екосистемата около него са достигнали зрялост, три години по-късно това е вярно с още по-голяма сила.
  30. Въпроси, диалог и обратна връзка Обратната връзка и комуникацията както

    между вас и нашия екип, така и межу вас самите, са ключът към един успешен курс.
  31. Programming Ruby 1.9 and 2.0 Освен множеството ресурси онлайн, ако

    предпочитате по-структуриран подход и нямате търпение да започнете още сега, може да пробвате някоя книжка. Има няколко и на О’Reilly.
  32. # Output "I love Ruby"
 say = "I love Ruby"


    puts say
 
 # Output "I *LOVE* RUBY"
 say['love'] = "*love*"
 puts say.upcase
 
 # Output "I *love* Ruby"
 # five times
 5.times { puts say } из http://ruby-lang.org/
  33. (1..9).select { |x| x.odd? }.map { |x| x ** 2

    } (1..9).select(&:odd?).map { |x| x ** 2 }
  34. class Integer
 def factorial
 1.upto(self).inject { |a, b| a *

    b }
 end
 end
 
 puts 10.factorial
  35. Още днес • Регистрирайте се на сайта: http://fmi.ruby.bg/ • Качете

    си профилна снимка • Попълнете анкетата • Инсталирайте си Ruby 2.1.3 Защо профилна снимка? Отново – по-добра комуникация. Хората инстинктивно търсим връзка между име и лице и това ни помага да си изградим образ за даден човек, което пък от ствоя страна ни помага да комуникираме по-ефективно с него.
  36. Core Ruby @ Hack Bulgaria Програмиране с Ruby @ ФМИ

    + Тази година си партнираме с екипа на Хак България и курсът им Core Ruby. В модела на Хак България – inverted classroom – на сбирките решавате задачи, а теорията и лекциите са за домашно. ! Тъй като на този курс във ФМИ нямаме упражнения, комбинацията между двата курса е много удачна. Местата в Core Ruby са ограничени, но може да пишете на [email protected], ако желаете да се присъедините към курса, за да видите дали има възможност за това. ! Няма застъпване в графика на двата курса.
  37. въпроси? Време за въпроси. След въпросите и преди да се

    разотидем, искам да кажа и едно последно, кратко нещо.