Около года назад я начал изучать Swift с абсолютно нулевым опытом программирования и недавно получил свою первую работу.

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

Начало работы с iOS

У Пола Хадсона есть отличная серия руководств под названием 100 Days of SwiftUI, которая начинается с самого начала. Существует много-много руководств по Swift, но, исходя из нетехнического опыта, изучение основ программирования перед тем, как погрузиться в Swift, было для меня неоценимым.

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

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

Было приятно делать все правильно, но я также пытался намеренно сломать свой код, чтобы попытаться выяснить для себя, как все работает.

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

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

Создание портфолио

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

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

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

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

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

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

Подача заявки на работу

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

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

У меня был ограниченный контроль над процессом найма, но я мог стать лучшим кандидатом.

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

Я сказал себе, что этот процесс может закончиться через некоторое время, что дало мне ментальное пространство, чтобы не торопиться и не принимать бесчисленные L на свой счет.

Интервью

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

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

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

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

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

Краткое содержание

Еще несколько случайных инсайтов из моего опыта:

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

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

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

Некоторые общие советы, которые я не делал:

  • Участие в проектах с открытым исходным кодом / stackoverflow
  • Опубликовать в твиттере или любой другой социальной сети
  • Учебный курс по программированию
  • Интернатура
  • Апворк

Некоторые вещи, которые я сделал, но не помогли мне напрямую:

  • Нетворкинг/публикация в Linkedin
  • Обращение к моим контактам по поводу потенциальных вакансий в их компании
  • Обращение к рекрутерам

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

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