Полное раскрытие информации: я написал следующую статью несколько месяцев назад, но только недавно нашел в себе смелость опубликовать ее.

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

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

Станьте всесторонним.

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

Будьте интересны. Создавайте программы, которые привлекают внимание.

Не просто научитесь делать блог или базовый микросервис обмена сообщениями. Это хорошо, но вы должны пройти мимо них. Все ваши конкуренты на рынке труда умеют создавать блоги и микросервисы для обмена сообщениями. Если у вас больше сил с фронтендом, сделайте фронтенды, которые привлекают внимание. Вы можете почерпнуть отличные идеи или вдохновение на других сайтах, C odepen .io, или даже спросив своих друзей, что, по их мнению, могло бы выглядеть круто. Если вы больше являетесь внутренним разработчиком, сделайте что-нибудь безумное с данными. Используйте реальные данные. Не имеет значения, извлекается ли он из Интернета, вызывается из API, извлекается из цепочки блоков или собирается из любой комбинации источников данных. Важно только то, что вы делаете что-то, что дает людям о чем поговорить и запомнить вас. Никого не волнует визуализация случайных, бессмысленных или поддельных данных. Убедитесь, что вы заинтересованы в том, над чем вы работаете. Это важно, потому что вы потратите больше времени на обдумывание творческих идей для улучшения своей программы, если вы действительно заинтересованы в том, чтобы увидеть, как она воплотится в жизнь, вместо того, чтобы просто помещать ее в свой профиль Github, чтобы показать, что вы освоили основы. Перед тем, как начать проект, задайте себе следующий вопрос: Хотел бы я увидеть, как этот проект оживает, если бы я не мог показать миру, что написал код?. Если ответ отрицательный, копайте глубже.

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

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

Пройдите онлайн-курсы на таких сайтах, как LinkedIn Learning, Coursera и Udemy.

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

Составьте программу, адаптированную к отрасли или компании, на которую вы подаете заявку.

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

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

Работайте усерднее, чем все остальные.

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

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

Удачного кодирования!