Войти в айти #2
Продолжение. Общая информация к размышлению здесь.
Так как предыдущий пост набрал определенную популярность, то значит тема актуальна, а значит вот и продолжение:).
Самое главное что нужно понимать - это огромный труд, минимум на полгода. И поиск первого места, если у вас нету связей, которые готовы взять вас без опыта работы, минимум, пару месяцев. Рынок сейчас перегрет и это значит, что чем больше начинающих специалистов - тем тяжелее им найти работу, с них спрашивают больше и платят меньше. Помню благословенные времена десятилетней давности, когда было полно старших программистов о двадцати трех годах и на работу брали просто за то, что знаешь слово java и можешь написать “hello world”.
Сейчас все немного изменилось. Но давайте ко всему по порядку.
Большинство крупных проектов состоят из нескольких частей. Зачастую они написаны на разных языках. И обращаются с ними по-разному, и подход к ним разный и ценятся разные фишки. Если вы, мой юный (или уже не такой и юный) друг, решили обратить свой взгляд от починки компьютеров, образования в металлургии или менеджментской занятости, сперва вам нужно понять что вы хотите делать?
- Хочу делать красиво и чтобы я написал пару строк кода - появлялась кнопка и жмакалась. - Вам прямой путь во фронт-энд. Фронт - это то, что видит пользователь. Кнопочки, формочки, логин-логаут, загрузка форм и данных. Все это красиво, имеет свой драйв. Разработка быстрая. Что хорошо? Учить относительно легко. В большинстве случаев нет потребности в какой-то супер-прикладной математике в задачах. Что плохо: сфера очень динамичная, все меняется каждый год. Новые подходы, наборы библиотек, отсутствие обратной совместимости. Ключевые языки: JavaScript, python, php… Лично от себя, не советую начинать с php. Он весьма специфичен и вам будет тяжело мигрировать с него на другие языки. Также следует ожидать что на фронт обычно кидается изучать больше менее квалифицированных людей. Отсюда проблема - неоднородное качество кода, с которым вам придется работать.
- Хочу делать что-то комплексное с абстрактными очередями данных и прочее. Здесь кайф в сложной логике и цепочек обработки данных, держать это в голове, обходить сложные моменты. В бэке это обычно более представлено, чем на фронте. В виду большей абстрактности задач меньше откровенно слабых начинающих программистов будет вам попадаться. Еще плюшка - есть куча большого бизнеса, который вкладывает кучу денег написать супер-процессинг и им надо чтобы кто-то их поддерживал. Годами и десятилетиями. До сих пор ходят страшные истории об одном американском бизнесе, который написал очень крутую вещь на Cobol’е. И сейчас они нанимают тех людей, кто писал ту логику, тех кто уже на пенсии (многие уже и поумирали от старости), и пытаются за большие деньги понять что происходит в этом кусочку, написать их на новых технологиях и послать в браузер на эмулятор зеленого терминала с командной строкой как в DOS, к которым привыкли их продавцы. И плюшка в том, что бэк можно изучать не так угарно, как фронт, и С++ программист и сейчас найдет себе хлеб, хоть разработки на С++ уже давно не так интенсивны как еще 10 лет назад. Минусы вытекают из плюсов: нет наглядности. Большие проекты, которые пишут одновременно десятки людей состоят из сотен тысяч файлов и часто уходят дни на то, чтобы вставить правильную строчку в парильном месте. Языки: java, js, c#, python, go, c++... Многие пишут и фронт и бэк на js. Таких называют фул-стек. Их любят рекрутеры, девушки, отцы гордятся ими и прочее. Как вариант для размышлений ;)
- Если абстрактности и хардкорности бэка вам не хватает, добро пожаловать в… DBA! Те, кто пишут базы данных. У них своя атмосфера и свои вызовы. Сейчас в основном, пытаются выносить всю люгику приложения из базы данных в приложение. И упрощать саму структуру БД. Кроме Oracle. Но есть или очень высоконагруженные системы или сложные или старые, где дибиэи очень даже нужны и здравствуют.
- Разработка на мобильные платформы. Как складывается из изучения рынка Украины, мобильные разработчики обычно получают меньше бэка или фронта, потому я обычно не особо рекомендую туда идти. Но если нет - там есть и фронт карасивости и бэк-сложные обработки данных. Если повезет, напишете супер-программу-игру-калькулятор-месячного-цикла, продадите его и будете богаты:) Пишут на python, c++, Objective-C, java, c#... Говорят на iphone на Objective-C писать наиболее прибыльно. Но лицензия стоит денег:)
Пока это все, но еще есть: бизнес-аналитика, тестирование, автоматизирование, devops, прочее.
С чего начать: множество курсов на youtube. Множество курсов в интернете. Из них очень много бесплатных. Не спешите сразу относить кому-то деньги. О первых шагах начинающего самоучки, о типичных ошибках и прочем я напишу в следующей материале, если этот кого-то заинтересует :)