Книга Карьера в IT. Как найти работу, прокачать навыки и стать крутым разработчиком - читать онлайн бесплатно, автор Джон Сонмез
bannerbanner
Вы не авторизовались
Войти
Зарегистрироваться
Карьера в IT. Как найти работу, прокачать навыки и стать крутым разработчиком
Карьера в IT. Как найти работу, прокачать навыки и стать крутым разработчиком
Добавить В библиотекуАвторизуйтесь, чтобы добавить
Оценить:

Рейтинг: 0

Добавить отзывДобавить цитату

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

Джон Сонмез

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

© Райтман М.А., перевод на русский язык, 2023

© Оформление. ООО «Издательство «Эксмо», 2023

Вступление

Честно говоря, я и не думал, что так скоро примусь за новую книгу, ведь предыдущий мой труд, «Путь программиста. Человек эпохи IT»[1] (к слову, бестселлер), был опубликован совсем недавно. Хотя, пожалуй, прошло все же не так уж мало времени. Книга «Путь программиста. Человек эпохи IT» увидела свет в декабре 2014 года, а эту, что вы сейчас держите в руках, я начал писать летом 2016 года. Надо сказать, когда пишешь книгу, полтора года не кажутся очень большим перерывом. Создание книги – очень большой труд. Конечно, тот факт, что вон там на полке стоит написанная тобой книга, невероятно греет душу. Однако сам по себе процесс создания текста далеко не всегда столь же приятен. Здесь, наверное, мой читатель вправе спросить, почему же я в таком случае решился написать еще одну книгу? И почему – по крайней мере, по моим меркам – так скоро после выхода предыдущей? Дело здесь определенно не в деньгах, потому что есть масса куда более прибыльных способов потратить время, чем писать книги. Не могу я и сказать, что обожаю писательский труд. И хотя этот процесс доставляет мне определенное удовольствие, порой этот опыт можно назвать скорее болезненным, нежели приятным.

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

• Как начать свой путь в разработке ПО?

• Как развить технические навыки?

• Как лучше договариваться о зарплате?

• Работать в штате или быть фрилансером?

• Как общаться с начальством, коллегами, женщинами в сфере IT, а также бороться с предрассудками, будучи женщиной?

• Что действительно нужно знать и как это узнать?

• Что лучше: окончить университет, тематические курсы или учиться всему самостоятельно?

• Как найти работу? А если нет опыта?

• Как пройти собеседование?

• Как одеваться?

• Как продвинуться по карьерной лестнице и выйти на новый уровень?

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

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

Ну что ж, друзья, надеюсь, вы составите мне компанию на этом пути!

Нужна ли вам эта книга

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

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

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

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

Начинающий или желающий научиться разработке

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

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

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

Разработчик среднего уровня

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

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

И если вы заинтересованы в продвижении по карьерной лестнице (а иначе какой смысл работать?), то наверняка найдете полезной последнюю часть этой книги – «Развитие карьеры».

Профи

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

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

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

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

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

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

К слову сказать, вы ведь наверняка еще и занимаетесь обучением «салаг»? И, вероятно, вы не всегда понимаете, как и чему их учить? Кроме того, было бы неплохо иметь в запасе несколько советов, которые вы могли бы им дать в начале их карьеры? Как я уже говорил, эта книга пригодится вам вне зависимости от того, кем вы являетесь в мире разработки ПО.

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

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

Глава 1. Как пользоваться этой книгой

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

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

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

Зачем я написал эту книгу

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

Подписчики моего блога[2] и канала на YouTube[3] очень часто спрашивают, как стать разработчиком ПО и как расти в карьере. Я потратил немало времени, но так и не нашел исчерпывающее руководство, которое было бы полезно как неопытным разработчикам, так и профессионалам, касающееся достижения успеха в карьере, и помогло бы избежать наиболее распространенных проблем на этом пути.

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

Создавая эту книгу, я старался сделать ее отдельным, ни с чем не связанным руководством. Вам не нужно читать «Путь программиста» или любой другой «учебник», чтобы выжать из этой книги максимум. Фактически вам даже не нужно обладать каким-либо опытом в разработке ПО.

Какие цели преследует эта книга?

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

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

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

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

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

• Старт карьеры

• Получение работы

• Все, что нужно знать о разработке ПО

• Работа программистом

• Развитие карьеры

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

Как читать эту книгу?

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

Предположим, что вы заинтересовались разработкой ПО совсем недавно и пока что только постигаете азы программирования. В этом случае вам стоит начать чтение этой книги с части «Старт карьеры», как наиболее актуальной для вас. Кроме того, это первая часть этой книги.

Или, может быть, у вас за плечами уже есть пара-другая лет опыта работы в должности разработчика ПО. В этом случае, вероятно, вы захотите сразу перейти к части «Работа программистом» или «Все, что нужно знать о разработке ПО», чтобы заполнить пробелы в знаниях.

А может быть, ваш план состоит в том, чтобы как можно выше подняться по карьерной лестнице? В таком случае я рекомендую вам сразу перейти к части «Развитие карьеры». Это будет наилучшим решением.

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

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

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

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

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

Повторенье – мать ученья!

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

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

Повторяйте!

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

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

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

Действуйте!

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

Инструментарий включает в себя: пошаговое руководство по быстрому поиску работы разработчиком ПО (даже если у вас нет опыта), ускоренный курс подготовки к собеседованию, практические рекомендации на тему о том, как следует одеваться на работе, чтобы добиться большего уважения со стороны начальства и коллег, а также «шпаргалку по отладке», которая поможет вам в поисках и устранении багов…

Для посетителей моего сайта инструментарий стоит 175 долларов, но для вас, дорогие читатели, я сделал скидку. Вы сможете получить инструментарий на моем сайте всего за 99 долларов[4].

Дополнительные материалы к книге

Со всеми дополнительными материалами к книге, разбитыми по главам, можно ознакомиться по ссылке: https://simpleprogrammer.com/products/careerguide/links.

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

Поехали!

Часть 1. Старт карьеры

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

Дрю Хьюстон

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

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

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

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

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

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

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

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

Итак, давайте приступим.

Глава 2. С чего начать

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

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

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

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

Как начинал я?

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

Я скачал исходный код крайне популярной игры в жанре МПМ. (Многопользовательский мир. Это что-то типа World of Warcraft, только без графики. Только текст. Да-да, это было в те далекие времена, когда мы дозванивались до «бибиэсок» с помощью модема). Когда я открыл файлы с кодом, то ужаснулся. Я всего лишь хотел создать свою собственную МПМ-игру и добавить в нее кое-какие свои идеи, но чтобы это сделать, нужно было нырнуть в эти дебри непонятных символов. В общем, именно это я и сделал. Я менял значения всех подряд переменных. Я искал код, отвечающий за вероятность нанести критический урон. После того, как я нашел его и изменил, я перекомпилировал игру и посмотрел, что получилось.

Иногда я получал, что хотел. А иногда мое творение даже не компилировалось. Я просто смотрел что работает, а что – нет. Вот так и выглядела моя «учеба»! Несмотря на то что я толком не понимал, что делаю, уже через неделю таких экспериментов мне удалось слепить собственную МПМ с уникальными «фичами».