Как стать профессиональным разработчиком программного обеспечения-самоучки (который зарабатывает деньги)

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

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

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

Ты выучишь

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

С чего начать?

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

  • HTML 5.
  • CSS 3.
  • Javascript.

Подробная дорожная карта

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

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

Я рекомендую:

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

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

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

- Youtube: Также стоит проверить, так как вы можете найти практически все, что вам нужно знать о разработке программного обеспечения. Практичный, а также технический.

Прежде чем мы двинемся дальше

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

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

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

Изучите алгоритмы и структуры данных

Независимо от того, какой язык программирования вы выберете, чтобы стать экспертом, алгоритмы и структуры данных являются ядром всего. Самый простой способ начать - пройти эти два курса по алгоритмам и структурам данных. Оба с сайта Udemy.com. Также стоит поискать несколько видео на YouTube.

Найдите свой стиль обучения

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

Успокойтесь

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

Никогда не узнаешь всего или станешь лучшим

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

Отлично, а что дальше?

Создайте онлайн-профиль, настройте свои социальные сети И уже получите работу!

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

Linkedin

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

Facebook

Я знаю, это звучит странно, но на самом деле нормально видеть себя брендом и ценным активом для компании. Продай себя таким! Однако НЕ ЗАНИМАЙТЕСЬ созданием группы на Facebook для своего имени или бренда. Нет, если вы не имеете в виду что-то очень конкретное. Я сделал это, когда только начинал. Я трачу бесчисленные часы на размышления о том, кем я хочу быть как бренд и как должен выглядеть мой профиль. Обдумывать эти вещи - это прекрасно, но лучший способ заявить о себе - это пойти туда, где есть все. Их нет в вашей личной группе в Facebook. Поэтому, если вы не думаете, что ваша собственная группа в Facebook может создавать ценность для других, скорее всего, вам не стоит ее создавать. Вместо этого ищите предпринимательские группы или группы, связанные с разработчиками программного обеспечения, где вы часто можете найти кого-то, кому нужны ваши навыки.

Github

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

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

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

На Github есть еще несколько преимуществ. Во-первых, вы научитесь использовать контроль версий с помощью набора инструментов git (кстати, это также упоминается как часть дорожной карты). Проще говоря, вы загружаете и скачиваете разные версии (ветки) своего кода. Это очень распространенная практика в технологических компаниях, и когда, наконец, настанет день, когда вы получите работу, вы определенно почувствуете себя увереннее, если уже привыкли использовать Git и Github. (Не совсем то же самое).

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

Веб-сайт

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

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

Другие способы позволить другим людям вас заметить

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

Первый контакт

Ты готов! Вы кое-что знаете! Здорово! Если у вас нет опыта работы над реальным проектом (под реальным я подразумеваю онлайн-платформу с частым развертыванием или, по крайней мере, с другими людьми в подвале), маловероятно, что кто-то свяжется с вами с предложением о работе (по крайней мере, со мной этого не случилось). Поэтому, возможно, вам придется потрудиться, чтобы получить работу. Не ждите, что они вам позвонят. Вместо этого потратьте много времени на изучение компании, в которой вы хотите работать, а затем позвоните или напишите электронное письмо. Убедитесь, что вы подготовили свои онлайн-профили и вам есть что показать. Есть также несколько вещей, которые вам необходимо учитывать, прежде чем обращаться в компанию или прежде чем отвечать на предложение о работе.

Обдумайте свой вид работы

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

На месте

Это самый нормальный вид работы, когда приходишь в офис и работаешь восемь часов.

- Преимущества. Обычно вы получаете фиксированную ежемесячную заработную плату, выплачиваемую вовремя.

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

Удаленный

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

- Преимущества: гибкие рабочие места. Это дает вам возможность путешествовать или работать, например, в кафе.

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

Фрилансер

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

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

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

Учитывайте свой тип компании

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

Несколько вопросов, которые стоит задать себе

- В какой отрасли я хочу работать?

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

- Насколько большой должна быть компания?

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

- Сколько я думаю денег?

Это может быть довольно сложно, потому что вы хотите продать свое время по максимально выгодной цене, но вы не хотите переоценивать свои навыки, а также не хотите слишком дешево продавать свое время. Это также зависит от того, в какой точке мира вы находитесь. Вот ссылка для оценщика Glassdoors. Это может дать вам хорошее представление о том, чего ожидать. Конечно, очень важен и ваш уровень опыта. Помните, что Google - ваш друг. Кстати, зарплата может быть для вас даже не важна. Если вы чем-то похожи на меня, зарплата - очень краткосрочный мотиватор. В конечном итоге команда - это самое главное. Поверьте мне. И последнее, что следует учитывать, - это размер компании. Стартапы обычно не платят так хорошо, как крупная компания.

Собеседование

Здорово! Назначена встреча, и теперь у вас есть крайний срок для звонка или встречи с новым возможным работодателем. Они связались с вами, потому что вы им интересны. Вы можете быть уверены в своих навыках.

Когда вы готовитесь к собеседованию:

Ухаживайте за собой

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

Прочитать о компании

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

Изучите свои технические навыки

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

Подготовьте бесплатные образцы

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

Вы получили работу!

Здорово! Все идет нормально. На этом этапе вы очень далеко продвинулись в своем путешествии. Помните время, когда вы не знали, что это за функция или класс CSS? или даже Github ?. Будь счастлив. Гордиться. Теперь нажмите на него, потому что вы только начинаете.

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

Вы не получили работу!? !!

Чего ждать? Что это за хреновая статья? Угадай, что? Хотя неудача - это не весело, это САМОЕ ценное, что может с вами случиться.

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

Общий совет:

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

Упражняться!

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

Здоровое питание

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

Подумайте о том, чтобы найти наставника

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

Сколько работы?

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

Есть только ОДИН крайний срок

Для более легкого выполнения приведенного выше совета ИМЕЙТЕ ТОЛЬКО ОДИН СРОК. Это означает, что если у вас есть работа на месте или контракт внештатного сотрудника, убедитесь, что у вас есть только один (или что соответствует примерно 40 часам работы в неделю). Если у вас есть сторонние проекты, убедитесь, что они ваши собственные, и что вы можете откладывать их сколько угодно, чтобы никто на вас не злился.

Всегда переоценивайте время

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

Специализироваться

Ты не можешь все делать. И у тебя не все получается хорошо. Найдите какой-то аспект работы разработчика, который вам нравится, и специализируйтесь на нем. Это огромный мир, и он не становится меньше. Попробуйте разные фреймворки и выберите то, что вам нравится больше всего. Теперь убедитесь, что вы стали экспертом в этом вопросе. Для меня это, например, интерфейс на основе ReactJs. Я также знаю NodeJs и C # (.NET), а также несколько других фреймворков, но когда я ищу вакансии, я всегда убеждаюсь, что они основаны на React.

Расширьте свои знания

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

Начни с Почему

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

СПАСИБО ЗА ЧТЕНИЕ!

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

Куча полу-несвязанных преимуществ у разработчика программного обеспечения-самоучки

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

Еще кое-что, чтобы проверить

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

Информатика на высшем уровне. Книга, которая упрощает и объясняет многие концепции, которые вам необходимо знать как разработчику!

Кодовое ката. Еще один вариант отработки навыков программирования!

Кодекадемия. Бесплатная академия для изучения и практики разработки программного обеспечения!

Мой профиль в linkedin. Не стесняйтесь связываться со мной в Linkedin!