Показаны сообщения с ярлыком онлайновое обучение. Показать все сообщения
Показаны сообщения с ярлыком онлайновое обучение. Показать все сообщения

суббота, 4 октября 2014 г.

Python і High Load Lohika morning

  1. закінчив курс learnpythonthehardway.org і прочитав learnxinyminutes.com по тому ж python. Відчув себе джуном-початківцем. Синтаксис мови тепер не викликає відторгнення, є бажання щось написати.
    Lifehack про друкування коду прикладів - найкраща порада для освоєння нової мови програмування.
  2. Сходив на morning.lohika.com по High Load, який провів гість з Києва Дмитро Думанський. Цікаво і добра вправа для голови. На планшет або телефон часу не було варто витрачати.
    Відчував всю доповідь і сесію питань і відповідей - скільки ж ще мені вчити і отримувати досвід.
    Але потім сходив на ленту автора на Хабрі, де були співпадіння з презентацією (а я читав лише статтю автора на доу, глибше не пішов, менше цікаво на доповіді не було), почитав коментарі.
    Звичайно, хабровські троллі, які не ставлять у приклад власні проекти, а лише відмовляють авторові у цінності викладення матеріалів, порадували.
    Але легше стало :)

пятница, 3 октября 2014 г.

Краще ніж вчора

В рамках задуманого місячника "Сьогодні краще ніж вчора" почав із прояснення для себе що ж таке SOLID - принцип, про який мене досить часто питають на співбесідах.

Дуже вчасно під руку потрапили сторінки київського программіста-дотнетчика. Я підписаний на його блог, колись намагався погортати його, але застряг. Пише розумні речі, які в голову одразу не заходять. Статті він писав декілька місяців, але я терпляче чекав коли він допише всю серію по абревіатурі - щоб у голові все одразу вклалося.
І ось нещодавно він, здається, дописав.

Особливим успіхом похвалитися не можу, але сподіваюся, що наступного разу це питання мені не буде здаватися таким формальним, і я зможу про SOLID поговорити, а не просто відбарабанити завчені визначення. Я на всі 100% автора не зрозумів. Можливо, пізніше перечитаю і відчую просвітлення. Але зрушення були.

Якщо ви не я, то раджу читати прямо автора - в нього більше, розгорнуто, краще. Тут пишу більше для себе, конспектую виконання намагань стати сьогодні краще, ніж вчора.

Даний принцип стосується проектування і архітектури.

Отже, що як я тепер буду розшифровувати дану абревіатуру:

  • S - Single Responsibility Priciple
    Клас повинен мати лише одну причину для зміни.
    Тобто потрібно так керувати складністю і розділяти відповідальність між класами, щоб наступні зміни в систему були якомога легшими, без тривалих досліджень і переробок. (Саме тому не варто покладати відповідальність на один і той же клас для роботи з базою даних і інтерфейсом користувача) 
  • O - Open / Close Principle
    Програмні конструкти повинні бути відкритими для змін і закритими для модифікації.
    Мова йдеться про стабільність (закритість для змін) інтерфейсу взаємодії програмних конструктів і вільність зміни їх реалізації.
    Теж боротьба із складністю внесень в систему архітектурних змін.
  • L - Liskov Substitution Principle
    Повинна бути можливість заміни базового класу на його похідний.
    Автор пише про збереження дизайном умов контракту при змінах у системі.
  • I - Interface Segragation Principle
    Зменшення зв'язності за рахунок розділення інтерфейсів для конструкту, які можуть використувувати різні клієнти.
  • D - Dependency Inversion Principle
    Модулі верхнього рівня не повинні залежати від модулів нижнього рівня, і обоє повинні залежати від абстракцій. Абстракції не повинні залежати від деталей, деталі повинні залежати від абстракцій.
    Заміна композиції агрегацією. Залежності вносяться зовні (через параметри методів чи конструкторів), а не закладені намертво в клас.

суббота, 15 июня 2013 г.

Слово, у которого пока нет страницы в русской википедии, но в английской и украинской - есть

Infotainment  

Infotainment is "information-based media content or programming that also includes entertainment content in an effort to enhance popularity with audiences and consumers."[1] The term can also refer to the hardware/software products and systems which are built into, or can be added to vehicles in order to enhance driver and/or passenger experience. It is a neologistic portmanteau of information and entertainment, referring to a type of media which provides a combination of information and entertainment. According to many dictionaries[2]infotainment is always television, and the term is "mainly disapproving."[3] However, many self-described infotainment websites exist, which provide a variety of functions and services.,[4]many of which include the several increasingly popular social media websites and applications being used daily by billions of users world wide.

Інфотейнмент
Інфоте́йнмент (infotainment, від англ., information — інформація і entertainment — розвага) — це вид інформаційних програм. Новини у них подаються для аудиторії в максимально розважливій формі. Інформування реципієнтів проходить в ненав'язливій формі, а новинні програми представляють політику, як сферу масового життя, наближеного до людини. Інфотейнмент, як правило, містить лише поверхові відомості з певної теми і не може розглядатися як джерело самоосвіти. Синонімом інфотейнменту іноді виступають т.зв. soft news («легкі» новини), названі так на противагу hard news («вагомим», або «справжнім», новинам). В друкованих ЗМІ цьому поняттю відповідає термін «таблоїдизація», що подає події у такій же розважливій формі, але в друкованому вигляді.

Лично для меня слово это скорее означает способ восприятия информации, а не способ ее подачи. Так уж получилось - когда-то не понял, вложил в словослияние (Portmanteau, и для этого слова нет уже украинской страницы, а русская есть) что-то свое.

Это когда я читаю блоги, книги, журналы и статьи - в электронной и бумажной форме - и тому подобное, а полученную информацию - не использую никак кроме как for lulz. Сюда же идет скачивание попавшихся на глаза книг, сбор ссылок на них и другие интересные статьи, которые захламляют окно броузера, но которые не хочется "терять". Да, открытые неделями ссылки - туда же.

Тезисом для диалектического осмысления происходящего, вероятно, когда-то было желание постоянно расширять кругозор и быть способным поддержать разговор на буквально любую тему, похвалиться прочитанным, порекомендовать что-то уже пройденное для себя другим людям. Не получение знаний и\или навыков, а именно чтение книг стало самоцелью. Тем более, что не все знания, которые дают книги, можно превратить в навыки в реальном мире. Часть из потенциально возможных еще отсеивается тем, что знания вообще никак и никогда не используются. Да, это было открытие: прочитаное сравнитнльно большое для окружения количество книг не превратилось в преимущество. Книги не те? Ну,може хотя бы несколько должны были бы оказаться "теми"?

Сейчас это явление из-за невостребованности информационного "послеследа" превратилось в антитезу -  довольно бессмысленное собирательство всего, что попадает на глаза. Иногда я забываю последнюю страницу\ главу прочитанного. "База данных" (скорее чулан), которая в каком-то виде существует в моей голове и обеспечивает "доступ" к информации, работает довольно своеобразно. Главные методы получения усвоенной информации - по ассоциации с происходящим вокруг\всплывшим в разговоре, и то, что было повторно пройдено\часто использовалось в последнее время. Пример - часто используемые формы обращения программного кода к сторонним библиотекам и стандартным средствам программного языка ("public void", "public static void main(String[] args)" ...). Кстати, именно поэтому считаю потерей метод  только чтения кода при обучении - в книге или видео. Руки, которые набирают код, помагают запомнить его как навык. Вот если бы задания в Codeacademy были бы посложнее...

Я не знаю был ли интернет причиной или следствием - причиной как источник практически бесконечного и ограниченного только выделяемым мной временем количества информации или следствием неудовлетворенного желания поглощения информации. Возможно, с таким же успехом, но без существования интернета, я бы погрузился только в книги. Бумажные.

Некоторое время я задумался над тем, куда девается мое время. Да, работа плюс дорога к ней и обратно - допустим восемь плюс два. Да, внимание к семье - допустим, пять. Да, сон - часов шесть. Но существовало некоторое количество времени перед сном, которое просто исчезало. Телевизора нет. Сериалы и фильмы из интернета смотрю - изредка. Планы по самообразованию медленно "прогибаются" по срокам, растягиваются. И это не смотря на то, что есть порядка трех часов перед сном - в тишине, когда никто не беспокоит. Куда девается мое время? Оно просто проходит. Я  не успеваю!

Да, можно поставить себе на вид изворотливость в достижении целей. Самообразовываться желание есть, а вот учиться - возможно, и нет. Сознательно поставлена цель в получении знаний, подсознательно делать особо в этом направлении не хочется. Возможно. Все должно произойти само собой или с чужой "помощью". Я даже когда-то работу из-за ощущения нежелания создать мне личную образовательную программу поменял. Потом подобие такой программы получил, и понял, что прочитать книгу и сделать что-то самому мне было бы удобнее. Потом почитал и сделал. Понял, что постыдно оттягивал момент чтения и занятий. Записался на онлайн курсы с дедлайнами для домашних заданий - чтобы оттягивать было неудобно. Стал сдавать задания с опозданием, или сидеть по-студенчески "ночь перед экзаменом".

