ݺߣ

ݺߣShare a Scribd company logo
Про то, что я бы хотел, чтобы
мне рассказали, пока я учился
Технопарк / Техносфера, октябрь 2015
Алексей Рыбак, Badoo (badoo.com)
whoami
● Badoo, Head of Engineering
● о чём меня можно спросить
○ управление разработкой (10 - 200 разработчиков)
○ немножко open source (blitz и другие открытые проекты
badoo team - pinba, php-fpm и прочие)
○ highload; образовательный проект “разработка больших
интернет-проектов”
● но вы выбрали свободную тему, и я
люблю вас
Содержание
1. проблема: учеба != работа
2. персональная продуктивность
3. выбор технологий и самообучение
4. дополнительные темы
Странным покажется что-то вам
ожидания… реальность
(1) Учеба !=Работа
Багаж
● Всё про смещённые “ценности”
● Как учились и чему учили
● Кто самый крутой?
Как учились
● относительный напряг строго 2 раза в год
● бухать и веселиться, и потом
зазубрить/списать/забомбить
● нужно зомбить по максимуму, чтобы
вылететь
● близко не похоже на работу
Чему учили
● Computer science: занятие для
математического ума (алгоритмы)
● “Искусство Программирования”
● Программа как текст
Кто самые крутые?
● Олимпиадники!
● Хорошо: работа в стрессовой
обстановке
● Хорошо: тренировки, отбор
● Плохо: крайне специфические задачи
● Ужасно: короткий забег, как правило в
одиночку
Эго и общество
● Окружающая среда навязывает эго-центричную
пирамиду ценностей
● Искусство - 100% эгоцентрично
● Наука - условно эгоцентрично
● Гуманизм - человек vs государство (машина),
подпитывает эго
● Ультра-либерализм - свобода как абсолют
(идеальное государство - обслуга), усаживает эго
в трон
● Компания != Общество
Профессиональные сообщества тоже
декларируют сомнительные ценности
Пользуясь случаем, посылаю лучи добра
разработчикам Perl 6 / Parrot
Первые годы работы
● Странные вопросы на интервью
● Странные мотивационные схемы
● Личностные качества важнее
профессиональных?
● “Вменяемость” и “Доброжелательность”
● Я-продуктивность, Мы-продуктивность
Производство
● Сложная организация, со-трудничество
● Игра на долгих временных интервалах
● Анти-эго-центричные ценности
● Так что ж это такое “хороший
программист”?
Хороший программист
● Если спросить опытного инженера -
получишь длиннющий список
компетенций
● Дальше - мнения реальных Senior
Engineers
Хороший программист (1/3)
● хорошо продумывает дизайн
компонент
● производит хорошо читаемый код,
соответствующий стандарту
● выпускает малое количество багов
● хорошо понимает все компоненты
команды
Хороший программист (2/3)
● участвует в ревью и даёт качественный
фидбек
● работает в соответствии с приоритетами
команды
● с ним легко работать
● сфокусирован, не разрушает команду
● эффективен на митингах
Хороший программист (3/3)
● продуктивно тратит время в офисе
● сфокусирован на дедлайнах
● выполняет обещания
● аккуратно оценивает сроки
Если очень грубо
● делает, что обещал
● в срок
● без изъё.. понтов
Лирическое отступление
● модели и “ручки”
● построим модель
● найдем ключевые параметры
● “покрутим” их и подумаем, что
происходит с моделью
Что такое программирование?
● ручка: размер и время жизни
программы
● маленька программа (инди-девелопер,
одиночка)
○ понять пользователя
○ спроектировать интерфейс
○ запилить
Побольше/Подольше
● не ломалось
● если что-то поломалось - быстро найти
и починить
● легко было вносить изменения
○ понятность
○ модульность
○ процесс
Ещё больше/дольше
● постоянно меняются требования -
постоянные изменения
● специфика интернет: много юзеров,
мониторинг, отказоустойчивость
● большие группы
Масштаб
● я
● моя группа
● мой департамент
● моя компания
● при изменении масштаба кардинально
меняются ценности
● культура: “скрыть” или воспитать
Fully Formed Adults
● приоритеты: компания -> группа -> я
● общее дело: нет дедовщине, “элитным” подразделениям
● командная работа: do not tolerate brilliant jerks
● тратить деньги компании как свои
● правило 50/50
● меньше бюрократии и писанных правил
● грудниковые ништяки не имеют значения
● твою зп определяет рынок
○ ходи по рынку! это норм
● сурово? добро пожаловать в реальность
Цели на первое время
● избавиться от “багажа”
● увеличить личную продуктивность
● научиться выбирать технологии и
направления для самообучения
● научиться работать в команде
(2) Личная продуктивность
Продуктивность сотрудника.
Случайно нашел в интернете. Не спрашивайте про
“альфу” и ВМТ. “Ручка”(x) - “давление”.
Управлять собой
● планирование своей работы
● организация своей работы
● мотивация
● контроль
● на самом деле, это 4 функции любого
менеджмента
● сфокусируйтесь хотя бы на первых двух
Самодисциплина
● ввергать себя в небольшой стресс
● “пушить” себя
● либо учишься, либо “убегаешь” (и часто
воюешь против системы,
пропагандируя альтернативные
ценности)
● научиться можно: пример из жизни
S.M.A.R.T. goals
● Specific – target a specific area for improvement.
● Measurable – quantify or at least suggest an
indicator of progress.
● Assignable – specify who will do it.
● Realistic – state what results can realistically be
achieved, given available resources.
● Time-related – specify when the result(s) can be
achieved
Декомпозиция “сложности”
● Разбиение на цепочки проблем
● Похоже на теорию СМО (сетей массового обслуживания)
● Слабая “связность” компонент (риск потерь при
ожиданиях/коммуникациях)
● Отсутсвие “серых зон” (риск незапланированных потерь)
Работа с руководителем
● что хочет ваш руководитель?
● если он пришел к вам: внятного переключения
ответственности
○ всё понял и иду работать
○ потери: пинг-понг
● на самом деле, он хочет
○ чтобы вы пришли к нему (идея, проблема)
○ потери: умалчивание
Объективные проблемы
● context switches
● managing unknowns (манипуляция:
пойди туда, не знаю куда)
● меняющиеся требования
● всё придется принять как должное и
учиться с этим жить
Убегание
● от “пользователя”
○ возможно в случае особенных скиллов в системном
программировании, devops etc и спроса
○ чревато пыльным углом (главное - продукт)
● от “контроля”
○ паталогические удалёнщики
○ нет контроля - нет эффективности
○ лучше искать максимально удобные способы
взаимодействия
○ удивительные истории о том, что таки можно померять
строками кода
● реже: от “управления”, от “сложности”
○ это может быть совершенно нормально, ломка у 99%
● но имейте в виду: часто убегание -
сигнал к возможному увольнению
(3) Выбор технологий и
самообучение
Самообучение
● вглубь
○ даже с такой попсой, как php/mysql
● вширь
○ альтернативные технологии - пилот -
отбраковка по затратам
○ обязательно предварительная
договоренность с business owner
○ не начинайте, если слабовато “вглубь”
Что часто ценится
● шаблоны программирования
● ORM и новая крутая база данных, которая
позволяет не ковыряться в SQL
● другой “более клёвый” язык...
● “Я люблю Python таким, какой он есть: шустрый, лаконичный,
имеет из-под коробки очень много полезных вещей
(например, можно узнать, является ли число полиморфом
всего в 1 строку)” (с Хабра)
Что бы я посоветовал изучить
● как зарабатываются деньги в вашей компании
● практики в вашей компании, в первую очередь
○ соглашения о именах
○ работа с ошибками, мониторинг и тд
○ принять и неукоснительно следовать
● научитесь общаться онлайн и на митингах
● научиться быстро делать пилот
● базовые алгоритмы (если не), write in C
● инфраструктуру и инструменты, не языки
○ системное администрирование, базовые компоненты и их настройки
○ работа СУБД и оптимизация SQL-запросов
○ принципы поиска проблем производительности и оптимизации кода (cpu,
память, io)
Новые технологии
● косты! риски:
○ сложность
○ качество
○ зависимости
● стоимость перехода
● стоимость поддержки, SLA
● стоимость обучения/найма
● зоопарки и проблемы больших
компаний
Книги, которые бы я посоветовал
● Читайте больше
● Выбрал 5 важных лично мне, а на самом
деле больше, конечно
○ “Введение в теорию баз данных”
○ “Практика программирования”
○ “Мифический человеко-месяц”
○ “От хорошего к великому”
○ “Дзен и искусство ухода за мотоциклом”
(4) Дополнительные темы
● либо реально сам убил много времени
○ либо лучше бы просто знать пораньше
● ORM - отстой (надо: DAL)
● гибкие методологии: плюсы и минусы
● типология Адизеза (PAEI), найм при сильном
росте компании
Спасибо!
fisher@corp.badoo.com
● вопросы?
● всем поменьше детонаций :)
● tech.badoo.com
Внезапно: физика и программирование
● Приучение работать с неизвестным (“дано
всё что есть”)
● Моделирование
● Статистика и анализ данных, гипотезы и
эксперименты

More Related Content

What's hot (20)

низкоуровневое программирование сегодня новые стандарты с++, программирован...
низкоуровневое программирование сегодня   новые стандарты с++, программирован...низкоуровневое программирование сегодня   новые стандарты с++, программирован...
низкоуровневое программирование сегодня новые стандарты с++, программирован...
COMAQA.BY
Как учиться в вузе, заниматься предпринимательством и не умереть в процессе
Как учиться в вузе, заниматься предпринимательством и не умереть в процессеКак учиться в вузе, заниматься предпринимательством и не умереть в процессе
Как учиться в вузе, заниматься предпринимательством и не умереть в процессе
MIkhail Neverov
Как же научиться программировать, в конце концов?
Как же научиться программировать, в конце концов?Как же научиться программировать, в конце концов?
Как же научиться программировать, в конце концов?
SQALab
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникаций
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникацийАлексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникаций
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникаций
ScrumTrek
Andrey Petrov методология P D P, часть 1, цели вместо кейсов
Andrey Petrov методология P D P, часть 1, цели вместо кейсовAndrey Petrov методология P D P, часть 1, цели вместо кейсов
Andrey Petrov методология P D P, часть 1, цели вместо кейсов
rit2010
Andrey Petrov P D P
Andrey Petrov P D PAndrey Petrov P D P
Andrey Petrov P D P
rit2010
Бумажное прототипирование
Бумажное прототипированиеБумажное прототипирование
Бумажное прототипирование
Maxim Gaponov
Что сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделыватьЧто сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделывать
Транслируем.бел
Growing of Team Leads
Growing of Team LeadsGrowing of Team Leads
Growing of Team Leads
Oleksiy Yegoshyn
Как воспитать программиста
Как воспитать программистаКак воспитать программиста
Как воспитать программиста
Mikhail Payson
Как отучить программиста колбасить (Прагматик 2012)
Как отучить программиста колбасить (Прагматик 2012)Как отучить программиста колбасить (Прагматик 2012)
Как отучить программиста колбасить (Прагматик 2012)
Mikhail Payson
Выступление: инструменты и методы эффективной удалённой работы
Выступление: инструменты и методы эффективной удалённой работыВыступление: инструменты и методы эффективной удалённой работы
Выступление: инструменты и методы эффективной удалённой работы
ryba4
Как продать Agile.
Как продать Agile.Как продать Agile.
Как продать Agile.
Nikita Filippov
Промышленная разработка ПО. Лекция 7. Особенности работы руководителя проектов
Промышленная разработка ПО. Лекция 7. Особенности работы руководителя проектовПромышленная разработка ПО. Лекция 7. Особенности работы руководителя проектов
Промышленная разработка ПО. Лекция 7. Особенности работы руководителя проектов
Mikhail Payson
User Story Canvas
User Story CanvasUser Story Canvas
User Story Canvas
Maxim Gaponov
SWP'12. PMARCOR. Техногенные манипуляции
SWP'12. PMARCOR. Техногенные манипуляцииSWP'12. PMARCOR. Техногенные манипуляции
SWP'12. PMARCOR. Техногенные манипуляции
Alexander Kalouguine
Видимое ускорение разработки
Видимое ускорение разработкиВидимое ускорение разработки
Видимое ускорение разработки
Alex Troshin
Иду по приборам… Практические советы по визуализации работ. Москва
Иду по приборам… Практические советы по визуализации работ. МоскваИду по приборам… Практические советы по визуализации работ. Москва
Иду по приборам… Практические советы по визуализации работ. Москва
Maxim Gaponov
Инструменты юзабилити для роста бизнеса
Инструменты юзабилити для роста бизнесаИнструменты юзабилити для роста бизнеса
Инструменты юзабилити для роста бизнеса
Fedotov Alex
Шаг-Рысь-Галоп: видимое ускорение разработки
Шаг-Рысь-Галоп: видимое ускорение разработкиШаг-Рысь-Галоп: видимое ускорение разработки
Шаг-Рысь-Галоп: видимое ускорение разработки
SQALab
низкоуровневое программирование сегодня новые стандарты с++, программирован...
низкоуровневое программирование сегодня   новые стандарты с++, программирован...низкоуровневое программирование сегодня   новые стандарты с++, программирован...
низкоуровневое программирование сегодня новые стандарты с++, программирован...
COMAQA.BY
Как учиться в вузе, заниматься предпринимательством и не умереть в процессе
Как учиться в вузе, заниматься предпринимательством и не умереть в процессеКак учиться в вузе, заниматься предпринимательством и не умереть в процессе
Как учиться в вузе, заниматься предпринимательством и не умереть в процессе
MIkhail Neverov
Как же научиться программировать, в конце концов?
Как же научиться программировать, в конце концов?Как же научиться программировать, в конце концов?
Как же научиться программировать, в конце концов?
SQALab
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникаций
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникацийАлексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникаций
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникаций
ScrumTrek
Andrey Petrov методология P D P, часть 1, цели вместо кейсов
Andrey Petrov методология P D P, часть 1, цели вместо кейсовAndrey Petrov методология P D P, часть 1, цели вместо кейсов
Andrey Petrov методология P D P, часть 1, цели вместо кейсов
rit2010
Andrey Petrov P D P
Andrey Petrov P D PAndrey Petrov P D P
Andrey Petrov P D P
rit2010
Бумажное прототипирование
Бумажное прототипированиеБумажное прототипирование
Бумажное прототипирование
Maxim Gaponov
Что сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделыватьЧто сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделывать
Транслируем.бел
Как воспитать программиста
Как воспитать программистаКак воспитать программиста
Как воспитать программиста
Mikhail Payson
Как отучить программиста колбасить (Прагматик 2012)
Как отучить программиста колбасить (Прагматик 2012)Как отучить программиста колбасить (Прагматик 2012)
Как отучить программиста колбасить (Прагматик 2012)
Mikhail Payson
Выступление: инструменты и методы эффективной удалённой работы
Выступление: инструменты и методы эффективной удалённой работыВыступление: инструменты и методы эффективной удалённой работы
Выступление: инструменты и методы эффективной удалённой работы
ryba4
Промышленная разработка ПО. Лекция 7. Особенности работы руководителя проектов
Промышленная разработка ПО. Лекция 7. Особенности работы руководителя проектовПромышленная разработка ПО. Лекция 7. Особенности работы руководителя проектов
Промышленная разработка ПО. Лекция 7. Особенности работы руководителя проектов
Mikhail Payson
SWP'12. PMARCOR. Техногенные манипуляции
SWP'12. PMARCOR. Техногенные манипуляцииSWP'12. PMARCOR. Техногенные манипуляции
SWP'12. PMARCOR. Техногенные манипуляции
Alexander Kalouguine
Видимое ускорение разработки
Видимое ускорение разработкиВидимое ускорение разработки
Видимое ускорение разработки
Alex Troshin
Иду по приборам… Практические советы по визуализации работ. Москва
Иду по приборам… Практические советы по визуализации работ. МоскваИду по приборам… Практические советы по визуализации работ. Москва
Иду по приборам… Практические советы по визуализации работ. Москва
Maxim Gaponov
Инструменты юзабилити для роста бизнеса
Инструменты юзабилити для роста бизнесаИнструменты юзабилити для роста бизнеса
Инструменты юзабилити для роста бизнеса
Fedotov Alex
Шаг-Рысь-Галоп: видимое ускорение разработки
Шаг-Рысь-Галоп: видимое ускорение разработкиШаг-Рысь-Галоп: видимое ускорение разработки
Шаг-Рысь-Галоп: видимое ускорение разработки
SQALab

