День второй

Что нового я узнала за 1,5 дня изучения программирования

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

Как я говорила, я начала с самого простого — бесплатного курса “Жизнь программиста” на Hexlet. Он дает понять о том, чем вообще занимается программист, какие направления можно выбрать и как много времени уйдет на обучение. Я для себя, например, узнала что на сам кодинг уходит около 10–20% рабочего времени, а остальное время посвящено обдумыванию и поиску нужного решения. Чем профессиональнее программист, тем меньше строчек кода он пишет за день. И да, программистом невозможно стать быстрее чем за 3 месяца :(

В курсе очень поверхностно рассказали о направлениях в IT, думаю этого не хватит на осознанный выбор профессии. Например, нет конкретных данных о популярности того или иного языка, перспективности различных областей — этот выбор ложится на самих обучающихся. Наверное, это правильно. Также развеиваются многие страхи по поводу начала обучения, такие как “я слишком стар”, “я не знаю математику”, “я чувствую себя глупым”, и так далее. На самом деле, самое важное — это желание стать программистом и интерес к этой сфере, без этого никак.

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

Логическое мышление

  • математика
  • задачи braingames
  • алгоритмы

Математическая подготовка

  • теория множеств
  • логика
  • дискретная математика
  • лямбда исчисление

Информатика

  • системы счисления
  • структуры данных
  • алгоритмы

Парадигмы

  • императивное программирование
  • функциональное (декларативное) программирование
  • логическое программирование

Железо

  • архитектура компьютера

Софт

  • операционные системы
  • сети и протоколы
  • базы данных
  • компиляторы и интерпретаторы

Другое

  • владение командной строкой
  • системы контроля версий
  • автоматизированное тестирование
  • управление конфигурацией

По-моему, это очень внушительный список! Но не стоит пугаться, ведь программистом можно стать и без знания этих вещей, и с другой стороны — их знание не делает из вас программиста. Из всего вышеперечисленного мне очень часто приходилось слышать про алгоритмы, структуры данных и computer science. Также в работе очень помогает знание фреймворков — готовые решения для типичных задач веб-разработки

После этого я перешла к курсу “Введение в веб-разработку” — и, надо отметить, это действительно только введение и поверхностный обзор html, css, backend и frontend разработки. За более подробными знаниями, особенно что касается верстки, нужно обращаться к другим ресурсам, например Webrefence, сайт для интерактивного обучения CSS и еще один сайт для одновременного изучения HTML и CSS. Обещаю их посмотреть, но основную ставку я все же делаю на курс от htmlacademy.

Также я случайно обнаружила видеокурс “Введение в программирование” от Hexlet, где все представлено в виде мультфильма! Ставлю его тоже в очередь.

Интересно было узнать не только об абстрактных знаниях, которые помогут вам стать крутым специалистом, но и о конкретных технологиях и явлениях, без которых вас просто не возьмут на работу. Например:

Фронтенд

  • HTML
  • CSS
  • JavaScript

Софт

  • Популярные веб-сервера и их принципы работы
  • Git и системы контроля версий в принципе
  • SSH (+ работа с ключами)

Операционные системы

  • Уверенное владение командной строкой Linux
  • Базовое администрирование Linux
  • Процессы/Потоки
  • Сеть

Сеть (на собеседованиях часто задают вопрос: что происходит после того, как вы нажимаете enter в поле с введенным адресом)

  • HTTP
  • DNS
  • TCP/IP

Кстати выяснилось, что самым простым способом попасть в мир веб-разработки является устроиться на работу тестировщиком либо верстальщиком. Да, к сожалению, это действительно так. К сожалению — потому что изначально меня очень заинтересовала сфера мобильной разработки, но даже в Москве я не нашла вакансий для джуниоров. Единственный шанс — это устроиться стажером в крупные компании типа Яндекса или Mail.ru, где готовы вкладывать деньги в обучение молодых специалистов. Но не знаю как вы — я бы не хотела, чтобы моя карьера целиком зависела от пары крупных компаний, в которые к тому же нелегко попасть.

Итак, на этом я заканчиваю сегодняшнее обучение. Завтра планирую наконец-то приступить к написанию самого кода на курсе htmlacademy. Удачи всем!