Dream on Python

Posts About Python & Programming

Bootcamps & Job search

Реально ли зайти в IT программистом с нуля?

Коротко: можно, но невероятно сложно.

Мне встречались ребята, которые не имели университетских дипломов, но смогли самостоятельно стали software engineers и успешно продвинулись в карьере. Были такие, кто брал годичные/полуторагодичные курсы по программированию, или шестимесячные coding bootcamps.

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

Все эти ребята, после опыта 5-10 лет в индустрии, становились “first-class engineers” (ага, так любят декларировать некоторые компании, что они нанимают только таких!). Но тут уж я пишу своё мнение, они действительно стали очень сильными программистами, во многом обогнав “стандартных” с дипломами.

Это не значит, что колледж или курсы — для лохов!

Нет, тут работает “ошибка выжившего”. Мы видим крутых self-taught (самоучек), которые реально преуспели, но их единицы, в сравнении, с теми, кто купил книжку “Java for Beginners” и не продвинулся далее первой странички, кто брал курсы и не делал домашки и бросил, кто окончил курсы, но не прошёл resume screening или провалился на собеседовании и т.д. Мы их всех не видим! Они просто “не выжили”. Остались только самые упертые, самородки, ну и там какие-то везунчики (куда ж без них?!).

Те кто прям с нуля — вам нужно сделать следующее:

Coding

Выучить технологии, 1-2 языка программирования, освоить фундаментальные знания по CS.

Под “выучить”, я имею в виду, не просто посмотреть видосики или книжку почитать, этого мало, вы должны все знания пропустить через себя, написав кучу строк кода на programming language of your choice. Вы должны реально кодить. Решать задачи, есть платформы для тренировок.

Если хотите, можно оценить по минимуму: скажем вам нужно прорешать 1000 задач на программирование. Каждая задача потребует 10 строк кода. Чтобы решить задачу и написать работающий код, проверить, выучить материал, вам нужны, скажем 3 часа и ещё 50 строк кода (экспериментировать).

Итого, вам нужно 3 тыс. часов обучения и 50 тыс. строк кода. Это уже год обучения, по 10 часов в день!

Без 1000 решённых задач, вы НЕ пройдёте большинство coding interview. Даже программисты с опытом проваливаются. Нужна практика, нужно время и упорство.

На платформе Leetcode доступны 2700 задач (Easy: 700, Medium: 1500, Hard: 600). Программисты там зависают месяцами, чтобы подготовиться к собеседованию.

Более новая платформа (наверное подойдёт тем, кто вообще с нуля): Codewars (там 7 уровней сложности).

Programming languages

Для начинающих:

Имхо, дизайн у Python лучше, чем у JS. Но если вам очень хочется front-end, то без JS никак. Пока решаете задачи, сохраняйте ваши решения в GitHub. Потенциальный работодатель ознакомится и это повысит уверенность, что на собеседовании, вы что-то путное решите. Больше шансов, что позовут.

Projects

Ещё вам нужны проекты, 2-3, так чтобы был и front-end и backend, что-то там в WEB с картинками, а значит нужен HTML, CSS, JS в минимальном объёме. Но также нужно показать, что умеете хранить данные (“магазин товаров”, “клиенты”, “продукты”, и т.д.), значит нужны и базы данных: SQL, NoSQL. Тоже хоть в минимальном объёме. Но это тоже нужно. Для SQL есть Leetcode.

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

Нужно это где-то всё повесить, чтобы бежало, и что б показать, а значит нужен Cloud (один из: AWS, Google Cloud, Azure), контейнеры (Docker), код хранить в GitHub и Git, строить проекты из кода как-то, тесты и документация — обязательны.

Скажем один проект: 2,000-5,000 строк кода, там у вас будет Python, JS, HTML, CSS, SQL, и т.д.

Вам нужно 2-3 таких, над каждым месяц-два работы.

Тут вам может помочь ChatGPT, какой-то код он может вам написать, но за вами интеграция, допиливание, тестирование и т.д.

Tech blog

Заведите такой, например, в GitHub. Начинайте с простых постов: “сегодня выучил list и tuple в Python, вот как они отличаются”. Начните с 5-10 строчек. Пишите раз-два в неделю. Через год у вас будут крутые посты и крутой tech blog (гарантирую!)

Курсы или самому всё это учить?

То что вам удобнее, может найдите себе ментора.

Но этот минимум (выше) вам придётся пройти. Вам придётся написать тысячи строк кода, прочитать и выучить кучу материала, создать и оформить проекты! Вам это всё нужно сделать!

Если ментор напишет за вас проект, или вы код где-то “позаимствуете”, это всё всплывёт на собеседовании. Будет провал. Курсы и менторы не заменят вашей упорной работы. Но могут сделать этот путь чуть более прямолинейным и чуток более комфортным.

Попасть в программисты — это трудный путь, много работы и усердия. Думайте трижды, если вам это нужно, но если решились, то упорства вам и удачи!


Coding Bootcamp: App Academy

Перед началом основных курсов, можно взять подготовительные 4-х недельные курсы, которые идут в двух вариантах: online и live. Если после подготовительных курсов студент не поступает на основной курс (bootcamp), они обещают вернуть деньги. На подготовительном курсе изучают основы JavaScript.

Курсы интенсивной подготовки

App Academy позволяет оплатить всю сумму (lump sum) или же отодвинуть основную оплату на момент, когда студент находит работу с доходом $50,000+. Отсроченные выплаты требуют депозита в $3,000, также нужно иметь в виду, что суммарно такой вариант выходит дороже.

Предлагаются три программы (все online):

16-недель

24-недели

48-недель (part-time)

На всех трёх курсах студенты изучают JavaScript, ну это и понятно, ведь он используется для построения клиентской части аппликаций (front-end). Для разработки серверной части (backend), первый курс использует Ruby как самую простую платформу, а два других курса: JavaScript и Python.


Термины, которые можно встретить в Job Descriptions

Front-end технологии:

Front-end концепции:

JS front-end технологии:

Backend технологии

Языки программирования:

Платформы:

Базы данных:

Специальные текстовые форматы:

Инфраструктура

Виртуализация, контейнеризация, Cloud:

Source Control, Build System, CI/CD: