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

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

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

Прежде чем стать инженером-программистом, я около года работала налоговым консультантом в PricewaterhouseCoopers (PwC). В течение этого года я быстро понял, что принял неправильное решение. Большая часть работы, которую я выполнял, была рутинной и повторяющейся, и я всегда задавался вопросом, почему задачи, которые мне поручали, нельзя было автоматизировать. Примерно за месяц до увольнения я сделал то, что делает каждый человек, который не доволен своей работой, ищет что-то другое! Изучая различные карьерные пути, я наткнулся на разработку программного обеспечения. Я решил попробовать кодирование и прошел бесплатный курс Udacity «Intro to Python». Курс был идеальным для полного, полного новичка, как я. По мере прохождения я понял, что умею программировать и что это будет идеальная карьера для меня. На следующий день после окончания курса я вручил своему руководителю заявление об увольнении, и мой путь в разработку программного обеспечения официально начался.

Для тех, кто думает о переходе на программную инженерию, есть 3 варианта: традиционный маршрут 4-летнего обучения в области компьютерных наук, самоучка и буткемпы. Если бы я мог повторить все это снова, я бы определенно прошел маршрут для самообучения, учитывая, что это самый дешевый вариант из трех. Однако, поскольку я не знал о маршруте для самообучения на момент принятия решения, Я выбрал вариант буткемпа (а позже вариант самоучки для iOS-разработки). Проведя обширное исследование, чтобы определить лучшие учебные курсы в Сан-Франциско, я записался на 4-месячную программу иммерсивной веб-разработки App Academy.

Мое время в App Academy можно описать следующим образом: есть, программировать, спать, повторять. В течение 16 недель я тратил около 80 часов в неделю на изучение кода, чтение кода, просмотр учебных пособий по программированию, посещение лекций по коду и обсуждение кода с товарищами по группе. Кроме того, от меня ожидалось, что я буду следить за материалом, который преподают каждую неделю, иначе я рискну провалить любую из 6 оценок во время программы. Оценки проверяли нас на материале за предыдущие 2 недели и усугубляли и без того напряженный опыт, который повлекла за собой программа. После 16 недель я был в восторге от того, что справился и теперь могу официально называть себя настоящим инженером-программистом!

В обычное время (до пандемии) вы могли рассчитывать получить работу в течение 6 месяцев. Тем не менее, я закончил App Academy незадолго до пандемии, поэтому мой поиск работы был значительно дольше и сложнее, учитывая массовые увольнения и приостановку найма, которые компании проводили в то время. В течение целых 6 месяцев у меня практически не было тяги к моим приложениям. Мне посчастливилось проходить одно собеседование каждые 2 месяца, но даже эти возможности довольно быстро заканчивались. Со всем этим свободным временем, которое у меня было из-за того, что я не проходил собеседования по веб-разработке, я сразу же воспользовался возможностью и решил перейти к изучению разработки для iOS. Я большой поклонник Apple с тех пор, как получил свой первый смартфон iPhone 4S еще в старшей школе. Я всегда хотел создать собственное приложение и показать его своим друзьям, но никогда не знал, с чего начать.

Из-за того, что у меня за плечами был опыт программирования, освоить совершенно новый набор навыков (iOS и Swift) было намного проще и быстрее, чем когда я впервые изучал веб-разработку. Чтобы изучить iOS, я записался на курс Анджелы Ю в Udemy (udemy.com/course/ios-13-app-development-bootcamp/). В ходе курса я научился создавать приложение для викторины, приложение для чата и приложение для списка дел. К концу я приобрел все необходимые знания, собрал портфолио из проектов курса и был готов подавать заявки на работу!

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

После стажировки в Gesture я прошел еще одну стажировку в Fetch Rewards и какое-то время работал полный рабочий день в GoSite. В прошлом месяце я устроился на свою текущую работу iOS-инженера в Poshmark. Могу с уверенностью сказать, что это 2-летнее путешествие того стоило! Работа, которой я занимаюсь, действительно приносит мне счастье и удовлетворение, чего бухгалтерский учет никогда не может предложить.

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

Оставайтесь с нами и не забудьте подписаться на #SwiftManStan, так как я планирую использовать Medium для публикации iOS, Swift и другого общего контента, связанного с программированием! Если у вас есть вопросы, не стесняйтесь оставлять их ниже, и я сделаю все возможное, чтобы ответить на них :)