Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Путь от новичка до профессионала

Путь от новичка до профессионала

Олег Чуркин (Rambler&Co) @ Python Junior Meetup № 2

"Рассказ о том, как разработчику спланировать свой профессиональный рост: как развиваться технически и личностно, как правильно принимать важные карьерные решения и какие качества и умения сейчас ждут работодатели от действительно классных специалистов.".

Moscow Python Meetup

April 13, 2017
Tweet

More Decks by Moscow Python Meetup

Other Decks in Education

Transcript

  1. Путь от новичка до профессионала Или атлас советов по профессиональному

    и личностному росту для разработчиков любого уровня. Чуркин Олег @ Rambler&Co
  2. Ключевые навыки профессионального разработчика • Высокие технические знания • Высокая

    культура разработки • Достойные личностные качества • Английский (как минимум технический) • Желание непрерывно развиваться и развивать своих коллег
  3. Высокие технические знания (навыки) • Изучаем фундаментальные вещи из computer

    science (алгоритмы, структуры данных, архитектура компьютера и т.д.) • Язык(и) программирования – на отлично. • Инструменты, с которыми работаем каждый день: фреймворки, базы данных, IDE, отладчики и т.д.
  4. Высокие технические знания (навыки) • Следим за трендами в предметной

    области: новые фреймворки (библиотеки), сервисы и подходы к разработке. • Разбираемся с другими ЯП и изучаем основные паттерны проектирования. • Важна эрудиция в смежных темах: devops, фронтенд, сеть, машинное обучение
  5. Как получать технические знания? • Найти хорошего ментора, code review

    • Интегрироваться в сообщество • Читать книги, смотреть видео и слушать подкасты • Читать профильные статьи и блоги • Постоянно практиковаться (работа, pet projects, open source contribution) • Конференции и митапы. В том числе в качестве докладчика.
  6. Сообщество питонистов Дружелюбное, отзывчивое, многочисленное. • Slack (> 1000) https://python.stamplayapp.com/

    • Facebook (> 2500): https://www.facebook.com/groups/MoscowDjango/ • Reddit ( > 100k): https://www.reddit.com/r/Python/ • Хабр: https://habrahabr.ru/hub/python/ • Полуживые http://python.ru/, http://python.su/forum/ • Многочисленные каналы в telegram (лучше не стоит)
  7. Tips and tricks • Слушать подкасты по пути на работу

    (DevZen, Podcast.__init__("Python"), Разбор полетов, Радио-Т, ) • Дайджесты, например: https://pythondigest.ru/, Python Weekly, Postgres Weekly, Web Operations Weekly, <Something> Weekly. • Для тренировки: читайте код известных библиотек и фреймворков • Для тренировки: выберите проблему, которую давно хотели автоматизировать и решите её с помощью какого- нибудь нового для вас языка программирования.
  8. Высокая культура разработки • Стиль кодирования • Документация • Анализ

    требований к задаче • Анализ решения и выбор оптимального алгоритма • Обязательное (unit-)тестирование • Метрики кода (цикломатическая сложность, индекс поддерживаемости)
  9. Высокая культура разработки • Сбор статистики и метрик • Обязательное

    логгирование • Настройка CI/CD (непрерывная интеграция, непрерывная доставка кода) • Автоматизация рутинных задач • Нагрузочное и тестирование безопасности • Поддержка и обслуживание кода во время и после релиза
  10. Высокая культура разработки • Code review • Работа с командой

    и в команде • Отсутствие "Культа карго" • Встречи и обсуждения четкие и по делу • Обучение и менторство • Взаимодействие с другими отделами • Понимание интересов бизнеса и заказчика
  11. Высокий эмоциональный интеллект Способность человека распознавать эмоции, понимать намерения, мотивацию

    и желания других людей и свои собственные, а также способность управлять своими эмоциями и эмоциями других людей в целях решения практических задач.
  12. Высокий эмоциональный интеллект • Коммуникабельность это важно • Не повышать

    голос и не срываться • Адекватно воспринимать критику своей работы и обратную связь • Разрешать конфликты • Брать на себя ответственность
  13. • Когда вы шутите в компании – люди как-то криво

    улыбаются. • Вы думаете, что абсолютно не важно что о вас подумают другие и делаете то, что сами считаете нужным. • Вы предъявляете к другим такие же высокие требования как и к себе – раз вы можете, значит и все другие смогут также. • Есть только ваше мнение и оно абсолютно верное, его обязательно нужно донести до окружающих. Если вы видите, что ваше мнение оказалось не таким уже верным – делаете все возможное чтобы это в итоге не вскрылось. • В большинстве проблем вашей команды виноваты другие команды, отделы, люди. Доктор, со мной что-то не так?
  14. • Книга: Эмоциональный интеллект. Почему он может значить больше, чем

    IQ, Дэниел Гоулман. • Смотреть на эмоции людей, после того как вы им что-то скажете – если эмоция негативная, думать над тем почему так произошло. • Слушайте, как и что говорят ваши руководители или другие люди опытнее вас. • Будьте открыты и дружелюбны Как развивать?
  15. Высокие «problem solving skills» • Анализ ситуации. • Декомпозиция на

    более простые задачи. • Что я могу сделать сам? Какая помощь мне понадобиться? • Есть ли у меня все ресурсы для решения поставленной задачи? • Фокус на решении, а не на проблеме • Эскалация если необходимо
  16. Взгляд со стороны работодателя (бизнеса) на разработку • Бизнесу нужен

    не код, а работающий продукт, продукт несет business value. • Программирование это не свободное художество, а четкий процесс создания конкурентоспособного программного продукта в ограниченные сроки. • Одна из важнейших характеристик для разработки это time-to-market.
  17. Tips and tricks • Уметь говорить «нет» и не брать

    на себя больше работы, чем сможете выполнить • Думать о том, как реализованной фичей будут пользоваться • Вести заметки и записывать куда-нибудь важные задачи • Pomodoro (метод помидора)
  18. Классические проблемы разработчиков Культ карго, граничащий с фашизмом: • Мы

    не будем релизить код без 100% покрытия тестами • Мы не будем релизить код, который не все проревьювили • Мы не будет релизить код без прохождения style- чекерами • Мы не будем ...
  19. Классические проблемы разработчиков Something driven development: • Stack overflow driven-development

    • Resume driven development • Hype driven development • Conference driven development и т.д.
  20. Resume driven development • Внедрить в проект много новых "модных"

    технологий, без явной продуктовой необходимости • Получить опыт, набить шишек, провалить сроки • Перейти в другую компанию на более высокую должность\деньги • ... • PROFIT!
  21. Стоп фразы • "Это невозможно" • "Я не знаю" •

    "Мой код решает поставленную задачу, поэтому все ок" • "Если код не переписывается то он мертв" • "Нам необходим рефакторинг на две недели"
  22. Стоп фразы • "Если не нравится – сделай сам" •

    "У меня все работает!" • "Это не моя обязанность" (не моя зона ответственности)