Ten reasons to be a research software engineer

Данная статья является отчасти вольным переводом со следующего ресурса и несет в себе скорее просветительско-познавательный контекст. Когда я пытался понять куда мне двигаться, что все тлен и безысходность – то начал копать в сторону, а что мне интересно, что мне по душе. Где я могу реализовать свой потенциал, может быть стоит менять область? И результатом изысканий стали десятки просмотренных страниц, частью которых я спешу поделиться, но четко выраженных в представленной ссылке, однако обо всем по порядку…

Разработка сама по себе стала многогранной – теперь инженеров по кажому виду деятельности берут : front-end,back-end, java,javascript…. Хотя в большинстве случаев все это “красивые” слова обычных программистких задач, даже кодерских больше.

В моем понимании существует немного другая градация. Эту градацию в словесную форму удалось оправить благодаря одному из выпусков devzen. Так вот, гость упомянул следующую лесенку : researcher <- engineer <- programmer/developer <- coder.

Суть ее в том, что кодер просто клепает код, занимаясь по сути трансляцией. Такой высокоабстрактный транслятор, который конвертит задачу\алгоритм в код.

Программер, по мне тот же девелопер, способен не просто кодировать задачу – он способен мыслить на верхнем уровне абстракции, реализуя технологии и используя имеющиеся технологии. Зачастую эти люди способны осуществлять самостоятельную декомпозицию задач, провести разработку “с нуля”, оценить решение, однако, когда требуется что-то сложнее, чем собрать из кирпичиков – требуется в “чистом поле”  еще и пару заводиков сделать – то это не их весовая категория.

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

Вот тут и выступает ресерчер. Он не является обязательно прямо хорошим программистом или первоклассным инженером. Его задача исследовать области, открывать те “чистые поля”, очерчивать “план-проекты”, которые возможно построить, за что с радостью и воодушевлением возьмется инженер. Поэтому они часто с ними работают рука об руку. И таких инженеров называют не просто – инженер-программист (software engineer), а  инженер-исследователь или инженер-программист в исследовании или инженер-программист исследователь( англ. research software engineer,research engineer, research software development engineer). Я так и не смог подобрать этому русское приемлимое название.  

( Лир. отступление : Хакер, тот который описан у Леви, последнее 4-ое поколоение которых не ассоциировалось только с криминалом и только безопасностью, – в нынешнем своем виде трансформировался именно в этого человека. На острие исследовательской деятельности и инженерной. Есть современная тенденция привить вновь миру хакерский дух, но он уже испорчен навсегда. Но не об этом речь.)

Формально RSE – это люди, которые крутятся в академических кругах и больше занимаются написанием различного софта. Это может быть либо Proof of Concept, библиотека, прототип и т.п. В основном эти люди приходят именно из ресерческой среды, но бывает и наоборот, когда вырастают из инженеров. Пути разные, цель одна.

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

По ссылке я даже нашел забавный опросник из разряда ”Являетесь ли вы RSE”. Приведу его ниже:

  1. Вы непосредственно наняты для разработки программного обеспечения в исследовательской деятельности?
  2. Вы проводите больше времени разрабатывая по, чем делая ресерч?
  3. Вы наняты как  postdoctoral(прим. – не понял как перевести) исследователь, даже если до этого работали преимущественно в разработке?
  4. Вы тот человек, который отвечает за все компьютерное в вашей группе?
  5. Вы не указываетесь в статьях и публикациях, несмотря на то, что принимаете важное участие в разработке ПО для исследовательской деятельности?
  6. У вас нет необходимых рычагов для продвижения вашей академической карьеры – публикации, презентации, несмотря на значительный вклад путем создание ПО?

 

Надеюсь перевел понятно, но знатокам лучше пройти в оригинал. Я не сказать, что ответил преимущественно “да”, поэтому вряд ли могу считаться в чистом виде – инженером-исследователем. Но свою позицию могу охарактеризовать именно таким образом, да и ассоциирую себя именно так. Почему это круто быть таким человеком?

