Курсы по системному программированию с Майклом Керриском

Всю прошлую неделю я провел в Мюнхене, на интереснейших курсах по системному программированию под Линуксом (Linux/UNIX System programming).

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

/images/system-programming-study.jpg

Организатор курсов - Майкл Керриск (англ. Michael Kerrisk), мейнтейнер документации Линукса и автор книги The Linux Programming Interface. Сравнить эту энциклопедию не с чем, это одна из двух-трех моих настольных книг, поэтому в квалификации преподавателя сомневаться не приходилось.

Другое дело, что Майкл не только великолепно знает материал, но и умеет грамотно его подать. На все мои вопросы он не только дал ответы, но и подсказал, где найти соответствующие примеры. Простых вопросов, между прочим, у меня не было: вся моя карьера связана с программированием для серверов с Linux.

Курсы покрывают широчайший набор тем. В общем-то, затронуты все базовые вопросы, с которыми стоит быть знакомым любому программисту под UNIX-подобные ОС, плюс некоторые актуальные современные расширения Linux.

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

Весь код - задач и примеров - был доступен для скачивания. Курс (недельный и очень интенсивный!) покрывает только 60-70% доступных материалов (слайдов, примеров и задач в коде). Но качество материалов позволяет с неохваченными курсом темами при желании ознакомиться отдельно.

Кроме распечатанных в удобную книгу слайдов слушателям курса достались бумажные и электронные экземпляры The Linux Programming Interfaces. Книга, кстати, не только недешевая, но и немаленькая: ради нее даже пришлось пожертвовать свитером, не поместившимся в рюкзак.

А еще удалось выпросить у Майкла сопроводительные материалы к другому его популярному курсу: Linux Security and Isolation APIs. Найти время на ознакомление пока не удалось, но, полагаю, должно быть очень интересно.

Впечатления остались строго положительные. Курс ответил моим ожиданиям: основательно и практично разобраны основы системного программирования. Я, конечно, с этими темами уже был знаком, но системного изложения материала не слышал никогда. Опять же, интересно было узнать о самых последних трендах по теме.

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

В общем, это было шикарно. Не терпится теперь попробовать некоторые из знаний в работе. Рекомендую!

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

/images/system-programming-certificate.jpg