Статьи

Как вкатиться в IT?

Надеюсь, не обидится на меня одна прекрасная дама, история которой легла в основу этого поста. Нынче айти – это тренд, все говорят по высокие з/п в IT (подскажите плиз еще куда жаловаться? а то что-то я их не замечаю), разного рода курсы плодятся ежедневно, Skillbox, по-моему, выкупил весь интернет под свою рекламу. Ну и конечно же растет число желающих, которые хотят вкатиться в IT, ищут с чего начать и какие курсы выбрать.

Так вот, один из таких курсов – особенный, он «не для всех» – для того, чтобы на него попасть нужно выполнить тестовое задание. И что-то мне подсказывает, что курса-то не существует, т.к. выполнить это задание невозможно – от нас требуют получить HTTP-заголовок и при необходимости обработать ошибку (4хх) с помощью обычной HTML-формы, про использование JS, конечно же, ни слова. И всё это для получения доступа к курсу ознакомительного уровня. Естественно, решить такую задачу невозможно, т.к. без использования JS, отправка HTML-формы попросту перенесет нас на страницу отправки запроса, которая была указана в тестовом задании и доступа к редактированию которой у нас нет.

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

1. Я негативно отношусь к курсам, особенно начального уровня, т.к. зачастую на них рассказывают о конкретных инструментах разработки, а обучение проводится на конкретных примерах. В итоге мы получаем армию программистов, которые умеют делать «свой сервис заметок» (привет, Skillbox) и впадают в ступор на первом же реальном проекте.

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

2. 90% знаний, которые дают на курсах – не нужны. Тебя будут обучать процедурам и функциям, будут давать примеры конструкций, а ты (по привычке со школы/института) будешь всё это зубрить. Хотя, с точки зрения реальных проектов – это бесполезная информация. Ты всегда можешь загуглить описание той или иной функции и по первой же ссылке получить документацию к ней. Хотя, даже название функций помнить не обязательно – сформулируй четко, что ты хочешь сделать, добавь название ЯП или фреймворка в запрос и иди в Google – индусы со Stack Overflow уже ответили на все вопросы, которые у тебя только могут возникнуть.

В общем, как ты понял, основной навык разработчика – это умение гуглёжки.

3. Лучший стимул для прокачки навыков разработчика – это решение реальных задач. Особенно, когда под рукой нет каких-то готовых примеров или не к кому обратиться за помощью. Ты остаешься один на один с проблемой, которую необходимо решить в ограниченный срок. Ты начинаешь неистово гуглить, перебирать разные варианты запросов, копировать и пытаться переделать под себя десятки чужих примеров. И когда ты как доктор Франкенштейн воскликнешь «оно живое», ты поймешь, что получил огромный опыт, превышающий сразу несколько курсов вместе взятых.

4. Ровно как Google, официальная документация языка/фреймворка/библиотеки – лучший друг разработчика. На вопрос «с чего начать изучать» – единственно верный ответ это «главу «Введение» из официальной документации». Дальше (когда начнутся описания конкретных процедур или функций) – можно не читать, все равно не запомнишь.

Еще одним из самых популярных вопросов среди желающих вкатиться в ebanoe является «а какую профессию выбрать» или «в чем лучше специализироваться». Ответ – во всём. Не бывает крутых frontend или backend-разработчиков, которые изучали лишь эту предметную область. Устроишься ты frontend-разрабом, не имея ни малейшего опыта в бэкэнде – дак тебя палками пиздить будут твои же коллеги за очевидные косяки.

В первую очередь нужно научиться раскладывать каждую сложную задачу на мелкие простые подзадачи, получить базовые навыки как разрабатываются приложения, сайты, сервисы. Попробовать своими руками создать из ничего полноценный работоспособный продукт (пусть даже очень небольшой), а специализация начнется уже после, причем естественным путем, какие-то задачи тебе будут даваться сложнее, какие-то легче, и ты сам спустя время сможешь заявить, что является твоим основным профилем. При этом, при необходимости, хороший разработчик, всегда может запросто переобуться в воздухе и из backend переметнутся в devops, или в мобильную разработку.

Важен базис, специализация не столь важна.

С чего начать? Поставь себе небольшую цель – сделать себе хоумпейдж, написать своё приложение заметок, что угодно. Я в своё время начинал с копирования и изменения чужих сайтов. Если с фантазией всё плохо – зайди на fl.ru и в разделе «Разработка» поищи заказы на 5-10 тыс. Не обязательно за них браться, их можно использовать в качестве реальных примеров задач.

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

Может заинтересовать

Популярное