SlideShare a Scribd company logo
Как воспитать программистаНесколько теоретических и трипрактических совета по воспитанию эффективного программистаМихаил Пайсонmikhail@payson.ru
ПланОсновной капитал Software компанииОткуда берутся программисты?Как найти готового специалиста?Как найти студента?Как сделать что-то с уже существующими людьми?Уровни мастерстваИсточники плохого кодаТри шага становления программистаПрактические советыЧему учить?Основные ценностиИнспекция кода
Основной капитал Software компании	Что является основным продуктом Software компании?
Основной капитал Software компанииПрограммный продукт!ПроизводствоИнтеграцияПоддержкаМаркетинг и продажи
Основной капитал Software компанииКакие ресурсы идут на производство продукта?
Основной капитал Software компании	Единственное, что требуется для производства ПО -Человеческая мысль!
Основной капитал Software компании	Основной капитал Software компании-люди, которые в ней работают	А конкретно – программисты, которые пишут ПО
Откуда берутся программисты?Как найти готового специалиста?Как найти студента?Как сделать что-то с уже существующими людьми?
Откуда берутся программисты?	Как найти готового специалиста?
Откуда берутся программисты?Как найти готового специалиста?Переманить деньгамиПереманить интересной работойПереманить карьерным ростомПереманить условиями трудаПолучить готового специалиста в связи с его переездом
Откуда берутся программисты?	Как найти студента?
Откуда берутся программисты?Как найти студента?Создать высокий имидж компанииДоговориться с кафедрамиПрочитать курс лекцийОрганизовать СКБ или НИРС
Откуда берутся программисты?	Как сделать что-то с уже существующими людьми?
Откуда берутся программисты? Как сделать что-то с уже существующими людьми?УчитьНаправлятьВоодушевлятьКонтролировать!
Откуда берутся программисты?КейсВы приходите в новую группуЕсть разработчик:Большой опыт и знанияНе удовлетворяет начальство, т.к. не может в срок выполнить задачу«Слил» важный проектРешение начальства: «надо увольнять»Ваши действия?
Уровни мастерстваИсточники плохого кодаТри шага становления программистаКривая обучения
Источники плохого кодаНикто и никогда сознательно не пишет плохоОсновной источник – отсутствие «воспитания»Второй источник – отсутствие контроляТретий источник – отсутствие времени
Три шага становления программистаКачествоЭффективное развитиеВысокоеИсправление ситуацииНе бывает!УмничаемПрограммируемПроизводительность упала!Бесконтрольное развитиеНизкоеНадо что-то делать!ТупимКолбасимПроизводительностьНизкаяВысокая
Шаг 1. НенавистьНаучите программиста ненавидеть:Некачественный код«Сделать как побыстрее»Костыли и заплатки«Сейчас начнём, а потом увидим – что получится»
Шаг 2. СтрастьПрограммист начинает:Любить «умничать»Писать «красивые решения»Наворачивать паттерны и методологииОтшлифовывать код до блескаГордиться своей профессиональной компетентностью
Шаг 3. ЗдравомыслиеПрограммист осознаёт:Думаем прежде, чем пишемНет универсальных решенийЧем проще, тем легче работатьЭффективность прежде всего
Кривая обученияПервое время любой программист тратит время командыС определённого момента он начинает работать сам, но работает неэффективноДля того, чтобы программист вышел на свою полную мощность требуется много времениОпять инвестиции!ПроизводительностьНеэффективная работаЗатраты на обучениеНеделиУбытки
Практические советыЧему учить?Основные ценностиИнспекция кода
Чему учить?Подумай каждый раз перед тем, как писатьКод вероятно придётся модифицировать: чем «грязнее» код, тем больше проблем у тебя будет потомАккуратное приложение без ошибок выглядит круто. И все любят его автора.Трус не играет в хоккей, а профессионал не «колбасит»
Чему учить?Общие соглашения написания кода (унификация)Низкоуровневая архитектура (паттерны)Использование сторонних компонентов и готовых решений
Основные ценностиКод должен бытьПродуманАккуратенЭффективенБыстро, просто и аккуратно решать поставленную задачу
Инспекция кодаПроводится еженедельно для кода, написанного за неделюПроводится опытными программистами по очередиВремя на подготовку – 4 часаВремя на проведение – 1 час
Инспекция кода. ПроведениеПроводится в виде обсужденияВедущий готовит список недочётов (по его мнению)Имена авторов «плохого кода» не указываютсяКоманда обсуждает каждый из недочётовОбязательно подводятся итоги Принимается решение о исправлении либо рефакторинге части недочётов
Инспекция кода. JuniorДля juniorНахождение «плохого кода», пока он не врос в системуконтроль профессионального развития программистаОбучение: обсуждение и применение подходящей архитектуры
Инспекция кода. SeniorДля senior«Свежий взгляд» на кодОбдумывание более быстрых и эффективных решенийИногда и профессионалы «колбасят» 
Инспекция кода.КомандаДля команды в целомВозможность обсудить качество кода и архитектурных решенийСтимул писать аккуратно, чтобы потом не краснеть на reviewПостоянное поддержание необходимости «писать хорошо»
Инспекция кода.ПроблемыПоиск серьёзных архитектурных недочётов малоэффективенОчень сложно избежать перехода на личностиВечный недостаток времени
Обсуждение

