Продолжаю выкладывать выдержки из вводного курса нашей компании по промышленному программированию.
Часть вторая: Принцип сохранения функционала
Рассказывается чем вредны конфиги и почему писать много кода — плохо. Другие части можно найти тут.
Привет всем. Публикую выдержки из вводного курса нашей компании по промышленному программированию. Если выдержки покажутся интересными хаброобществу, продолжу публиковать другие куски.
Курс этот предназначен прежде всего для junior developer'ов и позволяет повысить уровень аргументации в холиварах на тему «почему PHP (Java, Perl, Bash) отстой».
В данном курсе рассматривается поточная модель программирования, основанная на вычислительной машине Тьюринга, история возникновения современных ЯП, а так же область их применимости. А так же внятно и доступно объясняется что такое ООП и функциональное программирование.
Часть первая: Как появлялись языки и зачем
Часть вторая: Принцип сохранения функционала
Часть третья: Синтаксический сахар или история развития языков
Читать полностью »

Заключительная лекция курса «Сетевое программирование в UNIX», который подготовили специалисты SkyDNS и компании «Айдеко», получилась многогранной.
На лекции были рассмотрены две основных темы. Марк Коренберг («Айдеко») и Александр Патраков (SkyDNS) рассказали, как простыми модификациями можно ускорить работу цикла обработки событий и объяснили, как пользоваться флагом EPOLLET. Читать полностью »
В прошлой статье От инженера до руководителя. Часть 1: Чувство справедливости я рассказывал о чувстве справедливости. Возвращаясь к ней, хочу повториться, что чувство справедливости является основополагающим моментом. И если мне вздумалось о чём-то рассказать, то каждая моя неточность, а тем более ложь, неподкреплённое фактами мнение, орфографическая ошибка и агитация нашли бы своих недовольных. Что, собственно, можно наблюдать и тут и в жизни ежедневно. Одно дело придерживаться конкретной стороны в холиваре (парадигме, стандарте, процессе), получая тумаки от одних и поддержку от других; и совсем другое дело — описывать и следовать своей собственной точке зрения, опыту и выдерживая свою стилистику. Это — сродне минному полю, где известны правила игры, но за всё, что делаешь, несёшь сам ответственность. Такая же разница существует между исполнителем и руководителем, где последний при своей ошибке получит пинок из-за проявленой “несправедливости” и набьёт немало шишек сам, если будет ошибаться, хотя и спасая этим идущих за ним. Поэтому в моём понимании лучше набивать шишки загодя, с уровня сотрудника, ощупывая путь мягкими частями тела, не получая дополнительных пинков сзади — главное не отставать и не идти против руководителя, впрочем, если он не до конца неправ и не ведёт всех на обрыв. В противном случае, попридержите коней, ведь вы — рабочая лошадка — в одной упряжке. О том, как как поставить правильную цель и как исполнять работу совместно с другими и пойдёт речь в этой статье.
Работая продолжительное время инженером-программистом, я собирал помимо опыта и знаний ещё недовольство и замечания к рабочему процессу и начальству в частности. Каждый раз, когда я сталкивался с проблемой, я думал над тем, как мог бы я её решить и что я могу сделать в этой ситуации. Что-то удавалось сделать, а что-то разбивалось об процесс и руководящий аппарат. И каждый раз проблема и её решения откладывались мной, с осознанием того, что если бы у меня были нужные рычаги, уж тогда-то я смог бы изменить и сделать так, как правильно. Я даже сформировал ментальную систему, которую, впрочем, поленился формализовать на бумаге. Царящая вокруг меня несправедливость была для меня хоть и сокрытым, но комком в горле, превращающимся в камень на душе. Я ожидал шанса и возможности всё накопленное реализовать и поправить, и однажды возможность подвернулась.
Будьте осторожны в своих желаниях — они сбываются!

Так и случилось, что мне предложили нежданно-негаданно руководящую должность, оценившую мои таланты и навыки и позволяющую реализовать свои амбиции. Беседа с менеджером закончилась в лучших традициях “Ты теперь начальник — управляй”. И теперь мне предстояло воплощать в себе лучезарный и кристально-чистый светоч справедливости и делать людей счастливыми, нести слово и байт людям. Однако, почти сразу же оказалось, что это несколько сложнее, чем мне казалось ранее, что угол зрения на проблемы снизу и сверху несколько различается, и родной код оказался приветливее громадины проблем и забот. Поэтому сейчас я решил наконец-то оформить свои догмы на бумаге от лица исполнителя и с призмы начальника. Вряд ли я скажу что-то новое, кроме того, что уже до меня написано в хороших книгах, за исключением примеров из практики и шуток с прибаутками, поэтому либо пролистывайте сразу, либо добро пожаловать под кат. Читать полностью »

- Вы не любите кошек?
- Да вы просто не умеете их готовить.
Альф
Тебе повезло, ты не такой как все.
Ты работаешь в офисе...
"Менеджер" гр. "Ленинград"
Больше месяца готовился к Летнему Аналитическому Фестивалю 2012 — мой доклад был посвящен вопросам подготовки менеджеров для ИТ-сферы. В ходе работы над ним родилась эта статья, в которой я поднимаю следующие вопросы:
Как перед стартапами, так и перед компаниями, давно и успешно ведущими бизнес, стоит дилемма: искать готового специалиста или выращивать его в своих стенах. И мы, начав собственный софтверный бизнес, тоже практически сразу ощутили дефицит продажников, консультантов и менеджеров проектов. Предлагаемый нами альтернативный вариант, с одной стороны, требует на начальном этапе некоторых усилий и времени, а с другой – позволяет получить квалифицированного специалиста.
Читать полностью »

В начале 1880 года, некий Чарльз Певи, дантист из Вустера, привлёк внимание общественности предложив $1000 (тогда это были неплохие деньги), за решение следующей задачи: пятнадцать шашек были размещены в квадратной коробочке в правильном порядке, и только шашки 14 и 15 были переставлены, как показано на рисунке. Задача состояла в том, чтобы, последовательно передвигая шашки, привести их в нормальное положение, причем, однако, порядок шашек 14 и 15 должен быть исправлен.
У нас в компании каждый сотрудник может 5 часов в неделю заниматься самообразованием (читать/писать на «Хабр», учить F# или читать SICP). Со временем данная практика эволюционировала в создание мини-проектов. Так, например, Максим, опытный JavaScript-разработчик, решил попробовать себя в создании приложений под iOS, и, примерно, за полтора месяца выпустил пятнашки, которые, без всякой рекламы, за неделю продаж вошли в TOP 10 русского App Store в категории игры.
Далее код проверки на Objective-C и принцип прохождения пятнашек из книги Якова Исидоровича Перельмана «Живая математика». Читать полностью »

Способы решения этой проблемы, поднятой еще в 2001 году программистом Дэном Кегелем, рассматриваются в девятой лекции курса «Сетевое программирование в UNIX», подготовленного специалистами SkyDNS и компании «Айдеко». За подробностями – добро пожаловать под кат.
Читать полностью »

Глядя на количество программ, владение которыми считается хорошим дизайнерским тоном и большим графическим профессионализмом, хочется плакать. Ибо имя им легион, а тебе — Наташа. Вот несколько способов, применяя которые, можно в короткие сроки научиться чему угодно — от вязания балийскими иглами до тридэмакса, автокада и прочей ерунды.
Читать полностью »
Данный топик написан мной по результатам общения с представителями IT компаний, которые, заинтересовавшись циклом статей про студенческие проекты, приехали на Мат-мех в поисках людей, которых можно было бы нанять к себе в компанию. В результате найм несколько не удался, поскольку по словам нанимателей “брать на работу программистов из студенческих проектов можно только по географическому признаку”. Похоже проблема подбора квалифицированных кадров существует и стоит довольно остро. Я попытался раскрыть свои мысли по поводу того, где брать программистов или как их выращивать.
Читать полностью »