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

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

Электронный документооборот  

5 способов повысить безопасность электронной подписи

Область применения технологий электронной подписи с каждым годом расширяется. Все больше задач

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

Рынок труда  

Системные администраторы по-прежнему востребованы и незаменимы

Системные администраторы, практически, есть везде. Порой их не видно и не слышно,

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

Учебные центры  

Карьерные мечты нужно воплощать! А мы поможем

Школа Bell Integrator открывает свои двери для всех, кто хочет освоить перспективную

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

Гость номера  

Дмитрий Галов: «Нельзя сказать, что люди становятся доверчивее, скорее эволюционирует ландшафт киберугроз»

Использование мобильных устройств растет. А вместе с ними быстро растет количество мобильных

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

Прошу слова  

Твердая рука в бархатной перчатке: принципы soft skills

Лауреат Нобелевской премии, специалист по рынку труда, профессор Лондонской школы экономики Кристофер

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

1001 и 1 книга  
19.03.2018г.
Просмотров: 9883
Комментарии: 0
Потоковая обработка данных

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

19.03.2018г.
Просмотров: 8096
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

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

19.03.2018г.
Просмотров: 8197
Комментарии: 0
Конкурентное программирование на SCALA

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

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

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

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

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

Друзья сайта  

 Вакансия: программист под OS X

Архив номеров / 2015 / Выпуск №11 (156) / Вакансия: программист под OS X

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

Вакансия: программист под OS X

Рынок десктопов в последнее время лихорадит, но настольные системы от Apple, работающие под управлением OS Х, пользуются неизменной популярностью. В России ниша разработчиков под эту систему уже, чем для Unix/Linux, но хорошие специалисты без работы не останутся. Итак, что хотят работодатели?

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

Александр Владимирович Серков, инженер-программист (OS X), ООО «Доктор Веб»

1. Примерно такими же, как и любой другой программист для любой другой платформы/области, – он должен знать инструментарий, с которым работает, и уметь его использовать. А также не помешает умение обучаться и находить ответы на неожиданные вопросы в приемлемые сроки. В дополнение ко всему этому хорошо бы еще знать язык программирования Objective-C (если писать что-то, связанное с GUI, то без Objective-C пока скорее всего не обойтись, да и часто некоторые системные вещи требуют знания этого языка) и иметь представление о наиболее важных библиотеках (фреймворках), являющихся частью этой операционной системы. О системах контроля версий, коммуникабельности и умении работать в команде говорить не буду.

2. Разнообразный. OS X – это более-менее современная и быстро развивающаяся ОС, и для нее подходит почти весь инструментарий, доступный для других *nix-like (и не очень) операционных систем. Но все же Objective-C, сопутствующие фреймворки и Хсode (IDE для OS X от Apple) пока являются «главным» инструментом для разработчика (Swift еще скорее всего все же игрушка, но в перспективе...). И, конечно, С/С++. Многое в OS X написано на этих языках, даже если имеет «официальный» интерфейс на Objective-C.

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

4. Насколько я знаю, от трех лет. Однако реально уровень опыта, как мы считаем, все-таки определяется не годами, а выполненными проектами/задачами, их сложностью и величиной.

5. Да, конечно. Мы же компания, занимающаяся информационной безопасностью. Поэтому для нас очень важна внимательность к мелочам, умение писать стабильный, читабельный и безопасный код. Умение читать и понимать чужой код тоже не будет лишним. И, конечно, в принципе важен большой кругозор – человек должен не просто знать, как работают те или иные подсистемы той или иной ОС, но и понимать их принципы работы, понимать то, как они связаны между собой, как взаимодействуют. И как на эти подсистемы влияет пользовательский код, или, наоборот, как подсистемы влияют. В общем, человек должен представлять себе, как работают современные программы. От самого низкого уровня до самого высокого.


Виктор Брыскин, Senior iOS Developer, Comindware (www.comindware.com/ru/)
Полина Семенюк, HR-менеджер, Comindware

1. В.Б.: Разработчик под OS X (сейчас операционная система называется именно так) не сильно отличается от любого другого разработчика, и особых специфических требований здесь практически нет. Разница только в инструментарии и API.

Абсолютно точно необходимо знание языков и фреймворков, которые применяются на платформе, – в основном из языков это Objective-C. Сейчас, впрочем, набирает популярность Swift, на котором также можно вести разработку. Нелишним будет и знание С++, умение писать на этом языке очень помогает сделать жизнь разработчика проще, в связи с тем, что Objective-C – очень старый язык, лишь в последнее время начавший активно развиваться, и многие вещи проще писать на С++. С другой стороны, система ООП и ObjC Runtime, применяющаяся в Objective-C, позволяет очень просто писать довольно сложно реализуемые на других языках вещи.

