awfun

Ваше конкурентное преимущество в it
Работаю разработчиком с 2014 года, и периодически вижу вопрос - что написать в резюме людям, которые раньше работали в другой области? Человек прошел курсы или выучил что-то самостоятельно, дальше нужно пытаться трудоустроиться, на этом этапе без резюме не обойтись. Понятно, что нужно указать стек технологий, даже если промышленного опыта использования кандидат не имеет. Но имеет ли смысл указывать опыт предыдущей работы, не связанной с it?
Я считаю, что указывать достижения с прошлой работы нужно (если конечно они у вас есть)
Достижения обычно находятся близко к сфере ответственности работника, но немного выходят за нее. Чтобы правильно подать свои достижения будет полезным ознакомиться с методикой STAR. Вот абстрактный пример достижения в своей сфере:
Сотрудник работает грузчиком на складе, при выполнении своих обязанностей замечает что из-за неоптимального расположения полок путь получается избыточно длинным. Он прикидывает, как можно было бы переставить полки, и сколько времени это могло бы сэкономить (для него и еще 100 грузчиков). Убеждает начальство, просит коллег помочь передвинуть полки, и еще на старом маршруте вешает табличку "обход".
Вот какие выводы можно сделать из ситуации:
- Сотрудник не просто отрабатывает часы, а понимает финансовую составляющую бизнеса-нанимателя и старается ее улучшить
- Он предлагает вариант решения, представляет обоснование: трудозатраты и неудобства не должны перевешивать пользу
- Способен настоять на своем решении, скоординировать его выполнение, снизить неудобство внедрения
Вот такой опыт и нужно отразить в резюме. По техническим скиллам "мигранты" из других областей всегда будут отставать от школьников-олимпиадников или посредственных студентов факультета информационных технологий, и именно ответственное и проактивное выполнение своих рабочих обязанностей может стать козырем. Всем удачного трудоустройства!
Как выбрать свой язык программирования
Один из наиболее актуальных вопросов у новчиков в разработке - какой язык программирования выбрать. Я занимаюсь разработкой на java с 2014 года, и хотел бы выразить свое мнение по этому вопросу.
С ростом профессионального уровня в разработке значительная часть навыков кодирования автоматизируется, и само кодирование начинает занимать в процессе разработки меньше времени. В этом смысле, если смотреть на перспективу, не так важен сам язык программирования и даже инфраструктура. Конечно, смотреть логи сервиса и читаемые стектрейсы ошибок в kibana гораздо проще чем вытаскивать их с микроконтроллера, но я уверен что у профессионалов в своей области эти задачи выполняются на автомате
Также я бы не советовал ориентироваться на деклариремую скорость работы программ на том или ином языке. Квалифицированно размышлять про бенчмарки могут единицы, обычный разработчик беспокоится только чтобы производительность его программы не сильно просела по сравнению с предыдущей рабочей версией. Есть технические ограничения в применимости языков программирования - например, из-за особенностей управления памятью на java невозможно писать программы с гарантированным временем ответа. Но это не должно лежать во главе угла при выборе языка.
Любой язык программирования служит для обслуживания желаний какого-то бизнеса - хоть продажа продуктов питания, хоть запуск дронов. Вот от бизнеса и нужно идти при выборе. Языки широкого применения могут использоваться в разных бизнесах. Приведу несколько примеров:
- Java - в основном банки, бекенд
- JavaScript - почти любой бизнес который поддерживает сайт или бекофис, а теперь еще и на беке
- Kotlin - в android
- C++ - встраиваемые системы, особо нагруженный код в банках
- C# - фронтенд и бекенд в геймдеве
- 1С - в бухгалтерии
Нужно оценить наличие работодателей в своей местности, так как начинающих разработчиков редко нанимают на удаленную работу. Еще стоит ориентироваться на наличие друзей-разработчиков, их советы и знание рынка могут значительно сократить время поиска работы.
Какой язык вы выберете для себя?
Войти в it в 2022
Всем привет, я работаю разработчиком ПО с 2014 года, а также занимаюсь обучением. Вот пара численных показателей, которые периодически попадаются мне на глаза:
- уровень средней зп в отрасли на главной странице habr - рос до начала 2022 года, но теперь постепенно снижается
- на hh размещены позиции team lead в сбербанк, в начале года верхяя граница зп была 400 т.р. до налогов, в мае 425, сейчас 450
Известно о банкротстве игровой студии, но вроде как это не затронуло значительное количество разработчиков. Также некоторые банки перестали восполнять позиции увольняющихся сотрудников, закрывать не перспективные направления. Лично мне стали в несколько раз реже писать рекрутеры.
Могу предположить, что в ближайшее время сохранится спрос на квалифицированных разработчиков, их компенсации не будут сильно отставать от инфляции. Последние годы компании не стремились нанимать новичков, повышая требования, тем самым провоцировали дефицит миддлов и выше. Если сохранится контекст краткосрочного планирования, то компании могут сократить найм сотрудников без опыта, и войти в it станет сложнее.
Помните что процесс подготовки к собеседованиям это марафон, а не спринт, и правильно распределяйте свои силы и мотивацию. Не делайте резких движений вроде увольнения с работы. Обучение может занять и полгода, и год, а к тому моменту вполне возможно что рынок вакансий оттает.
О техзадании в it
При обсуждении работы разработчиков часто возникают недопонимания, вызванные различным пониманием границ их обязанностей. Последнее время я работаю разработчиком в финтехе (дистанционное банковское обслуживание) и могу рассказать о постановке задач в проектах среднего размера.
Обычно у проекта запланировано несколько крупных целей, скажем на год вперед. Пример такой цели - предложить пользователям новую услугу, которая раньше не была доступна дистанционно, либо вообще не предоставлялась организацией. Целью может быть также наращивание клиентской базы, что может потребовать организационных или технических доработок. Но нужно подчеркнуть - цели сформулированы так, что оставляют простор для выбора пути их достижения.
Дальше начинается рекурсивный процесс декомпозиции целей на задачи, задачи детализируются и так далее. А результат декомпозиции записывается в ТЗ.
Но это в идеальном случае, в реальности же этот процесс приходится адаптировать под особенности организации и проекта. Обычно задачи переплетены, а детализацию откладывают до последнего. Вот пример вводных данных для разработчика из реальной задачи:
Пользователь может заполнить анкету и подать заявку на начало пользования услугами нашей организации. Он должен указать паспортные и контактные данные, подтвердить их кодом из смс, должен иметь возможность скачать заполненную анкету. Дальше нужно передать эти данные в определенные внешние системы, после завершения обработки заявки пользователю открываются возможности пользования услугами.
Выглядит, что задача понятна - нужно запросить шаблон документов для заполнения, api для работы со смежниками, продумать валидацию данных пользователя и дальше все это связать в коде. Однако дальше начинают вылезать детали, которые ранее не учли:
- нужно обучить сотрудника как обновлять шаблоны документов, иначе это придется каждый раз выполнять разработчику
- нужна админка, чтобы техподдержка могла самостоятельно помочь пользователю в случае проблем
- пользователь просит сменить контактные даные уже после подписания документов, запрос от поддержки прилетает разработчикам
- из-за коронавируса в 2020 была приостановлена необходимость замены паспорта при достижении 20 и 45 лет
И таких нюансов десятки! По многим из них разработчик не может принять решение самостоятельно, поэтому вынужден инициировать обсуждение и согласование. Техническим ребятам-программистам эта часть работы не нравится, поэтому появляются такие мемы:
Степень детализации задач разная в разных организациях - бывает что разработчикам помогают бизнес аналитики. Начинающим разработчикам дают максимально детализированные задачи. Однако на максимальную оплату труда могут расчитывать те, кто готов разбираться в предметной области, а не работать по готовому заданию. Всем высоких доходов, спасибо за внимание!
Отрицательный прирост репутации Тинькофф
Контекст - Банк Тиньков! Астанавись!
Ответ на пост «Парадокс зарплат»4
Работал программистом в банке X, зарплата была неплохой, но обещанную премию не выплатили. Так как не удалось добиться пересмотра зарплаты, решил уволиться и найти другой проект по этому же направлению - нанялся в банк Y.
Оказалось что параллельно программист, который ранее работал в банке Y перешел на мой бывший проект в банк X.
В итоге банки накололи сами себя - обменялись программистами, повысили зарплаты, потратили ресурсы на найм и введение в проект. Всё как в анекдоте про двух ковбоев.