kiberbuddha

На Пикабу
Дата рождения: 11 ноября
3595 рейтинг 80 подписчиков 30 подписок 1 пост 1 в горячем
Награды:
5 лет на Пикабу
3474

Как войти в IT в 30+ лет и без профильного образования (и зачем)2

Я - разработчик серверной части. То есть тот человек, который нажимает кнопочки в правильном порядке, чтобы на серверах компании всё работало хорошо, а бизнес получал за это деньги. Это значит, что рассказывать я буду именно со стороны разработчика (а то посты от тестировщиков были, от аналитиков вроде бы тоже, а разработчики инфой делиться не торопятся).

Зачем?
Для меня это в первую очередь - прокачка мозга. В нашей профессии постоянно приходится учиться. Моменты, когда кажется, что знаешь достаточно, - просто недостижимы. Не важно, насколько ты крутой специалист, ты постоянно будешь осваивать новые инструменты и подходы. Кроме того, даже повседневная работа - штука творческая. Каждая задача по-своему уникальна, для каждой существует много способов решения, но только некоторые из них впоследствии не подожгут пятую точку тебе и коллегам =)

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

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

Что?

Для начала приведу список того, что нужно, по моему мнению, знать начинающему разработчику, прежде чем он станет хоть немного интересен работодателям.

  1. Язык программирования. Разница тут невелика, выбираем то, что нравится. Можно брать из топ20 самых популярных языков. Чем популярнее язык, тем больше готовых библиотек для него написано и тем больше можно найти обучающих материалов, но чем менее язык популярен, тем больше готовы платить тем, кто его использует. Чем легче язык (ниже порог вхождения), тем больше на нём будет некачественного кода, который тебе попадётся, а значит научиться языку будет проще, но научиться хорошо писать на нём окажется сложнее. Такой вот баланс =) Самый просто выбор у фронтэнд-разработчиков (это те, которые верстают веб-сайты и делают тот функционал, который обычно видит пользователь): им совершенно точно придётся учить JavaScript и TypeScript.

  2. Базы данных. Самое актуальное на данный момент в РФ - PostgreSQL. Тут минимально нужно понимать саму концепцию реляционных баз данных и уметь писать несложные запросы. А вот для желающих в серверную разработку требования повыше: понимание индексов, проектирование БД с нуля, представления, хранимые процедуры и умение запросом вытащить из БД нужные данные в нужном виде. Или наоборот положить их туда. Нет, это всё не так страшно, как звучит. В целом, все реляционные БД схожи между собой, так что зная PostgreSQL, переучиться на MS SQL, например, не составит большого труда.

  3. Веб. Для фронтэнда обязательно html+css. Можно ещё less/sass захватить, но на первое время можно и без него. Для остальных - базовые знания вёрстки, представление о том, как работает и из чего состоит протокол HTTP, умение работать с WebAPI и, пожалуй, понимание концепции REST API.

  4. Архитектура. Тут нужно умение писать слабо связные модули (хотя бы), понимание основ архитектуры современных приложений и владение несколькими шаблонами проектирования. Ну и внедрение зависимостей, без него теперь никуда.

  5. Работа в команде. Понятное дело, что во время самостоятельного обучения получить практику работы в команде будет непросто. Но можно хотя бы прочитать про современные методологии разработки (Scrum/Agile), проникнуться ими, может даже попытаться им следовать во время обучения, представив себя как единственного члена команды с множеством ролей.

  6. Git. Хотя бы на базовом уровне, но пользоваться этой штукой нужно уметь. А ещё лучше - понимать принципы работы.

  7. Всё остальное. ООП, SOLID, DRY, KISs и подобные базовые концепции разработки.

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

Как?

Базы данных. Читаем статьи по устройству, используем тренажёры для написания запросов. Самая простая часть, т.к. не самая объёмная и при достаточном упорстве проходится полностью автономно.

Веб. Для теории опять-таки, статьи. В качестве тренажёра выступает тот же самый браузер. Вообще, стараемся держать 20% теории - 80% практики.

Язык программирования. Теория тут не так страшна: в сети полно сайтов с документацией и примерами. ОЧЕНЬ ВАЖНО: при изучении теории всегда пытайтесь выяснить, как именно работает код. То есть требуется понимание, как именно это работает на уровне процессора/интерпретатора, почему именно так, а не иначе. В любом примере кода могут оказаться "тёмные" участки, когда понятно в целом, что происходит, но детали ускользают. Не допускай таких ускользающих деталей и программирование превратится в чёткий алгоритм, лишённый магии.
Я бы категорически советовал найти ментора, т.е. человека, который сможет посмотреть твоё решение и сказать, что именно ты сделал не так и почему так делать не нужно. Здесь важно именно умение внятно объяснить почему это не так, а не просто обосрать код или сослаться на "ну мы так не делаем". В идеале это должен быть действующий разработчик. Через время таковыми станут члены твоей команды, но на время обучения было бы неплохо тоже ментора отыскать. Нет возможности припрячь ментора? Воспользуйся нейросетью: об этом в конце статьи.

Архитектура. Слабая связность и внедрение зависимостей естественным образом попадутся в ходе изучения языка. Шаблоны проектирования стоит начать, когда с языковыми конструкциями станет всё чётко и понятно, то есть ближе к концу обучения. Тот же принцип: 20% теории, 80% практики. Когда ты напишешь абстрактную фабрику в сотый раз, она перестанет вызывать священный ужас =) Многие осваивают разработку, решая мелкие алгоритмические задачи с тематических сайтов. Ничего не имею против такого способа на ранних этапах. Когда язык более-менее подтянется, начинай разрабатывать, собственный веб-сайт. Пусть это будет каталог чего-нибудь или мини-соцсеть. Кроме кучи бесценного опыта, твой репозиторий может сыграть добрую службу при трудоустройстве ;)

Git. После прочтения теории, заведи себе аккаунт на GitHub. Это бесплатно. Публикуй туда свои учебные проекты, привыкая к принципу "одно изменение - один commit". Поверь, в будущем такая привычка не раз тебя выручит ;)

Если ты ещё не в теме, открой браузер Edge, залогинься в него со своим профилем Microsoft (без разницы, из какой страны профиль), установи любой VPN и переходи на bing.com/new . Тебя интересует там режим "Чат". Я предпочитаю режим "творческий". Эта штука неплохо пишет код для простых решений, может проверить твой код на наличие ошибок, сыграть роль интерпретатора базы данных, ментора, преподавателя и т.д. А ещё Bing замечательно умеет объяснять материал, что может сильно упростить тебе обучение.

На этом, пожалуй, закончим. Итак, никаких платных курсов, никаких подписок на "мой телеграмм-канал", только твои собственные упорство и практика. Да, будет тяжело. Да, много раз появится желание всё бросить и забить. Мозг - очень инертная масса, и он будет всячески сопротивляться собственной прокачке, а поначалу уровень собственной тупости будет казаться зашкаливающим: "ой нет, там мозги нужны, а я такое тупое, наверное, это не моё". Не верь ему, через такие мысли проходят все. Если ты чувствуешь, что тебе это нравится, значит текущие усилия стоят того, чтобы изменить своё будущее.

Удачи!

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества