понедельник, 26 сентября 2016 г.

Традиция

Последние выходные традиционно прошли в стиле "интенсив". ))
Спорт, учёба, вывоз с дачи тёщи с сельхозпродукцией, учёба, спорт, учёба.
Прошёл первый блок уроков углублённого программирования на C и остановился на первом же тестовом задании. С теорией "продвинутого" курса было всё более-менее понятно: новое знание не опиралось на какие-то положения, которые не были ещё мной изучены на "медленном" курсе программирования на языке C. А вот, тестовая задача предполагала как раз наличие таких знаний (циклы, ветвления). Поэтому пришлось приостановить изучение "продвинутого" курса и в ускоренном режиме продолжить изучение "медленного" курса.
В субботу "терзал" массивы и указатели. В воскресенье изучал циклы и ветвления.

Мне кажется, что, единственным достоинством "медленного" курса по программированию на языке C является низкий "порог вхождения" - подробно объясняется, как и с чего начать. Возможно, после того, как этот "порог" был пройден, мне нужно было переходить на "быстрый" курс. Уже, глядишь и прошёл бы все необходимые операторы.
Ну, ничего.  От "медленного" курса осталось всего два урока и начну проходить "быстрые" курсы с более академическим подходом в преподавании. Начну сначала. Заодно, повторю уже пройденное на "медленных" курсах. ))

Сегодня попробую написать тестовую программу из продвинутого курса. Посмотрим, что у меня получится, и, сколько это займёт времени.))
Сильно торопиться не буду, так как, в любом случае, продвинутый курс начался 23 августа, а я к нему присоединился только 23 сентября. Хотя, мой азарт может победить здравый смысл и заставить вступить в "соревнование" с самим собой. ))

На английском всё идет ровно. Изучили местоимения. Этот курс пока что не отнимает у меня много умственных сил, так как в ответ на получаемые на каждом уроке знания у меня в памяти "всплывает" воспоминание о том, что я это уже изучал когда-то раньше. А вспоминать мне всегда было гораздо легче, чем изучать с нуля.

В первом томе книги А.В. Столярова "Программирование: введение в профессию" я уже где-то в районе 280 - 300 страницы. В этом месте в книге автор рассказывает про язык программирования Паскаль, приводит примеры решения на нём некоторых задач. Синтаксис этого языка я не стараюсь запомнить наизусть. Мне достаточно простого понимания того, что делает написанная на нём программа. До Паскаля автор кратко прошёлся по основным командам bash и клавиатурным сочетаниям текстовых редакторов vim и nano. 
Ещё раз повторюсь, книга очень интересная и информативная и, в отличие от книги Дж.Сомнеза "Путь программиста", полностью соответствует своему названию.

По итогам результатов своих экспериментов с Window Managers, я решил пока что оставить себе Openbox. В нём достаточно много работы для клавиатуры и есть возможность в случае чего "пощёлкать" мышкой.  Теперь мой рабочий стол выглядит пустой экран с курсором - ни обоев, ни иконок, ни панелек, ни виджетов. Осталось только настроить запуск терминала одной кнопкой. Займусь этим после того, как напишу тестовую программу для продвинутых курсов по C.
В качестве менеджера файлов поставил gnome commander. В нём также можно работать с клавиатуры или мышкой. Понравилось, что в  gnome commander для файлов можно открывать контекстное меню ("открыть с помощью" и другие подобные функции) и переименовывать файлы привычным нажатием клавиши "F2".
Как-нибудь выложу здесь снимок рабочего стола.

До        После

пятница, 23 сентября 2016 г.

Про обучение

Вчера решил залезть на страничку автора курса по программированию на C. Нашёл там кучу ссылок на другие курсы. Некоторые из них мне очень понравились. Хочу изучить все. Собственно, вопрос: где взять ещё времени для учёбы? Думаю, человек, который изобретёт способ сознательно учиться во сне, станет очень богатым. Хотя, богатство его будет основано, скорее, не на связанной с таким способом технологией обучения, а на развлекательных технологиях.

Где-то читал, что человек предпочтёт развлечения учёбе, так как первые приносят ему больше удовольствия, чем второе. Развлечения оказывают воздействие на центры удовольствия, а учеба - на аналитические центры. Из-за этого мозг воспринимает развлечение как удовольствие и отдых, а учёбу - как работу, напряжение и лишний расход энергии. Есть расхожее мнение, что основным движителем прогресса была лень. Возможно, что именно из-за присущей большинству людей такой лени, учеба даётся им гораздо тяжелее развлечений.

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

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

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

Многие мои знакомые воспринимают учёбу как какую-то каторгу:
А мое решение о переквалификации - как несмешную шутку или какой-то сугубо мазохистский поступок. Уверен, что некоторые даже крутят пальцем у виска, когда я не вижу. ))

 Но всё это "лирика". Учёба у меня идёт по плану. Вчера на уроке по C по верхушкам прошли массивы. Осталось 4 лекции и нужно поскорее переходить на более академический курс.
Параллельно с этим планирую начать "углублённые" курсы по C.

На английском всё ещё изучаем грамматику.

Попробовал оконный менеджер awesome. Интересная и быстрая штука. Только непривычны клавиатурные сочетания (все завязаны на кнопку "Super" или "Windows") и не нравится, что нельзя просто взять и изменить размер окна мышкой. )) Думаю, это просто дело привычки.
Сегодня планирую попробовать dwm и ещё парочку других.

До        После

четверг, 22 сентября 2016 г.

Ускоряемся

Ведущая на курсах английского языка заметно ускорила скорость своей речи (особенно ближе к концу урока). Теперь приходится поднапрячься, чтобы успеть произнести какую-нибудь фразу до неё.
Немного настораживает способ обучения английскому. В первые со школы вижу такую методику, когда сначала изучаем алфавит, затем - звуки, после - правила построения предложений и формирования глаголов и существительных, а сами слова не учим и фразы из них самостоятельно не строим. Обычно всегда стараются параллельно учить слова и правила их складывания в предложения.
Ладно, посмотрим, что будет дальше. Может быть буду учить слова отдельно.

По языку C вчера прошли одну лекцию по массивам. Сегодня будет ещё одна. Автор стал снимать свои уроки в ОС Ubuntu. Подсмотрел у него в консоли разноцветные названия имени пользователя и хоста в терминале. Мне показалось очень удобным, когда служебная "статическая" информация отделена цветом от вводимой в терминал и выводимой в терминале "динамической" информации (мои команды, вывод программ и т.п.). Немного погуглил и сделал себе так же. Теперь у меня в терминале тоже всё красиво и удобно. Примерно вот так:



Попробовал несколько Window Manager-ов Linux: IceWm, fwm, fluxbox, WindowMaker. Не понравилось в них то, что нужно потратить много времени на настройку под себя (чтобы всё нужное было под рукой и не было ничего лишнего). Плюс, в некоторых WM есть такие неприятные "мелочи", как неработающее переключение раскладок клавиатуры, некорректная работа окон в некоторых программах (отсутствие прокрутки) и т.п.
Что понравилось в лёгких WM: скорость работы - почти мгновенный отклик на любое действие.
Решил, что пока у меня нет лишнего времени, чтобы тратить его на тщательную настройку WM, попробую ещё пару WM и если ничего не подберу подходящего, то вернусь на Unity.
Да, и ещё хочу попробовать пару фреймовых оконных менеджеров. Уж очень они хардкорно выглядят.))

До        После

среда, 21 сентября 2016 г.

ТЗ

Вчера пропустил урок по английскому языку. Беда, печаль. Но мы это исправим на выходных.

На уроке по языку C прошли указатели. Автор курса 2,5 часа путано, сбивчиво, обрывая одну мысль и переходя на другую, многократно повторяя то, о чём уже сказал не один раз, рассказывал то, что можно было бы донести до нас максимум за 30 минут. Урок автор закончил примерно такими словами: "Что такое указатели мы с вами разобрались. А для чего они нужны, мы будем разбираться позднее".
Тема следующего урока - массивы... В темах последующих уроков также ничего про указатели не сказано. Получается, что когда через много-много уроков мы опять вернёмся к указателям, автор выдаст нам новую версию своей путанной и сбивчивой лекции на 2,5 часа? ))
Но я не сильно переживаю по этому поводу. Есть ещё "быстрый" курс по языку C, в котором указателям посвящена отдельная лекция, и замечательная книжка по программированию, в которой автор также пообещал посвятить много времени указателям. Так что никуда указатели не денутся. ))

В книге по программированию прочитал, что для того, чтобы стать программистом, нужно обязательно придумать себе какое-нибудь тех-задание на разработку ПО и выполнить его.
Ну, что ж. Я придумал себе целых три:
1) Программа, которая будет уведомлять меня о появлении изменений (новых публикаций) на сайтах (отдельных страницах этих сайтов), у которых нет рассылки новостей. Допускаю, что такая программа (и не одна) уже есть, но мне нужен свой "велосипед".
2) Программа, которая будет на сканированные изображения документов наносить отметку о том, что копия документа является заверенной (с текущей датой, должностью, Ф.И.О. и подписью). Попробую изобрести свой Water Mark.
3) Программа для видео-наблюдения, включающая запись изображения только при изменении картинки, получаемой от камеры.

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

А ещё сегодня по дороге на работу чуть не наступил на живого богомола. Раньше я их в живую никогда не видел и думал, что они у нас не водятся. Вот так: век живи - век под ноги смотри. ))

До        После

вторник, 20 сентября 2016 г.

Без сюрпризов

Сегодня, как и до этого, всё у меня идёт по плану. Правда, работа вносит в него свои коррективы - вместо двух уроков по каждому предмету, как хотелось бы, успеваю изучить только по одному уроку. Ну, так никто и не обещал, что будет легко. Поэтому всё - по плану. ))

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

Пару недель назад прочитал статью Прокопова Никиты "Голые короли IT" и стал лучше понимать, что за "разброд и шатания" творятся в IT.
До этого просто недоумевал, почему на рынке труда так много вакансий для специалистов в тех областях и технологиях IT, которые, судя по категоричным высказываниям блогеров и подкастеров, устарели, громоздки, неудобны и вообще давно "умерли". Оказывается, всё просто: на технологии и специализированное ПО тоже есть мода. ))
Осознав  это, вздохнул свободнее: можно больше не метаться в поисках самой востребованной технологии, чтобы уж наверняка найти работу по будущей специальности, а просто изучать программирование.

Удалил из своего плей-листа пару подкастов, в которых люди занимались самолюбованием и самовосхвалением.

Приобрёл несколько рекомендованных сообществом IT книг. Жаль, что нельзя читать во сне. Ведь так много нового хочется узнать. Ничего. Вода камень точит. Буду читать каждый день минимум по часу и рано или поздно все книжки будут прочитаны. ))

До        После

понедельник, 19 сентября 2016 г.

Новая книга

Вчера, когда выбирал новую связанную с программированием книгу для ежедневного чтения, вспомнил, что полтора года назад читал "Программирование на языке ассемблера NASM для ОС Unix" А.В. Столярова. Это была единственная книга, по которой я смог изучить и понять основы ассемблера. Даже умудрился получить сертификат об этом:
Вот и в этот раз подумал: а что если у этого же автора есть не менее толковая книга по языку C.
И почти угадал. Автор, действительно, думал написать такую книгу, но решил пойти ещё дальше и выпустить четырёхтомник "Программирование: введение в профессию", который был задуман как сборник основных сведений, нужных, чтобы самостоятельно освоить программирование с использованием операционных систем семейства Unix.
По задумке автора:
"...книга должна охватить этапы изучения программирования в объёме «продвинутой» школьной информатики (в той её части, которая непосредственно касается программирования) и первых двух курсов ВМК МГУ, с учётом использования операционной среды ОС Unix. В книгу войдёт (в сильно переработанном виде) материал, ранее использованный в книгах Операционная среда ОС UNIX для изучающих программирование, Программирование на языке ассемблера NASM для ОС Unix, Введение в операционные системы и Введение в язык Си++, что составит, по ощущениям, около половины объёма будущей книги. С нуля придётся написать, во-первых, главу, посвящённую математическим основам программирования — теории алгоритмов и её связи с теорией вычислимости; во-вторых, полностью с нуля будет создана часть, посвящённая начальному освоению программирования на примере языка Паскаль, а также сравнительно небольшая, но необходимая часть, посвящённая языку Си. Если хватит сил, стоит снабдить книгу также частями, посвящёнными Лиспу и Прологу".
К данному моменту уже вышли в свет первые два тома сборника.
Что интересно, автор  пишет книги на полученные от будущих читателей пожертвования и принципиально не хочет заключать договоры с издательствами, чтобы иметь возможность распространять свои произведения в электронном виде бесплатно.
Действительно, на сайте автора совершенно бесплатно, без регистрации и необходимости просмотра рекламы )) доступны для скачивания все написанные им книги.
Если успею, надо будет поучаствовать в финансировании третьего и четвертого томов "Программирование: введение в профессию", тем более, что в обмен на это автор предлагает такие подарки, как:
- указание имени жертвователя в книге;
- отправку жертвователю одного или нескольких томов книги (в зависимости от суммы пожертвования) в бумажном виде с автографами автора.
Более подробную информацию о пожертвованиях и подарках можно почитать на сайте автора.