More Related Content

What's hot

Первый опыт устройства на работу
Первый опыт устройства на работуПервый опыт устройства на работу
Первый опыт устройства на работу
Sam Faktorovich
 
Профессии в IT
Профессии в ITПрофессии в IT
Профессии в IT
Sam Faktorovich
 
Иду по приборам… Практические советы по визуализации работ. Москва
Иду по приборам… Практические советы по визуализации работ. МоскваИду по приборам… Практические советы по визуализации работ. Москва
Иду по приборам… Практические советы по визуализации работ. Москва
Maxim Gaponov
 
низкоуровневое программирование сегодня новые стандарты с++, программирован...
низкоуровневое программирование сегодня   новые стандарты с++, программирован...низкоуровневое программирование сегодня   новые стандарты с++, программирован...
низкоуровневое программирование сегодня новые стандарты с++, программирован...
COMAQA.BY
 
карта It профессий, точки входа, первые шаги
карта It профессий, точки входа, первые шагикарта It профессий, точки входа, первые шаги
карта It профессий, точки входа, первые шаги
COMAQA.BY
 
Практические аспекты разработки ПО #4
Практические аспекты разработки ПО #4Практические аспекты разработки ПО #4
Практические аспекты разработки ПО #4
Denis Umnov
 
Product Owner: Inception
Product Owner: InceptionProduct Owner: Inception
Product Owner: Inception
Alexey Atemasov
 
Практические аспекты разработки ПО #5
Практические аспекты разработки ПО #5Практические аспекты разработки ПО #5
Практические аспекты разработки ПО #5
Denis Umnov
 
Где искать менеджеров продукта
Где искать менеджеров продуктаГде искать менеджеров продукта
Где искать менеджеров продукта
Denis Beskov
 
многогранная профессия тестировщика глазами с++ разработчика в примерах
многогранная профессия тестировщика глазами с++ разработчика в примерахмногогранная профессия тестировщика глазами с++ разработчика в примерах
многогранная профессия тестировщика глазами с++ разработчика в примерах
COMAQA.BY
 
Правила отличного разработчика, Михаил Табунов
Правила отличного разработчика, Михаил ТабуновПравила отличного разработчика, Михаил Табунов
Правила отличного разработчика, Михаил Табунов
Coub
 
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU
 
карта IT профессий
карта IT профессийкарта IT профессий
карта IT профессий
COMAQA.BY
 
Python test-automation
Python test-automationPython test-automation
Python test-automation
COMAQA.BY
 
Как выжить начинающему бизнес-аналитику?
Как выжить начинающему бизнес-аналитику?Как выжить начинающему бизнес-аналитику?
Как выжить начинающему бизнес-аналитику?
SQALab
 
Человек со стокгольмским синдромом
Человек со стокгольмским синдромомЧеловек со стокгольмским синдромом
Человек со стокгольмским синдромом
SQALab
 
Junior java standard edition developer
Junior java standard edition developerJunior java standard edition developer
Junior java standard edition developer
Dmitriy Neguritsa
 
Как попасть на следующий уровень карьеры и зарплаты в C#
Как попасть на следующий уровень карьеры и зарплаты в C#Как попасть на следующий уровень карьеры и зарплаты в C#
Как попасть на следующий уровень карьеры и зарплаты в C#
geekfamilyrussia
 
Как мы делаем Banki.ru
Как мы делаем Banki.ruКак мы делаем Banki.ru
Как мы делаем Banki.ru
Roman Ivliev
 

What's hot (20)

Первый опыт устройства на работу
Первый опыт устройства на работуПервый опыт устройства на работу
Первый опыт устройства на работу
 
Профессии в IT
Профессии в ITПрофессии в IT
Профессии в IT
 
Иду по приборам… Практические советы по визуализации работ. Москва
Иду по приборам… Практические советы по визуализации работ. МоскваИду по приборам… Практические советы по визуализации работ. Москва
Иду по приборам… Практические советы по визуализации работ. Москва
 
низкоуровневое программирование сегодня новые стандарты с++, программирован...
низкоуровневое программирование сегодня   новые стандарты с++, программирован...низкоуровневое программирование сегодня   новые стандарты с++, программирован...
низкоуровневое программирование сегодня новые стандарты с++, программирован...
 
карта It профессий, точки входа, первые шаги
карта It профессий, точки входа, первые шагикарта It профессий, точки входа, первые шаги
карта It профессий, точки входа, первые шаги
 
Практические аспекты разработки ПО #4
Практические аспекты разработки ПО #4Практические аспекты разработки ПО #4
Практические аспекты разработки ПО #4
 
Product Owner: Inception
Product Owner: InceptionProduct Owner: Inception
Product Owner: Inception
 
Практические аспекты разработки ПО #5
Практические аспекты разработки ПО #5Практические аспекты разработки ПО #5
Практические аспекты разработки ПО #5
 
Где искать менеджеров продукта
Где искать менеджеров продуктаГде искать менеджеров продукта
Где искать менеджеров продукта
 
многогранная профессия тестировщика глазами с++ разработчика в примерах
многогранная профессия тестировщика глазами с++ разработчика в примерахмногогранная профессия тестировщика глазами с++ разработчика в примерах
многогранная профессия тестировщика глазами с++ разработчика в примерах
 
Правила отличного разработчика, Михаил Табунов
Правила отличного разработчика, Михаил ТабуновПравила отличного разработчика, Михаил Табунов
Правила отличного разработчика, Михаил Табунов
 
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
 
карта IT профессий
карта IT профессийкарта IT профессий
карта IT профессий
 
Python test-automation
Python test-automationPython test-automation
Python test-automation
 
Как выжить начинающему бизнес-аналитику?
Как выжить начинающему бизнес-аналитику?Как выжить начинающему бизнес-аналитику?
Как выжить начинающему бизнес-аналитику?
 
Человек со стокгольмским синдромом
Человек со стокгольмским синдромомЧеловек со стокгольмским синдромом
Человек со стокгольмским синдромом
 
Junior java standard edition developer
Junior java standard edition developerJunior java standard edition developer
Junior java standard edition developer
 
Как попасть на следующий уровень карьеры и зарплаты в C#
Как попасть на следующий уровень карьеры и зарплаты в C#Как попасть на следующий уровень карьеры и зарплаты в C#
Как попасть на следующий уровень карьеры и зарплаты в C#
 
Как мы делаем Banki.ru
Как мы делаем Banki.ruКак мы делаем Banki.ru
Как мы делаем Banki.ru
 
6 solution inno
6 solution inno6 solution inno
6 solution inno
 

Viewers also liked

Промышленная разработка ПО. Лекция 1. Общие понятия
Промышленная разработка ПО. Лекция 1. Общие понятияПромышленная разработка ПО. Лекция 1. Общие понятия
Промышленная разработка ПО. Лекция 1. Общие понятия
Mikhail Payson
 
