Вакансия: разработчик ядра Linux. Что нужно знать, чтобы успешно пройти собеседование::Журнал СА 1-2.2014
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6233
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6940
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4227
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3014
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3810
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3827
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6323
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3174
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3466
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7282
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10649
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12370
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14004
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9130
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7083
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5392
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4619
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3430
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3160
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3405
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3029
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Вакансия: разработчик ядра Linux. Что нужно знать, чтобы успешно пройти собеседование

Архив номеров / 2014 / Выпуск №1-2 (134-135) / Вакансия: разработчик ядра Linux. Что нужно знать, чтобы успешно пройти собеседование

Рубрика: Карьера/Образование /  Рынок труда

Вакансия: разработчик ядра Linux
Что нужно знать, чтобы успешно пройти собеседование

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

  1. Какими знаниями и навыками должен обладать разработчик ядра Linux?
  2. Каков инструментарий разработчика?
  3. Каковы требования компании к уровню образования потенциальных сотрудников?
  4. Какие требования предъявляются к опыту работы?
  5. Есть ли особые требования, которые обусловлены спецификой деятельности компании?

На вопросы «Системного администратора» отвечают специалисты ведущих компаний.


ДЕНИС ЯКУБОВИЧ, руководитель отдела персонала компании Promwad

1. Необходимые знания и навыки для данной позиции в нашей компании:

  • Твердые знания языка С.
  • Понимание архитектуры ядра, его подсистем, способов взаимодействия (Linux kernel 2.6.*, 3.*.*).
  • Понимание принципов работы с системой контроля версий GIT.
  • Опыт работы с компилятором gcc (+Linux LD, Linker scripts). Владение make/automake/autotools.
  • Базовые знания схемотехники (умение пользоваться осциллографом).
  • Знания аппаратных архитектур (x86, ARM).
  • Владение средствами отладки (jtag, gdb, objdump).
  • Большой плюс – наличие коммитов в mainline (умение формировать, описывать патчи).

2. Основной инструментарий разработчика, необходимый для выполнения работ:

  • Рабочая ОС – Ubuntu (по умолчанию, но возможен и другой дистрибутив).
  • IDE – eclipse, emacs, vim.
  • Сборка – toolchain целевых архитектур, различные билд-системы.
  • Отладка – jtag, gdb, objdump.
  • Документирование – wiki, OpenOffice.
HR-взгляд
Открытые вакансии для разработчиков ядра Linux предусматривают следующий типовой набор требований к профессиональным навыкам и опыту:
  • отличное знание языка С;
  • понимание принципов работы операционных систем, опыт системного программирования;
  • знание TCP/IP и архитектуры Linux, умение ориентироваться в исходных текстах ядра;
  • знание скриптовых языков (perl, bash, python);
  • знание файловых систем и моделей разграничения прав в Linux;
  • владение английским языком на уровне чтения технической документации.
Требования к образованию практически не встречаются в описаниях вакансий, поскольку основным требованием к таким работникам является наличие профильного опыта работы, а именно, опыта программирования на уровне ядра Linux.

В зависимости от компании/вакансии/проекта, требуются или приветствуются определенные навыки и знания.

Чернецова Валерия,
руководитель отдела аналитики
рекрутингового портала Superjob.ru

3. Высшее образование в области компьютерных наук, знание английского языка (intermediate).

4. В зависимости от целевого уровня (junior-expert). Минимально – опыт работы в коммерческих проектах под Linux 
от года (как плюс – наличие своего Open Source-проекта).

5. Для нашей компании нужны соискатели, имеющие опыт работы с различными процессорными архитектурами (ARM, MIPS, PowerPC, SH4, AVR32, Blackfin), платформами (TI Sitara/Davinci/OMAP, Marvell Kirkwood, Atmel, STMicroelectronics, Realtek, Freescale iMX/QorIQ), а также с широким набором интерфейсов: I2C, SPI, CAN, RS-232/UART, RS-485, NAND, USB, EMIF, etc. и типов памяти: NOR/NAND flash, CF/MMC/SD, FRAM/NVRAM, DDR/DDR2/DDR3.


ДМИТРИЙ ФИЛИППОВ, менеджер по маркетингу продуктов JetBrains

