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

Text
4
Reviews
Read preview
Mark as finished
How to read the book after purchase
Как стать программистом с нуля. После 30, без опыта, без образования
Font:Smaller АаLarger Aa

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

© Борис ProIt, 2022

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

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

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

От автора

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

You have finished the free preview. Would you like to read more?