Карьера
FriFlex

Какие навыки необходимы для старта карьеры в ИТ. Книги для айтишников

Нас часто спрашивают, что нужно знать для старта карьеры в ИТ на позиции Junior. С чего начать?

Мы считаем, что Junior должен иметь один или несколько учебных проектов на своем фреймворке / языке программирования. Помимо этого нужен базовый набор знаний. Собрали гайд по обязательным (субъективно от FriFlex) знаниям, необходимым для уровня Junior, и список книг, которые советуем почитать.

Дополняйте в комментариях 🤓

Junior-разработчик — начальный уровень IT-специалиста. В разных компаниях требования к соискателям на позицию Junior разные. Можно быть в одной компании Middle, а в другую не попасть и на позицию Junior. Но ведь нужно с чего-то начинать свой профессиональный путь!

«Мы в FriFlex развиваем менторство и практику стажировок. Причем на стажировки берем не для решения задач, а для обучения и совместного роста. По итогам прохождения стажировки, приглашаем на работу. Группе стажеров у нас назначается ментор, который ставит задачи, обучает в процессе их решения».

Петр Чернышев
CEO FriFlex

Базовые знания / навыки для Junior

  1. Логическое мышление. Это мыслительный процесс, при котором человек использует логические понятия и конструкции.

  2. Базовый английский и умение гуглить – чтобы хотя бы с переводчиком смотреть stackoverflow 😀
  3. Базовое понимание, как устроен интернет (DNS, TCP/IP), что такое web-сервер, какой путь делает запрос браузера от пользователя до получения ответа. Здесь достаточно общего представления, не спускаясь глубоко на аппаратный уровень, с этим можно разобраться по YouTube и статьям самостоятельно.
  4. HTML/CSS (базовый уровень), DOM.
  5. Базовый JavaScript (основы синтаксиса, взаимодействие с браузерными событиями).
  6. Git. Cтандарт де-факто для системы контроля версий репозиториев программного кода.
  7. Базовое понимание, что такое Клиент-серверная архитектура, основы ООП и понимание принципов MVC.
  8. Базовые структуры данных. Понимание того, что такое такое массивы, хэш, хэш-функции, деревья.
  9. Базовые алгоритмы и приемы. Например, «Бинарный поиск», рекурсия, пузырьковая сортировка, жадные алгоритмы.
  10. Представление о реляционных базах данных, SQL (желательно).
  11. Умение пользоваться консолью на своей ОС. На Linux (или на Unix, например, маках, основные команды будут одинаковыми), или WSL на Windows.

Soft skills, или гибкие навыки

Soft skills в переводе с английского — «гибкие навыки» или «мягкие навыки». Они не связаны со знанием предметной области, но влияют на профессиональную деятельность. Исследования в этой области начались в США примерно в 1960-е годы, а в бизнес-среду этот термин вошёл ещё позже, в конце 90-х.

В журнале ‘Higher Education in Europe’ ещё в 2008 году была опубликована статья, доказывающая, что гибкие навыки — неотъемлемая часть профессиональных компетенций.

Junior'у желательно обладать этими самыми soft-skills – они помогут быстрее развиваться в профессии, перенимать опыт коллег.

Важные качества – любопытство, мотивированность, навык чёткого формулирования вопроса, умение планировать работу, желание работать в команде, умение работать с большими объемами информации.

Описания вакансий на позиции Junior обычно схожи в области этих качеств сотрудника.

Книги для ИТ-специалиста, рекомендуем почитать

  • «Код. Тайный язык информатики», Ч. Петцгольд

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

«Код. Тайный язык информатики» Ч. Петцгольд
  • Чистый код, Р. Мартин

    В книге много реальных примеров, позволяющих взглянуть на код с разных сторон. Автор (признанный эксперт в области разработки) знакомит с принципами написания чистого кода, дает практические сценарии и упражнения по чистке кода. И в третьей части книги приводит набор правил, которые пригодятся на практике.

«Чистый код» Р.Мартин
  • «Идеальный программист. Как стать профессионалом разработки ПО», Р.Мартин

    Эта книга – о профессиональном подходе к процессу разработки.

    Автор рассказывает о том, что значит «быть профессиональным программистом», описывая методы, инструменты и подходы для разработки «идеального ПО». Тут много практических советов в отношении всех аспектов программирования: от оценки проекта и написания кода до рефакторинга и тестирования.

«Идеальный программист. Как стать профессионалом разработки ПО» Р.Мартин
  • «Грокаем алгоритмы», Иллюстрированное пособие для программистов и любопытствующих, А.Бхаргава

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

    В книге «Грокаем алгоритмы» нет полноты и разнообразия алгоритмов, как например, в книгах Томаса Кормена «Алгоритмы. Построение и анализ» или Рода Стивенсона «Алгоритмы. Теория и практическое применение», но как раз в этом её прелесть. Приведены основные структуры данных и алгоритмы, подробно и доходчиво расписаны и даже проиллюстрированы прекрасными примерами. Книга подойдет начинающим (не обязательно «математического склада ума»), так и разработчикам со стажем, которые хотят освежить в памяти основы, которые забылись.