Similar to Про то, что (лекция для студентов об адаптации к работе) (20)

Software craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчикаSoftware craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчика
Pavel Veinik
Who is Delivery Manager?
Who is Delivery Manager?Who is Delivery Manager?
Who is Delivery Manager?
Anton Vityaz
Programmers' Mistakes for Dummies
Programmers' Mistakes for DummiesProgrammers' Mistakes for Dummies
Programmers' Mistakes for Dummies
COTOHA
"Практика переходу з фрілансу в офіс для аутсорсингової компанії" Олена Прихнич
"Практика переходу з фрілансу в офіс для аутсорсингової компанії" Олена Прихнич"Практика переходу з фрілансу в офіс для аутсорсингової компанії" Олена Прихнич
"Практика переходу з фрілансу в офіс для аутсорсингової компанії" Олена Прихнич
Lviv Startup Club
"ТОП 3 кроки для швидкого старту кар'єри Project Manager в IT компанії"
"ТОП 3 кроки для швидкого старту кар'єри Project Manager в IT компанії""ТОП 3 кроки для швидкого старту кар'єри Project Manager в IT компанії"
"ТОП 3 кроки для швидкого старту кар'єри Project Manager в IT компанії"
Lviv Startup Club
Максим Богуславский, Banki.ru, «Как вырастить в себе автоматизатора и разрабо...
Максим Богуславский, Banki.ru, «Как вырастить в себе автоматизатора и разрабо...Максим Богуславский, Banki.ru, «Как вырастить в себе автоматизатора и разрабо...
Максим Богуславский, Banki.ru, «Как вырастить в себе автоматизатора и разрабо...
Mail.ru Group
Mail.ru: Как вырастить в себе автоматизатора и разработчика
Mail.ru:  Как вырастить в себе автоматизатора и разработчикаMail.ru:  Как вырастить в себе автоматизатора и разработчика
Mail.ru: Как вырастить в себе автоматизатора и разработчика
Maxim Boguslavsky
5 правил успешной разработки приложений для бренда
5 правил успешной разработки приложений для бренда 5 правил успешной разработки приложений для бренда
5 правил успешной разработки приложений для бренда
Heads&Hands
карта IT профессий
карта IT профессийкарта IT профессий
карта IT профессий
COMAQA.BY
Увлеченные делом или как мы строили процессы. Александр Кунташов
Увлеченные делом или как мы строили процессы. Александр КунташовУвлеченные делом или как мы строили процессы. Александр Кунташов
Увлеченные делом или как мы строили процессы. Александр Кунташов
Wake_up_province
Инструкция для SEO-специалиста: как расти, зарабатывать больше и не лажать
Инструкция для SEO-специалиста: как расти, зарабатывать больше и не лажатьИнструкция для SEO-специалиста: как расти, зарабатывать больше и не лажать
Инструкция для SEO-специалиста: как расти, зарабатывать больше и не лажать
Netpeak
Профессии в IT
Профессии в ITПрофессии в IT
Профессии в IT
0leGG
как нанять и сделать счастливыми хороших программистов и других сотрудников
как нанять и сделать счастливыми хороших программистов и других сотрудниковкак нанять и сделать счастливыми хороших программистов и других сотрудников
как нанять и сделать счастливыми хороших программистов и других сотрудников
Alexander Gornik
Регулярный менеджмент и подготовка к автоматизации процессов
Регулярный менеджмент и подготовка к автоматизации процессовРегулярный менеджмент и подготовка к автоматизации процессов
Регулярный менеджмент и подготовка к автоматизации процессов
borovoystudio
Методики управления развитием ис на базе 1с
Методики управления развитием ис на базе 1сМетодики управления развитием ис на базе 1с
Методики управления развитием ис на базе 1с
Helen Kopteva
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU
я выбираю профессию в It
я выбираю профессию в Itя выбираю профессию в It
я выбираю профессию в It
malahova-helen
Профессии в IT
Профессии в ITПрофессии в IT
Профессии в IT
Sam Faktorovich
CEE-SECR-2011. Презентация Александра Калугина
CEE-SECR-2011. Презентация Александра КалугинаCEE-SECR-2011. Презентация Александра Калугина
CEE-SECR-2011. Презентация Александра Калугина
Alexander Kalouguine
Software craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчикаSoftware craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчика
Pavel Veinik
Who is Delivery Manager?
Who is Delivery Manager?Who is Delivery Manager?
Who is Delivery Manager?
Anton Vityaz
Programmers' Mistakes for Dummies
Programmers' Mistakes for DummiesProgrammers' Mistakes for Dummies
Programmers' Mistakes for Dummies
COTOHA
"Практика переходу з фрілансу в офіс для аутсорсингової компанії" Олена Прихнич
"Практика переходу з фрілансу в офіс для аутсорсингової компанії" Олена Прихнич"Практика переходу з фрілансу в офіс для аутсорсингової компанії" Олена Прихнич
"Практика переходу з фрілансу в офіс для аутсорсингової компанії" Олена Прихнич
Lviv Startup Club
"ТОП 3 кроки для швидкого старту кар'єри Project Manager в IT компанії"
"ТОП 3 кроки для швидкого старту кар'єри Project Manager в IT компанії""ТОП 3 кроки для швидкого старту кар'єри Project Manager в IT компанії"
"ТОП 3 кроки для швидкого старту кар'єри Project Manager в IT компанії"
Lviv Startup Club
Максим Богуславский, Banki.ru, «Как вырастить в себе автоматизатора и разрабо...
Максим Богуславский, Banki.ru, «Как вырастить в себе автоматизатора и разрабо...Максим Богуславский, Banki.ru, «Как вырастить в себе автоматизатора и разрабо...
Максим Богуславский, Banki.ru, «Как вырастить в себе автоматизатора и разрабо...
Mail.ru Group
Mail.ru: Как вырастить в себе автоматизатора и разработчика
Mail.ru:  Как вырастить в себе автоматизатора и разработчикаMail.ru:  Как вырастить в себе автоматизатора и разработчика
Mail.ru: Как вырастить в себе автоматизатора и разработчика
Maxim Boguslavsky
5 правил успешной разработки приложений для бренда
5 правил успешной разработки приложений для бренда 5 правил успешной разработки приложений для бренда
5 правил успешной разработки приложений для бренда
Heads&Hands
карта IT профессий
карта IT профессийкарта IT профессий
карта IT профессий
COMAQA.BY
Увлеченные делом или как мы строили процессы. Александр Кунташов
Увлеченные делом или как мы строили процессы. Александр КунташовУвлеченные делом или как мы строили процессы. Александр Кунташов
Увлеченные делом или как мы строили процессы. Александр Кунташов
Wake_up_province
Инструкция для SEO-специалиста: как расти, зарабатывать больше и не лажать
Инструкция для SEO-специалиста: как расти, зарабатывать больше и не лажатьИнструкция для SEO-специалиста: как расти, зарабатывать больше и не лажать
Инструкция для SEO-специалиста: как расти, зарабатывать больше и не лажать
Netpeak
Профессии в IT
Профессии в ITПрофессии в IT
Профессии в IT
0leGG
как нанять и сделать счастливыми хороших программистов и других сотрудников
как нанять и сделать счастливыми хороших программистов и других сотрудниковкак нанять и сделать счастливыми хороших программистов и других сотрудников
как нанять и сделать счастливыми хороших программистов и других сотрудников
Alexander Gornik
Регулярный менеджмент и подготовка к автоматизации процессов
Регулярный менеджмент и подготовка к автоматизации процессовРегулярный менеджмент и подготовка к автоматизации процессов
Регулярный менеджмент и подготовка к автоматизации процессов
borovoystudio
Методики управления развитием ис на базе 1с
Методики управления развитием ис на базе 1сМетодики управления развитием ис на базе 1с
Методики управления развитием ис на базе 1с
Helen Kopteva
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU
я выбираю профессию в It
я выбираю профессию в Itя выбираю профессию в It
я выбираю профессию в It
malahova-helen
CEE-SECR-2011. Презентация Александра Калугина
CEE-SECR-2011. Презентация Александра КалугинаCEE-SECR-2011. Презентация Александра Калугина
CEE-SECR-2011. Презентация Александра Калугина
Alexander Kalouguine

