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

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

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

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

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

Other Decks in Programming

Transcript

  1. Александър И. Александър И. Георги А. Георги Г. Георги Д.

    Марио Митьо Никола Станислав Стефан Христо И други...
  2. 1. Имате нужда от кредити 2. Искате лесна/висока оценка за

    повишаване на средния бал 3. Трябва ви бройка ИД от ЯКН Ако сте тук защото:
  3. 1. Да развиете техническите си умения 2. Да се срещнете

    с нови технологии 3. Да развиете нетехническите си (комуникационни) умения 4. Да повишите кръвната си захар Ако искате:
  4. Две целеви групи: 1. По-напреднали и по-“лакоми” за информация 2.

    Студенти с минимални познания, опит и понякога – демотивирани Нашите наблюдения от предишни курсове са, че има основно два типа студенти: 1. Силно мотивирани, с повече опит и теоретични познания, готови да отделят много време на курса и които напредват с много бързи темпове. 2. Студенти на ръба на демотивацията,с минимални познания и минимален или никакъв опит.
  5. 1. Задавай въпроси 2. Не се отказвай Ако чувствате, че

    има нещо, което не сте осмислили добре – не се отказвайте лесно. Задайте въпрос. Няма нищо срамно в това. Няма нито един от нас, в тази зала, който да е с неограничена компетентност. Всеки се е борил с определен клас проблеми и е опитен в едни неща, но не толкова в други неща. И ключът в това да не спрем
  6. развитието си, е да си признаем – пред себе си

    и пред другите – когато не разбираме или не знаем нещо. И да се опитаме да разберем. Умението да програмираш, без значение от език или платформа, е невероятно оръжие. Сега, в този университет, имате златен шанс да се въоръжите. Не го пропускайте. Не се отказвайте. Ще помагаме :)
  7. Ако има въпрос, по който се чувствате по-компетентни и видите

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

    споделя знание. Винаги сме готови да разказваме разпалено за технология, език, принцип… И това е чудесно. Така се развиваме, защото притокът на свежи хора и идеи поставя на изпитание някои закостенели виждания и ни кара да се движим напред.
  9. http://fmi.ruby.bg Регистрацията е отворена. Имаме сайт. Това е основното място,

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

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

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

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

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

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

    21 октомври. Ще я обявим като новина в сайта и ще направим събитие във фейсбук. Ще ни е важно да знаем колко от вас ще идват, за да изберем подходящо място, така че преценете рано.
  16. • десет броя • предават се онлайн • проверяват се

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

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

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

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

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

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

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

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

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

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

    че принципните неща, до които сме достигнали като изводи от опита си, са от основополагащо значение. Дори може да се каже, че езикът, който ще изучаваме, е по-скоро платформа, с чиято помощ ще се опитаме да ви предадем принципните неща, които не са пряко свързани с една конкретна технология.
  27. “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-а
  28. “Programs must be written for people to read, and only

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

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

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

    толкова популярен колкото Java, C++, Python, C# - е съвсем зрял инструмент, с който спокойно и прилично може да си изкарвате прехраната. Има търсене и недостиг на качествени Ruby кадри, както у нас, така и на международния пазар. Накратко – Ruby не е език-играчка. Ruby е като Tesla Model S. Може би не е с най-бързите параметри, но не е и никак бавен. Едно превозно
  32. средство, което е представител на бъдещето и което ти доставя

    уникално удоволствие, когато го използваш. И определено може да те придвижи от точка А до точка Б. Дори и да не ползвате Ruby в ежедневната си работа, покрай него ще научите неща, които ще са ви полезни и там. Дори това да е, че не може да продължите да пишете повече на текущите си език и технология, при положение, че има езици като Ruby :)
  33. $ 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 интерпретира се
  34. Community хостинг за Ruby (безплатни) библиотеки (наричат се gems). •

    Над 100 хил. библиотеки • Над 90 хил. потребителя • Над 6 милиарда изтегляния https://rubygems.org
  35. от 2011 - зрялост Ако през 2011 г. сме казали,

    че Ruby и екосистемата около него са достигнали зрялост, три години по- късно това е вярно с още по-голяма сила.
  36. Това е за ваше добро. Ако много, много, много държите

    да правите проект на Rails, елате и говорете с нас. Rails проекти – забранени
  37. Въпроси, диалог и обратна връзка Обратната връзка и комуникацията както

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

    предпочитате по-структуриран подход и нямате търпение да започнете още сега, може да пробвате някоя книжка. Има няколко и на О’Reilly.
  39. # 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
  40. (1..9).select { |x| x.odd? }.map { |x| x ** 2

    } (1..9).select(&:odd?).map { |x| x ** 2 }
  41. Още днес • Регистрирайте се на сайта: http://fmi.ruby.bg/ • Качете

    си профилна снимка • Попълнете анкетата • Инсталирайте си Ruby 2.2.3: http://fmi.ruby.bg/topics/1 Защо профилна снимка? Отново – по-добра комуникация. Хората инстинктивно търсим връзка между име и лице и това ни помага да си изградим образ за даден човек, което пък от ствоя страна ни помага да комуникираме по-ефективно с него.