Первые два тома этой книги я себе уже скачал и начал изучать. За воскресенье успел прочитать что-то около 100 страниц (с перерывами на курсы по английскому языку и языку C). Из того, что понравилось: автор начал введение в профессию с самых основ и обучает программированию с помощью инструментов, которые предоставляют Unix-подобные ОС. Использование удобных бесплатных инструментов при обучении - это очень хорошая идея.

Кстати, по ОС Unix и ОС Linux у меня тоже есть сертификаты )):
 
Понимаю, что хвастаться тут нечем, т.к. приведённые сертификаты - это не ахти какой показатель, но, по крайней мере, не смотрю на ОС Linux, как на "новые ворота".

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

До        После

воскресенье, 18 сентября 2016 г.

Интенсивные выходные

Выходные идут на повышенных оборотах.

Суббота: 
- урок английского;
- урок по программированию на C;
- 1 час чтения книги;
- поиск хитрого сетевого зарядного устройства для планшета свояка ("ты ж будущий программист, помоги найт!" ));
- настройка ПО на компьютере на работе у сестры;
- доставка тёщи на дачу;
- доставка провианта с дачи домой тёще;
- чтение книги;
- 2 серии "Человека в железном замке" (не смог устоять).

Воскресенье:
Закончил читать книгу Дж.Сомнеза "Путь программиста".
Что могу про неё сказать? 2/3 книги с опытом программиста вообще никак не связаны и представляют собой описание бытового жизненного опыта автора в стиле мемуаров. Более правильным названием для книги было бы "Как я вышел на пенсию в 33 года". Тем более, что эта фраза несколько раз повторяется автором на протяжении всей книги. 
На пенсию в 33 года автор вышел благодаря жестокой экономии и удачному вложению денег в недвижимость.
Чего-то нового и полезного для себя я в этой книге не увидел. Перенять опыт автора в наших условиях не получится, т.к. проценты по ипотечным кредитам в нашем городе в 1,5 - 2 раза превышают доход, который можно получить от сдачи недвижимости в аренду (это, если покупать недвижимость как Дж. Сомнез - "под ипотеку" при уплате 10% первоначального взноса).
Всё остальное, что Дж. Сомнез рассказывает про управление семейным бюджетом, питание, здоровье и т.п. не является для меня новостью уже наверное лет 15 - 18 ))
Несколько наивные рассуждения Сомнеза о функционировании банковской системы США ничего, кроме снисходительной улыбки не вызвали.
Кому можно порекомендовать эту книгу? Наверное только очень молодым людям, у которых нет доступа к Интернету. И то с оговоркой - не принимать изложенное в книге как истину в последней инстанции.

На курсах английского языка прошли уже 6 уроков. От правил чтения буквосочетаний перешли к правилам чтения предложений.

На курсах программирования на языке C изучили типы данных char, short и int  и особенности  их применения. Поигрались с функцией printf() и её маркерами. Прошёл уже 11 уроков из этого курса.
Кто-то может сказать, что 11 уроков продолжительностью от 0,5 до 2,5 часов каждый - это слишком много для того объёма информации, который я на них смог получить. Но я специально оставил "быстрые" ("сжатые") курсы на потом. Во-первых, автор "медленного" курса очень подробно разъясняет самые основы языка C и рассказывает такие нюансы, которых не услышишь на "быстрых" курсах. Во-вторых, как я уже писал ранее, на "медленном" курсе очень низкий "порог вхождения" и после его прослушивания я буду более-менее готов приступить к "быстрым" курсам. В-третьих, автор "медленного" курса записал всего 20 уроков, половину из которых я уже изучил, и скоро смогу перейти к "быстрым" курсам.