Про то, что (лекция для студентов об адаптации к работе)

  • 1. Про то, что я бы хотел, чтобы мне рассказали, пока я учился Технопарк / Техносфера, октябрь 2015 Алексей Рыбак, Badoo (badoo.com)
  • 2. whoami ● Badoo, Head of Engineering ● о чём меня можно спросить ○ управление разработкой (10 - 200 разработчиков) ○ немножко open source (blitz и другие открытые проекты badoo team - pinba, php-fpm и прочие) ○ highload; образовательный проект “разработка больших интернет-проектов” ● но вы выбрали свободную тему, и я люблю вас
  • 3. Содержание 1. проблема: учеба != работа 2. персональная продуктивность 3. выбор технологий и самообучение 4. дополнительные темы
  • 4. Странным покажется что-то вам ожидания… реальность
  • 6. Багаж ● Всё про смещённые “ценности” ● Как учились и чему учили ● Кто самый крутой?
  • 7. Как учились ● относительный напряг строго 2 раза в год ● бухать и веселиться, и потом зазубрить/списать/забомбить ● нужно зомбить по максимуму, чтобы вылететь ● близко не похоже на работу
  • 8. Чему учили ● Computer science: занятие для математического ума (алгоритмы) ● “Искусство Программирования” ● Программа как текст
  • 9. Кто самые крутые? ● Олимпиадники! ● Хорошо: работа в стрессовой обстановке ● Хорошо: тренировки, отбор ● Плохо: крайне специфические задачи ● Ужасно: короткий забег, как правило в одиночку
  • 10. Эго и общество ● Окружающая среда навязывает эго-центричную пирамиду ценностей ● Искусство - 100% эгоцентрично ● Наука - условно эгоцентрично ● Гуманизм - человек vs государство (машина), подпитывает эго ● Ультра-либерализм - свобода как абсолют (идеальное государство - обслуга), усаживает эго в трон ● Компания != Общество
  • 11. Профессиональные сообщества тоже декларируют сомнительные ценности Пользуясь случаем, посылаю лучи добра разработчикам Perl 6 / Parrot
  • 12. Первые годы работы ● Странные вопросы на интервью ● Странные мотивационные схемы ● Личностные качества важнее профессиональных? ● “Вменяемость” и “Доброжелательность” ● Я-продуктивность, Мы-продуктивность
  • 13. Производство ● Сложная организация, со-трудничество ● Игра на долгих временных интервалах ● Анти-эго-центричные ценности ● Так что ж это такое “хороший программист”?
  • 14. Хороший программист ● Если спросить опытного инженера - получишь длиннющий список компетенций ● Дальше - мнения реальных Senior Engineers
  • 15. Хороший программист (1/3) ● хорошо продумывает дизайн компонент ● производит хорошо читаемый код, соответствующий стандарту ● выпускает малое количество багов ● хорошо понимает все компоненты команды
  • 16. Хороший программист (2/3) ● участвует в ревью и даёт качественный фидбек ● работает в соответствии с приоритетами команды ● с ним легко работать ● сфокусирован, не разрушает команду ● эффективен на митингах
  • 17. Хороший программист (3/3) ● продуктивно тратит время в офисе ● сфокусирован на дедлайнах ● выполняет обещания ● аккуратно оценивает сроки
  • 18. Если очень грубо ● делает, что обещал ● в срок ● без изъё.. понтов
  • 19. Лирическое отступление ● модели и “ручки” ● построим модель ● найдем ключевые параметры ● “покрутим” их и подумаем, что происходит с моделью
  • 20. Что такое программирование? ● ручка: размер и время жизни программы ● маленька программа (инди-девелопер, одиночка) ○ понять пользователя ○ спроектировать интерфейс ○ запилить
  • 21. Побольше/Подольше ● не ломалось ● если что-то поломалось - быстро найти и починить ● легко было вносить изменения ○ понятность ○ модульность ○ процесс
  • 22. Ещё больше/дольше ● постоянно меняются требования - постоянные изменения ● специфика интернет: много юзеров, мониторинг, отказоустойчивость ● большие группы
  • 23. Масштаб ● я ● моя группа ● мой департамент ● моя компания ● при изменении масштаба кардинально меняются ценности ● культура: “скрыть” или воспитать
  • 24. Fully Formed Adults ● приоритеты: компания -> группа -> я ● общее дело: нет дедовщине, “элитным” подразделениям ● командная работа: do not tolerate brilliant jerks ● тратить деньги компании как свои ● правило 50/50 ● меньше бюрократии и писанных правил ● грудниковые ништяки не имеют значения ● твою зп определяет рынок ○ ходи по рынку! это норм ● сурово? добро пожаловать в реальность
  • 25. Цели на первое время ● избавиться от “багажа” ● увеличить личную продуктивность ● научиться выбирать технологии и направления для самообучения ● научиться работать в команде
  • 27. Продуктивность сотрудника. Случайно нашел в интернете. Не спрашивайте про “альфу” и ВМТ. “Ручка”(x) - “давление”.
  • 28. Управлять собой ● планирование своей работы ● организация своей работы ● мотивация ● контроль ● на самом деле, это 4 функции любого менеджмента ● сфокусируйтесь хотя бы на первых двух
  • 29. Самодисциплина ● ввергать себя в небольшой стресс ● “пушить” себя ● либо учишься, либо “убегаешь” (и часто воюешь против системы, пропагандируя альтернативные ценности) ● научиться можно: пример из жизни
  • 30. S.M.A.R.T. goals ● Specific – target a specific area for improvement. ● Measurable – quantify or at least suggest an indicator of progress. ● Assignable – specify who will do it. ● Realistic – state what results can realistically be achieved, given available resources. ● Time-related – specify when the result(s) can be achieved
  • 31. Декомпозиция “сложности” ● Разбиение на цепочки проблем ● Похоже на теорию СМО (сетей массового обслуживания) ● Слабая “связность” компонент (риск потерь при ожиданиях/коммуникациях) ● Отсутсвие “серых зон” (риск незапланированных потерь)
  • 32. Работа с руководителем ● что хочет ваш руководитель? ● если он пришел к вам: внятного переключения ответственности ○ всё понял и иду работать ○ потери: пинг-понг ● на самом деле, он хочет ○ чтобы вы пришли к нему (идея, проблема) ○ потери: умалчивание
  • 33. Объективные проблемы ● context switches ● managing unknowns (манипуляция: пойди туда, не знаю куда) ● меняющиеся требования ● всё придется принять как должное и учиться с этим жить
  • 34. Убегание ● от “пользователя” ○ возможно в случае особенных скиллов в системном программировании, devops etc и спроса ○ чревато пыльным углом (главное - продукт) ● от “контроля” ○ паталогические удалёнщики ○ нет контроля - нет эффективности ○ лучше искать максимально удобные способы взаимодействия ○ удивительные истории о том, что таки можно померять строками кода ● реже: от “управления”, от “сложности” ○ это может быть совершенно нормально, ломка у 99% ● но имейте в виду: часто убегание - сигнал к возможному увольнению
  • 35. (3) Выбор технологий и самообучение
  • 36. Самообучение ● вглубь ○ даже с такой попсой, как php/mysql ● вширь ○ альтернативные технологии - пилот - отбраковка по затратам ○ обязательно предварительная договоренность с business owner ○ не начинайте, если слабовато “вглубь”
  • 37. Что часто ценится ● шаблоны программирования ● ORM и новая крутая база данных, которая позволяет не ковыряться в SQL ● другой “более клёвый” язык... ● “Я люблю Python таким, какой он есть: шустрый, лаконичный, имеет из-под коробки очень много полезных вещей (например, можно узнать, является ли число полиморфом всего в 1 строку)” (с Хабра)
  • 38. Что бы я посоветовал изучить ● как зарабатываются деньги в вашей компании ● практики в вашей компании, в первую очередь ○ соглашения о именах ○ работа с ошибками, мониторинг и тд ○ принять и неукоснительно следовать ● научитесь общаться онлайн и на митингах ● научиться быстро делать пилот ● базовые алгоритмы (если не), write in C ● инфраструктуру и инструменты, не языки ○ системное администрирование, базовые компоненты и их настройки ○ работа СУБД и оптимизация SQL-запросов ○ принципы поиска проблем производительности и оптимизации кода (cpu, память, io)
  • 39. Новые технологии ● косты! риски: ○ сложность ○ качество ○ зависимости ● стоимость перехода ● стоимость поддержки, SLA ● стоимость обучения/найма ● зоопарки и проблемы больших компаний
  • 40. Книги, которые бы я посоветовал ● Читайте больше ● Выбрал 5 важных лично мне, а на самом деле больше, конечно ○ “Введение в теорию баз данных” ○ “Практика программирования” ○ “Мифический человеко-месяц” ○ “От хорошего к великому” ○ “Дзен и искусство ухода за мотоциклом”
  • 41. (4) Дополнительные темы ● либо реально сам убил много времени ○ либо лучше бы просто знать пораньше ● ORM - отстой (надо: DAL) ● гибкие методологии: плюсы и минусы ● типология Адизеза (PAEI), найм при сильном росте компании
  • 42. Спасибо! fisher@corp.badoo.com ● вопросы? ● всем поменьше детонаций :) ● tech.badoo.com
  • 43. Внезапно: физика и программирование ● Приучение работать с неизвестным (“дано всё что есть”) ● Моделирование ● Статистика и анализ данных, гипотезы и эксперименты