bannerbannerbanner
Карьера в IT. Как найти работу, прокачать навыки и стать крутым разработчиком

Джон Сонмез
Карьера в IT. Как найти работу, прокачать навыки и стать крутым разработчиком

Стратегия

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

Изучите рынок, чтобы не дать себя обмануть

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

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

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

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

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

Выделите достаточное количество времени

Люди склонны переоценивать объем дел, которые они могут сделать за день. Как правило, список дел на день никогда полностью не выполняется. Мы всегда планируем больше, чем можем сделать за сутки.

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

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

Оставайтесь после занятий и как можно больше общайтесь

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

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

Лидируйте

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

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

Подготовьтесь к обучению

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

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

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

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

Глава 9. Самообразование

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

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

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

Преимущества самообразования

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

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

Нулевые или почти нулевые затраты

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

Интернет полон бесплатных учебных пособий, сообщений в блогах, справочных руководств и даже копий книг, и все это вы можете использовать, чтобы попробовать свои силы в создании кода. Если вы читаете этот текст в виде статьи в моем блоге на сайте https://simpleprogrammer.com, то вам это абсолютно ничего не стоит. Огромное количество инструментов программирования и даже сред разработки также бесплатны.

Но давайте смотреть на вещи трезво. «Бесплатное» не значит «лучшее». Иногда лучше все же заплатить немного денег, чтобы получить доступ к более тщательно подобранному перечню инструментов. И все же данный путь обойдется вам во много раз дешевле, чем курсы и уж тем более университет. За несколько тысяч долларов можно купить гораздо больше книг, чем вы сможете когда-либо прочесть, и получить доступ буквально к тысячам онлайн-курсов.

Если ваш бюджет существенно ограничен, то этой причины достаточно, чтобы выбрать путь самоучки.

Самообразование – один из ценнейших навыков

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

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

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

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

Обучение в своем темпе

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

 

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

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

Именно по этой причине я всегда стараюсь учиться самостоятельно.

Индивидуальное расписание

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

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

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

Глубокое изучение наиболее интересных тем

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

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

Недостатки самообразования

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

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

Отсутствие подсказок, что и как изучать

Помните, я говорил о плюсах и минусах гибкости? Давайте поговорим об этом более подробно.

Когда у вас на руках нет карты, очень сложно понять, куда идти и что делать. Что учить в первую очередь? Как понять, что вы делаете все правильно? Как определить, что вы усвоили тему? Именно эти вопросы приходят в голову в первую очередь, когда начинаешь учиться самостоятельно.

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

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

Отсутствие помощи в поиске работы

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

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

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

Потерять мотивацию очень легко

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

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

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

Социальная изоляция

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

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

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

Высокая вероятность провалов в знаниях

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

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

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

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

Стратегия

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

Начните с плана

Старая поговорка гласит: «Не планируя ничего, вы планируете провал». Согласен, звучит как нравоучение, но это правда. Гарантирую вам, что без плана обучения вы не сможете стать хорошим разработчиком. Планирование особенно важно в тех случаях, когда вы работаете самостоятельно и сами определяете курс, в котором двигаться. Я говорю вам это не как программист, а как предприниматель.

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

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

Составьте расписание

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

Я учу разработчиков зарабатывать на жизнь. Я учу людей быть более продуктивными, приводить себя в форму, достигать целей, в общем, даю живительный пинок под пятую точку. И по опыту я могу сказать, что люди, не придерживающиеся графика, почти всегда терпят неудачи. Чего уж там, я сам проваливаю дело, если не придерживаюсь расписания. Не следуй я графику создания книги, она вряд ли появилась бы на свет. Вот прямо сейчас таймер говорит мне, что на сегодня осталась всего 21 минута для работы над книгой.

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

Выстраивайте социальные связи в процессе обучения

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

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

Найдите наставника

 

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

Более того, как только вы начнете обучение, попробуйте сами быть для кого-то наставником. Лучший способ понять тему – объяснить ее другому человеку.

Создайте сторонний проект

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

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

Итак, хороший сторонний проект:

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

• помогает создать портфолио из реальных работ, которое пригодится на собеседовании;

• помогает создать возможный дополнительный доход или новый бизнес;

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

• повышает вашу уверенность в своих силах;

• позволяет весело провести время (если вы фанат таких вещей).

Если вы все еще не отказались от мысли стать программистом, то, приступая к написанию кода, старайтесь сделать так, чтобы он делал что-то полезное для вас, желательно в более чем одинарном размере. Не расстраивайтесь, если вы пока что толком не понимаете, что именно вы делаете. Разберетесь по пути.

Даже если вы создадите что-то, что будет выглядеть как «полная ерунда», это не отменяет того, что вам все равно удалось что-то сделать, а значит, по окончании обучения вам будет что показать.

Подпишитесь на тематический сайт

Буду честен, я являюсь автором 55 курсов на Pluralsight[13]. Но даже если бы я не создал их, я бы все равно порекомендовал вам зарегистрироваться на этом сайте. Зачем? Да потому что этот сайт предлагает кучу полезной информации за сравнительно небольшие деньги! Мне бы очень хотелось, чтобы в те времена, когда я начинал программировать, существовал такой ресурс. На нем есть материалы практически по любому аспекту программирования. И все это по вполне доступной цене.

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

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

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

13На момент выхода книги сайт недоступен на территории РФ. – Прим. ред.
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58 
Рейтинг@Mail.ru