Читать онлайн Как стать программистом с нуля. После 30, без опыта, без образования бесплатно

Как стать программистом с нуля. После 30, без опыта, без образования

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

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

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

От автора

Приветствую, дорогие читатели. Меня зовут Борис, по специальности я Senior Software Engineer (старший разработчик) на платформе Android. Проще говоря, я разрабатываю мобильные приложения и этим зарабатываю на жизнь. В своих соцсетях я активно помогаю ребятам, таким же, как я, которые хотят войти в IT и стать программистами, но не имеют опыта и технического образования. Кроме того, я создал бесплатный курс по программированию, который простым и доступным языком вводит человека в мир кода и логики. Об этом курсе я расскажу чуть позже.

Многие думают, что для работы в этой области нужно обладать рядом навыков и получить специальное образование. Но я не учился этому в университете, не программировал самостоятельно в детстве и в целом не обнаруживал в себе склонности к точным наукам: мои школьные отметки по математике всегда болтались где-то между двойкой и тройкой. Как вы можете заметить, я не подхожу под стандартное описание программиста – такого, каким его обычно себе представляют. Именно поэтому моя история может быть вам полезна и интересна. Ведь если вы тоже никогда не программировали, не имеете технического образования и всегда больше любили гуманитарные предметы, но очень хотите войти в IT и получить все бонусы этой профессии, то эта книга точно для вас.

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

Дочитав эту книгу до конца, вы узнаете:

● о том, как я выбирал специальность;

● какие ошибки я совершал, выбирая курсы по программированию, и как сделать выбор, чтобы не потерять время и деньги;

● как я справился со всеми страхами и неуверенностью, ведь психологический аспект является одним из важных условий для достижения итоговой цели;

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

Сейчас перед вами стандартная версия книги, но в перспективе планируется выпустить и дополненный, расширенный вариант, который, помимо всего вышеперечисленного, будет включать в себя следующие главы:

● углубленный анализ основных направлений в программировании;

● описание моего подхода к выбору специальности, основанного на личном опыте;

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

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

Сейчас, оборачиваясь назад, я могу четко утверждать, что решение стать программистом стало одним из самых важных и правильных в моей жизни. Этот путь был долгим и сложным, но он однозначно стоит того, чтобы его пройти. Почему? Потому что, овладев навыком программирования, ты становишься востребованным во всем мире. Ты можешь жить практически в любой стране. На тебя уже не действуют ограничения и сложности местного рынка труда, ведь ты можешь работать на любую компанию в любой точке земли. Я бы назвал это невероятной свободой. Это свобода выбора, которая дает огромные возможности вне зависимости от города, где ты родился, от социального статуса и языка, на котором ты разговариваешь.

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

Когда я учился программированию, меня всегда возмущало, насколько сложно преподносится информация на курсах, в книгах и в обучающих видео. Я раз за разом пересматривал эти видео, где учитель с невозмутимым видом каким-то совершенно космическим языком объяснял очевидные для него вещи. Потом он писал код, запускал на компьютере, и у него все работало, а у меня постоянно выскакивала какая-нибудь ошибка. При этом в заголовке видео было четко указано, что оно предназначено, цитирую, «для новичков». Если вы уже пробовали изучать программирование, то это чувство собственной беспомощности вам наверняка знакомо. Я угадал? Так вот, цель моей книги в том, чтобы помочь вам сориентироваться в этих джунглях технической терминологии и в бесконечных лабиринтах курсов по программированию. Сейчас я уже могу с уверенностью констатировать, что никакого волшебства здесь нет. Программирование – это обычный навык, которому может научиться абсолютно любой человек без каких-либо специальных знаний и опыта. И моя задача заключается в том, чтобы открыть для вас волшебную коробку, в которой лежит чудо-инструмент под названием «программирование», достать его и показать, что это обычный молоток, с помощью которого «строят» программы.

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

Тем не менее, уважаемые читатели, я бы хотел сразу предупредить, что в руках у вас не волшебная палочка, которая одним махом сделает из вас высококлассных специалистов. Моя книга – это просто карта, которая позволит вам понять, откуда и куда нужно идти, как двигаться быстрее, как не свернуть на полпути. Но идти вы должны будете самостоятельно. И я обязан сразу предупредить, что до результата дойдут не все. Это нормально. Путь программиста не усыпан розами, это не легкая прогулка, а скорее долгий марафон по бездорожью под палящим солнцем. Так что если вдруг, начав обучение, вы увидите, что это все-таки не ваше, что совсем нет времени или желания продолжать, то прошу об одном: не мучайте себя. Жизнь дана нам для того, чтобы наслаждаться. Делайте так, как комфортно вам. Возможно, у вас сейчас просто нет нужных ресурсов, но они появятся позже. Или вам следует поискать себя в чем-то другом.

Тем же, кто твердо намерен дойти до конца, несмотря на все трудности, я желаю удачи. И помните, что вы не одни в этом путешествии.

Итак, поехали!)

Кто такой программист на самом деле

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

Но в реальной жизни все далеко не так. Программирование – это не только создание кода. Большую часть времени программист думает о том, какие команды написать, как что-то починить или оптимизировать. Ключевое слово здесь – «думает». Действительно, очень часто бывает такое, что программист за несколько часов не пишет ни одной строчки кода, а вместо этого ковыряется в документации и ищет варианты решения проблемы на сторонних ресурсах. Бывает, что работа уже заканчивается, а ты все еще размышляешь о коде и пытаешься придумать решение задачи. Звучит не так романтично, как показывают в фильмах, правда? Но это действительно ближе к истине. Как минимум половину времени, которое вы проводите за компьютером, вы будете тратить на починку поломок и поиск причин, по которым ваша программа не запускается. Примите это за аксиому: у всех и всегда код будет вести себя так, как хочется ему, а вы будете сидеть и исправлять это, независимо от того, опытный вы программист или начинающий. С ростом вашей экспертности будет расти и сложность задач, но принцип останется тем же. Поэтому на начальном этапе вам придется свыкнуться с тем, что программа работает не так, как на экране преподавателя. И когда что-то сломается и вы начнете это исправлять, вы уже можете себя поздравить: по сути, вы занимаетесь тем, чем занимается настоящий программист – ковыряетесь в коде, чините поломки, улучшаете и оптимизируете то, что делалось до вас.

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

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

Как все начиналось

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

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

Вздохнув, я продолжил свой путь к клиенту. Подъехав на место, я на какое-то время задержался у входа в его дом. Это был очень аккуратный особняк, но не такой огромный, в которых живут голливудские звезды, а обычный, стильный и привлекательный. Такие обычно показывают в западных фильмах.

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

Я стоял и внимательно впитывал в себя каждую увиденную деталь. Я не то чтобы завидовал тому парню, своему клиенту, но уютная обстановка его просторного дома произвела на меня очень сильное впечатление. Вернувшись на работу, я спросил у своего руководителя, не знает ли он, чем занимается тот парень, чтобы иметь такой особняк и при этом возвращаться с работы так рано. «Да какой-то там программист. Не знаю, в IT, в общем!» – ответил мне руководитель.

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

Весь вечер я думал о том, что мне нужно сменить профессию. Это было похоже на ощущение, будто ты несешься по туннелю. Будто все внимание только на конечной цели, а то, что происходит вокруг, совершенно не важно. Так же было и у меня. Вечер в семейном кругу в тот день пролетел мимо меня, ведь в голове была только мысль: я хочу начать этот путь.

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

И в этот момент я сказал себе, что пусть лучше я попробую и у меня не получится, чем не попробую и буду думать: «А вдруг получилось бы?»

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

Но давайте остановимся на этом моменте немного подробнее. Ведь не все принимают решения таким образом. Я и сам иногда хожу в раздумьях некоторое время, перед тем как начать действовать. Скажу больше: пообщавшись с моими подписчиками и теми, кого знаю лично, я вижу, что огромное количество людей, решившись изменить свою жизнь и войти в IT, остаются именно на этом этапе и долгое время пребывают в подвешенном состоянии. Они не начинают идти к своей цели, но в то же время и не отказываются от нее.

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

Страхи – неотъемлемая часть любого пути. Уже будучи состоявшимся программистом и общаясь со своими подписчиками, я понял, что, хотя все люди и разные, их страхи часто совпадают. Многое из того, о чем рассказывали мне подписчики, я проходил и сам. Это стало для меня открытием.

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

Давайте рассмотрим ситуацию на примере курсов по программированию. Она показывает, насколько неправильно мы в целом подходим к процессу обучения с помощью курсов. Это выглядит следующим образом: мы записываемся на курсы и ждем результатов. Основной упор в обучении идет на написание кода. И со временем народу в группе остается все меньше и меньше. В итоге до конца доходят не все. К этому принято относиться как к данности, никто не задается вопросом, почему так происходит. Но я все-таки не раз задумывался: почему одни доходят до результата, а другие нет? Чем же первые отличаются от вторых?

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

Вот некоторые из страхов, с которыми я сталкивался:

● страх изменений в жизни и потери стабильности;

● страх, что материал окажется слишком сложным для изучения;

● страх оказаться в чем-то хуже других;

● страх того, что для работы не хватит технического образования и опыта;

● страх того, что ожидания не оправдаются.

Как бы странно это ни звучало, но избавиться от этих опасений мне во многом помог еще один страх, который перевешивает все вышеперечисленные. Это страх испытать чувство сожаления. Больше всего я боюсь угрызений совести насчет того, что я мог попробовать и не попробовал, что я мог дойти до конца и не дошел. Поэтому когда ко мне в голову приходят мысли, что я не смогу или мои ожидания будут не оправданы, я говорю себе: «Попробую, а там разберусь. Кто-то уже достиг этого, значит, есть инструкция, как это сделать». Поэтому я просто пробую, для того, чтобы избавиться от этого противного внутреннего чувства угрызений совести.

Когда я думаю об этом, в моей голове возникает картинка в виде айсберга (см. рис. 1). Ведь, по сути, мой процесс обучения состоял из нескольких уровней. Видимая и очевидная часть – это изучение кода. Но были и невидимые части – страхи и умение учиться, о которых тоже не нужно забывать. Основная мысль, на которой я хочу сконцентрировать ваше внимание, заключается в следующем: для того чтобы успешно и быстрее изучать код, необходимо отработать собственные страхи, а также оптимизировать и прокачать навык обучения. При таком подходе процесс изучения кода станет намного легче и быстрее.

Рис.0 Как стать программистом с нуля. После 30, без опыта, без образования

Рис. 1. Процесс обучения и страхи

А пока давайте вернемся в тот судьбоносный вечер, когда я, сидя в темной комнате, принимал одно из самых важных в моей жизни решений. В голове все переворачивалось. Было очень много вопросов и очень мало ответов. Я сидел и искал в интернете разную информацию, чтобы сделать верный выбор. В тот момент у меня уже не было сомнений, что я сегодня начну свой путь программиста. Но я хотел начать его правильно и допустить минимальное количество ошибок. На ряд своих вопросов я мог найти ответ в интернете. Но были и такие факторы, с которыми всемирная паутина не могла мне помочь. Давайте более детально разберемся, как я преодолевал свои страхи и психологические барьеры.

Первым страхом, с которым я столкнулся, был страх больших изменений.

Страх больших изменений

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

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

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

То есть, начиная что-то новое, я не вижу всей длины этого пути и тем самым не оцениваю масштаб последствий сделанного выбора. Обычно я даю себе слово просто попробовать что-то сделать. Это затягивается на какое-то время, а потом бросать уже жалко.

Насколько эффективен такой подход? Я не знаю. Я столько всего начинал и бросал, что уже и не вспомнить. Но, несмотря на это, я все равно считаю, что в таком подходе больше хорошего, чем плохого. Потому что любой провал дает бесценный опыт, он учит лучше любых тренингов и курсов. Мысль «зато я попробовал» придает нам сил и приносит внутреннее чувство удовлетворения. Это прямо противоположно тому ощущению, когда мы не решились осуществить что-то, а потом каждую ночь перед сном терзаемся вопросом: «А что, если бы я попробовал?»

Так вот, принимая решение, я просто выбираю наименьшую боль из двух. Как это работает? Если при появлении какого-то желания я не решаюсь действовать, то запускается процесс раздумывания. И этот процесс я ненавижу еще больше, чем угрызения совести от вопроса «А что, если бы я попробовал?». Поэтому когда в моей голове возникает идея или цель, я не люблю долго вынашивать ее в себе. Я либо отказываюсь от нее и живу дальше, либо начинаю реализовывать.

Меня раздражает это состояние подвешенности, когда изо дня в день ты носишь мысль у себя в голове и откладываешь принятие решения. Потому что в действительности состояния «посередине» нет, это не более чем ловушка для мозга. Если я не выбираю делать, то, пока я думаю, я фактически выбираю не делать. Переключатель работает только в две стороны: либо да, либо нет. И если я говорю какой-либо идее «Нет», то я просто осознанно отказываюсь от нее и живу дальше.

Рис.1 Как стать программистом с нуля. После 30, без опыта, без образования

Рис. 2. Схема принятия решения

Такой подход кажется жестким: всегда существует риск случайно отказаться от того, от чего отказываться не стоило. Не всегда мы имеем возможность принять серьезное решение быстро, иногда требуется дополнительная информация. В таком случае работает все та же схема, что представлена на рисунке 2, но в положительном сценарии «Я попробую» появляется дополнительный этап, который я называю «Сбор информации». Цель этого этапа – собрать как можно больше данных для принятия взвешенного решения.

Например, я, делая выбор перед тем, как принять решение, задавал себе следующие вопросы:

● Будет ли мне хватать времени? Чтобы понять это, я должен поговорить со своей семьей и убедиться, что они смогут на какой-то период освободить меня от некоторых домашних обязанностей, пока я посвящаю себя обучению.

● Не очень ли сильно мое обучение ударит по семейному бюджету? Есть ли в наличии денежные ресурсы для покупки курсов и ноутбука?

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

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

Рис.2 Как стать программистом с нуля. После 30, без опыта, без образования

Рис. 3. Усовершенствованная схема принятия решения

При таком подходе страх перед большими изменениями не проявляет себя так ярко (во всяком случае, так было у меня). Ведь он обычно появляется тогда, когда мы находимся в подвешенном состоянии, в так называемом статусе «Я подумаю». А когда мы осознанно делаем выбор – либо да, либо нет, – мы четко понимаем, в каком направлении мы двигаемся, а главное, четко определяем свое место в этом процессе.

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

Вообще, если так задуматься, каждый день мы многократно делаем выбор, часто даже не осознавая этого. Но важно помнить: если мы решаем подумать, вместо того чтобы начать действовать, фактически мы принимаем решение ничего не делать. Никакого «посередине» не существует. Помня об этом, я предпочитаю принимать решения быстро и не оставлять себе времени на раздумья. Да, эти решения не всегда оказываются верными. Зато по ночам меня не мучают мысли и вопросы «А что, если бы я все-таки попробовал?».

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

Думаю, пришло время пояснить, почему я остановился именно на этой специализации.

Почему люди меняют профессию и становятся программистами

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

Так каковы же были мои личные мотивы на момент принятия решения о смене специальности? Я хотел иметь навык, который позволял бы:

● создавать какой-то продукт, чтобы результатом моего труда было нечто осязаемое;

● хорошо зарабатывать;

● быть востребованным во всем мире;

● и при всем при этом работать удаленно.

Но я – это я, а у любого из вас могут быть свои интересы и цели. Понимая это, я задумался о том, что вообще движет людьми, которые решаются на смену профессии. И обнаружил очень интересное исследование от компаний GeekBrains и ResearchMe[1].

Рис.3 Как стать программистом с нуля. После 30, без опыта, без образования

Рис. 4. Результаты опроса о смене профессии после 24 лет

В правой части диаграммы отображено количество людей, для которых IT было не первой сферой их работы. И таких людей оказалось целых 52 %. Это означает, что почти половина людей, работающих в IT, минимум один раз меняли профессию. Поэтому если вам кажется, что смена профессии – это редкое явление, то данные исследования вполне успешно опровергают это мнение. Я и сам встречал достаточно много людей, сменивших направление работы и решивших уйти в IT-сферу. И это не обязательно написание кода, это может быть любое другое направление, например, web-дизайн, рекрутинг, управление проектами или продажа IT-продуктов. Но о специальностях мы поговорим чуть позже. Основная мысль, которую я хочу до вас донести, заключается в том, что огромное количество людей пришло в IT из других сфер, и не все эти люди стремились стать именно программистами. Они становились специалистами в других направлениях.

1 Подробнее ознакомиться с результатом исследований можно по ссылке: https://vc.ru/hr/102737-issledovanie-bolshe-poloviny-specialistov-prishli-v-it-iz-drugih-sfer.
Продолжить чтение