1. Разработчик ядра Linux – такой же программист, как и те, кто работает не в ядре, просто обладающий специфическими знаниями и умениями. В мире ядерных программистов, в том числе коммерческих, существуют и новички и разработчики среднего уровня, ну и, конечно, никуда без не очень большой группы разработчиков-экспертов. Минимум знаний и навыков для того, чтобы работать с ядром, – это:

  • Отличное владение языком С.
  • Понимание основ операционных систем.
  • Знание хотя бы элементарных алгоритмов, применяемых в программировании.
  • Терпение, вдумчивость, лаконичность.

2. Инструментарий разработчика ядра настолько же прост и лаконичен, как и код, который он должен писать. Перечислю базовый:

  • Удобный редактор кода. Например, vim или emacs.
  • Нужен сам код ядра и средства для синхронизации и работы с исходным кодом. Подразумевается системы контроля версий VCS. Обычно разработчики ядра Linux используют git. Но в некоторых компаниях может быть своя система контроля версий, с которой тоже нужно уметь работать. Например, subversion или mercurial.
  • Специфичный для ядра набор инструментов начинается с компилятора языка С – GCC. Это стандартный и единственный компилятор, работающий с ядром Linux.
  • Утилиты binutils тоже являются составной частью инструментария разработчика ядра. Без них компилировать ядро невозможно, так как многие утилиты из этого пакета используются в make скриптах.
  • Утилиты make, diff, patch тоже входят в набор инструментария разработчика. Их знание обязательно.
  • Для эффективной работы с кодом нам нужна навигация в нем. Для этого используются ctags и etags. Лично для меня удобными оказались проекты Linux Cross Reference (LXR), когда онлайн можно быстро и хорошо снавигироваться в нужные участки кода, а также быстро подсмотреть эти участки кода в других версиях ядра.
  • Для экспериментов с ядром потребуется sandbox. Для этих целей хорошо потходят виртуальные машины.

3. Абсолютно неважно, неполное среднее у тебя или ты кандидат наук плюс второе высшее. Критерий один – может человек выполнять возложенные на него обязанности или нет. Я встречал много программистов-самоучек очень высокого уровня, получающих очень неплохие зарплаты. Так что теоретически для того, чтобы начинать работать, не нужно никакое специальное образование.

4. От компании к компании, от проекта к проекту требования к опыту работы разные. На российском рынке труда имеется реальный дефицит квалифицированных программистов не только ядра Linux, но и программистов на С в принципе. В такой ситуации любому кандидату хотя бы с минимальным, но с хорошим и честным опытом работы с ядром с радостью предложат работу в любой адекватной компании. Далее степень опытности влияет лишь на грейд. Если у человека хороший опыт, скажем, написания драйверов, например, от четырех лет, то ему, вероятно, предложат уже senior-позицию. А если у вас хорошее владение С, базовый опыт программирования и знание основ ядра, то, вероятно, этого будет достаточно, чтобы начать работать на junior-позиции разработчика ядра Linux.

5. Когда мы говорим о разработке ядра Linux, мы имеем в виду любую работу с кодом ядра. Это может быть написание кода в какой-либо из подсистем ядра или написание или модификация драйвера, или верификация, или анализ, или тестирование кода. Ядро настолько большое и настолько разносторонне применимое, что разные компании специализируются на абсолютно разных задачах и работают с разными частями кода. Из этого вытекают специфические требования. Но есть одно важное требование, предъявляемое почти всеми компаниями ко всем кандидатам, – знание английского языка.


ПАВЕЛ ЕМЕЛЬЯНОВ, архитектор департамента серверной виртуализации в Parallels

1. Знание хотя бы одной аппаратной платформы, опыт системного программирования.

2. Не имеет значения. Главное чтобы он был, и человек им владел свободно.

3. Этот пункт в резюме не имеет особого значения, опыт работы – гораздо важнее всего остального.

4. Сначала мы пытались требовать от соискателей опыт работы именно в ядре, но потом поняли, что в Москве таких людей почти нет (а те, кто есть, ограничивались драйверами). Так что из ядерно-специфичных требований осталось только одно – знание архитектуры x86.

5. Я бы выделил три неядерных пункта, на которые мы обращаем особое внимание:

  • умение придумать и доходчиво объяснить алгоритм решения какой-либо задачи;
  • работа с основными структурами данных (списки, деревья) не должна вызывать трудностей;
  • человек должен знать, что такое «сложность алгоритма» и уметь пользоваться этим знанием.

Большой плюс кандидата – это опыт, связанный с виртуализацией железа, например, использование или патчи к Linux's KVM или хотя бы чтение мануалов. Ну и использование Linux как домашней ОС в своем десктопе.

Подготовил Игорь Штомпель


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru