Карьера в IT. Как найти работу, прокачать навыки и стать крутым разработчиком
Реклама. ООО «ЛитРес», ИНН: 7719571260.
Оглавление
Группа авторов. Карьера в IT. Как найти работу, прокачать навыки и стать крутым разработчиком
Вступление
Начинающий или желающий научиться разработке
Разработчик среднего уровня
Профи
Глава 1. Как пользоваться этой книгой
Зачем я написал эту книгу
Как читать эту книгу?
Часть 1. Старт карьеры
Глава 2. С чего начать
Как начинал я?
Каков он, мир разработчиков?
Понимание проблемы
Проектирование
Собственно, само программирование
Тестирование и развертывание
Разработка – это не просто набор кода
Главное – план!
Как составить план?
Создание плана
Как выбрать сферу деятельности?
Конкретный пример
Глава 3. Необходимые технические навыки
Навыки, за которые платят
Всего один язык программирования
Как структурировать код
Объектно-ориентированное проектирование
Алгоритмы и структуры данных
Платформы разработки и связанные технологии
Фреймворк или стек
Понимание принципов работы баз данных
Управление версиями
Сборка и развертывание
Тестирование
Отладка
Методологии
Ошеломлены? Спокойствие, только спокойствие
Глава 4. Как развить технические навыки
Как научиться быстро учиться?
Основы
Обучение на практике
Как обучаться на практике?
Пример обучения на практике
Как я обучаю техническим навыкам
Как можно использовать технологию?
Как начать?
20 % информации для максимальной эффективности
Читайте, что пишут эксперты
Практика, практика и еще раз практика
Глава 5. Как выбрать язык программирования
Выбор языка практически ни на что не влияет
Что следует учесть при выборе языка программирования?
Карьерные перспективы
Технологии, которые вам интересны
Уровень сложности
Доступные ресурсы
Адаптивность
Пара мыслей напоследок
Глава 6. Ваш первый язык программирования
Посмотрите, как функционирует уже работающее приложение
Просмотрите пару качественных материалов по теме
Программка Hello World
Изучите базовые конструкции и попрактикуйтесь на реальных задачах
Усвойте разницу между функциями языка и библиотеками
Изучите имеющийся код и разберитесь в каждой строке
Создайте ЧТО-ТО. А потом еще раз, и еще
Используйте конкретную технологию или платформу
Решайте сложные алгоритмические задачи
Глава 7. Высшее образование
Преимущества
Недостатки
Стратегия
Глава 8. Курсы программирования
Что такое курсы по программированию?
Преимущества
Недостатки
Стратегия
Глава 9. Самообразование
Преимущества самообразования
Недостатки самообразования
Стратегия
Часть 2. Получение работы
Глава 10. Стажировки
Что такое стажировка?
Нужно ли платить?
Как устроиться на стажировку
Как стать хорошим стажером?
Как после стажировки устроиться на работу
Глава 11. Как найти работу, не имея опыта
Чем больше всего рискует компания, когда нанимает программиста
Как уменьшить риск отказа
Онлайн-доказательства вашей компетентности
Сделайте портфолио
Создайте собственную компанию
Подготовьтесь к интервью
Заводите связи
Поработайте бесплатно
Участие в небольшом проекте
Работа не по профессии
Пройдите сертификацию
Будьте настойчивее
Глава 12. Поиск работы
Традиционный подход
Это лотерея
Составьте хорошее резюме
Определите квоту на количество вакансий
Как правильно откликаться на вакансии
Замеряйте результаты
Корректируйте план
Найдите рекрутера
Мыслите нестандартно
Обзаводитесь связями
Нацеливайтесь на конкретные компании
Создайте что-нибудь полезное
Начните с самого верха
Используйте входящий маркетинг
Интервьюируйте интервьюера
Проявляйте настойчивость
Глава 13. Составление резюме
Первый шаг: не составляйте резюме
Выбор составителя резюме
Сбор информации для резюме
Как должно выглядеть хорошее резюме
Составление резюме
Начните с LinkedIn
Выделите свои ключевые преимущества
Что вы сделали, как вы это сделали и каких результатов добились
Не растекайтесь мыслью по древу
Проверьте текст на ошибки
Имейте в запасе несколько вариантов резюме
Пусть ваше резюме будет уникальным
Глава 14. Собеседование
Типы собеседований
Собеседование по телефону
Техническое собеседование онлайн
Техническое собеседование в офисе
Собеседование на соответствие ценностям корпоративной культуры
Групповое собеседование
Собеседование по программированию
Собеседование на полдня или на целый рабочий день
Необходимые знания
Как решать задачи на программирование
Часто задаваемые технические вопросы о технологии / знаниях
Личностные и психологические вопросы
Советы по прохождению собеседования
Соблюдайте дресс-код
Не опаздывайте
Не лгите
Не ощетинивайтесь
Не скупитесь на детали
Будьте уверены в себе (а не кажитесь)
Донесите самое важное
Практика, практика и еще раз практика
Глава 15. Зарплата и условия
Узнайте зарплатную вилку
Получение предложения
Обсуждение условий
Позиционирование
Проигрывает тот, кто первым называет сумму
Встречное предложение
Обо всем можно договориться
Не поддавайтесь спешке
Несколько предложений
Глава 16. Как правильно увольняться
Когда увольняться
Как уйти с работы
Не переживайте о «команде»
Уведомите работодателя за две недели до ухода
Не угрожайте увольнением
Не сообщайте об увольнении заранее
Мир очень тесен
Подготовьте себе замену
Не ругайте никого на выходном интервью
Глава 17. Смена карьеры (поздний переход)
Преимущества перехода из другой области
Недостатки
Как сменить карьеру: пошагово
Переход на текущей должности
Ищите способ применить имеющийся опыт
Будьте готовы начать с нуля
Глава 18. Переход с технической должности
Самая большая трудность
Озвучьте ваше желание
Спрашивайте о возможностях
Создавайте себе возможности сами
Используйте свободное время
Ищите мосты
Переход в другую компанию
Еще один совет напоследок
Глава 19. Договор подряда или работа в штате
Виды краткосрочных контрактов
Подрядчик от агентства
Независимый подрядчик
Фрилансер
Работа в штате
Деньги
Разбор ставки при работе подрядчиком
Почему подрядчикам платят больше
Ценность бонусов
Рабочая среда
Что еще нужно принять в расчет
Глава 20. Как устроена индустрия рекрутинга
Типы рекрутеров и агентств (и в чем состоит их заработок)
Независимые рекрутеры и небольшие агентства
Крупные агентства
«Встроенные» агентства
Внутренние рекрутеры
Рекрутеры от агентства
Что это значит для вас
Первое предоставление резюме
Обсуждение зарплаты
Услуги рекрутера или самостоятельный поиск
Часть 3. Все, что нужно знать о разработке ПО
Глава 21. Обзор языков программирования
C
C++
C#
Java
Python
Ruby
JavaScript
Perl
PHP
Objective-C
Swift
Go
Erlang
Haskell
Подводя итоги
Глава 22. Что такое веб-разработка
Краткий обзор
Как работает веб
Краткая история веба
Основные технологии веб-разработки
Самые основы
Глава 23. Мобильная разработка
Что такое мобильная разработка?
Основные платформы мобильных устройств
Принципы мобильной разработки
Нативная разработка
Фреймворки для кросс-платформенной разработки и инструменты
Мобильные веб-приложения
Что нужно учесть при мобильной разработке
Глава 24. Backend-разработка
Что именно означает «backend-разработка»?
Что делают backend-разработчики?
Основные технологии и навыки в backend-разработке
А что насчет fullstack-разработчиков?
Подводим итог
Глава 25. Карьера в разработке видеоигр
Предупреждение
Варианты квалификации
Необходимые навыки
Работа в крупной игровой студии
Инди-разработка игр
Ресурсы и рекомендации
Глава 26. Администрирование БД и DevOps
Администрирование БД
Базам данных необходим уход и питание
Нужно ли мне быть DBA?
DevOps: новый род деятельности
Операции: как это было раньше
Что такое DevOps?
Что мне это дает?
Глава 27. Методологии разработки ПО
Традиционная каскадная модель
А вы знакомы с SDLC?
Agile
Agile-манифест
Agile – это не совсем методология
Недостатки каскадного подхода разработки
Scrum
Функции методологии Scrum
Как работает Scrum
Недостатки Scrum
Kanban
Экстремальное программирование (XP)
Прочие методологии и мимикрия
Глава 28. Основы тестирования и контроля качества (КК)
Суть тестирования
Самые распространенные виды тестирования
Процесс тестирования
Тестирование в Agile-командах
Роль разработчика в тестировании
Глава 29. Разработка через тестирование
Что такое модульное тестирование?
Что иногда называют модульным тестированием?
Ценность модульного тестирования
Что такое разработка через тестирование (TDD)?
В чем смысл применения TDD?
Стандартный процесс TDD
Это лишь самое основное
Глава 30. Управление версиями
Что за управление версиями?
Почему это важно?
Основы управления версиями
Репозитории
Получение кода из репозитория
Ревизии
Ветвление
Слияние веток
Конфликты
Технологии
Централизованное управление версиями
Децентрализованное управление версиями
Обзор наиболее популярных систем управления версиями
Что еще?
Глава 31. Непрерывная интеграция
Процесс разработки в ранние времена
Затем появились серверы сборки
Наконец, непрерывная интеграция
Пример процесса непрерывной интеграции
Серверы и ПО непрерывной интеграции
Хотите знать больше?
Глава 32. Отладка
Что такое отладка?
Первое правило отладки: не пользуйтесь отладчиком
Воспроизведение ошибки
Сядьте и подумайте
Проверка гипотез
Проверка предположений
Разделяйте и властвуйте
Устраняя проблему, понимайте, почему именно так
Ремесло и творчество
Глава 33. Поддержка кода
Большую часть вашей карьеры вы будете поддерживать код
Крутые программисты пишут хорошо поддерживаемый код
Правило бойскаута
Читабельность превыше всего
Рефакторинг как средство улучшения кода
Необходимость автоматизации
Пишите толковые комментарии
Полезные ресурсы для обучения навыку создания легкого в сопровождении кода
Глава 34. Работа и должности
Названия должностей не так уж и важны…
… однако старайтесь получить лучшую из всех возможных
Некоторые распространенные названия должностей
Должность, которой стоит избегать
Основные служебные роли/должности
Названия должностей в крупных технологических компаниях
Не многовато ли информации о должностях?.
Глава 35. Типы работы
Написание кода
Исправление ошибок
Структура и архитектура
Совещания
Обучение
Экспериментирование и исследование
Тестирование
Обдумывание
Взаимодействие с клиентами / заинтересованными сторонами
Тренинг/наставничество других членов команды
Ну, вот и все…
Часть 4. Будни разработчика
Глава 36. Взаимодействие с коллегами
Важно первое впечатление
Будьте максимально полезны
Держитесь подальше от сплетен…
…но не избегайте конфликтов
Политика и религия
Коллеги-бездельники
Болтливые коллеги
Токсичные люди
А что насчет еще вот такого коллеги?.
Глава 37. Взаимодействие с начальством
Понять босса
Вы ответственны за все
Помочь начальнику
Плохие начальники
Микроменеджер
Хам
Дурак
Тиран
Не всегда есть возможность выбрать начальника
Глава 38. Взаимодействие со специалистами по ОК
Специалист по обеспечению качества вам не враг
Знайте, на что тестируют ваш код
Сначала протестируйте свой код сами
Избегайте карусели «ошибка/исправление»
Помощь в автоматизации
А что насчет того болвана?
Глава 39. Баланс работы и личной жизни
Баланс «работа / личная жизнь» – это миф
Сверхурочная работа редко приносит пользу…
…но это не оправдание для того, чтобы расслабляться
Сначала заплатите себе
Пусть забота о себе станет вашим приоритетом
Тщательно выбирайте контакты
Живите настоящим
Истинный баланс «работа / личная жизнь»
Глава 40. Командная работа
Команды добиваются успеха или терпят неудачу вместе
Команду объединяет общая цель
Возьмите на себя ответственность за команду
Общение и сотрудничество
Будьте честны, но тактичны
Глава 41. Продвигайте свои идеи
Почему важно продавать свои идеи
Не спорьте
Быть убедительным
Направляйте
Излагайте ясно
Ссылайтесь на авторитеты
Работайте над своим авторитетом
Обучайте
Практикуйтесь
Глава 42. Дресс-код
Внешний вид имеет значение
Одевайтесь на два уровня лучше
Смотрите на лидера
Харизма и неоднозначность
Одеваться, чтобы… изменить себя?
Символы статуса
Прическа, косметика и базовая гигиена
Ну а если мне все равно?
Глава 43. Оценка результатов работы сотрудника
Как я добился пересмотра своей оценки
Упреждайте
Ставьте четкие цели и заявляйте о них
Отслеживайте и документируйте прогресс
Будьте готовы аргументировать
Если необходимо, оспаривайте решение
Ловушка самооценки
Оценивание коллег
Оценивание по кривой нормального распределения
Глава 44. Борьба с предрассудками
Принятие того факта, что у людей есть подсознательные предрассудки и стереотипы
Дайте себе шанс избежать предрассудков
Не обособляйтесь
Обретите уверенность в себе
Игнорируйте чаще
Давайте огласку недопустимым вещам
Предрассудки – это отстой
Глава 45. Руководящая должность
Что такое лидерство?
Как эффективно руководить
Будьте лидером во всем
Держать планку высоко
Вы ответственны за команду
Доверяйте своей команде, делегируйте полномочия
Вперед!
Глава 46. Продвижение или повышение
Всегда выбирайте ответственность, а не зарплату
Проявляйте инициативу
Инвестируйте в образование
Расскажите о своих целях
Будьте ценны и за пределами вашей компании
Станьте ценным активом
Уточняйте сумму прибавки
Не угрожайте
Не говорите, зачем вам нужны деньги
Если ничего не помогает, ищите другую работу
Глава 47. Женщины в IT
Стереотипы и стигмы
Проблема домогательств
Старайтесь не искать причины для обиды
Не игнорируйте реальные проблемы
Не пытайтесь стать «своим парнем»
Используйте свои преимущества
Ведение переговоров
Не ведите себя покровительственно
Женщины – не парни
Не переносите свои проблемы в отношениях на женщин
Будьте адекватны
Я искренне надеюсь, что мои советы вам помогут
Часть 5. Развитие карьеры
Глава 48. Создание репутации
Преимущества «известности»
Стиль + содержание
Создание персонального бренда
Как стать «хорошо узнаваемым»
Вносите вклад в общество
Это требует времени
Глава 49. Полезные связи и группы
Нетворкинг: как делать не нужно
Нетворкинг: как делать правильно
Где заводить полезные связи
Проведение собственных мероприятий и создание групп
Глава 50. Идите в ногу со временем
Отсутствие плана – это тоже план, только плохой
Чтение блогов
Чтение книг
Учитесь новому
Научитесь учиться быстро
Посещение мероприятий
Чтение новостей
Больше программируйте
Не успокаивайтесь
Глава 51. Широкий и узкий профиль
Сила специализации
Для узкой специализации нужно иметь широкую базу
Все о Т-образных знаниях
Все говорят, что им нужны универсальные программисты
Время универсалов прошло
Что, если я выберу неправильную специализацию?
Итак, что нужно делать?
Глава 52. Выступления и конференции
Посещение конференций
Но билеты на конференции стоят дорого
Что делать на конференции
Выступление на конференции
Начните выступать
Преодоление страха сцены
Несколько практических советов
Подготовка докладов и презентаций
Оплачиваемые выступления
Идите и пробуйте
Глава 53. Как создать блог
Почему блог – это по-прежнему лучший выбор
Создание блога
Выбор темы
Как вести блог
Сила последовательности
Привлечение трафика
Найдите свой голос
Продолжайте писать
Глава 54. Фриланс и собственный бизнес
Вы уверены, что действительно хотите заниматься бизнесом?
Что такое фриланс?
С чего начать
А что насчет простого пути?
Как определиться со ставками
Запуск бизнеса
Откажитесь от перфекционизма
Не спешите увольняться
Сначала создайте аудиторию
Учитесь продавать
Поддержка – это важно
Это сложно, но стоит того
Глава 55. Пути карьерного роста
Три типа разработчиков программного обеспечения
Развилки карьеры профессионального программиста
Как преодолеть стеклянный потолок
Управленец или технарь?
Всегда придерживайтесь линии
Глава 56. Гарантия занятости и стабильная работа
Стабильности не существует, и это нормально
Сокрытие знаний не гарантирует вам работу
Вместо этого делайте все наоборот
От стабильности – к умениям
Создайте подушку безопасности
Принятие неопределенности
Глава 57. Обучение и сертификаты
Есть ли смысл в сертификации?
Ну и зачем тогда нужны эти сертификаты, Карл?
Как получить сертификат
А как насчет тренингов?
Какие существуют виды тренингов?
Как извлечь из тренинга максимальную пользу
Обучение за счет работодателя
Стать тренером
Все зависит от того, что вы в это вкладываете
Глава 58. Побочные проекты
Всегда имейте в разработке сторонний проект
Выбор побочного проекта
Пусть сторонний проект служит хотя бы двум целям
Приступая к работе
Будьте последовательны
Будьте тем, кто добирается до финиша
Получение прибыли от дополнительного проекта
Вперед, за дело!
Глава 59. Что я советую прочитать
Читайте дальше, мой друг…
Глава 60. Послесловие
Последняя просьба
Отрывок из книги
Честно говоря, я и не думал, что так скоро примусь за новую книгу, ведь предыдущий мой труд, «Путь программиста. Человек эпохи IT»[1] (к слову, бестселлер), был опубликован совсем недавно. Хотя, пожалуй, прошло все же не так уж мало времени. Книга «Путь программиста. Человек эпохи IT» увидела свет в декабре 2014 года, а эту, что вы сейчас держите в руках, я начал писать летом 2016 года. Надо сказать, когда пишешь книгу, полтора года не кажутся очень большим перерывом. Создание книги – очень большой труд. Конечно, тот факт, что вон там на полке стоит написанная тобой книга, невероятно греет душу. Однако сам по себе процесс создания текста далеко не всегда столь же приятен. Здесь, наверное, мой читатель вправе спросить, почему же я в таком случае решился написать еще одну книгу? И почему – по крайней мере, по моим меркам – так скоро после выхода предыдущей? Дело здесь определенно не в деньгах, потому что есть масса куда более прибыльных способов потратить время, чем писать книги. Не могу я и сказать, что обожаю писательский труд. И хотя этот процесс доставляет мне определенное удовольствие, порой этот опыт можно назвать скорее болезненным, нежели приятным.
В чем же тогда смысл участия в процессе, который не превращает тебя в богача, отнимает кучу времени, да еще и причиняет ощутимый дискомфорт? Все просто – это мой моральный долг. Когда я листаю книги, написанные для разработчиков ПО, я понимаю, что на книжном рынке так до сих пор и не появилось ни одного издания, которое было бы посвящено не только секретам успешного начала карьеры, но и последующим ее этапам, а также тому, как добиться максимально возможного успеха. На моем YouTube-канале я читаю тысячи комментариев, написанных разработчиками – молодыми и не очень, опытными и «зелеными», мужчинами и женщинами – в общем, самыми разными людьми из самых разных уголков мира, которые, помимо тем, имеющих прямое отношение к разработке ПО, интересуются и другими вопросами, связанными с этой сферой, не менее важными, чем создание кода.
.....
А теперь представьте, что ваша цель заключается в создании базы данных всех фильмов, имеющихся в вашей коллекции. А также представьте, что вы хотите уметь делать запросы к этой базе, добавлять в нее новые фильмы, удалять старые, обновлять названия и т. д. А если вы захотите создать приложение, чтобы с его помощью упростить работу с базой данных?
Представили? Поздравляю, у вас появилась цель! Так, и что дальше? Как подойти к изучению темы реляционных баз данных? А вот теперь вы можете смело открывать книгу по теме или просмотреть соответствующие видеоуроки, чтобы найти информацию, необходимую для реализации вашей идеи. И вот теперь вы будете заняты созданием реального продукта, а не просто выполнением какого-то абстрактного тестового задания.
.....