Найти в Дзене
Mad Devs

Программист. Образование. Опыт

Этот пост посвящается всем тем, кто хочет научится программировать. Кто не знает где набираться опыта на старте. Что изучать и куда идти.
Сначала я хочу сделать пару выводов об образовании.
Что даст мне универ?
Что даст универ:
Оглавление

Этот пост посвящается всем тем, кто хочет научится программировать. Кто не знает где набираться опыта на старте. Что изучать и куда идти.

Сначала я хочу сделать пару выводов об образовании.

Что даст мне универ?

Что даст универ:

  • Протертые джинсы
  • Навык выполнения квеста: “Найди преподавателя”
  • Умение пользоваться вордом, MS access.
  • Возможно, программировать на C/Java

Хотя, если ты не знаешь, что такое самообразование, то может быть там тебя этому научат.

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

Нужен ли диплом?

Диплом нужен только в двух случаях.

  • Миграция в другую страну. Хотя в Германии диплом можно заменить стажем в 5 лет. А в Штаты насколько я знаю 7 лет. А с новым законом Трампа, мигрировать в штаты стало вообще изи без диплома, если у тебя зпшечка от 100к в год
  • Работа в гос органах.

В остальных случаях больше имеет вес:

  • Профиль на Linkedin
  • Опыт работы
  • Проекты на Github
  • Профиль на Stackoverflow

Братан! А математика! Математика нужна же!

Опять же. Смотря для чего.

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

Потребность в математике появляется тогда, когда ты хочешь

  • Читать графики мониторинга
  • Делать свои графики для мониторинга
  • Работаешь в гейм деве. (Хотя, говорят, сейчас можно и без математики игры херачить)
  • Тебе нравится математика и алгоритмы и ты хочешь развиваться в этом направлении

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

Ок, а где почитать про алгоритмы?

Читать — одно. Главное — применять их. Можно прочитать всего Кнута и Кормена, и не уметь написать обычную, банальную сортировку. Главное — понимание, где и как применить. Плюс практика. Прочитал про алгоритм -> закодил -> понял, где можно применить -> отложил в памяти.

А что еще изучать стоит?

Изучать стоит ТОЛЬКО базис. Компьютерные сети, Операционные системы, устойство компьютера, алгоритмы. Список литературы к изучению

  • Таненбаум — Компьютерные сети. Эта книга даст понимание об устройстве компьютерных сетей, а если еще понимать, что происходит в tcpdump или в дампе вайршарка — отлично.
  • Thomas H. Cormen — Introduction to Algorithms. Книга по алгоритмам, наверное лучшее, что есть после Кнута.
  • Таненбаум — Архитектура Компьютера даст понимание разницы между десктопом и сервером. А также о всех уровнях, которые могут встретится тебе в изучении.
  • Jon Bentley — Programming Pearls. Еще одна хорошая книга по алгоритмам.
  • ICND первый и второй том. Хорошая литература для подготовки к сертификации CCNA в году так 2010м. Как сейчас готовиться — не знаю. Да и CCNA я никогда не сдавал.

Но я же хочу программировать на %LANGUAGE_NAME%, зачем мне все это?

А затем, чтобы ты не был говнарем, а был со временем бородатым дядей, который знает, почему и как его код работает. Или не работает. Чтобы ты смог продиагностировать, где у тебя проблема. В коде или в настройках какого-то сервиса на сервере под определенной ОС.

Понял, но как мне начать и где брать опыт?

Начать — легко. Главное — делать это постоянно. Вообще тут есть три варианта:

  • Херачишь фриланс, не развиваешь свой мозг, учишь фреймворки и лечишь симптомы. При этом, занимайся еще не технической деятельностью. Устройся продажником куда-нибудь. Или ПМом. Или маркетологом. Открой свой бизнес… И тогда тебе конец через 1–4 года.
  • Уделяй в универе время математике и алгоритмам. Контрибуть в опенсорц. После выпуска пытайся трудоустроится. Занимайся построением фундамента: ОС, алгоритмы, БД, кеширование, масштабирование, сети. Стараешься тусить и общаться с людьми, которые умнее тебя. Тогда в развитии ты будешь постоянно на волне.
  • Забиваешь на все, идешь стажером к хорошему лиду. Продаешь себя к нему в рабство на полгода-год и еще 2–3 года работаешь с ним. Получишь реальные текущие навыки и знания.

Во втором и третьем пункте без стажировки может и не обойтись

Ок, но я хочу учиться и быть стажером.

Хорошо. Допустим ты нашел хорошего тимлида, который готов взять тебя стажером. Но что ты можешь предложить ему, учитывая, что ты сейчас еще личинка личинки программиста? Сейчас ты не клевый и ты ничего не умеешь и обучение тебя — это трата времени и мозговых ресурсов тимлида. Это инвестиции. А любые инвестиции должны окупаться. Поэтому нет смысла в летних стажировках, стажировках на полшишечки и прочих не фултаймовых вещах. По опыту скажу, что из человека с улицы, слабого джуниора можно вырастить где-то за полгода. По достижению уровня джуна, ты сможешь рассчитывать на 200–400 зеленых за свои потуги.

Ух, много текста. А можно как-нибудь в кратце?

Да.

  • Пиши код
  • Учи базу
  • Спи
  • Повторяй

По поводу литературы выше. Ее полезно читать на всех уровнях.

  • Читаешь, когда ты джун
  • Читаешь, когда ты миддл
  • Читаешь, когда ты сеньер

Если делать так, то с каждым прочтением, ты будешь все больше получать понимание материала и структурировать его.

На этом все. Если есть вопросы — велкам в комментарии.

И напоследок видео с митапа об образовании

Удачи тебе, падаван, в твоих начинаниях!

Ранее статья была опубликована тут.