Промышленная разработка ПО. Лекция 5. Особенности работы тестировщика
Промышленная разработка ПО. Лекция 5. Особенности работы тестировщикаПромышленная разработка ПО. Лекция 5. Особенности работы тестировщика
Промышленная разработка ПО. Лекция 5. Особенности работы тестировщика
Mikhail Payson
 
Промышленная разработка ПО. Лекция 6. Особенности работы системного аналитика
Промышленная разработка ПО. Лекция 6. Особенности работы системного аналитикаПромышленная разработка ПО. Лекция 6. Особенности работы системного аналитика
Промышленная разработка ПО. Лекция 6. Особенности работы системного аналитика
Mikhail Payson
 
Промышленная разработка ПО. Лекция 3. Особенности работы программиста. Часть...
Промышленная разработка ПО. Лекция 3. Особенности работы программиста.  Часть...Промышленная разработка ПО. Лекция 3. Особенности работы программиста.  Часть...
Промышленная разработка ПО. Лекция 3. Особенности работы программиста. Часть...
Mikhail Payson
 
Промышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. ИнструментыПромышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. Инструменты
Mikhail Payson
 
Промышленная разработка ПО. Лекция 4. Особенности работы программиста. Ча…
Промышленная разработка ПО. Лекция 4. Особенности работы программиста.  Ча…Промышленная разработка ПО. Лекция 4. Особенности работы программиста.  Ча…
Промышленная разработка ПО. Лекция 4. Особенности работы программиста. Ча…
Mikhail Payson
 

Viewers also liked (6)

Промышленная разработка ПО. Лекция 1. Общие понятия
Промышленная разработка ПО. Лекция 1. Общие понятияПромышленная разработка ПО. Лекция 1. Общие понятия
Промышленная разработка ПО. Лекция 1. Общие понятия
 
Промышленная разработка ПО. Лекция 5. Особенности работы тестировщика
Промышленная разработка ПО. Лекция 5. Особенности работы тестировщикаПромышленная разработка ПО. Лекция 5. Особенности работы тестировщика
Промышленная разработка ПО. Лекция 5. Особенности работы тестировщика
 
Промышленная разработка ПО. Лекция 6. Особенности работы системного аналитика
Промышленная разработка ПО. Лекция 6. Особенности работы системного аналитикаПромышленная разработка ПО. Лекция 6. Особенности работы системного аналитика
Промышленная разработка ПО. Лекция 6. Особенности работы системного аналитика
 
Промышленная разработка ПО. Лекция 3. Особенности работы программиста. Часть...
Промышленная разработка ПО. Лекция 3. Особенности работы программиста.  Часть...Промышленная разработка ПО. Лекция 3. Особенности работы программиста.  Часть...
Промышленная разработка ПО. Лекция 3. Особенности работы программиста. Часть...
 
Промышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. ИнструментыПромышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. Инструменты
 
Промышленная разработка ПО. Лекция 4. Особенности работы программиста. Ча…
Промышленная разработка ПО. Лекция 4. Особенности работы программиста.  Ча…Промышленная разработка ПО. Лекция 4. Особенности работы программиста.  Ча…
Промышленная разработка ПО. Лекция 4. Особенности работы программиста. Ча…
 

Similar to Как воспитать программиста

8 актуальных вопросов о карьере в IT
8 актуальных вопросов о карьере в IT8 актуальных вопросов о карьере в IT
8 актуальных вопросов о карьере в IT
Alexander Krass
 
Формирование технической команды на старте
Формирование технической команды на старте Формирование технической команды на старте
Формирование технической команды на старте
Sergey Xek
 
5 minutes for design or how can programmer make user be happy
5 minutes for design or how can programmer make user be happy5 minutes for design or how can programmer make user be happy
5 minutes for design or how can programmer make user be happy
Ekaterina Davidova
 
School IT recruiting
School IT recruiting School IT recruiting
School IT recruiting
Olga Kotova
 
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Sigma Software
 
Как фаундеру IT компании создать команду лидогенераторов без больших затрат
Как фаундеру IT компании создать команду лидогенераторов без больших затратКак фаундеру IT компании создать команду лидогенераторов без больших затрат
Как фаундеру IT компании создать команду лидогенераторов без больших затрат
International Marketing Group Ukraine
 