Вот вам те самые 10 причин:

  1. Вы на острие научно-технического прогресса. Потому что имеете доступ к самым последним публикациям и даже тем работам, что еще не получили официальные публикации. Вы знаете в прямом смысле, что происходит. Вы работете с исследователями, но не обремены написанием различных статей.
  2. Вы можете путешествовать по миру.  Сингапур, Рио, Гавайи, Лос-Анджелес, Гонконг? Вам путь в инженеры-исследователи. Сколько таких работ, где вы можете путешествовать, выступать на различных конференциях? Не так много, поверьте. Это бенефит.
  3. Вы можете использовать “лучшие” утилиты и языки подходящие для вашей работы. Ограничений нет. У вас много свободы. Так как в исследованиях больше важен результат, зачастую без эстетики и клиент-ориентированности – то ваши пользователи не притязательны. Они даже будут поощрять новинки, что помогают получать качественный результат.
  4. Вы открыты для мира опенсорса. Так как у вас свобода выбора, то вы вольны использовать опенсорс продукты. Вы можете вносить вклад в мир опенсорса, открывая ваш код, который помог вам и вашей группе в исследованиях. Вы получите обратную связь, которая может помочь. Вообще RSE  наиболее активные участники опенсорса.
  5. Работа с яркими и выдающимися людьми. Университеты и лаборатории( кстати у нас тоже такое в Палестинах бывает, хоть и сказано про западные мекки ) наполнены людьми, что очарованы окружающим миром и стремятся его познать.
  6. Гибкость. Вы вольны выбирать свой ритм и режим работы. Многие инженеры-исследователи работают даже по ночам, чтобы завершить работу. Наедине со своей деятельностью. Их привлекает некая аура, создаваемая вокруг этого. Многим это не позволяется делать. К тому же все ваше окружение вы подбираете сами. НО до тех пор пока вы даете необходимый результат исследователям. Они с лихвой компенсируют часы вашей работы.
  7. Работа только в одной области? Уникальная комбинация инженерии и исследования, сочетающаяся в таком человеке, помогает ему быть полезным во многих областях. Многие из них работают в разных проектах по разным дисциплинам с множеством исследователей. Где такое может еще быть?
  8. Важность работы. Зачастую инженеры это часть команды, большой команды, работающей над маленьким кусочком. Инженеры-исследователи часто отвечают как за маленькие, так и за очень большие части проектов. Ведут целые проекты самостоятельно. Ваши знания – оказывают большое влияние, являясь визитной карточкой.
  9. Взаимодействие с другими же, такими же как вы. Вы можете получать советы от братьев по цеху, а также получаете неограниченный доступ к единой “базе данных” умов выдающихся специалистов в своей области. Такое трудно найти в обычной индустрии. Даже среди технарей.
  10. Вы выбираете свой путь. Вы можете необязательно делать карьеру в исследовательской деятельности. Но исследователи оценивают ваш вклад и его важность в свою работу. Возможность использовать инструменты, которые вы хотите, возможность менять сферы, оказывать влияния своей работой на исследования – позволяет прокладывать свой путь. Естесственно она соответствующе и очень хорошо вознаграждается.

Конечно, если ознакамливаться с этим в отрыве от нашей реальности. А ведь статьи описаны именно на западном опыте. То может показаться, что все ваниально и перфектабл. Однако не всегда это так. Все зависит от того, где вы, что вы и зачем вы. Быть в нужном месте в нужное время – правило еще никто не отменял. Тем более в нашим с вами условиях. Хотя звучит очень интересно. Лично я бы очень хотел поучаствовать в составе команды, делающей что-то для CERN. Ведь люди, что пытаются приоткрыть тайны вселенной – это интереснее, по мне, чем создавать бесконечные программы для телефончиков, айфончики и еще все в таком духе.

В РФ я не нашел материалов о том – есть ли такие специалисты, где они обитают. Скорее это просто выпускники программистких чисто специальностей, что остались в университетах. В России все как всегда –  решается костылями. С зарубежными коллегами дела обстоят лучше. Вот к примеру Microsoft – довольно неплохо описывает кто, что и почему. В чем разница между разными ролями специалистов. Конечно это в подразделении Microsoft Research, которое вообще представляет отдельную вселенную, но все же.

Что же касается Google, то они обычно указывают просто позицию SE , там уже в самой позиции становится понятно, что придется выполнять именно исследовательскую роль.

Список можно продолжить HP Labs, рядом еще исследовательских центров. Но мне стало понятно одно – что такие люди ходят “по рукам”. С улицы, вне академического круга, тем более с нашей стороны, залезть довольно трудно. Правда сказать, стоит следить за обычными вакансиями инженеров, зачастую именно там в описании и указывается, что требуется именно RSE. Либо как-то находить выход, подкрепляя своими исследовательскими проектами на коленке. Ведь важно быть не только хорошим инженером, но и иметь исследовательскую жилку, чтобы понимать своих коллег.

Надеюсь мой скромный article был вам полезен. Разъяснил какие-то сущности и помог в вашем поиске.

Спишемся. Ваш alekum!

 

Advertisements
Ten reasons to be a research software engineer

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s