Но оставалась еще прорва времени, которую отдыхом я не ощущал. Начал за собой следить - и обнаружил почти наркоманскую привичку к "информацинной соске". Я на протяжении дня отвлекаюсь на чтение статей и ленты RSS из интернета. Вечером провожу несколько часов "доедая недоеденное", просто проверяя наличие новых "порций", или в поиске дополнительных подходящих источников. В теории, я тогда получаю удовольствие, отдыхаю. Не знаю, что виной тут - количество информации, качество того что я "потребляю" (или уже "потребил") или способ (время, окружение) "попотребления". Но на практике это удовольствие превратилось в возможность удовольствия, а сам процесс - в ожидание удовольствия. Без гарантии его получения. 

Тоесть, у меня зависимость. Не алкоголь и не курение, а инфотейнмент.

понедельник, 3 июня 2013 г.

Functional Programming Principles in Scala от Coursera

Пришел (обновился в кабинете?) сертификат.
Хотя курс довольно давно уже закончился - по крайней мере для меня: я сдал последнне задание неожиданно для себя вовремя, еще 19 мая.

Неожиданно, потому что из-за неорганнизованности часто опаздывал со сдачей, за что мне заслуженно снимали баллы. Так я из 10 за задание получал 8, а иногда и 6 баллов. Для того, чтобы получить сертификат с отличием, надо было набрать за все 6 заданий 48 баллов и выше. Мой же результат - 43,98 балла.
Все, что кроме двух сотых, снятых с меня за стилистически неправильное использование изменяемых (mutable) коллекций в задании с анаграммами - это баллы за опоздание с заданием.
Возможно, поэтому сертификат у меня все-таки с отличием, хотя и набрал я по сути 73, а не нужные 80%.

Баллы считались автоматически: задание отсылалось на сервер из консоли Scala. Потом сервер, видимо прогонял встроенные в задание тесты (может быть, даже поставляемые с заданием юнит-тесты), проверял на соответствие стилю, и обновлял оценку в "онлайновом кабинете" - с пояснениями в виде лога во время проверки.

Сам курс довольно интерестный. Тем более, что он у меня первый такой - онлайновый и удаленный. С другой стороны, и об этом у меня в анкете обратной связи по курсу почему-то не спрашивали - я ожидал, что будет больше Scala и меньше довольно теоретических лекций по функциональному программированию с применением Scala.

Я очень скромно оцениваю свои успехи в функциональном программировании и в языке. Мне еще учиться и учиться. Поэтому я даже в профиле на linked.in не обозначил знание функционального программирования и Scala. Не хочу разочаровывать и позориться.

Все собираюсь пересмотреть еще раз весь курс, а до этого прочитать книгу по языку.
Но это будет непросто - у меня очень мало времени, ведь кроме работы у меня еще дома маленький ребенок, и два новых онлайновых курса - Стенфордовский "Machine Learning" на той же Coursera, и курс по MongoDB от его создателей - M101J MongoDB for Java Developers.

Курс по машинному обучению оказался довольно сложным и объемным, и я уже не верю, что его осилю - пусть и до первого июля, на что дается возможность. Видимо, ввиду сложности курса за опоздание снимается только 20% баллов и дается больше месяца на доздачу - вотличие от курса по функциональному программированию, который снимал баллы ежедневно за опоздание. Чувствую, это надо неплохо так засесть. Возможность, вроде как и есть, но у меня ощущение, что времени сосредоточиться у меня не будет.
Еще думаю, что курс от Яндекса по тому же предмету будет попроще - русский у меня значительно лучше английского. Мой английский, пусть и уровня Intermediate+, все же немного неудобный для такой сложной темы.

Со вторым курсом - по MongoDB - у меня получше. Я пока 2 из 7 заданий сдал вовремя и на максимальный балл. На очереди третье задание с дедлайном меньше суток.  Кроме того, видео лекции попроще, и тесно связаны с домашним заданием - в отличие от курса по Scala, в котором мне приходилось дополнительно гуглить и учиться.
Крайний срок в понедельник не 12 ночи, а 3 часа ночи\утра уже вторника.
Так что у меня есть еще 3,5 часа на данный момент.
А еще, как обычно, не все лекции досмотрены, и по заданиям конь не валялся.
Убегаю...

Update: Успел сдать последнее задание за минуту час до дедлайна :-)

Update: "отличие" для диплома от Cousera все-таки сняли. Удобно, что диплом был онлайн :-)