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

Семен Факторович: Профессии в IT-индустрии

Семен Факторович: Профессии в IT-индустрии

Семен Факторович (Noveo, Новосибирск) рассказывает о разных профессиях в IT-индустрии и о вариантах карьерного роста IT-специалиста

Слайды+аудио: http://www.slideshare.net/sfaktorovich/it-17276039

Software Industry 101

February 20, 2013
Tweet

More Decks by Software Industry 101

Other Decks in Education

Transcript

  1. Что здесь происходит? • Лекции о реалиях работы в IT-компаниях

    и об IT-индустрии в целом • Для студентов IT-специальностей, задумывающихся о своей будущей карьере
  2. Зачем этот спецкурс? • Студент IT-специальности учится 4 года, но

    в итоге знает об индустрии далеко не все • Как устроены IT-компании? • В чем заключается работа программиста? • Куда (и кем) лучше идти работать?
  3. Зачем этот спецкурс? Мы расскажем о том, о чем в

    университете обычно не рассказывают
  4. Кто выступает? • Сотрудники новосибирских (и не только) IT- компаний

    • Ведущие разработчики, менеджеры проектов, руководители отделов • Список выступающих - bit.ly/industry101
  5. Кто выступает? • Семëн Факторович • Выпускник ФИТ НГУ 2009

    года • 5 лет программистского стажа • Последние 2.5 года — менеджер проектов в компании Noveo, noveogroup.ru
  6. О чем будем говорить сегодня • Обзор разных профессий в

    IT-индустрии • Какие карьерные пути есть у молодого специалиста
  7. Junior developer • Младший разработчик, стажер • Стартовая позиция •

    Опыт работы не обязателен • Можно совмещать с учебой (начиная со 2-3 курса)
  8. Junior developer • Чем занимаются на этой позиции? • Учатся!

    (еще и получают за это деньги) • Тренинги, внутренние экзамены, учебные проекты
  9. Developer • Software developer, разработчик, Software engineer • Та самая

    «стандартная» программистская позиция • Разработка программного обеспечения
  10. Developer • Разработка? • 30%* времени: реализация новых фич •

    70%* времени: поддержка, развитие и багфиксинг * результаты могут отличаться от заявленных
  11. Developer • Бешеный креатив вовсе не обязательно занимает бóльшую часть

    времени • Остальное — поиск и исправление собственных ошибок и мелкие доделки • «Передвиньте эту кнопочку левее»
  12. Developer “Another flaw in the human character is that everybody

    wants to build, but nobody wants to do maintenance.” – Kurt Vonnegut
  13. Developer • Code review других разработчиков • Сборка релизов и

    установочных пакетов • Чтение спецификаций и оценка проектов • Поиск проблем конфигурации на серверах заказчика
  14. Senior developer • Старший разработчик • Не позиция, а название

    вакансии • 4-5 лет опыта разработки • Значительно бóльшая зарплата
  15. Team leader • Team lead, руководитель команды • Подразумевается наличие

    команды • Руководит командой, но при этом сам пишет код (в отличие от менеджера) • «Играющий тренер»
  16. Software architect • Архитектор — значит что-то проектирует? • Структура

    классов, компоненты сложного технического решения • В местных реалиях — то же самое, что senior developer
  17. Карьерный рост разработчика • Уход в менеджмент • Team leader

    • Project manager • Уход в другие области (например, тестирование) очень редок
  18. Карьерный рост разработчика • Зарплата в основном выше, чем у

    других IT- cпециалистов • Невероятная востребованность профессии: разработчик легко найдет работу в любом городе и в любой стране
  19. • Поиск багов? Не совсем • Проверка того, что приложение

    работает как нужно • А как нужно? Quality assurance
  20. • Выполняет ли приложение те функции, которые оно должно выполнять?

    • «В спецификации есть вот такая фича, но разработчики забыли ее реализовать» • «Эта фича работает не совсем так, как описано в спецификации» Quality assurance
  21. • Как приложение работает с неправильными данными? • «Что будет,

    если я введу логин длиной 50 символов?» • «Что будет, если я попытаюсь сохранить файл на диск, на котором нет свободного места?» Quality assurance
  22. • Работает ли приложение в тех условиях, в которых оно

    должно работать? • «Наше приложение нормально работает на Windows 7, но крэшится на Windows XP» • «Наш веб-сайт неправильно отображается на iPad» Quality assurance
  23. • Работает ли приложение в экстремальных условиях? • «Что будет,

    если мы откроем нашим графическим редактором файл в 10Гб?» • «Что будет, если на наш сайт зайдет 100 000 человек одновременно?» Quality assurance
  24. • «Не перестало ли приложение работать после рефакторинга?» • «Не

    перестала ли работать какая-либо фича после того, как мы добавили новую?» Quality assurance
  25. • Работа тестировщика очень разноплановая • Не обязательно требует профильного

    образования • Но вполне может включать в себя чтение кода (а иногда даже его написание) Quality assurance
  26. QA automation • Автоматизированное тестирование • Зачем проверять веб-сайт вручную,

    если можно написать программу, которая будет этим заниматься?
  27. • Интересный вариант для тех, кто умеет программировать и любит

    тестировать • Автотесты зачастую пишутся на несложных скриптовых языках (Lua, Python) QA automation
  28. • Есть и более сложные задачи • Своя платформа для

    автотестов • Покрытие тестами большой программной системы: компилятор Java, С++ STL, ... QA automation
  29. • Рост, в основном, идет «вширь»: новые области и методы

    тестирования • Есть вариант уйти в менеджмент • Руководитель отдела тестирования • Менеджер проектов • Уйти в девелопмент? Карьерный рост тестировщика
  30. • «Пойти работать тестировщиком и потом дорасти до разработчика» —

    не самая лучшая идея • Займет 1-2 года • Лучше все это время прокачивать скилл программиста Карьерный рост тестировщика
  31. • Менеджер проектов, руководитель проектов • Руководит проектной командой (разработчики,

    тестировщики, дизайнеры, аналитики...) • Управляет разработкой, но не пишет код Project Manager
  32. • Налаживает процессы разработки • Распределяет задачи, отслеживает их выполнение

    • Отслеживает сроки и бюджеты • Общается с заказчиком Project Manager
  33. • Работа менеджера кардинально отличается от работы программиста • Общение,

    решение организационных вопросов, множество дел одновременно • Стресс! Project Manager
  34. • Менеджер продуктов, product owner, program manager • Управляет не

    командой, а продуктом в целом • Не операционный, а стратегический менеджмент Product Manager
  35. • Понимание потребностей рынка: какую бизнес-задачу решает наш продукт? •

    Понимание потребностей пользователей: что нужно нашим клиентам? • Продвижение продукта на рынок, взаимодействие с конкурентами Product Manager
  36. • Редко общается с разработчиками, обычно только с менеджерами •

    Может иметь в подчинении несколько проектных команд Product Manager
  37. • CTO, Chief Technical Officer, технический директор • CEO, Chief

    Executive Officer, генеральный директор Senior management
  38. • CTO: верхняя ступень технической карьерной лестницы • Финальные решения

    по сложным техническим вопросам • Надзор над несколькими продуктами Senior management
  39. • CEO: самая главная должность в компании • Надзор над

    всеми продуктами • Административные вопросы (аренда офиса, финансы...) Senior management
  40. • Может быть интереснее работы программиста (зависит от характера) •

    Зарплата, как правило, выше (особенно у старшего менеджмента) • IT-образование не является обязательным Менеджмент
  41. • Технический писатель занимается инструкциями, файлами помощи... • Копирайтер пишет

    менее специфические тексты: контентное наполнение сайта, маркетинговые описания продуктов... Techwriter, copywriter
  42. • Иногда техписатель — это филолог, натасканный на понимание предметной

    области • А иногда IT-шник, которого научили хорошо писать тексты Techwriter, copywriter
  43. Systems analyst • Системный аналитик, реже «бизнес-аналитик» • Слово «бизнес»

    — от «бизнес-логика» • Перевод проблемы заказчика в задачу, понятную программисту
  44. • Общение с заказчиком и выяснение, чего же он хочет

    • Продумывание бизнес-логики приложения • Выявление требований к приложению (вплоть до прототипов интерфейса и структуры БД) Systems analyst
  45. • Для фанатично любящих писать документы и продумывать каждую мелочь

    • IT-образование крайне желательно, но не обязательно Systems analyst
  46. Sales manager • Менеджер по продажам, «продажник» • Общается с

    заказчиками и заключает контракты на разработку • Ищет новых клиентов разнообразными способами (например, ездит по выставкам и конференциям)
  47. • Продажник — двигатель бизнеса • Пока он не найдет

    заказчика, проектов у компании не будет Sales manager
  48. • Задачи продажника: • Найти потенциального клиента • Уговорить его

    выполнить проект именно у нас • Сторговаться по цене Sales manager
  49. • Нужно очень много разнообразного опыта (переговоры, понимание бизнеса заказчика,

    экономика...) • Средний возраст продажников в крупных компаниях — 30 лет и старше Sales manager
  50. Зачем мне задумываться о других профессиях? • «Мне нравится работать

    разработчиком/ тестировщиком, я не хочу ничего менять» • «Я не хочу становиться тимлидом или менеджером: ответственность — это не для меня»
  51. Зачем мне задумываться о других профессиях? • За 5-10 лет

    даже любимое занятие может надоесть, и вам может захотеться чего-то нового • Рост в менеджмент • Смена карьерной области
  52. Зачем мне задумываться о других профессиях? • За 5-10 лет

    даже любимое занятие может надоесть, и вам может захотеться чего-то нового • А может и не надоесть • 40-летние программисты вполне счастливы
  53. Зачем мне задумываться о карьерном росте • Карьерный рост сопровождается

    ростом зарплаты • Разница зарплат между обычным и старшим разработчиком — 2x • Разница зарплат по всей карьерной лестнице програмиста (от junior developer до CTO) — 10-15х
  54. В следующей серии • Как устроен IT-бизнес, и как код,

    написанный вами, превращается в деньги • Основные типы IT-компаний: сервисные и продуктовые • Почему в большинстве софтверных компаний есть четкая верхняя граница зарплат