Ещё сегодня  (в воскресенье) успел побегать по стадиону и планирую в перерывах между занятиями заниматься спортом. Общий план на сегодня такой - повторять в цикле следующие занятия:
- 1 урок программирования;
- спорт;
- 1 урок английского;
- спорт;
- 1 час чтения книги;
- спорт.
Посмотрим, на сколько циклов меня хватит ))

А ещё мне нужно выбрать из примерно 20 книг, какую читать следующей. ))

До        После

пятница, 16 сентября 2016 г.

Всё идёт по плану

Вчера на курсах по языку C изучали сниппеты в текстовом редакторе SublimeText. Вещь удобная и полезная, но для меня как новичка - преждевременная.
Думаю, правильнее будет сначала научиться код самому ручками писать, а потом уже использовать инструменты, которые будут писать за меня.

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

У планировщика kanbanflow выявилась ещё одна неприятная черта. Я назвал её "синдром надсмотрщика". ))
Если к обозначенному в плане времени я не перетащил задачу в колонку "в процессе" или "завершено", он выделяет задачу красным цветом и шлёт мне на электронную почту письмо о том, что я пропустил выполнение задачи.
Получается, что кроме учёбы я должен параллельно контролировать, который сейчас час, и ещё думать о том, что в определённое время мне придётся подняться со своего уютного дивана (кресла, коврика для йоги), чтобы дотянуться до монитора и совершить в kanbanflow какие-то чисто механические и ненужные мне действия, как о чём-то жизненно необходимом (иначе зачем меня об этом так настойчиво уведомляют).
Таким образом программный планировщик:
1) вносит в процесс моего обучения раздражающий фактор. Мне, наверное, лучше знать, выполнил я задачу или нет и когда у меня есть возможность приступить к её выполнению;
2) засоряет мой электронный почтовый ящик;
3) превращает процесс моего обучения из удовольствия в обязанность.

Возможно, что kanbanflow - это всё-таки не то, что мне нужно. Думаю, мне стоит вернуться к старому доброму "настольному календарю" - составить своё расписание в простом текстовом документе в google docs. ))

До        После

четверг, 15 сентября 2016 г.

Расписание занятий

Пришло время распланировать свои занятия.

За время своей юридической карьеры я испробовал разные планировщики задач. Большинство из них отнимает слишком много времени на слишком подробное планирование задач. Так, например, чтобы распланировать насыщенный событиями день (или неделю) и отметить уже выполненные задачи у меня могло уходить от 1 до 2 часов каждый день. При этом задачи и сроки их выполнения постоянно меняются и мероприятия переносятся, а планировщик, как назло, заставляет указывать не только, в какое точно время я планирую начать выполнение задания, но и сколько времени я планирую на него потратить. Думаю, не мне одному очевидно, что тратить 2 часа рабочего времени в день на выполнение чисто механических действий по заполнению планировщика задач - не очень хорошая идея.

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

Так как настольный календарь постоянно находится у меня в офисе, а смешивать в планировщике на телефоне рабочие задачи с задачами по учёбе считаю не совсем правильным, то решил для учёбы завести себе третий планировщик задач. Пока что пробую kanbanflow:
Что в нём нравится - простота. Что не нравится - меня снова вынуждают указывать время начала выполнения задачи. Пока не нашёл, как от этого избавиться. ))

Что на данный момент запланировал:
- 1 - 2 урока в день по языку C;
- 1 - 2 урока в день по английскому языку;
- 1 час - на чтение книг так или иначе связанных с программированием.

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

До        После


Английский язык

Кроме написания первой программы на C, вчерашний день примечателен для меня ещё и началом (пятым или шестым по счету) изучения английского языка.
Изучение решил начать с самых основ (буквы, звуки и т.п.). Поэтому нашёл на youtube курс по изучению английского языка для начинающих, состоящий из 200 уроков.

Если изучать по 1 - 2 урока в день, то в среднем на освоение курса у меня должно будет уйти около 150 дней (порядка пяти месяцев). То есть, ориентировочно к февралю 2016 года можно будет начинать вести блог параллельно на двух языках: русском и английском. ))
Возможно, у меня даже получится ускорить процесс изучения, если помимо видео-уроков буду ещё смотреть фильмы на английском и слушать в перерывах между IT-подкастами аудиокниги на английском.

До        После