«Грокаем алгоритмы» А.Бхаргава
  • PostgreSQL. Основы языка SQL, Е. П. Моргунов

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

«PostgreSQL. Основы языка SQL» Е. П. Моргунов

Как и сама градация junior/middle/senior, приведенный здесь набор знаний и навыков – не абсолютная истина, пишите в комментариях ваше видение.

{ "author_name": "FriFlex", "author_type": "editor", "tags": [], "comments": 21, "likes": 39, "favorites": 327, "is_advertisement": false, "subsite_label": "hr", "id": 200454, "is_wide": false, "is_ugc": false, "date": "Mon, 25 Jan 2021 20:13:03 +0300", "is_special": false }
0
21 комментарий
Популярные
По порядку
Написать комментарий...
13

В один день в этом мире станет на 37 программистов больше. Но не сегодня

Ответить

Философский месяц

Тарас
2

Что мы говорим вайтишникам: не сегодня!

Ответить
7

требования на джуна - все что выдавил из себя сеньор писавший эти требования, нужно ввести новый термин  «кофейная глупость», это когда кто-то упорется чашкой кофе и в порыве максимального ЧСВ и летания в облаках  напишет вот такое оторванное от реальности чтиво

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

Ответить
8

«чистый код» джуну как рыбе зонтик

Ответить
4

Автор спасибо за материал, добавил в закладки. Книжки в очередь на чтение.

Гуру-программисты-критиканы — пишите свои "правильные" статьи, а мы придем их почитать ;)

Ответить
4

Какое мягкое "сперва добейся" получилось

Ответить
0

Название статьи некорректно. Из названия следует, что предлагаемые навыки общие для всех Junior разработчиков, а по факту они для Junior web-разработчиков 🙂 понятное дело, что много знаний не бывает, и хорошо бы знать все, но память не резиновая и время тоже, потому начинающие разработчики стремятся освоить необходимый, но все же минимум 🙂
Понятное дело, можно рассуждать так: "Ну, я начинающий Х разработчик, в Х мне не надо SQL, потому эту книгу отложим.." - но по поводу всего остального тогда закрадываются сомнения, а нужно ли и это? Начинающий разработчик не имеет достаточно опыта, чтобы оценить важность того или иного материала самостоятельно. По факту статью можно рассматривать как стартовую информацию именно для веб-разработчика и бесполезную для других.
В общем, думаю, что статью писал человек, никак с разработкой не связанный, а информацию собирал в рабочем чатике в стиле "а накидайте советов для джуниоров" 😄

Ответить
4

за исключением html/js ничего веб-специфичного тут нету

Ответить
2

Ок, разработчик С для встраиваемых систем: зачем клиент-серверная архитектура, MVC, SQL?
Ну или мобильный разработчик - зачем TCP/IP и то, какой путь запрос в браузере делает? Это все nice to have, не более. И в каждой области будут требовать что-то свое специфичное, без чего 90% интервьюеров поставят на кандидате крест: после третьего десятка кандидатов уже сложно пытаться искать индивидуальные преимущества в кандидате. Ну и на интервью время ограничено, и в каждой области есть куча специфики, которую стараются смотреть в первую очередь, чтобы тратить время на что-то нехарактераное.

Ответить
1

 Ну или мобильный разработчик - зачем TCP/IP и то, какой путь запрос в браузере делает?

Зачем вы так мобильных разработчиков то обижаете? Им то может и пригодится, в отличии от фронтенда, на мобиле можно и свой протокол поверх udp сделать.

Ответить
0

Будет этим Junior заниматься? Можно и троллейбус из буханки сделать..

Ответить
1

Вобще джуниору неплохо почитать как сеть работает, как операционная система устроена. А когда это читать?  Когда задача появилась? А сеньер про сокеты и порты нихрена не знает, всю жизнь каким-то OkHttp гонял rest запросы, верстал экраны и имел уважение. Сеньер тоже может никогда не писать свои протоколы, он может готовую реализацию взять, но ему надо знать, что есть что-то кроме http.
Нужно хорошу учить джунов, чтобы с сеньерами проблем не было. Нужна общая техническая эрудиция, а то у нас требования к джунам, если крестиком умеет расписываться, то норм.

Ответить
1

для общего развития. и на интервью это также можно проверить: идеальный кандидат глубоко знает свою область и поверхностно - все остальные

Ответить
1

Забыли написать, что нужно прочитать книжку по выбранной технологии/языку

Ответить
0

В превью к статье немного про это указали:

«Мы считаем, что Junior должен иметь один или несколько учебных проектов на своем фреймворке / языке программирования»

Ответить
1

ИТ специалист != разработчик. А статья только про программеров

Ответить
1

За подборку книг отдельное спасибо 🙏

Ответить
0

Макконнелл совершенный код, или это уже не модно?

Ответить

Необыкновенный бас

алекс
0

джуниор такое не осилит)

Ответить
0

Не все джуны только вебом занимаются

Ответить
0

Согласны. Половина книг и навыков не про веб)

Ответить

Комментарии

null