24
Современный программист Что ждет студента на рынке труда 2.1 #kranonit S01E01 2012

kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Современный программист

Что ждет студента на рынке труда2.1

#kranonit S01E012012

Page 3: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

О чем пойдет речь

● Какие программисты нужны● Сколько получают программисты● Как работают программисты● Инженерные практики● Процесс разработки● С кем работают программисты

Page 4: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Какие программисты нужны

Page 5: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Языки программирования● Delphi● C● C++● Objective-C● Java● C#/.NET● PHP● Python● Ruby● JavaScript● SQL

Page 6: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Популярность языков

Page 7: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Сколько получают программисты

Киев, декабрь 2011, по данным developers.org.uaВыборка по Delphi не репрезентативна из-за малого кол-ва анкет

Page 8: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Звания

● Intern ● Junior Developer● Midle (Regular) Developer, Software Engineer● Senior Developer● Architect

Page 9: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

С кем работают программисты

● Разработчики (Developers)● Тестировщики (QA)● Ведущий программист (Team Lead)● Менеджер проекта (Project Manager, PM)● Владелец продукта (Product Owner, PO)● Бизнес аналитик (Business analyst)

Page 10: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Как работают программисты

● Баг-трекер● Система контроля версий● Тесты● Шаблоны проектирования● Рефакторинг● Автоматическая сборка● Непрерывная интеграция● Парное программирование● Процесс разработки

Page 11: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Баг-трекерIssue tracker

Page 12: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Система контроля версий

Page 13: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Система контроля версий

Page 14: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Модульные Тесты Unit tests

Page 15: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1
Page 16: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

● Поощрение изменений● Документирование кода● Делают лучше архитектуру● Можно тестировать глубокий код● Ускоряет разработку

И зачем оно нам надо?

Профессиональным программистом ты становишься когда начинаешь писать тесты

Page 17: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Шаблоны проектирования

● Стандартные решения типичных проблем● Не привязаны к какому-либо конкретному языку

программирования● Примеры: Factory, Adapter, Strategy● Самая главная книга: GoF

Page 18: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

РефакторингRefactoring

Изменяем код программы при этом внешне она работает по старому.Его цель:Облегчить понимание её работы.

Не рефакторинг:● Исправление дефектов● Оптимизация● Переписывание "с нуля"

Page 19: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Автоматическая сборкаAutomatic build

Типичные действия во время сборки:● Генерация кода● Компиляция● Прогон модульных тестов● Копирование ресурсов (картинок, файлов

конфигураций)● Упаковка● Сборка инсталлятора

Page 20: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Непрерывная интеграцияContinuous integration (CI)

● Выполняется автоматически● Типичные шаги:

○ Получить код из репозитория○ Прогнать модульные тесты○ Выполнить сборку○ Установить приложение○ Прогнать приемочные тесты○ Прогнать статические анализаторы○ Если найдена проблема, поднять тревогу

Page 21: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Парное программирование

● Роли: "штурман" и "водитель"● Больше глаз - меньше дефектов● Лучше архитектура● Понятнее код● Обмен знаниями● Производительность такая же, но багов меньше

Page 22: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Водопадная модель (Waterfall)

Переход к другой фазе происходит только после полного завершения предыдущейИз Википедии

Page 23: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1

Гибка модель (Agile, SCRUM)

Из книги Х. Книберг "Scrum и XP: заметки с передовой"

Page 24: kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1