Lifestyle для стартапера. Что может помочь (Internet life 2011, Алесандр Красс)
Lifestyle для стартапера. Что может помочь (Internet life 2011, Алесандр Красс)Lifestyle для стартапера. Что может помочь (Internet life 2011, Алесандр Красс)
Lifestyle для стартапера. Что может помочь (Internet life 2011, Алесандр Красс)
Alexander Krass
 
как воспитать программиста (Выступление в Sibirix)
как воспитать программиста (Выступление в Sibirix)как воспитать программиста (Выступление в Sibirix)
как воспитать программиста (Выступление в Sibirix)
Mikhail Payson
 
7 актуальных вопросов о карьере в IT
7 актуальных вопросов о карьере в IT7 актуальных вопросов о карьере в IT
7 актуальных вопросов о карьере в IT
Alexander Krass
 
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QAFest
 
3 ошибки в построении интернет-маркетинга
3 ошибки в построении интернет-маркетинга3 ошибки в построении интернет-маркетинга
3 ошибки в построении интернет-маркетинга
Исследовательский центр «Стереомаркетинг»
 
15 шагов к быстрым сделкам на тендерных площадках
15 шагов к быстрым сделкам на тендерных площадках15 шагов к быстрым сделкам на тендерных площадках
15 шагов к быстрым сделкам на тендерных площадках
Conformato
 
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON'2017, Журавлев Денис, Маркетинг без маркетологаSECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON
 
Agileee Petelin самый непонимаемый принцип Agile Manifesto
Agileee Petelin самый непонимаемый принцип Agile ManifestoAgileee Petelin самый непонимаемый принцип Agile Manifesto
Agileee Petelin самый непонимаемый принцип Agile Manifesto
Agileee
 
«Формирование технической команды на старте»
«Формирование технической команды на старте»«Формирование технической команды на старте»
«Формирование технической команды на старте»
Mikhail Kulakov
 
5 правил успешной разработки приложений для бренда
5 правил успешной разработки приложений для бренда 5 правил успешной разработки приложений для бренда
5 правил успешной разработки приложений для бренда
Heads&Hands
 
проектирование, поддержка и контент интернет магазина
проектирование, поддержка и контент интернет магазинапроектирование, поддержка и контент интернет магазина
проектирование, поддержка и контент интернет магазина
ITMsupport
 
Как ставить задачи [копи]райтеру (Анна Каправчук)
Как ставить задачи [копи]райтеру (Анна Каправчук)Как ставить задачи [копи]райтеру (Анна Каправчук)
Как ставить задачи [копи]райтеру (Анна Каправчук)
Асия Дулатова
 
16062010 e le_lmm_vleontyev
16062010 e le_lmm_vleontyev16062010 e le_lmm_vleontyev
16062010 e le_lmm_vleontyev
Valery Leontyev
 
проектирование, поддержка и контент интернет магазина
проектирование, поддержка и контент интернет магазинапроектирование, поддержка и контент интернет магазина
проектирование, поддержка и контент интернет магазина
Тауруна
 

Similar to Как воспитать программиста (20)

8 актуальных вопросов о карьере в IT
8 актуальных вопросов о карьере в IT8 актуальных вопросов о карьере в IT
8 актуальных вопросов о карьере в IT
 
Формирование технической команды на старте
Формирование технической команды на старте Формирование технической команды на старте
Формирование технической команды на старте
 
5 minutes for design or how can programmer make user be happy
5 minutes for design or how can programmer make user be happy5 minutes for design or how can programmer make user be happy
5 minutes for design or how can programmer make user be happy
 
School IT recruiting
School IT recruiting School IT recruiting
School IT recruiting
 
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
 
Как фаундеру IT компании создать команду лидогенераторов без больших затрат
Как фаундеру IT компании создать команду лидогенераторов без больших затратКак фаундеру IT компании создать команду лидогенераторов без больших затрат
Как фаундеру IT компании создать команду лидогенераторов без больших затрат
 
Lifestyle для стартапера. Что может помочь (Internet life 2011, Алесандр Красс)
Lifestyle для стартапера. Что может помочь (Internet life 2011, Алесандр Красс)Lifestyle для стартапера. Что может помочь (Internet life 2011, Алесандр Красс)
Lifestyle для стартапера. Что может помочь (Internet life 2011, Алесандр Красс)
 
как воспитать программиста (Выступление в Sibirix)
как воспитать программиста (Выступление в Sibirix)как воспитать программиста (Выступление в Sibirix)
как воспитать программиста (Выступление в Sibirix)
 
7 актуальных вопросов о карьере в IT
7 актуальных вопросов о карьере в IT7 актуальных вопросов о карьере в IT
7 актуальных вопросов о карьере в IT
 
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
 
3 ошибки в построении интернет-маркетинга
3 ошибки в построении интернет-маркетинга3 ошибки в построении интернет-маркетинга
3 ошибки в построении интернет-маркетинга
 
15 шагов к быстрым сделкам на тендерных площадках
15 шагов к быстрым сделкам на тендерных площадках15 шагов к быстрым сделкам на тендерных площадках
15 шагов к быстрым сделкам на тендерных площадках
 
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON'2017, Журавлев Денис, Маркетинг без маркетологаSECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
 
Agileee Petelin самый непонимаемый принцип Agile Manifesto
Agileee Petelin самый непонимаемый принцип Agile ManifestoAgileee Petelin самый непонимаемый принцип Agile Manifesto
Agileee Petelin самый непонимаемый принцип Agile Manifesto
 
«Формирование технической команды на старте»
«Формирование технической команды на старте»«Формирование технической команды на старте»
«Формирование технической команды на старте»
 
5 правил успешной разработки приложений для бренда
5 правил успешной разработки приложений для бренда 5 правил успешной разработки приложений для бренда
5 правил успешной разработки приложений для бренда
 
проектирование, поддержка и контент интернет магазина
проектирование, поддержка и контент интернет магазинапроектирование, поддержка и контент интернет магазина
проектирование, поддержка и контент интернет магазина
 
Как ставить задачи [копи]райтеру (Анна Каправчук)
Как ставить задачи [копи]райтеру (Анна Каправчук)Как ставить задачи [копи]райтеру (Анна Каправчук)
Как ставить задачи [копи]райтеру (Анна Каправчук)
 
16062010 e le_lmm_vleontyev
16062010 e le_lmm_vleontyev16062010 e le_lmm_vleontyev
16062010 e le_lmm_vleontyev
 
проектирование, поддержка и контент интернет магазина
проектирование, поддержка и контент интернет магазинапроектирование, поддержка и контент интернет магазина
проектирование, поддержка и контент интернет магазина
 

Как воспитать программиста

  • 1. Как воспитать программистаНесколько теоретических и трипрактических совета по воспитанию эффективного программистаМихаил Пайсонmikhail@payson.ru
  • 2. ПланОсновной капитал Software компанииОткуда берутся программисты?Как найти готового специалиста?Как найти студента?Как сделать что-то с уже существующими людьми?Уровни мастерстваИсточники плохого кодаТри шага становления программистаПрактические советыЧему учить?Основные ценностиИнспекция кода
  • 3. Основной капитал Software компании Что является основным продуктом Software компании?
  • 4. Основной капитал Software компанииПрограммный продукт!ПроизводствоИнтеграцияПоддержкаМаркетинг и продажи
  • 5. Основной капитал Software компанииКакие ресурсы идут на производство продукта?
  • 6. Основной капитал Software компании Единственное, что требуется для производства ПО -Человеческая мысль!
  • 7. Основной капитал Software компании Основной капитал Software компании-люди, которые в ней работают А конкретно – программисты, которые пишут ПО
  • 8. Откуда берутся программисты?Как найти готового специалиста?Как найти студента?Как сделать что-то с уже существующими людьми?
  • 9. Откуда берутся программисты? Как найти готового специалиста?
  • 10. Откуда берутся программисты?Как найти готового специалиста?Переманить деньгамиПереманить интересной работойПереманить карьерным ростомПереманить условиями трудаПолучить готового специалиста в связи с его переездом
  • 12. Откуда берутся программисты?Как найти студента?Создать высокий имидж компанииДоговориться с кафедрамиПрочитать курс лекцийОрганизовать СКБ или НИРС
  • 13. Откуда берутся программисты? Как сделать что-то с уже существующими людьми?
  • 14. Откуда берутся программисты? Как сделать что-то с уже существующими людьми?УчитьНаправлятьВоодушевлятьКонтролировать!
  • 15. Откуда берутся программисты?КейсВы приходите в новую группуЕсть разработчик:Большой опыт и знанияНе удовлетворяет начальство, т.к. не может в срок выполнить задачу«Слил» важный проектРешение начальства: «надо увольнять»Ваши действия?
  • 16. Уровни мастерстваИсточники плохого кодаТри шага становления программистаКривая обучения
  • 17. Источники плохого кодаНикто и никогда сознательно не пишет плохоОсновной источник – отсутствие «воспитания»Второй источник – отсутствие контроляТретий источник – отсутствие времени
  • 18. Три шага становления программистаКачествоЭффективное развитиеВысокоеИсправление ситуацииНе бывает!УмничаемПрограммируемПроизводительность упала!Бесконтрольное развитиеНизкоеНадо что-то делать!ТупимКолбасимПроизводительностьНизкаяВысокая
  • 19. Шаг 1. НенавистьНаучите программиста ненавидеть:Некачественный код«Сделать как побыстрее»Костыли и заплатки«Сейчас начнём, а потом увидим – что получится»
  • 20. Шаг 2. СтрастьПрограммист начинает:Любить «умничать»Писать «красивые решения»Наворачивать паттерны и методологииОтшлифовывать код до блескаГордиться своей профессиональной компетентностью
  • 21. Шаг 3. ЗдравомыслиеПрограммист осознаёт:Думаем прежде, чем пишемНет универсальных решенийЧем проще, тем легче работатьЭффективность прежде всего
  • 22. Кривая обученияПервое время любой программист тратит время командыС определённого момента он начинает работать сам, но работает неэффективноДля того, чтобы программист вышел на свою полную мощность требуется много времениОпять инвестиции!ПроизводительностьНеэффективная работаЗатраты на обучениеНеделиУбытки
  • 24. Чему учить?Подумай каждый раз перед тем, как писатьКод вероятно придётся модифицировать: чем «грязнее» код, тем больше проблем у тебя будет потомАккуратное приложение без ошибок выглядит круто. И все любят его автора.Трус не играет в хоккей, а профессионал не «колбасит»
  • 25. Чему учить?Общие соглашения написания кода (унификация)Низкоуровневая архитектура (паттерны)Использование сторонних компонентов и готовых решений
  • 26. Основные ценностиКод должен бытьПродуманАккуратенЭффективенБыстро, просто и аккуратно решать поставленную задачу
  • 27. Инспекция кодаПроводится еженедельно для кода, написанного за неделюПроводится опытными программистами по очередиВремя на подготовку – 4 часаВремя на проведение – 1 час
  • 28. Инспекция кода. ПроведениеПроводится в виде обсужденияВедущий готовит список недочётов (по его мнению)Имена авторов «плохого кода» не указываютсяКоманда обсуждает каждый из недочётовОбязательно подводятся итоги Принимается решение о исправлении либо рефакторинге части недочётов
  • 29. Инспекция кода. JuniorДля juniorНахождение «плохого кода», пока он не врос в системуконтроль профессионального развития программистаОбучение: обсуждение и применение подходящей архитектуры
  • 30. Инспекция кода. SeniorДля senior«Свежий взгляд» на кодОбдумывание более быстрых и эффективных решенийИногда и профессионалы «колбасят» 
  • 31. Инспекция кода.КомандаДля команды в целомВозможность обсудить качество кода и архитектурных решенийСтимул писать аккуратно, чтобы потом не краснеть на reviewПостоянное поддержание необходимости «писать хорошо»
  • 32. Инспекция кода.ПроблемыПоиск серьёзных архитектурных недочётов малоэффективенОчень сложно избежать перехода на личностиВечный недостаток времени