В решении задач очень помогают навыки автоматизации с использованием скриптовых языков – это Shell, Python или Ruby.

Естественно, нужно понимать специфику OS X в плане распространения и развертывания приложений. В ОС встроен магазин приложений, которым можно и нужно пользоваться.

2. В.Б.: Основная среда разработки – это, конечно же, IDE Xcode, но возможны и альтернативы, например, AppCode от JetBrains. Этого вполне достаточно для того, чтобы разрабатывать приложения – в Xcode встроены и инструменты разработчика для профилировки приложений и даже клиент системы контроля версий, поддерживающий SVN и Git. Однако большинство разработчиков пользуются внешними Git-клиентами, выбор которых – вопрос привычки и дело вкуса.

3. П.С.: Мы ищем людей с высшим образованием. Более того, у нас есть сотрудники, которые продолжают образование, например, учатся в аспирантуре. Мы рады, когда наши сотрудники продолжают совершенствоваться в профессиональном плане, и поддерживаем их в этом.

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

5. П.С.: Каких-то особых требований, связанных именно с нашей компанией, нет. Одновременно есть ряд технических требований, которые для нас важны, а именно:

  • Уверенное владение Objective-C, iOS Guidlines
  • Cocoa Pods, Frameworks, static libraries
  • Знание шаблонов проектирования и принципов SOLID
  • Знание ARC и MRC
  • Multithreading, GCD

Павел Морозов, главный OS X-разработчик, Paragon Software Group/mobile applications (www.slovoed.com)

1. В первую очередь любой сотрудник, вовлеченный в создание программного обеспечения для OS X, должен быть убежденным пользователем этой операционной системы, особенно программист. Революционные идеи Apple и их воплощение в действительность в виде готовых продуктов являются примером для подражания даже у конкурентов. Именно поэтому качественное приложение для OS X должно соответствовать фирменному стилю Apple. Основой такого соответствия является доскональное владение принципами создания идеальных приложений для OS X, изложенными в библии разработчиков, известной под названием OS X Human Interface Guidelines.

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

Очень важен также и общий кругозор в смежных областях, особенно в веб-технологиях.

Крайне приветствуется знание одного или более скриптовых языков, подобных Perl/Python/Ruby/PHP/Bash/Apple Script.

2. Основным средством разработки является Xcode с сопутствующими инструментами. Альтернативные IDE, такие как AppCode, у нас также в ходу, как и просто различные тестовые редакторы. Для коллективной работы и обмена информацией используется Redmine.

3, 4. Идеальный кандидат – это специалист с высшим техническим образованием и двумя-тремя годами опыта программирования для Mac OS X или iOS. Тем не менее соискатели, еще не окончившие вуз, также могут нас заинтересовать. Несомненным плюсом будет дополнительное образование в виде профильных спецкурсов, наличие успешных продуктов в App Store и активность в Open Source-сообществах.

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


Владимир Кукушкин, Mac Applications Development Group Manager, «Лаборатория Касперского»

1. Программист под OS X ничем не отличается от любого другого программиста – прежде всего он должен уметь объяснить программе, что она должна сделать.

2. Для того чтобы начать разработку приложений под OS X, помимо наличия устройства с этой операционной системой, нужно скачать из Mac App Store среду разработки – Xcode. Для большинства задач этого будет достаточно. Плюс под OS X встречаются реализации инструментов, знакомых по разработке под другие платформы, например, можно использовать vim, cmake, Qt, клиенты для всевозможных систем контроля версий. В составе Xcode для отладки есть lldb, а для профилирования – Instruments.

3. Такие же, как и к любому другому программисту. Несомненным плюсом будет прохождение курсов в онлайн-университетах, где можно найти тематические курсы по разработке под платформы Apple. Но нужно понимать, что такие курсы – никак не замена фундаментальному техническому образованию.

4. Опять же – такие же, как и у всех. Но есть один нюанс. В случае с разработкой, не связанной непосредственно с OS X, ее специфичными функциями или GUI, бывает очень ценен опыт разработки под Unix, ведь OS X – под капотом это тот же Unix.

5. «Лаборатория Касперского» – большая компания с большим количеством продуктов, выпускаемых для разных платформ. Нужно быть готовым к тому, что большая часть кода и технических решений (например, антивирусный движок) используется на трех-четырех платформах, и об этом нужно всегда помнить. Соответственно, и большая часть кода не имеет непосредственного отношения к OS X.


