Борис Рузанов
Как стать программистом
Все права защищены. Книга или любая ее часть не может быть скопирована, воспроизведена в электронной или механической форме, в виде фотокопии, репродукции или каким-либо иным способом, а также использована в любой информационной системе без получения разрешения от автора. Копирование, воспроизведение и иное использование книги или ее части без согласия автора является незаконным и влечет уголовную, административную и гражданскую ответственность.
© Борис ProIt, 2022
Выражаю свою благодарность моей семье, которая всегда поддерживает меня и верит в меня. Моей жене, сыну и родителям, без которых у меня ничего не получилось бы.
Также благодарю каждого из своих подписчиков за обратную связь, за мотивацию и время, уделенное моим материалам. Я верю, что каждый из вас может достичь своей цели, если будет к ней идти.
И отдельно хочу выразить благодарность моей верной собаке, которая прошла со мной весь этот путь. Она была рядом в те моменты, когда я только начал изучать код, когда работал, набирался опыта и писал эту книгу.
От автора
Приветствую, дорогие читатели. Меня зовут Борис, по специальности я Senior Software Engineer (старший разработчик) на платформе Android. Проще говоря, я разрабатываю мобильные приложения и этим зарабатываю на жизнь. В своих соцсетях я активно помогаю ребятам, таким же, как я, которые хотят войти в IT и стать программистами, но не имеют опыта и технического образования. Кроме того, я создал бесплатный курс по программированию, который простым и доступным языком вводит человека в мир кода и логики. Об этом курсе я расскажу чуть позже.
Многие думают, что для работы в этой области нужно обладать рядом навыков и получить специальное образование. Но я не учился этому в университете, не программировал самостоятельно в детстве и в целом не обнаруживал в себе склонности к точным наукам: мои школьные отметки по математике всегда болтались где-то между двойкой и тройкой. Как вы можете заметить, я не подхожу под стандартное описание программиста такого, каким его обычно себе представляют. Именно поэтому моя история может быть вам полезна и интересна. Ведь если вы тоже никогда не программировали, не имеете технического образования и всегда больше любили гуманитарные предметы, но очень хотите войти в IT и получить все бонусы этой профессии, то эта книга точно для вас.
На ее страницах я последовательно расскажу о каждом пройденном мной этапе, начиная с момента, когда в голове только зародилась идея стать программистом, и до того, как я устроился на первую работу. Я с удовольствием поделюсь своими личными техниками и секретами, которые позволят вам в несколько раз увеличить шансы дойти до своего первого заработка.
Дочитав эту книгу до конца, вы узнаете:
о том, как я выбирал специальность;
какие ошибки я совершал, выбирая курсы по программированию, и как сделать выбор, чтобы не потерять время и деньги;
как я справился со всеми страхами и неуверенностью, ведь психологический аспект является одним из важных условий для достижения итоговой цели;
как, работая на двух работах и будучи семейным человеком с маленьким ребенком, я оптимизировал свое время, чтобы успевать работать и учиться, одновременно уделяя внимание семье.
Сейчас перед вами стандартная версия книги, но в перспективе планируется выпустить и дополненный, расширенный вариант, который, помимо всего вышеперечисленного, будет включать в себя следующие главы:
углубленный анализ основных направлений в программировании;
описание моего подхода к выбору специальности, основанного на личном опыте;
рассказ об опыте работы программистом, где в первой части главы я поделюсь советами о том, как легче и быстрее найти работу человеку без технического опыта и образования, а во второй части расскажу о тех моментах, с которыми столкнется новичок в первые недели;
главу о поиске и всех тонкостях работы в иностранных компаниях. Расскажу про то, когда уже можно будет начинать искать работу, в деталях опишу, как происходят ее поиск и процесс обсуждения с работодателем.
Сейчас, оборачиваясь назад, я могу четко утверждать, что решение стать программистом стало одним из самых важных и правильных в моей жизни. Этот путь был долгим и сложным, но он однозначно стоит того, чтобы его пройти. Почему? Потому что, овладев навыком программирования, ты становишься востребованным во всем мире. Ты можешь жить практически в любой стране. На тебя уже не действуют ограничения и сложности местного рынка труда, ведь ты можешь работать на любую компанию в любой точке земли. Я бы назвал это невероятной свободой. Это свобода выбора, которая дает огромные возможности вне зависимости от города, где ты родился, от социального статуса и языка, на котором ты разговариваешь.
Помимо этого, программирование дает стабильность, ведь востребованность в квалифицированных специалистах постоянно растет, а это значит, что вы всегда сможете заработать. Программисты действительно неплохо зарабатывают, получая возможность жить на достаточно высоком уровне. Вы сможете спокойно спать по ночам, не переживая о кризисах или о том, что может случиться с компанией, где вы работаете. Стабильность и свобода вот те награды, которые я получил в конце этого пути.
Когда я учился программированию, меня всегда возмущало, насколько сложно преподносится информация на курсах, в книгах и в обучающих видео. Я раз за разом пересматривал эти видео, где учитель с невозмутимым видом каким-то совершенно космическим языком объяснял очевидные для него вещи. Потом он писал код, запускал на компьютере, и у него все работало, а у меня постоянно выскакивала какая-нибудь ошибка. При этом в заголовке видео было четко указано, что оно предназначено, цитирую, «для новичков». Если вы уже пробовали изучать программирование, то это чувство собственной беспомощности вам наверняка знакомо. Я угадал? Так вот, цель моей книги в том, чтобы помочь вам сориентироваться в этих джунглях технической терминологии и в бесконечных лабиринтах курсов по программированию. Сейчас я уже могу с уверенностью констатировать, что никакого волшебства здесь нет. Программирование это обычный навык, которому может научиться абсолютно любой человек без каких-либо специальных знаний и опыта. И моя задача заключается в том, чтобы открыть для вас волшебную коробку, в которой лежит чудо-инструмент под названием «программирование», достать его и показать, что это обычный молоток, с помощью которого «строят» программы.
Вот почему, дочитав эту книгу до конца и изучив мой личный опыт, вы сможете взглянуть на этот процесс совершенно по-новому. Он уже не будет казаться вам чем-то страшным и непонятным. Вместо этого вы сможете с ясной головой оценить, где вы сейчас находитесь и куда двигаться дальше. Мой опыт, советы и рекомендации дадут вам возможность спокойно пойти к намеченной цели, причем самым коротким путем, ведь длинный путь я уже прошел за вас. Какой смысл его повторять.
Тем не менее, уважаемые читатели, я бы хотел сразу предупредить, что в руках у вас не волшебная палочка, которая одним махом сделает из вас высококлассных специалистов. Моя книга это просто карта, которая позволит вам понять, откуда и куда нужно идти, как двигаться быстрее, как не свернуть на полпути. Но идти вы должны будете самостоятельно. И я обязан сразу предупредить, что до результата дойдут не все. Это нормально. Путь программиста не усыпан розами, это не легкая прогулка, а скорее долгий марафон по бездорожью под палящим солнцем. Так что если вдруг, начав обучение, вы увидите, что это все-таки не ваше, что совсем нет времени или желания продолжать, то прошу об одном: не мучайте себя. Жизнь дана нам для того, чтобы наслаждаться. Делайте так, как комфортно вам. Возможно, у вас сейчас просто нет нужных ресурсов, но они появятся позже. Или вам следует поискать себя в чем-то другом.
Тем же, кто твердо намерен дойти до конца, несмотря на все трудности, я желаю удачи. И помните, что вы не одни в этом путешествии.
Итак, поехали!)
Кто такой программист на самом деле
Когда мы пытаемся ответить на вопрос, кто такой программист, в голове чаще всего возникает образ молодого крутого парня из фильмов, который сидит перед шестью мониторами с миллионами бегущих по ним строк и с энтузиазмом без остановки стучит по клавиатуре, выдавая десятки строк готового кода в минуту. Разумеется, все это без проблем запускается и работает.
Но в реальной жизни все далеко не так. Программирование это не только создание кода. Большую часть времени программист думает о том, какие команды написать, как что-то починить или оптимизировать. Ключевое слово здесь «думает». Действительно, очень часто бывает такое, что программист за несколько часов не пишет ни одной строчки кода, а вместо этого ковыряется в документации и ищет варианты решения проблемы на сторонних ресурсах. Бывает, что работа уже заканчивается, а ты все еще размышляешь о коде и пытаешься придумать решение задачи. Звучит не так романтично, как показывают в фильмах, правда? Но это действительно ближе к истине. Как минимум половину времени, которое вы проводите за компьютером, вы будете тратить на починку поломок и поиск причин, по которым ваша программа не запускается. Примите это за аксиому: у всех и всегда код будет вести себя так, как хочется ему, а вы будете сидеть и исправлять это, независимо от того, опытный вы программист или начинающий. С ростом вашей экспертности будет расти и сложность задач, но принцип останется тем же. Поэтому на начальном этапе вам придется свыкнуться с тем, что программа работает не так, как на экране преподавателя. И когда что-то сломается и вы начнете это исправлять, вы уже можете себя поздравить: по сути, вы занимаетесь тем, чем занимается настоящий программист ковыряетесь в коде, чините поломки, улучшаете и оптимизируете то, что делалось до вас.
Почему я так заостряю внимание на этом моменте? Потому что именно от этого я в начале испытывал настолько сильный стресс, что мне хотелось все бросить. Очень многие из-за подобного стресса не доходят до конца обучения, так как реальность не совпадает с ожиданиями. Ваша главная задача не научиться быстро писать новый код, а доводить до совершенства уже имеющийся и быстро решать постоянно возникающие проблемы. Вот кто такой программист на самом деле: человек, который решает проблемы.
Но давайте не будем забегать вперед. Расскажу по порядку, как я проходил весь этот путь и с какими трудностями встречался.
Как все начиналось
Я помню этот день. На дворе стоял промозглый ноябрь. Я прозябал на стандартной работе, где в основном приходилось работать руками и выполнять задачи, поставленные руководством. На пути к одному из клиентов я заехал на заправку, заплатил за бензин и мимоходом заглянул в свой кошелек. Там лежала всего одна купюра небольшого номинала. На эти деньги можно было купить домой немного продуктов, которых хватило бы на пару дней.
Так было не всегда. Когда-то у меня имелась хорошая должность, были подчиненные и работа, которая хорошо обеспечивала. Но жизнь это такая штука, когда все может измениться, и придется начинать все заново, с нуля. Поэтому в тот момент, стоя и глядя на свой пустой кошелек, я понимал, что что-то идет не так и нужно опять пробиваться наверх. Но как это сделать, я еще не осознавал.
Вздохнув, я продолжил свой путь к клиенту. Подъехав на место, я на какое-то время задержался у входа в его дом. Это был очень аккуратный особняк, но не такой огромный, в которых живут голливудские звезды, а обычный, стильный и привлекательный. Такие обычно показывают в западных фильмах.
Меня приветливо встретил хозяин, на вид обычный парень в очках. Войдя внутрь, я оценил обстановку: большие окна, пропускающие много света, лаконичный интерьер. В просторном зале перед диваном располагался камин, на ковре перед которым, раскладывая свои игрушки, сидели две маленькие дочки хозяина дома к моменту, как я приехал, отец уже забрал их из школы. Я подумал, что ему повезло: когда все сидят в офисах, он уже дома и может побыть со своими детьми.
Я стоял и внимательно впитывал в себя каждую увиденную деталь. Я не то чтобы завидовал тому парню, своему клиенту, но уютная обстановка его просторного дома произвела на меня очень сильное впечатление. Вернувшись на работу, я спросил у своего руководителя, не знает ли он, чем занимается тот парень, чтобы иметь такой особняк и при этом возвращаться с работы так рано. «Да какой-то там программист. Не знаю, в IT, в общем!» ответил мне руководитель.
Возвращаясь в тот день домой, я не мог избавиться от мыслей об увиденном. Снова и снова я прокручивал в голове те эмоции и ощущения, которые испытал, находясь в доме своего клиента. Я понял, как сильно хочу, чтобы моя семья тоже жила в таком уюте, а я имел бы возможность находиться дома в течение дня и чаще видеть своих родных, а не приходить в девять вечера, чтобы полчаса пообщаться с сыном перед тем, как он отправится спать.
Весь вечер я думал о том, что мне нужно сменить профессию. Это было похоже на ощущение, будто ты несешься по туннелю. Будто все внимание только на конечной цели, а то, что происходит вокруг, совершенно не важно. Так же было и у меня. Вечер в семейном кругу в тот день пролетел мимо меня, ведь в голове была только мысль: я хочу начать этот путь.
Я очень хорошо помню этот момент. Я сидел в темной комнате, слегка освещаемой светом от экрана монитора. Было уже поздно, все спали, а я копался в интернете и искал истории людей, которые смогли добиться успеха в сфере программирования. Я ежесекундно задавал себе вопрос: смогу ли я дойти до конца? Ведь мне уже далеко не двадцать лет, есть семья и обязательства по отношению к ней, а основной профессиональный опыт сосредоточен совершенно в другой сфере. Я не имел технического образования и понимания, как это все работает. В голове витали бесконечные сомнения и страхи.
И в этот момент я сказал себе, что пусть лучше я попробую и у меня не получится, чем не попробую и буду думать: «А вдруг получилось бы?»
Так я и сделал. В тот же вечер я купил свой первый курс. То есть на раздумья у меня ушло всего несколько часов.
Но давайте остановимся на этом моменте немного подробнее. Ведь не все принимают решения таким образом. Я и сам иногда хожу в раздумьях некоторое время, перед тем как начать действовать. Скажу больше: пообщавшись с моими подписчиками и теми, кого знаю лично, я вижу, что огромное количество людей, решившись изменить свою жизнь и войти в IT, остаются именно на этом этапе и долгое время пребывают в подвешенном состоянии. Они не начинают идти к своей цели, но в то же время и не отказываются от нее.
Думаю, причина этому страхи и сомнения, в частности, страх больших изменений и многие другие, о которых мы еще поговорим в этой книге.
Страхи неотъемлемая часть любого пути. Уже будучи состоявшимся программистом и общаясь со своими подписчиками, я понял, что, хотя все люди и разные, их страхи часто совпадают. Многое из того, о чем рассказывали мне подписчики, я проходил и сам. Это стало для меня открытием.
После проведения опросов у себя на странице в социальных сетях, а также бесед в личных сообщениях я смог составить список распространенных страхов, которые испытывает человек при входе в новую профессию. Благодаря этим выводам я смог ответить себе на вопросы, почему один человек в сорок лет может получить новую профессию, а другой нет, и в чем разница между этими людьми.