International conference of developers
and users of free / open source software

Как получить практический опыт работы с открытым программным обеспечением?

Викентий Лапа, Минск, Belarus

LVEE Winter 2012

How to obtain practical experience with FOSS products? It is one of difficult questions that appear in front of a novice when he tries to get a job. Presentation describes author’s personal experience in freelance as one of possible solutions – as globalization gives novice or user with little experience an opportunity to improve his skill and to obtain real practice with FOSS products. Freelance tendencies and types of tasks related to FOSS in hosting and system administration are reviewed, as far as some useful tips to get first remote job.

Введение

Источником для данного материала послужил экономический кризис, вынудивший автора искать дополнительные источники доходов. Одним из требований, предъявляемых к новой работе, было использование открытого ПО, и среди возможных вариантов был опробован вариант удаленной работы – фриланс. Результаты позволили проанализировать возможности работы в таких проектах, связанной с открытым ПО.

Классификация проектов

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

  1. минимум одно предложение в неделю;
  2. одно предложение за месяц;
  3. все остальные.

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

К первой группе относятся наиболее востребованные проекты: Linux-дистрибутивы CentOS, Ubuntu, Debian, веб-сервер Apache, Tomcat, базы данных MySQL, PostgresSQL, SQLite, языки программирования PHP, Ruby, Python, Perl, а также другие проекты – Wordpress, Drupal, Mediawiki, Mantis, Redmine, RubyOnRails, Magento, Nagios.

Во вторую группу попали такие ОС, как FreeBSD, OpenBSD, Gentoo, а так в виде исключения исключения представители проприетарного мира UNIXAIX и HP-UX. Среди веб-серверов – nginx, lighttpd, Varnish, HAProxy, базы данных CouchDB, MongoDB, HBase, языки программирования Shell, Lua, проекты VirtualBox, Xen, OpenVZ Bugzilla, RequestTracker.

К третьей группе относятся редкие проекты, например OpenStack, puppet, Chef, Munin, Monit, Zabbix, Aegir, mod_speed, mod_security, Conky, MinuetOS, язык программирования Lisp и его модификации Scheme и Arc.

Особенности удаленной работы

Для того, чтобы начать работать удаленно, нужно выполнить ряд простых шагов. Это подготовка, поиск интересующего задания, предложение работодателю и переговоры, а также собственно выполнение работы и завершение проекта.

Стадия подготовки включает в себя регистрацию на бирже удаленной работы, заполнение портфолио. Также на этой стадии автору пришлось установить на своей рабочей машине некоторое количество бинарных блобов. В частности, к ним относится специальное приложение для отслеживания времени – например, oDesk Team Manager, которое поддерживает дистрибутивы Ubuntu, Fedora, Suse, Arch, а пользователям Gentoo или ОС из семейства BSD нужно приложить дополнительные усилия по установке. Также для переговоров потребуется Skype. Еще одно из приложений, TeamViewer, позволяет получить доступ к удаленному рабочему столу, и его удобно иметь установленным на всякий случай.

На стадии подготовки следует пройти тесты по своей области компетенции. Это позволяет оценить свои знания и выделить себя из списка других претендентов. Так, например, из 10907 Linux Developers тест прошли только 1300. Тесты могут быть как на самой бирже, так и на независимом сайте тестирования, например Brainbench.

Также некоторые заказчики просят подтвердить свое умение через другие сайты. Это могут быть примеры кода на github либо ответы на сайтах обмена знаниями, таких как stackoverflow или forum.linux.by (давая ответы на вопросы, вы также приобретаете опыт).

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

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

Шаг выполнения работы как раз и добавляет опыт в реальных боевых условиях.

Относительно самого последнего этапа необходимо сделать важное замечание, которое прямо не относится к проблеме получения опыта, но накладывает ограничения на легальность удаленной работы: участникам из Беларуси перед выводом денег следует ознакомиться со статьей 12.7 Кодекса Республики Беларусь об административных правонарушениях «Незаконная предпринимательская деятельность».

Лицензия Creative Commons
Текст тезисов доступен под лицензией Creative Commons Attribution-ShareAlike 3.0.

Presentation