Perl — это когда-то бывший популярным для веба, но ныне умирающий, язык. Умирающий вполне обоснованно, поэтому хотелось бы слезть с него на что-то массово востребованное (Java).
Проблема
Сменить стек технологий — это не такая простая задача, проблема в том, что если у тебя в опыте работы не указан конкретный язык программирования, а то и конкретный фреймворк/библиотека, то ты считаешься неподходящим кандидатом.
Неважно какой у тебя опыт по качеству и количеству, нет разницы способен ты решать задачи —
главное, чтобы у тебя в резюме был указан опыт работы с инструментами описанными в вакансии.
Т.к. ИТ сфера достаточно новая, то не всем понятно почему это полнейший идиотизм. Для понятной иллюстрации разберём в качестве примера столярные работы. Если вам нужен столяр для изготовления деревянного стола, то вы не будете в вакансии писать что-то вроде “опыт работы железными фальцгебелями с пластмассовыми ручками”. Не исключаю, что вы напишете: “требуется опыт изготовления столов”, это хоть как-то можно понять, но и это не обязательно. Разве у кого-то есть сомнения в том, что хороший столяр может изготовить стол?
Т.е. главная задача — найти хорошего столяра, а не столяра владеющего конкретным инструментом и не обязательно столяра выполнявшего аналогичные проекты. Хотя второе как раз может быть ценным, но в приложении к ИТ сфере тут есть определённые сложности — обычно требуется изготавливать что-то настолько редкое, что найти человека с таким опытом практически невозможно.
Пример со столяром это конечно лишь аналогия, он облегчает понимание, но не даёт полной картины. Например, выдвигать программистам требования к владению инструментами ещё более глупо чем к столярам, ведь у столяров набор инструментов изменяется предельно медленно, а у программистов инструменты изменяются с космической скоростью. Программирование подразумевает постоянно изучение нового — сегодня вы нанимаете человека для работы с одними технологиями, а завтра ему придётся использовать другие. Я хоть и не client-side разработчик, но хорошо помню, что в 2007 году на клиентской стороне популярными библиотеками были jQuery и ExtJS (как сегодня ReactJS и Angular), а в 2017, когда я выступал на конференции The Rolling Scopes #37. Gomel выяснилось что в большом зале всего несколько человек помнят такие названия. И так везде — все постоянно внедряют новые технологии и никого почему-то не смущает, что текущие сотрудники не имеют опыта с этими технологиями (а если технология достаточно новая, то может быть, что во всём мире нет людей с опыт работы с ними). Помимо этого можно сказать, что программисты, в отличии от столяров, занимаются сложными задачами в достаточно новой сфере человеческой деятельности, ещё почти нет накопленного и тиражируемого отраслевого опыта. Это столяр может взять учебник или справочник с огромным количеством чертежей различных столов или проконсультироваться у более опытного специалиста, а в ИТ сфере этого нет — даже в типовых задачах вроде разработки сайтов нет готовых решений, например популярные и давно существующие CMS нередко в новых версиях переделывают свою архитектуру в поисках хорошего и универсального решения. А если взять чуть менее типовой проект, то будет совсем печально.
Исходя из сказанного можно понять, что опыт работы в аналогичных проектах (в отличии от опыта с теми же инструментами) ценен. Оно и понятно — если человек работал в той же сфере, он знает предметную область (имеет в голове её модель), набил какие-то шишки и уже может делать лучше, чем делал в первый раз. Если не ошибаюсь, у Фредерика Брукса было утверждение, что программа становится хорошей, только после того как она переписана три раза, так вот, если вы нанимаете человека, который один раз уже написал, то вам остаётся всего два. Однако, как уже было сказано, найти человека с опытом в таких же проекта очень сложно и дорого. Подумайте сколько в мире людей создававших таск менеджеры (вроде Redmine)? Писавших биллинги хостинга? Создававших мессенджеры? Их опыт очень ценен если вы разрабатываете аналогичный проект, да вот только найти и нанять их предельно сложно по множеству причин.
Кто виноват?
Не знаю, точно не HR’ы, они играют как скажут. Может на самом деле всё нормально в этом мире, а я ненормальный.
Что делать?
Думайте хорошенько прежде чем сформулировать требования к кандидату. Ведь хороший программист должен уметь учиться, а значит способен освоить любые нужные вам технологии. А раз дело не в технологиях, то в чём? Очевидно, что он должен уметь программировать, решать алгоритмические задачи и это нужно проверять давая тестовое задание. Но надо делать это тестовое задание близким с реальной работе — если вы нанимаете системного программиста, то вполне допустимо дать ему задание требующее знания алгоритмов и т.п., чтобы проверить не только способность программировать, но и знания накопленных практик (в системном программировании как раз есть некий накопленный опыт, это старейшая часть отрасли, да и растёт корнями в более старой математике). А если вы берёте прикладного программиста, то вам надо проверить способность писать простой, ясный, читаемый код правильно решающий задачу и способность учиться и с высокой вероятностью вы получите нужного человека.
Комментарии (152)
vvpoloskin
30.08.2017 17:15+9Как-то поверхностно сравниваете столяров с программистами. Сравнивайте обычные вакансии столяра с программистом-интерном. Дальше столяр-краснодеревщик, мебельщик, столяр-фрезеровщик, ЧПУ-шник и т.д.
?обычно требуется изготавливать что-то настолько редкое, что найти человека с таким опытом практически невозможно
И зря вы так возвышенно относитесь к программистам, не льстите себе. Большинство (не все) делают обычные сайты, фронтэнд. Что здесь уникальнее изготовления мебели на заказ? Или вы про тех программистов, кто алгоритмы пишет новые? Так и столяры бывают искусники резьбы по дереву…
По поводу рынка труда программистов с моей точки зрения все просто. Много контор (значительно больше столярских), как следствие большой спрос порождает много соискателей. Соискателей больше, чем надо рынку. Значит их можно тщательнее фильтровать. Как только предложение рабочей силы уменьшится, работодатель вынужден будет уменьшать критерии для фильтрации. Уменьшится оно тогда, когда у программистов зарплата станет средней для страны.
Хотите, чтобы требования к программистам были как у столяров? Вывесите резюме с ожидаемой зарплатой как у столяров с аналогичным опытом работы. Вас быстро возьмут на работу.worldmind Автор
31.08.2017 10:43-1> Большинство (не все) делают обычные сайты, фронтэнд.
в таких сферах думаю и набирают студентов, да учат ихElianL
31.08.2017 12:58+4как то вы недооцениваете сложность современного фронтенда
vvpoloskin
31.08.2017 16:05Или вы переоцениваете?=) Какое нужно было образование для реализации фронтенда (или даже простенького бекэнда)? И сравните со временем на обучение для реализации конечных автоматов, алгоритмов, физических движков, математических моделей etc.
zenkz
31.08.2017 17:12Можно нанять студентов и сделать дёшево.
Можно нанять профи и сделать качественно.
Можно нанять пару профи и десяток студентов и сделать хорошо.
dimm_ddr
31.08.2017 17:14Реализация многих алгоритмов заметно проще современного фронтэнда. А уж реализация конечного автомата вообще примитивна, вот его составление — это в общем случае и правда сложная задача.
vvpoloskin
01.09.2017 23:38А никто и не говорит, что реализовать один конкретный алгоритм сложно. Сложно выбрать алгоритм для решения конкретной задачи, а в случае необходимости допилить его или придумать новый.
dimm_ddr
04.09.2017 11:49Ну в прошлом комментарии достаточно однозначно вами написано "реализация алгоритмов", а не выбор из доступных или разработка нового. Так что вот именно вы и говорите.
Но я бы даже сказал что выбрать из существующих алгоритмов не сложно зачастую. Для этого их, конечно, нужно знать и нужно понимать чем они отличаются, но это за полгода учится без напряга даже одновременно с работой (особенно одновременно с работой). Более того, если вернуться к теме что сложнее бэк или фронт, то для фронта выбор алгоритмов точно также важен.
worldmind Автор
31.08.2017 16:17на самом деле я считаю современный фронтенд переусложнённым, и мне кажется поэтому там кроме работы требующей опыта, есть масса рутинной работы для стажёров
evvlasov
01.09.2017 09:50+2Можно уточнить, вы про РФ пишете, что соискателей больше, чем надо рынку? В Канаде я вижу обратную картину, большой недостаток кодеров. Конечно, зависит от отрасли, много смуглых ребят с ограниченными навыками, но если опыт от 2-3 лет, то можно выбирать работодателя.
worldmind Автор
01.09.2017 09:52Мне кажется это вообще про какую-то другую планету речь, пока на Земле везде дефицит ИТ специалистов, недавно были слухи что в Индии сокращения, но непонятно насколько надёжные.
vvpoloskin
01.09.2017 23:53Смотреть по-разному можно. Еще пять лет назад в моем городе на hh.ru каждую неделю был пяток вакансий инженеров-интернов. По факту надо было учиться, а тебе за это денежку хоть и символическую платят. Сейчас такого нет.
Еще пять лет назад зп программиста джуниора (блин, тогда слово это только в обиход входило) была в 1.5 раза больше инженеров в других сферах, сейчас это практически один-в-один.
Где дефицит кроме как в головах менеджеров?worldmind Автор
02.09.2017 11:27-1Насколько помню пока везде общее количество вакансий в ИТ было больше чем соискателей.
vvpoloskin
02.09.2017 17:10Вот только сегодня на статьюнаткнулся, конкурс на ИТ вакансии 2.9 человека на место.
worldmind Автор
03.09.2017 12:07-1Но при этом там же написано «Особая история — IT-специалисты: из-за повсеместной цифровизации бизнес-процессов они сегодня в большом дефиците.», видимо часть соискателей хоть и хотят работать в ИТ, но никому не годятся.
И есть оценки величины этого дефицита — habrahabr.ru/company/infowatch/blog/328790vvpoloskin
03.09.2017 12:54Не увидел оценки дефицита, увидел только прирост количества вакансий.
Вот смотрите, если я скажу — очень тяжело найти толкового столяра-краснодеревщика. Означает ли, что дефицит столяров? А мой друг скажет, что невозможно найти хорошего страховщика недвижимости. Здесь тоже дефицит?
Тогда можно вообще поставить вопрос так, что со всеми специалистами дефицит.
StanOvchinnikov
02.09.2017 11:28+1Мы не знаем как искать человека, который нам подойдёт. Я в этом честно признаюсь.
dimm_ddr
04.09.2017 12:20Дефицит именно специалистов с опытом. Если бы это было не так, то не было бы такого потока эйчаров в почте с предложениями работать. Этот поток начинается уже через полгода работы и в дальнейшем только растет.
Wedmer
30.08.2017 17:18Иногда от соискателя требуется владение определенным инструментарием для быстрого вхождения в проект. Ведь никто не будет двигать сроки для того, чтобы новый сотрудник успел все освоить.
worldmind Автор
30.08.2017 17:25+2да, но тогда придётся двигать сроки из-за поиска такого кандидата, уж больно разнообразны инструменты в ИТ сфере
Wedmer
30.08.2017 17:43Если это не дикий эксклюзив, то сроки не пострадают. 2 недели должно хватить всем.
Правда проект должен быть на должном уровне по документированию и хранению кодовой базы.
В вашем примере «железные фальцгебели с пластмассовыми ручками» — больше похоже на требование использования конкретной IDE.
А вот умение работать на фрезерном станке — было бы ближе к требованию по конкретному стеку технологий.worldmind Автор
30.08.2017 18:03Не, конкретный стек технологий это умение работать на конкретном фрезерном станке, а не понимание работы на фрезерном станке.
Wedmer
30.08.2017 18:27+2Ок, есть столяр, который умеет работать молотком, рубанком, долотом и прочим инструментом на верстаке.
Опыта работы на станках — 0.
В компании используются станки. Верстаков нет.
Какова будет польза от такого столяра?suharik
30.08.2017 18:58Со столяром сравнить предлагаю так. Вы можете просто попросить соискателя выстругать вот такого офигенского питона с синим слоном в руке, используя свои, привычные инструменты. Получился офигенский конь за допустимое время? Слон правильно ориентирован по сторонам света? Ок, берите его на работу. С программистом как быть? Репутация и финансы фирмы пострадают, если он напишет новый браузер на Delphi вместо С++? Или отбросит IDE и будет все ваять через блокнот? Результат тот же? Браузер пашет? Так в чем проблема?
Wedmer
30.08.2017 19:12Вы ушли мимо контекста ветки.
suharik
30.08.2017 19:29А вы откажете столяру только потому, что он не умеет на станках? И неважно, что без них результат его работы может превосходить вон тех десятерых со станками? Что, нельзя будет ради такого купить верстак?
RPG18
30.08.2017 19:40+1А вы не откажете столяру только потому, что он не умеет на станках?
Откажу. Потому что те на станках делают в N-раз больше продукции, чем тот на верстаке, а значит приносят в N-раз больше прибыли.
Wedmer
30.08.2017 19:40+1С учетом, что производительность на верстаке будет ниже, а допуски скорее всего не будут соблюдаться, то все выльется в зря потраченные ресурсы.
DrPass
30.08.2017 20:35+1Результат тот же? Браузер пашет? Так в чем проблема?
Проблем много.
Одна в том, что программисты не пишут браузеры в одиночку. И если у вас десять программистов пишут на JavaScript, а один гений на Delphi, они друг с другом будут фигово состыковываться в одном проекте.
Другая в том, что ваш программист с вами не навечно. И если он круто пишет на чем-то странненьком или редком, то вам надо иметь в виду, что вам нужно будет потом ещё одного такого же искать.
potan
31.08.2017 15:27Во первых, очень редко где требуются создатели продуктов с нуля — обычно основную часть времени сотрудники тратят на работу с существующим кодом. Даже микросервисы не очень помогают — накладно закреплять за каждым сервисом отдельного человека, владеющего нужным стеком технологий, для поддержки.
Во вторых по качеству выполнения тестового задания (на которое соискатель не может потратить много времени) не всегда удается оценить, на сколько качественно будет выполнен сложный долговременный проект. Да и, даже если соискатель выполнит большой проект, скажем опенсорсный, сделанный для других целей, проверить, на сколько хорошо он сделан не дешево — фактически надо проводить полноценное тестирование и code review.
worldmind Автор
31.08.2017 10:00Такая же как и от тех кто владеет станками — он специалист во всех отношениях и может хорошо работать, а станок освоит за пару дней.
crmMaster
31.08.2017 10:47Да этот столяр Match3 откроет и офигеет.
Да и через пару дней хорошо если научится станок с программой запускать.
А вот сделать изделие высокого класса, без дефектов, можно только путем подстройки станка под материал, для чего нужен не только большой опыт работы с материалом, но и со станком в целом
И с программистами тоже самое. Какой-то результат тебе любой выдаст, а вот результат хороший — только опытный профессионал.
Писать то, что человеку нужно 2 недели на освоение технологии, может только человек, который никогда не плакал, глядя на код, написанный сишниками с 10 летним стажем на Ruby on Rails.worldmind Автор
31.08.2017 15:58Так это уже не столяр, совсем иная специальность, это примерно как сравнивать бухгалтеров и программистов 1С
kanarisru
31.08.2017 09:58+2За то время, как они ищут того, кто уже владеет мог бы переквалифицироваться не один программист.
potan
31.08.2017 15:17Смотря какой инструментарий. У нас готовы брать разработчиков, готовых и способных переучиваться на Scala, так как свободных Scala-программистов найти проблематично. Знакомые из других организаций, использующие Scala или Haskell, говорили, что у них то же самое — часто берут, расчитывая на переучивание.
worldmind Автор
31.08.2017 16:32И какая статистика по скорости освоения новой технологии?
potan
31.08.2017 16:46Двое джавистов вполне прижились. И учились не сильно дольше, чем все равно требовалосб для вхождения в предметную область.
DrPass
31.08.2017 16:52Ну так Scala же. Это с Java смежные инструменты разработки, и переходить с одной на другую — все равно что менять VB.NET на C#.
potan
31.08.2017 16:56В принципе — да. Но я слышал отзывы, что с C# переходят на Scala даже быстрее, чем с Java.
Сам переходил с Haskell (и не до конца забытого C++), экосистему jvm практически не знал. Но оказалось, что в sbt простые вещи делаются просто, а без maven вполне можно обойтись. Так что проблем не возникло.
RPG18
30.08.2017 17:52+5А если вы берёте прикладного программиста, то вам надо проверить способность писать простой, ясный, читаемый код
Как я могу взять прикладного программиста на C++/Qt, если тот не имеет соответствующего бэкграунда? А сеньор на PHP/Perl пойдет работать джуниором на C++
Snowfall022
30.08.2017 18:01Ну мне кажется, что всё в принципе логично. Все эти правила по сути устанавливаются самими программистами и они решают кто им нужен в команду.
DrPass
30.08.2017 18:16+5Т.к. ИТ сфера достаточно новая, то не всем понятно почему это полнейший идиотизм.
Нет, это не идиотизм, и не нужно программистов сравнивать со столярами. От столяра требуется сделать один конкретный продукт. Пусть делает его так, как умеет. От программиста зачастую требуется влиться в команду, которая уже работает с каким-то конкретным набором инструментов. Если программист им уже владеет, он будет тратить время на изучение проекта. Если программист не владеет инструментарием, он будет тратить много времени на первых порах ещё и на изучение инструментария. Поэтому первый вариант чисто экономически предпочтительнее. При прочих равных лучше тот, кто уже имеет подходящий опыт.
у программистов инструменты изменяются с космической скоростью
У JS-программистов. В остальных сферах фреймворки и инструменты успешно живут годами, лишь прирастая фичами. А некоторые — десятилетиями.PashaNedved
31.08.2017 09:54+1От столяра требуется сделать один конкретный продукт. Пусть делает его так, как умеет.
Вы недооцениваете работу столяра :(
При прочих равных лучше тот, кто уже имеет подходящий опыт.
Как быть при неравных, например, программист с десятилетним стажем без знания фреймворка vs. программист с 3 летним стажем, но со знанием фреймворка?DrPass
31.08.2017 09:57Как быть при неравных, например, программист с десятилетним стажем без знания фреймворка vs. программист с 3 летним стажем, но со знанием фреймворка?
При неравных надо смотреть и думать :) Но «тезисно» сам по себе факт, что у кого-то стаж десять лет, а у кого-то три, ни о чем конкретном не говорит. Три года опыта вполне достаточно, чтобы стать неплохим самостоятельным миддлом.
worldmind Автор
31.08.2017 09:55> Если программист не владеет инструментарием, он будет тратить много времени на первых порах ещё и на изучение инструментария.
изучение инструментария это мелочь по сравнению с изучением проектаRPG18
31.08.2017 11:40изучение инструментария это мелочь по сравнению с изучением проекта
Это так, если происходит в рамках одного языка и сравниваются фреймворки. В случае разных языков мидл на java и мидл на perl, это как слесарь-сантехник и столяр. Оба хороши в своих стезях, но не обладают должной экспертизой в другой области.
worldmind Автор
31.08.2017 09:57-1> У JS-программистов. В остальных сферах фреймворки и инструменты успешно живут годами, лишь прирастая фичами. А некоторые — десятилетиями.
такое бывает, но не думаю что это правило, в серверной части точно также всё меняется, взять перл — сначала для параллельного программирования был популярен POE, потом Coro, потом AnyEvent, а потом народ поуходили на всякие node.js/Go, а самые умные на Erlang/Elixir
musuk
30.08.2017 18:57+2Слишком обще написано. Сейчас вполне можно найти человека с опытом React+Redux и на Angular 1.x и даже на Angular 2/4. Работодатель просто не всегда хочет платить за то, чтобы синьор за много денег обучался новому стеку, если на рынке уже достаточно тех, кто имеет опыт.
Плюс, когда вы берёте человека с опытом, то этот опыт поможет вам улучшить вашу технологию разработки. Потому что тот же React+Redux тоже надо уметь готовить и набивать шишки. Человек без опыта, скорее всего, будет просто повторять методы, которые уже используются в проекте.
Если вы говорите о какой-то экзотике, то тогда да, дешевле и быстрее научить, чем искать опытного.
Я бы на вашем месте написал какой-нибудь проект на React+Redux или на Angular, чтобы разобраться в концепциях, и потом спокойно указывал эти технологии в резюме.
А рыночек порешает.
047
30.08.2017 20:57+1В основном посыл верный. Везде, конечно же, есть свои подводные камни и нюансы (отсылка на сравнение различных категорий работяг и непосредственно работ, типа того же столяра и кодера), однако не лишним будет «выделить дополнительный слой абстракции» при восприятии данной статьи, уйти от придирок к мелочам, и скинуть своему штатному эйчару линк на подобный контент — ведь, как все мы знаем, повторение — это мать учения, и, вполне возможно, что именно эта статья станет ключевой, когда %username% будет собеседоваться с более осознанным интервьюером и получит крутую ЗэПэ.
TimTowdy
30.08.2017 22:39+14значительный опыт разработки только на языке Perl
Перестаньте себя обманывать и винить окружающий мир. В проблеме на 99% виноваты вы сами — сидеть годами на перле, зная что он умирает, и не шевелиться. Я 10 лет назад точно также смекнул, что перл загибается и начал постепенно смотреть по сторонам. 10 лет назад, Карл!
Никто не мешал вам за все эти годы самостоятельно изучать другие технологии и делать на них хотя бы сайд-проекты, ради опыта и строчек в резюме.
Могу вам разве что посоветовать позиционировать себя не как perl-, а как backend-разработчик (ну или fullstack если фронтэнд тоже знаете). Не стоит отчаиваться, в мире полно компаний которые ищут именно «хорошего разработчика», а не «Java-сеньора, 5+ лет опыта».worldmind Автор
31.08.2017 10:05Я работал ради денег, за перл мне платили больше всего, только теперь я могу себе позволить пойти на меньшие деньги.
michael_vostrikov
31.08.2017 00:02+1А вот когда начинающие начинают так говорить «Да я разберусь в ваших технологиях, я же умею программировать, просто возьмите на работу», так от опытных сразу начинается «Вы должны сами обучаться, программист должен знать то-то и то-то, никто не будет вас учить за свой счет») А как мировые тренды сменились, так сами жаловаться.
IgorKKK
31.08.2017 11:38А вот когда начинающие начинают так говорить «Да я разберусь в ваших технологиях, я же умею программировать, просто возьмите на работу»,
Это везде сейчас. Думаете найти простого бухгалтера легко? Да убиться…
APXEOLOG
31.08.2017 00:33+3Нигде не узнать сколько у Вас займет переход на новый язык и стек технологий — 2 недели, 2 месяца, 2 года. Приходя на новый проект Вы не только будете вникать в сам проект, но еще и в язык (то есть Вы вполне возможно вообще не поймете часть написанного кода). Код который Вы будете писать надо будет постоянно проверять, указывать на ошибки и недочеты. Нужна ли работодателю вся эта головная боль и рулетка, когда можно просто найти специалиста подходящего под требования (ведь мы говорим о распространенных технологиях).
Люди которые меняют язык обычно снова начинают с джуниоров. Если Вы толковый программист, 3-5 месяцев Вам хватит, чтобы освоить новые технологии и получить заветные строчки в резюме. Либо Вы можете сделать свой собственный проект с указанными технологиями и добавить его в резюме. Так или иначе, мне странно видеть подобные жалобы от хорошего специалиста
worldmind Автор
31.08.2017 10:12Ну точного срока никто действительно не назовёт, но если мы говорим о переходе между языками одного класса, то переход это недели, я, будучи перловиком, как-то устал от перла и начал делать для себя на питоне, делал товарищу небольшой REST сервис, давал его знакомому питонщику на ревью — замечания были минимальные.
Да я писал немного медленнее т.к. много нужно гуглить поначалу (не всё ещё запомнилось), но я сразу начал писать вполне приемлемый код, так что освоение новой технологии это недели, а вот изучение предметной области проекта это месяцы, причём из-за плохо налаженного обучения обычно много месяцев.SirEdvin
31.08.2017 11:21Отлично. Слышали про такую штуку, как GIL? Знаете ли как работают декораторы в python? Итераторы? Генераторы? Ключевые слова типа yeild, yeild from?
Практически в любом языке есть куча тонкостей, без которых стать Senior программистом или иногда даже мидлом довольно сложно. Понятное дело, написать простой проект на любом языке можно довольно быстро, но вот как только появляется более сложный проект, возникают различные тонкости.
worldmind Автор
31.08.2017 16:05Да, в основном про всё это слышал, и многое не специфично для питона, хотя чтобы применить потребуется гугление.
> Слышали про такую штуку, как GIL?
не очень детально знаю, но что-то про то, что интерпретатор использует блокировки которые затрудняют распараллеливание кода
> Знаете ли как работают декораторы в python?
да вроде всё просто — функции которые оборачивают функции, даже синтаксис использования помню, перед функцией которую надо декорировать собаку с именем декоратора нужно написать
> Итераторы?
коллекция объектов с методом получения следующего объекта
> Генераторы?
специальный синтаксис для генерации списов
> Ключевые слова типа yeild, yeild from?
вроде для возврата из функций с запоминанием места возврата, чтобы при следующем вызове вернуться на это местоSirEdvin
31.08.2017 18:34да вроде всё просто — функции которые оборачивают функции, даже синтаксис использования помню, перед функцией которую надо декорировать собаку с именем декоратора нужно написать
Ну да, ведь все довольно просто, а вот как:
- А если нужен декоратор для класса
- А если нужен декоратор, который можно использовать с параметрами и без?
- А если нужен декоратор из класса для функции?
Скорее всего, уже эти вопросы вы будете гуглить.
коллекция объектов с методом получения следующего объекта
И, как правильно вызывать range во втором python и в третьем? Что вернет map?
специальный синтаксис для генерации списов
А еще set, dict, tuple и так далееНу и так далее. Есть довольно много тонкостей даже у такого простого в целом языка, как python. Что уже говорит про более сложные языки.
worldmind Автор
31.08.2017 22:21> Скорее всего, уже эти вопросы вы будете гуглить.
и что в этом плохого? это окажет минимальное влияние на скорость выполнения задачи, а после нескольких раз я это запомню
> Есть довольно много тонкостей даже у такого простого в целом языка, как python.
конечно, но если знать концепции, то нет проблем узнать и запомнить эти тонкости за короткий срокSirEdvin
01.09.2017 10:11и что в этом плохого? это окажет минимальное влияние на скорость выполнения задачи, а после нескольких раз я это запомню
Окажет ли? Проблема в том, что если для решения задачи, которую можно решить за 5 минут, если знать подход и за 2 часа, если его не знать, вы не будете гуглить этот самый подход, потому что он состоит из тонкостей, и, вы, скорее всего, будете слабо представлять о его существовании.
конечно, но если знать концепции, то нет проблем узнать и запомнить эти тонкости за короткий срок
К сожалению, это не помогает. Вот в python есть удобная штука для частичного фиксирования аргументов. Как много людей о ней знает? Иногда даже в популярных библиотеках для этого сначала городят свои костыли, а потом выпиливают.
Концепции не дают знания о конкретной реализации и тонкостях работы. И опытные программисты должны знать тонкости инструмента, на самом деле, а не иметь опыт в построении программ в других условиях, с другими технологиями. Опыт — это, конечно, круто, но проблема в том, что в 70-90% случаев он вам будет не нужен.
У вас есть опыт построения web-приложений на perl? Отлично. Но в python используется совершенно другой подход к разработке приложений (приложение + очередь), другой подход в выгрузке этого всего на прод, другие инструменты и прочее.
Какой смысл в вашем опыте, если он понадобится в 10% случаев, для которых в компании найдется опытный специалист, которого можно будет временно перевести на этот проект? Что бы остальные 90% времени вы изучали инструменты как junior, а платить вам раза в три больше?
Ну и да, изучить инструменты бывает довольно сложно, потому что опять же, вся проблема в тонкостях и подходах.
worldmind Автор
01.09.2017 21:33+1> Но в python используется совершенно другой подход к разработке приложений (приложение + очередь), другой подход в выгрузке этого всего на прод, другие инструменты и прочее.
да нет там никаких других подходов, приложение плюс очередь это универсальный и очевидный паттерн, он есть везде (например для одного из фреймворков) и все опытные люди приходят к нему даже если не знают о его существованииSirEdvin
01.09.2017 22:46Что, правда? А вот почему-то, в java можно делать вот так. Никакого вам брокера сообщений, бекендов для хранения результатов и прочего — вуаля, и у вас в приложении отложенные задачи.
Фишка в том, что очередь очень далеко не всегда вам нужна, особенно отдельная от приложения. Но python не дает вам выбора — все, что дольше эмпирического времени ответа должно уходить в очередь, иначе будете очень сильно страдать.
worldmind Автор
01.09.2017 22:56+1не понимаю в чём разница, в данном случае программист пользователь инструментов фреймворка, ему не особо важно как это очередь реализована, он использует механизм предоставленный фреймворком
PashaNedved
02.09.2017 04:29+1Какой смысл в вашем опыте, если он понадобится в 10% случаев, для которых в компании найдется опытный специалист, которого можно будет временно перевести на этот проект?
Какой тогда смысл нанимать нового программиста на постоянную работу?
Что бы остальные 90% времени вы изучали инструменты как junior, а платить вам раза в три больше?
Никто не запрещает, заключить письменное/устное соглашение о пересмотре зп.
balexa
01.09.2017 19:08Да, синтаксис языка можно выучить за 2 недели, даже меньше. Но сам язык ничего не значит без знания инфраструктуры — а это библиотеки, используемые смежные тулы и middleware знание готовых паттернов, знание решения типовых задач и так далее. А это займет возможно не один год.
Типичный пример — есть программисты под андроид, есть java ee. Оба пишут на одном языке, но заменить их друг-другом почти невозможно. Практически ничего общего у них нет.
Переход из одной области в другую на уровень достаточный, чтобы называться сеньором займет много времени, месяцы, а то и годы.worldmind Автор
01.09.2017 21:39ну я больше речь не про полную смену специализации, тут конечно придётся учиться и доказывать что что-то знаешь, я про смену языка в рамках специализации — например был бэкэнд разработчик на перле, превратился в такого же на джаве
balexa
01.09.2017 21:42А и там придется учиться. Нет там ничего общего, я вам как человек бросивший перл примерно 10 лет назад говорю. Что там общего-то? Весь EE стек вам придется учить заново.
mickvav
31.08.2017 00:50+5И что помешало благородному дону попилить в свободное время какой-нибудь опенсорс на заветном языке/платформе/чем-там-ещё и гордо запилить его в резюме?
s-kozlov
31.08.2017 05:58+6Сегодня не модно угорать по программированию, читать книжки, пилить что-то в свободное время и т.д. и т.п. Сегодня модно хотеть обучаться за чужой счет.
Areso
01.09.2017 17:00-1Отчасти соглашусь с вашим посылом, однако, даже если человек сделал пет-проекты и даже если их посмотрели (внимательно), а не просто прокрыжили (сайд-проекты — есть, опен-сорс — есть), то легко нарваться на кучу критики или на прямой отказ: знаете, мы посмотрели ваш проект, у вас там всё в процедурном стиле… нет, мы фанатеем от ООП (или функциональщины), а потому вас не возьмем. Или еще проще: да, у вас есть пет-проекты, но там сплошной говнокод, следующий!
s-kozlov
02.09.2017 08:09+1Отчасти соглашусь с вашим посылом
Да вы его даже не поняли, похоже. Прошли те времена, когда в программирование шли «по любви» и говнокодили в свободное время ради удовольствия, а не с целью впечатлить потенциального работодателя.
worldmind Автор
31.08.2017 10:15Лень (особенно когда по десять часов работаешь и каждую неделю ночуешь в поезде) и трудности выбора — метался между разными вариантами — смотрел хаскелл, питон, хотелось на них писать т.к. как языки они интересны, но потом (не так давно) понял что я недостаточно фанатею от программирования и мне нужно выбирать что-то массово востребованное.
YemSalat
01.09.2017 19:24Питон по-моему вполне себе востребованный.
worldmind Автор
01.09.2017 21:37В сравнении с перлом конечно, но как-то тоже не особо много вакансий было когда смотрел.
dimm_ddr
04.09.2017 12:25Вот например статистика за 16й год. Питон на 6м месте. Впрочем это по РФ, искать мировую статистику немного лень. В любом случае питон есть как минимум в трех больших областях — это веб с джанго (в основном), это автоматизация тестирования — здесь количество вакансий наоборот растет судя по ощущениям и это data science, где питон успешно конкурирует со всякими R и mathlab. В общем на ближайшие лет 10 перспективы вполне себе у языка, как мне кажется.
alekciy
31.08.2017 07:18А каков регион проживания и каков порядок цифр по ЗП на текущем месте? И каковы зарплатные ожидания на новом месте?
worldmind Автор
31.08.2017 10:27Сейчас я в Гомеле, в творческом отпуске, книгу дописываю.
ЗП была разная, понятно, что когда я был руководителем отдела в мск, то зарабатывал значительно больше чем когда был просто разработчиком, как разработчик я считаю что 12.5$ в час это нормальная ЗП, понятно что надо делать поправки на место проживания, если релоцироваться в какую-нибудь дорогую страну вроде Швейцарии, то надо переоценивать исходя из стоимости жизни.alekciy
31.08.2017 13:42Что мешает по прежнему работать на перле? Например. Я в 2009 году работал в reg.ru и один из вариантов развития был переход в перл программисты (сам пишу на пыхе). Но уже тогда я видел, что нет смысла тратить время на это язык. Но сама кампания по прежнему активно использует его и в ближайшие годы врятли перейдет на что-то другое. Почему бы не попытаться туда?
Я к тому, что мешает оставаться в рамках перла? Только соображение «нет перспектив»? Но перспективы есть даже на умирающих языках, т.к. можно остаться ХХ человеком знающим YY и получать из-за этого очень приличные деньги.worldmind Автор
31.08.2017 16:25Перла для меня больше не существует.
Он перестал нравиться мне как технология и моя нынешняя стратегия требует широко востребованных навыков.
> Почему бы не попытаться туда?
меня даже готовы были взять, но отказался
> Но перспективы есть даже на умирающих языках
это так, но только если ты прямо фанат этой технологии, когда тебе интересно ты изучаешь её до самой глубины и всегда будешь ценен, а если технология тебе не нравится, то те кто фанатеют опередят тебя и со временем тебя вытолкнет со сжимающегося рынка.alekciy
31.08.2017 19:14А данная статья появилась после походов на собеседования на какую должность? Программиста или руководителя проекта?
worldmind Автор
31.08.2017 22:23-1Программиста, руководящие должности меня сейчас меньше интересуют, разве что должность Императора Земли рассмотрел бы )
alekciy
31.08.2017 22:46+1Т.е. последний опыт работы не программерский, а руководство? Тогда получается, что при переходе на новый стек за плечами нет опыта на этом стеке и по сути нет програмерского опыта. Прямой путь в джуниоры. Не поверю, что не удалось найти ни одного места на эту позицию.
Botkin
31.08.2017 08:24Хороший хирург же всегда вылечит насморк!
Отличные аналогииworldmind Автор
31.08.2017 10:28Нет, врачи не очень подходящий пример т.к. врачам нужно просто запомнить большой объём данных.
Именно поэтому врачей уже заменяются нейронные сети, а программистов пока нет.Botkin
31.08.2017 12:31+2Именно о том мой комментарий, что всегда можно подобрать аналогию, которая подтверждает идею, и всегда можно найти аналогию, которая её опровергает. И разделить их на подходящие и не подходящие
"Я клёвый программист perl, почему бы не взять меня в программисты java, ведь ваша задача найти хорошего программиста"
"Я клёвый столяр, почему бы не взять меня в столяры, ведь ваша задача найти хорошего столяра"
"Я клёвый челюстно-лицевой хирург, почему бы не взять меня в психотерапевты. Ведь ваша задача найти хорошего врача"worldmind Автор
31.08.2017 22:28Аналогии ничего не доказывают и не опровергают, они лишь упрощают понимание.
aamonster
31.08.2017 09:11Даже если ваше резюме будет читать не HR, а технический специалист — не возьмут или возьмут джуниором, и правильно сделают. Потому как между перлом и джавой пропасть не в плане языка (язык учится быстро), а в плане принятых подходов к написанию кода. В лучшем случае (если всё же есть достаточные знания за пределами перлового мира) — сможете относительно быстро вырасти.
worldmind Автор
31.08.2017 10:30Хотелось бы примеров о каких подходах речь.
Ну и подходы язык не диктует, знавал перловика который на перле как на джаве и писал.SirEdvin
31.08.2017 10:51Ну и подходы язык не диктует, знавал перловика который на перле как на джаве и писал.
Зависит от языка. Самый жесткий пример диктования стиля, который я знаю, это golang, например.
aamonster
31.08.2017 14:12Конкретно по перлу и джаве не скажу (не работал на них), но вот пара из моей практики — C++ и javascript.
Начнём с однопоточности js — что напрочь убивает привычку пользоваться примитивами синхронизации.
Дальше. Основной вид объектов — хэши (привет перлу). Что приводит к тому, что мы можем в любой объект добавить ещё немножко данных или перекрыть метод.
Дальше. Замыкания как сущности первого порядка. Плюс проблема с this (функция может быть вызвана с совершенно другим this) — что приводит к типовому шаблону пропихивания его в передаваемые куда-нибудь замыкания под другим именем (в современном js есть более прямые решения, но не всегда можно на него закладываться)
Возвращаясь к хэшам: prototype-based наследование. Поверх которого люди строят "классическую" систему классов, но это зачастую не лучшее решение.
Ну и вишенка на торте — C++ даёт возможность писать быстрый код — с соответствующими приёмами оптимизации. Js мало того, что медленней — приёмы оптимизации совершенно другие.
DeadKnight
31.08.2017 09:46+11. Хороший программист сможет освоить новый язык довольно быстро — это правда. Вот только нюансы языка даже за 2 месяца освоить не получится. А сеньёр/техлид отличается от мидла именно знаниями этих нюансов.
2. Мой опыт говорит, что если человек способен за 1-2 недели выучить язык, то никто не будет его держать на джуниорской позиции больше, т.к. он просто уйдет. икакая вменяемая IT компания не хочет терять хороших программистов.
3. Я бы еще понял, если бы эта статья была написана программистом. Но в заголовке я вижу:
руководитель программистов (нанимался и нанимал)
Возникает вопрос, неужели автор этого текста нанял бы себе на проект на позицию Perl сеньёра/техлида того, кто раньше писал только на PHP и Perl в первый раз видит? Что-то у меня смутные сомнения.worldmind Автор
31.08.2017 10:38На самом деле у меня был случай, когда мы взяли человека без опыта, он сделал тестовое задание и сразу было видно что это крутой чел и он реально отлично работал, не как джуниор, а как сеньёр — там где два опытных и много чего знающих хакера потратили в два раза больше времени и не довели ко конца, он навёл порядок и доделал.
Да и джуниоров я многих помню, которые приходили и работали нормально практически сразу, понятно начинали с простых задач, но очень быстро догоняли.
Конечно опыт штука ценная, но нельзя сказать что эти люди учились за счёт компании, они свою зп отрабатывали точно.DeadKnight
31.08.2017 13:09+1То, что ты описал в первом примере — бывает. Но это далеко не тренд. В последнее время я вижу сильно много сеньеров, которые стали сеньерами, потому что долго в компании работают. Нет, они конечно работают неплохо, свои деньги в данной компании отрабатывают, но вот брать бы их на сеньерскую должность в новый проект, со сменой технологии и языка — нет уж, увольте.
worldmind Автор
31.08.2017 16:19Да — далеко не всякий опыт в резюме вообще имеет какую-то ценность, надо тестировать человека на способность выполнять нужную вам работы.
itools
31.08.2017 10:16-2хмм улыбнуло perl умирающий язык )))) я бы поспорил, знакомые есть кто на нем кодит аж с 96го года у них все работает, а значит клиентов устраивает
worldmind Автор
31.08.2017 10:17со статистикой не поспоришь, на коболе тоже много чего работает, но никто не спорит что это умирающий язык
mickvav
31.08.2017 12:46Фортран так уже лет тридцать хоронят, всё никак не закопают. Хотя статистика, особенно в относительных цифрах, действительно неумалима.
Что-то мне подсказывает, что реально происходит примерно такая динамика — в какой-то момент новое поколение программистов изобретает новый язык. Кодит на нём разное бизнес-полезное. По мере роста накопленной кодовой базы в успешных компаниях, расползается по позициям, связанным с поддержкой имеющихся решений. К этому времени из колледжей выползают новые молодые программисты. Тёплые позиции в компаниях с имеющимся софтом им массово не светят, так что они пилят новый язык и поднимают хайп. Стартапчики и молодые бизнесы ведутся, и молодые программисты, постепенно старея, расползаются по новому поколению контор. Цикл.worldmind Автор
31.08.2017 16:14Как-то так, хотя в среднем растёт уровень выразительности языков, условно говоря от низкоуровнего си перешли к высокоуровневому питону.
DEmon_CDXLIV
31.08.2017 12:36В кровавом ентерпрайзе некоторые вещи с 60х годов работают, но это не повод считать всякие Коболы живими :)
Bellicus
31.08.2017 12:42+1По своему опыту скажу, что все эти фреймворки, стеки, языки в описаниях вакансии лишь мишура для завлекухи, некогда услышаные эйчаерами.
Из последнего.
Знакомый. Пэхэпешник. Смена работы. Вакансия, все как положено: php 5,6...100500.0, yii, laravel, ООП, mvc и дохрена прочего из мира php. В итоге пишет микросервисы на Go, а всем тем, что было в описании вакансии, даже и не пахнет.
И таких примеров, больше, чем хотелось бы.DrPass
31.08.2017 13:23Пэхэпешник
В итоге пишет микросервисы на Go,
Ну он же, я так понимаю, не огорчен этим фактом?
worldmind Автор
31.08.2017 16:12Так вот и я о том, почему-то никто не считает проблемой пересадить уже нанятых людей на другую технологию, не кричит что это бесплатное обучение и всё такое, видимо потому что выгоды больше чем затраты.
А новых надо нанимать с длинным список требований технологий используемых в сию секунду.DrPass
31.08.2017 17:01Ну а что нелогичного? Способности и возможности уже нанятого вы и так прекрасно знаете. И оплачиваете ему обучение, понимая, какая будет отдача. А что вы можете ожидать от человека, с которым вас связывает одно-два собеседования?
с длинным список требований технологий используемых в сию секунду.
Если на рынке таких людей нет, работодатель просто смягчает требования.
Я бы на вашем месте все-таки «инвестировал в самого себя», а не ждал бы доброго дядю, который бы согласился это сделать. Дядя может найтись, может не найтись. А может найтись, но оказаться не добрым, и т.д. А так, основная проблема ведь не в том, что работодатели такие редиски. Просто ваше предложение пока не слишком конкурентоспособное по сравнению с другими. Переборите свою вышеупомянутую лень, и подучите что-то мейнстримовое. От соискателя же в большинстве случаев не требуется многолетний опыт работы именно на вон том фреймворке, достаточно просто опыт плюс умение работать с нужными инструментами.worldmind Автор
31.08.2017 17:05> А что вы можете ожидать от человека, с которым вас связывает одно-два собеседования?
мой опыт показывает что тестовое задание неплохо отражает способности человека, а дальше есть испытательный срок
> Я бы на вашем месте все-таки «инвестировал в самого себя»
Естественно я буду изучать (как только текущие задачи доделаю), статья не обо мне, а о подходе.DrPass
31.08.2017 20:46+1мой опыт показывает что тестовое задание неплохо отражает способности человека, а дальше есть испытательный срок
Испытательный срок, это же не для проверки человека, чтобы потом принимать решение, годится он для работы или нет. Это что-то вроде стоп-крана. Когда при наборе кадров произошла серьёзная авария, и надо срочно принимать меры. Поэтому при наборе сотрудников надо исходить из того, что человек, которого берешь в коллектив, испытательный срок пройдёт. А значит, при прочих равных, он изначально должен как можно лучше соответствовать должности.worldmind Автор
31.08.2017 22:31Вы себе же противоречите, чуть выше вы утверждали «А что вы можете ожидать от человека, с которым вас связывает одно-два собеседования?» т.е. говорили что по собеседованию нельзя хорошо оценить человека, а теперь вы утверждаете, что после собеседования надо быть уверенным в том, что человека нужно брать.
Ведь очевидно, что опыт и список технологий указанные в резюме не значат ничего.DrPass
31.08.2017 23:29+1Я себе не противоречу. Выше я писал про то, почему «переучивать своих сотрудников» и «нанимать с улицы не имеющего нужной подготовки, и переучивать» — это разные вещи.
- Малознакомый человек не знает инструмента, но обещает, что быстро выучится = высокий риск
- Малознакомый человек знает инструмент = умеренный риск
- Переучить на новый инструмент хорошо знакомого человека, который умеет
Я думал, это очевидно.
теперь вы утверждаете, что после собеседования надо быть уверенным в том, что человека нужно брать.
Не «быть уверенным в том, что нужно брать», а «нужно брать тех, кто лучше соответствует должности». По-моему, это совсем не одно и то же :)
Вы не будете увольнять после испытательного срока человека, если он не оправдал ваших ожиданий, но при этом не полная бестолочь. Да и вообще, тратить месяц на то, чтобы протестить сотрудника, годится он или нет — непозволительная роскошь, как для работодателя, так и для самого сотрудника.worldmind Автор
01.09.2017 09:31-1> Вы не будете увольнять после испытательного срока человека, если он не оправдал ваших ожиданий, но при этом не полная бестолочь
по итогам своего опыта я понял что работать надо только с теми кого ты считаешь клёвыми специалистами и людьми, а кто не таков должен быть уволен как можно быстрее, пусть ищет то место где он подходит
> тратить месяц на то, чтобы протестить сотрудника, годится он или нет — непозволительная роскошь
Непозволительная роскошь годами платить зарплату тому кто недостаточно хорошо работает, хоть и не полная бестолочь
forketyfork
31.08.2017 14:25Сравнение программистов со столярами, конечно, не в кассу совершенно, как и любое отвлечённое сравнение вместо доводов по существу. Но дело даже не в том, что опытный разработчик осилит или не осилит новую для себя технологию или фреймворк. Есть более серьёзная проблема — сможет ли разработчик привнести свой опыт из другого языка или стека и обогатить код и процесс новыми идеями, или наоборот, притащит что-то ненужное взамен общепринятых практик, с которыми не сможет или не захочет разобраться. Или и того хуже, будет ныть, что тут всё плохо, а вот в его-то любимом фреймворке не так, и вообще надо всё переписать. В таком случае мы получим не просто плохо работающего, а ещё и демотивированного сотрудника. И это, к сожалению, в большей степени человеческий фактор, это такая особенность характера, которую не выправить ни за 3, ни за 10 лет разработки.
Я больше скажу, по моему опыту, оффер процентов на 80 обуславливается человеческими факторами, как со стороны нанимателей, так и со стороны соискателя, а вовсе не знанием или наличием в резюме конкретных технологий. Вот этот факт разработчики зачастую вообще не хотят признавать, и в таком контексте поднимать проблему влияния стека технологий на успешные офферы вообще смешно.
И да, извините, но глаз резануло — нет в русском языке слова «найм».worldmind Автор
31.08.2017 16:30> Или и того хуже, будет ныть, что тут всё плохо, а вот в его-то любимом фреймворке не так, и вообще надо всё переписать.
естественно надо брать того кто хочет, готов сменить технологию
> оффер процентов на 80 обуславливается человеческими факторами, как со стороны нанимателей
это понятно, но чтобы человеческие факторы сыграли роль надо начать человеческое общение, а этого не будет если тебя отсеивают по ключевым словам.
> И да, извините, но глаз резануло — нет в русском языке слова «найм».
ну формально видимо нет, а фактически может уже есть? Наём как-то не звучит.
Ivan22
31.08.2017 15:43ну так ищут-то в основном не программистов, а кодеров. А кодер понятно кодит только на том что знает.
theTeacherOfEnglish
31.08.2017 16:07Очевидно, что он должен уметь программировать, решать алгоритмические задачи и это нужно проверять давая тестовое задание.
У меня куча знакомых, которые целыми днями сидят на хакерранках и топкодерах и решают любые тестовые задачи (алгоритмы/структуры данных, математика, и т.д.) за пару часов (в худшем случае). Но надежными и терпеливыми разработчиками их язык не повернется назвать. Если им ставить неинтересные задачи (каковых немало на проектах) по работе, они чаще предпочтут отложить ее и порубиться в доту.worldmind Автор
31.08.2017 16:08Это другая сторона вопроса, человек может быть экспертом во всех нужных технологиях, но быть совершенно неэффективным в данном проекте
CoreTeamTech
31.08.2017 16:08Вы стали жертвой неудачной аналогии, вариативность специализаций в ИТ на порядки выше чем в столярном ремесле. Впрочем, на это вам уже указали. А я хочу заметить вот что: специализация сейчас значит все больше и больше. И при прочих равных лучше взять человека с опытом максимально приближенным к текущим реалиям проекта.
Пирамида собеседования, как мне кажется, имеет в качестве основания Computer Science, затем идет слой Architecture/Systems Design, а в верхушке Tools & Frameworks. Поэтому, если у нас 1 позиция и два кандидата, и оба показали себя одинаково хорошо на первых двух уровнях, то, очевидно, сравнивать будем по следующему уровню. Так вот, многие компании считают (возможно, зря), что все кандидаты имеют сходную базу (университетскую).
Как проверить способности к обучнию, кроме как на практике и на конкретном проекте я не представляю. По сему и не вижу смысла стараться на собеседовании делать какие-либо выводы по этому фактору.worldmind Автор
31.08.2017 16:09> Как проверить способности к обучнию, кроме как на практике и на конкретном проекте я не представляю
дать задачу на незнакомой технологии?CoreTeamTech
31.08.2017 17:06И что вы проверите таким образом? Способность обучаться? Обучаться быстро? Насколько быстро по вашему должен обучаться человек? Какая корреляция между временем обучения и эффективностью сотрудника? Если один «обучился» за 1 день выполняя поставленную задачу, но потом может только повторять это решение, второй тупил-обучался неделю и знает тонкости технологии и способен решать больший круг задач, кому из них отдать предпочтение?
worldmind Автор
31.08.2017 22:18Тестовое задание должно отфильтровывать тех кто никак не может обучаться, а далее уже испытательный срок покажет.
worldmind Автор
01.09.2017 09:39> специализация сейчас значит все больше и больше.
так специализация не в знании конкретных инструментов, а в знании области — бэкэнд веб разработчик он на любом языке/фреймворке свои задачи может решать
alist
31.08.2017 16:28Booking.com и Амстердам — компания, которая пылесосит всех перловиков мира последние 15 лет. Пособеседуйтесь. По (ЗП — затраты на жизнь) будет примерно как Минск, может хуже, но получше Гомеля.
Ну или:
- прокачиваемся на вопросах на Java-интервью. Класслоадеры, многопоточность, модель памяти, коллекции, Спринг — в наших краях примерно такое спрашивают.
- вписываете в резюме в прошлых работах местами рядом с перлом Джаву. Для спокойствия спишитесь с тамошними вашими руководителями и объясните ситуацию.
- если HR-фильтр не проходится, пойдите на местную сходку джавистов, раззнакомьтесь, приходите на собеседование сразу к лидам команд без HR
- если не прошли, просите у собеседовавших вас людей фидбека, что не так. Очень может быть, что дело не в Перле, а в том, как вы речь свою строите, например.
Ну и дерзайте. Хороший прогаммист — он и на Java хороший программист, главное подкачаться.
Java можно заменить на что-то еще. Наверняка вам будет проще устроиться на Python, Rub. Node.
worldmind Автор
31.08.2017 16:42Про букинг конечно думал (Нидерланды вроде вполне нормальная страна), но потом почитал пару отзывов на blog.perl.org (вроде эти 1, 2) и перехотел.
> Класслоадеры, многопоточность, модель памяти, коллекции, Спринг
благодарю, учту
> Java можно заменить на что-то еще. Наверняка вам будет проще устроиться на Python, Rub. Node.
Питон это отличный вариант, но по моим ощущениям вакансий сильно меньше.alist
31.08.2017 16:55Я сам тоже довольно маргинальные технологии сипользую, и вакансий мало. Но и спецов тоже меньше, и вам в конце концов нужно не 100 параллельных работ, а только одна.
worldmind Автор
31.08.2017 17:07не совсем так — мне нужна не просто работа, а свобода выбора работ, в первую очередь географическая т.к. удалённой работы всё ещё мало.
klevunin
01.09.2017 09:25Я не понимаю, как можно сидеть на одном языке. Я хз как все, но мне приходиться постоянно читать книги, смотреть что там вообще делаться в этом мире. И чем больше я узнаю, как правило, тем меньше считаю, что я все в этой жизни знаю. Те же Фреймворки они заполонили всю планету. Везде они. Но как правило, всё-таки, в каждом языке можно выделить какой-то один или максим два. Которые всем и нужны. А все остальное это так, хз зачем. Могу понять если очень долго быть в одной области и возможно знать там все. Но перепрыгнуть с языка на другой язык с таким опытом это в моем понимании достаточно просто. В конечном итоге нужно решать задачи, которые ставит бизнес. А бизнес требует решения задачи, как правило наименее простым способом. И какие для этого сегодня технологий есть такие и требует. Завтра другие будут. Зачастую просто потому что модно.
DrPass
01.09.2017 10:20+1Я не понимаю, как можно сидеть на одном языке.
Язык/платформа — это своего рода зона комфорта. Пока вы молодой, вы видите массу нового в каждом инструменте, вам интересно, вы постоянно развиваетесь. А спустя N лет в профессии и M изученных инструментов чувство новизны пропадает напрочь. И очередной модный фреймворк для вас уже выглядит как стодесятое повторение пройденного материала, и вызывает только чувство «горшочек, не вари». И изучать уже приходится не с удовольствием, а из-под палки, просто понимая, что тебе нужно быть в тренде, дабы не вылететь на обочину профессии.
И, соответственно, если у вас есть «тёплое место» и/или круг заказчиков на вашу привычную, хорошо знакомую (но стареющую) платформу, заставить себя начать заново учиться уже на новой платформе уже не так-то и просто. Надо или сделать сильный психологический рывок, или чтоб жареный петух в задницу клюнул, например, в виде потери работы.
А бизнес требует решения задачи, как правило наименее простым способом.
Угу. А ИТ-бизнес, с почасовой оплатой, наоборот, наиболее хитровымудренным :)
leossnet
01.09.2017 09:26+1Современный найм (в ИТ) – не отстой, просто сфера ИТ на сегодня превратилась в зрелую отрасль материального производства, в которой крутятся большие деньги. И как в любой зрелой отрасли, в ИТ наблюдается высокий уровень специализации и кооперации на фоне дефицита профессиональных кадров.
Столяр сегодня в деревообрабатывающей отрасли – это наемный работник с четкими требованиями по уровню владения определенными технологиями производства. Причем столяр не занимается больше никакими другими вопросами, такими как лесозаготовка, транспорт, снабжение, бухучет, планирование, сбыт и т.п. Хотя лет 100-150 назад решением этих вопросов занимался непосредственно сам столяр.
То же самое с программистом. Еще лет 20-30 назад программист мог создать на коленке операционную систему и продать ее крупной компании, которую сам же и нашел. Сегодня создание даже самой простой операционной системы – это сложный и затратный процесс, в который вовлечено большое количество людей различных профессий с разным уровнем опыта и знаний (можно конечно сделать и на коленке, то такая ОС даже даром никому не нужна).
Поэтому сегодня проблема найма в отрасли ИТ заключается в том, что в большой, зрелой и высококонкурентной сфере материального производства просто катастрофически не хватает профессиональных кадров, при этом служба по найму просто отсеивает наименее адекватных соискателей, которых на волне моды на ИТ в последние 10-20 лет расплодилось бессчетное множество. К тому же через отдел кадров ИТ-подразделения заказывают поиск сотрудников как правило только для решения типовых задач (для который perl сегодня особо не нужен).
По основной же теме статьи можно дать рекомендацию искать интересную работу не через отдел кадров, а выходить на руководителей производственных подразделений или проектов, как это делается во всех зрелых отраслях.
itools
01.09.2017 22:15-4школота минусует, нет ключевых слов laravel и прочее, вакуумную бомбу на вас ))))) посмотрим че вы сделаете с пустого места
D01
02.09.2017 09:22+2Хороший (!)
Программист (!)
Это очень редкая штука, намного больше кодеров с амбициями, которые ничего из себя не представляют.
Из этого и исходят все HR.
Поэтому, такой программист — штучный товар и ищется он не через HR.
Dzen1
04.09.2017 07:03Автор Вы не один в этом мире. Солидарен с Вами. Про столяра точно описали. Все таки нас, как минимум двое… Спасибо за статью.
IgorKKK
Но и не менеджмент любого ранга непрограммистского толка. Они не отличат JS от Java.
Значит проблемма все равно внутри программистского сообщества.
zenkz
Виноваты HR-ы и PM-ы
Project Manager-ы дают требования по технологиям исходя из проектной необходимости. HR-ы отбирают кандидатов по простому соответствию того, что указано в резюме кандидата и тому, что написал PM. Соответственно до интервью доходят только те, у кого резюме соответствует требованиям.
К тому же всем нужны готовые специалисты и мало кто готов дать 1-2 месяца чтобы научиться и разобраться в новой технологии.
Что делать программистам (особенно умирающих языков):
— Подгонять резюме под вакансию. Если написан Angular2, то пишем Angular 2 и оставшееся время до интервью зубрим теорию и делаем тестовые проекты.
— Учить новые языки и технологии. Если видите в вакансиях React — то изучите его
— Участвуйте в Open-Source проектах или заведите свой домашний проект, где вы будете обкатывать новые языки и технологии. А когда пойдёте на интервью, то будет что показать…
Master_Dante
А жить когда?
zenkz
2-3 часа в неделю вполне достаточно для того, что я выше перечислил.
Подгонять резюме и осваивать технологии, требуемые в вакансии — такое случается только при смене работы, т.е. раз в 3-5 лет.
Программирование настолько быстро развивается, что даже если интенсивно изучать новое, создаётся впечатление, что ты отстаёшь от поезда. А если забить и не учить, то придётся потом остаток жизни работать во второсортной фирмочке за скромную зарплату.
DrPass
Хотите или не хотите, чем-то придется жертвовать. Как правило, 8 часов в день по будням — это достаточно, чтобы сидеть на тёплом месте, но обычно мало для того, чтобы двигаться вперед. Поэтому вы или жертвуете часть вашего досуга на своё развитие, или жертвуете развитием. Ничего плохого в первом варианте, особенно когда молодой и без семьи, я не вижу.
glestwid
Ну а если возраст за 40, и работа это просто источник дохода для жизни — то как быть? Как не красноглазить, здоровье оно не вечное?
DrPass
Вы знаете, вопрос из серии «Как что-то получить, потратив как можно меньше усилий?», он не имеет четкого ответа. Можно в лотерею попробовать сыграть, вдруг повезет. Ну или внимательно смотреть по сторонам, когда идешь по улице, вдруг где-то кошелек валяется.
Могу сказать по своему примеру. Мне не за 40, но мне самое что ни на есть «под 40», так что этот вопрос для меня отнюдь не чуждый. У меня родители-пенсионеры, жена в декрете и маленькая дочь, ответственности хватает. А три года назад я потерял свой дом, да и в общем-то весь свой город.
И я стал красноглазить, как в юности. И знаете что? Не так уж это и страшно оказывается для здоровья, особенно когда жареный петух в задницу клюнул.
Мой товарищ, например, в той же ситуации вообще в 37 лет выучился на программиста с нуля, до этого он обувь продавал в своем магазине в том же городе. И ничего, поработал джуном, теперь уже миддл, неплохо знает кучу JS-фреймворков и ухитряется держаться в тренде даже в той мешанине, которая творится в мире JS. Так что моё ИМХО, все эти разговоры про «как тяжко работать, если тебе за...», это просто отмазки. Если сильно надо, то всё получится, лишь бы ленивую попу поднять. Проблема скорее всего в том, что чаще не настолько уже и надо.
Ogoun
В одной компании где работал, для всего отдела HR проводились курсы которые давали представление о предметной области. Курсы проводили руководители соответствующих отделов. Т.е. тех HR которые искали C++ программистов обучали базовым понятиям плюсов, таже безопасность, шарп и т.д. В итоге HR'ы понимали кого ищут, и качество набора реально возрастало, а также качество фильтрации на предсобеседовании. Сравнивая с текущим местом работы вижу насколько неэффективен поиск когда кадровики не разбираются совершенно.