Как получить свою первую работу в IT без какого-либо опыта работы

Перевод статьи: How I Became a Software Developer Without a CS Degree (Как получить свою первую работу в IT без какого-либо опыта работы)

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

Как получить свою первую работу в IT без какого-либо опыта работы

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

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

Как мои предрассудки помешали мне найти работу в IT раньше

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

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

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

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

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

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

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

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

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

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

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

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

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

Он слишком молод для вас? Йенс Скоу начал программировать в 70 лет. А одна женщина создала свое первое приложение в возрасте 82 лет! Слишком опрометчиво утверждать, что это слишком поздно.

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

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

Как отговорки и неправильный подход приводят к неудачному поиску работы в IT и началу карьеры?

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

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

Не имея базовых знаний, я амбициозно начал учить себя Objective-C — языку, на котором создаются приложения для iOS. Другой программист уже начал создавать, а мне посоветовали купить толстую книгу по Objective-C.

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

Код на тарабарском языке был ошеломляющим, и я был в замешательстве. Я даже не мог объяснить, чего я не знал. Я не знал, с чего начать.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Создайте себе ситуацию, в которой вам придется кодироваться

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

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

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

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

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

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

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

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

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

Этот небольшой заказ стал для меня поворотным моментом. После этого я стал брать больше заказов на создание целевых страниц и сайтов WordPress. Затем я создал более динамичные приложения, такие как сайт электронной коммерции для клиента. Попутно я создавал свои собственные проекты на ReactJS и Electron. Я стал неудержим. Я наконец-то набрал обороты.

Кодирование — это самое близкая работе к суперспособности, что у нас есть

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

Советую прочитать предыдущую статью — Советы по составлению расписания для программистов.
А также подписывайтесь на группу ВКонтактеTelegramИнстаграм и YouTube-канал. Там еще больше полезного и интересного для программистов.

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

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

«Кодирование — это самая близкая к суперспособность».
Дрю Хьюстон, основатель Dropbox Удачи вам!