Дмитрий Обухов, основатель и разработчик, Wirelessheads

1. Хоть я и не люблю узкую специализацию и сам термин «программист под OS X», но, на мой взгляд, человек, который разрабатывает приложения под платформы от Apple, должен действительно обладать неким набором навыков, которые, по большому счету, к программированию не имеют отношения. Во-первых, он должен разбираться в проектировании интерфейса. Многие считают, что интерфейсом должен заниматься дизайнер (и это так и есть), но на практике, если человек, который пишет код, не интересуется интерфейсами или не имеет «чувства прекрасного», проект ждут большие проблемы. Во-вторых, OS X быстро развивается как со стороны Apple, так и со стороны комьюнити, появляются новые фреймворки и даже языки – за всем этим нужно успевать следить, нужно быть на острие технологий, и без большого вовлечения здесь не получится. И, наконец, разработчик под OS X должен быть и разработчиком под iOS (обратное – не верно). Так получается, что все новые технологии и практики появляются сначала на iOS, их необходимо перенимать и использовать на маке.

2. Xcode (IDE от Apple, бесплатное и есть все необходимое), CocoaPods (менеджер зависимостей), Sketch (векторный графический редактор). Все остальное опционально.

3. Не думаю, что компании предъявляют какие-то требования к образованию. Во-первых, в России разработчиков не учат, во-вторых, на рынке сейчас дефицит специалистов. В любой профессии основную роль играет опыт, разработчики не исключение, скорее даже наоборот, опыт – основной показатель.

4. Требования очень разные, и, если говорить об OS X, очень часто сотрудников приглашают развивать или поддерживать существующий продукт. Часто этот продукт портирован с другой платформы и написан на C/C++, поэтому в описании вакансии можно увидеть требования знания C++.

Что касается моих требований, основной показатель для меня – это наличие законченных коммерческих продуктов, не обязательно даже под OS X. Я считаю, что технические знания приобретаются быстро, но их не всегда бывает достаточно.

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

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


Алексей Цымлов, Senior Software Developer, Hyperboloid

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

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

Конечно, базисом является знание языка программирования. У Apple с недавнего времени два языка, на которых ведется разработка, – Objective-C и Swift. Swift пришел на замену Objective-C и со временем займет его место полностью. Уже сейчас Apple активно переписывает свои фреймворки на Swift, и большинство примеров, которые можно встретить в интернете, приводятся на Swift. Поэтому для тех, кто только начинает, нет смысла вкладывать свое время в технологию, которая завтра окажется невостребованной, и лучше начать с изучения современного, уже ставшего популярным языка Swift.

В остальном необходимы, конечно, знание гайдлайнов, понимание MVC, навыки использования основных фреймворков Foundation, Cocoa, AppKit, CoreData, CoreAnimation, Quartz, умение работать со сторонними фреймворками, используя CocoaPods, и опыт подготовки приложения для публикации в App Store.

2. Основной инструмент – это среда разработки Xcode. Хотя ребята из JetBrains сделали классную IDE под названием AppCode, но ее использование затрудняется пока несколькими ограничениями. Со временем, я уверен, эти проблемы будут решены, и мы получим мощнейший инструмент, такой же как IntelliJ IDEA и ReSharper. По крайней мере я на это надеюсь и жду этого дня. Но пока основной средой остается Xcode.

В качестве системы контроля версий используется Git. Очень редко – Subversion.

Для трекинга задач нужно уметь работать с такими системами, как, например, Jira и Trello.

У нас в «Гиперболоиде» иногда бывает такое, что заказчик, для которого мы создаем приложение, настаивает на использовании своей трекинговой системы. Если заказчик с громким именем и платит хорошие деньги, отказать ему сложно. Поэтому разработчику приходится быть профессионалом и подстраиваться. В случае с крутыми заказчиками это даже приятно. Да и ничего сложного в этом нет.

3, 4. Ситуация такова, что рынок перегрет предложениями работодателей. Российских разработчиков активно «хантят» из-за рубежа. Сказывается и курсовая разница – иностранные компании, имеющие валютный оборот, могут предложить гораздо более существенную компенсацию. Помимо этого, они предлагают помощь в релокации, аренду жилья на первые несколько месяцев, выплачиваются подъемные. Это очень заманчиво.

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

5. Разумеется, особенно ценятся специалисты, способные разрабатывать для нескольких платформ – как для десктопов, так и для мобильных устройств.

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

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


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

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

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

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

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