Какие навыки необходимы для старта карьеры в ИТ. Книги для айтишников
Нас часто спрашивают, что нужно знать для старта карьеры в ИТ на позиции Junior. С чего начать?
Мы считаем, что Junior должен иметь один или несколько учебных проектов на своем фреймворке / языке программирования. Помимо этого нужен базовый набор знаний. Собрали гайд по обязательным (субъективно от FriFlex) знаниям, необходимым для уровня Junior, и список книг, которые советуем почитать.
Дополняйте в комментариях 🤓
Junior-разработчик — начальный уровень IT-специалиста. В разных компаниях требования к соискателям на позицию Junior разные. Можно быть в одной компании Middle, а в другую не попасть и на позицию Junior. Но ведь нужно с чего-то начинать свой профессиональный путь!
«Мы в FriFlex развиваем менторство и практику стажировок. Причем на стажировки берем не для решения задач, а для обучения и совместного роста. По итогам прохождения стажировки, приглашаем на работу. Группе стажеров у нас назначается ментор, который ставит задачи, обучает в процессе их решения».
Базовые знания / навыки для Junior
Логическое мышление. Это мыслительный процесс, при котором человек использует логические понятия и конструкции.
- Базовый английский и умение гуглить – чтобы хотя бы с переводчиком смотреть stackoverflow 😀
- Базовое понимание, как устроен интернет (DNS, TCP/IP), что такое web-сервер, какой путь делает запрос браузера от пользователя до получения ответа. Здесь достаточно общего представления, не спускаясь глубоко на аппаратный уровень, с этим можно разобраться по YouTube и статьям самостоятельно.
- HTML/CSS (базовый уровень), DOM.
- Базовый JavaScript (основы синтаксиса, взаимодействие с браузерными событиями).
- Git. Cтандарт де-факто для системы контроля версий репозиториев программного кода.
- Базовое понимание, что такое Клиент-серверная архитектура, основы ООП и понимание принципов MVC.
- Базовые структуры данных. Понимание того, что такое такое массивы, хэш, хэш-функции, деревья.
- Базовые алгоритмы и приемы. Например, «Бинарный поиск», рекурсия, пузырьковая сортировка, жадные алгоритмы.
- Представление о реляционных базах данных, SQL (желательно).
- Умение пользоваться консолью на своей ОС. На Linux (или на Unix, например, маках, основные команды будут одинаковыми), или WSL на Windows.
Soft skills, или гибкие навыки
Soft skills в переводе с английского — «гибкие навыки» или «мягкие навыки». Они не связаны со знанием предметной области, но влияют на профессиональную деятельность. Исследования в этой области начались в США примерно в 1960-е годы, а в бизнес-среду этот термин вошёл ещё позже, в конце 90-х.
В журнале ‘Higher Education in Europe’ ещё в 2008 году была опубликована статья, доказывающая, что гибкие навыки — неотъемлемая часть профессиональных компетенций.
Junior'у желательно обладать этими самыми soft-skills – они помогут быстрее развиваться в профессии, перенимать опыт коллег.
Важные качества – любопытство, мотивированность, навык чёткого формулирования вопроса, умение планировать работу, желание работать в команде, умение работать с большими объемами информации.
Описания вакансий на позиции Junior обычно схожи в области этих качеств сотрудника.
Книги для ИТ-специалиста, рекомендуем почитать
«Код. Тайный язык информатики», Ч. Петцгольд
Эта книга должна увлечь и ответить на базовые вопросы об устройстве компьютера. Книга детально проиллюстрирована и написана понятным языком. Она дает реальный контекст для понимания современного мира ПК, цифровых медиа, интернета. Уровень технической подготовки перед прочтением книги не имеет значения.
Чистый код, Р. Мартин
В книге много реальных примеров, позволяющих взглянуть на код с разных сторон. Автор (признанный эксперт в области разработки) знакомит с принципами написания чистого кода, дает практические сценарии и упражнения по чистке кода. И в третьей части книги приводит набор правил, которые пригодятся на практике.
- «Идеальный программист. Как стать профессионалом разработки ПО», Р.Мартин
Эта книга – о профессиональном подходе к процессу разработки.
Автор рассказывает о том, что значит «быть профессиональным программистом», описывая методы, инструменты и подходы для разработки «идеального ПО». Тут много практических советов в отношении всех аспектов программирования: от оценки проекта и написания кода до рефакторинга и тестирования.
«Грокаем алгоритмы», Иллюстрированное пособие для программистов и любопытствующих, А.Бхаргава
Книга про основные, часто употребимые алгоритмы, подходы и структуры данных. Признаемся честно, нередко разработчики не знают или не помнят даже базовые алгоритмы. Да, большую часть времени в web-разработке или мобильной разработке вам даже не придется писать простой сортировки. Однако знание алгоритмов, оценка их скорости (сложности), владение структурами данных и, например, понимание плюсов и минусов использования массива, хеша или связанного списка повышают уровень разработчика.
В книге «Грокаем алгоритмы» нет полноты и разнообразия алгоритмов, как например, в книгах Томаса Кормена «Алгоритмы. Построение и анализ» или Рода Стивенсона «Алгоритмы. Теория и практическое применение», но как раз в этом её прелесть. Приведены основные структуры данных и алгоритмы, подробно и доходчиво расписаны и даже проиллюстрированы прекрасными примерами. Книга подойдет начинающим (не обязательно «математического склада ума»), так и разработчикам со стажем, которые хотят освежить в памяти основы, которые забылись.
PostgreSQL. Основы языка SQL, Е. П. Моргунов
SQL – это язык, предназначенный для создания приложений баз данных, реализации проектов баз данных и обеспечения доступа к информации. Книга помогает пошагово осваивать инструменты SQL и профессионально управлять базами данных. Много практических примеров и задач для проверки знаний.
Как и сама градация junior/middle/senior, приведенный здесь набор знаний и навыков – не абсолютная истина, пишите в комментариях ваше видение.