# Саммари книги «Карьера в IT. Как найти работу, прокачать навыки и стать крутым разработчиком»

Коллектив авторов

Программист и автор книг по работе в IT-сфере Джон Сонмез собирает исчерпывающий гид по карьере разработчика для новичков и специалистов с опытом. Узнайте, как зайти в IT, какие навыки необходимы, что поможет пройти собеседование, как оставаться в курсе технологических новинок и получить повышение. Собрали краткие ответы на самые главные вопросы будущих «джунов» и «мидлов».

Саммари книги «Карьера в IT» подготовлено совместно с проектом MakeRight. Читайте ключевые идеи бестселлеров и выбирайте лучшее в мире книг!

© Оформление. ООО «Издательство Эксмо», 2023


Книга Джона Сонмеза – подробный путеводитель для тех, кто стремится к карьере в области IT. Автор рассказывает не только о развитии необходимых технических навыков, но и дает советы по управлению карьерой и организации обучения. Основная цель книги – помочь начинающим специалистам в планировании карьеры, а также восполнить недостаток знаний у тех, кто уже работает в этой сфере.

## Лучше неидеальный план, чем его отсутствие

Зачастую наиболее сложный этап карьеры в области разработки программного обеспечения – ее начало. Люди склонны тратить много времени на планирование, но затрудняются сделать что-то конкретное. Первый шаг – самый важный, его следует сделать, даже если план далек от совершенства. Чтобы стать хорошим программистом, не обязательно быть гением. Все начинают с трудностей и неудачных экспериментов. Секрет в том, чтобы просто продолжать экспериментировать.


Разработка программного обеспечения (ПО) включает в себя не только программирование, но и поиск способов автоматизации рутинных задач. Разработка ПО – процесс более широкий, чем просто написание кода. Прежде чем автоматизировать что-либо, необходимо уметь делать это вручную. Разработчику важно понимать проблему, которую его программа будет решать.


Когда суть проблемы понятна, следует создать предварительный вариант решения в виде кода. Этап проектирования подобен созданию чертежа в строительстве.


После проектирования можно начинать писать код. Можно либо создать тесты, описывающие поведение приложения (TDD – разработка через тестирование), либо начать программирование напрямую.


За написанием кода следует его тестирование. В зависимости от применяемой методологии, тестирование может происходить на разных этапах разработки.


Этап развертывания включает установку ПО на сервер, загрузку в магазин приложений и организацию других способов доступа для пользователей. Этот этап также может включать сохранение кода в репозитории исходного кода, а также обновление баз данных и непрерывную интеграцию.


Разработка программного обеспечения – это гораздо больше, чем просто написание кода. Большую часть времени разработчика занимает отладка (поиск и исправление ошибок).


Создание плана начинается с определения цели и пути к ней. Важно честно оценить свой текущий уровень и определить, чего вы хотите достичь, какая сфера разработки ПО вам наиболее интересна.


Определите желаемые навыки и способы их приобретения. Затем стоит изучить требования к желаемой должности и разработать план устройства на работу. Составление конкретного плана и его последующее совершенствование поможет вам следовать своей цели и развиваться.

## Гибкие навыки важны, но технические навыки играют главную роль в успехе специалиста в области IT

Какими основными техническими навыками должен обладать специалист:

•— Знать хотя бы один язык программирования.

•— Разбираться в тонкостях выбранного языка, чтобы уверенно читать и писать код.

•— Глубоко понимать алгоритмы, структуры данных и основы компьютерных наук.


Необходимо освоить один язык так, чтобы он стал инструментом для решения разнообразных задач. Лучше сосредоточиться на одной области разработки и связанном с ней языке.


После изучения языка программирования важно научиться структурировать код. Разработчики часто пренебрегают этим навыком, но он важен для демонстрации компетентности.


Еще один навык – объектно-ориентированное проектирование (ООП). ООП разбивает код на классы и объекты и позволяет создавать сложные системы, объединяя взаимодействующие компоненты. Несмотря на появление функционального программирования, ООП остается популярным и востребованным. ООП лежит в основе многих языков и шаблонов проектирования. Понимание концепций классов, наследования, полиморфизма и инкапсуляции важно для успешной работы с ООП.


При обучении программированию и компьютерным наукам в университете или на курсах вы будете изучать алгоритмы и структуры данных. Алгоритмы – это методы решения задач программирования. Понимание алгоритмов позволяет эффективно решать сложные задачи и дает конкурентное преимущество. Структуры данных тоже важны. Они включают массивы, связанные списки, стеки, очереди, деревья, хеши и наборы. Алгоритмы и структуры данных упрощают решение задач и оптимизируют процессы. Хорошие навыки в этих областях значительно улучшают производительность и качество программирования.


Для успешной карьеры программиста важен опыт работы с платформой разработки и связанными технологиями. Платформа разработки – это среда, в которой создается программное обеспечение. Выбор платформы зависит от интересов и специализации. Знание инструментов, фреймворков и шаблонов для выбранной платформы помогает успешно разрабатывать программы и повышает привлекательность специалиста для работодателей.


Для успешной разработки программного обеспечения, помимо языка программирования и платформы, автор рекомендует изучить соответствующий фреймворк и полный стек разработки. Фреймворк – это набор библиотек, упрощающих решение задач программирования на определенной платформе. Стек – это набор технологий, обычно включающий в себя фреймворки. Он используется для создания приложения целиком.