Автор: Уилсон Йонг, Circles Academy, инженер-программист

Как программист-самоучка с «гуманитарным образованием» я получаю множество вопросов вроде такого: как вы сделали скачок в программную инженерию? Простой ответ: это не просто прыжок веры — это скорее прыжок с шестом. Даже без «соответствующей степени», которую ожидают многие объявления о работе, с ноу-хау и смелостью, чтобы доказать это, вы все равно можете пройти это собеседование на ногах.

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

Начать раньше

Существует множество онлайн-курсов или учебных лагерей, обещающих научить вас программировать за X недель. Да, полезны в качестве первого шага, но обычно такие ускоренные курсы обычно не дают студентам ноу-хау: обращение с текстовыми редакторами, навыки отладки, реструктуризация спагетти-кода… мир вне их кода/машины — как работать с датой и временем, языками, как работает Интернет, иногда даже с тем, как выполняется их код (общий симптом: чрезмерная зависимость от кнопок IDE и мало/отсутствие упоминания о "командная строка"). Список можно продолжить.

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

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

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

Сосредоточьтесь на мастерстве

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

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

Код, который пахнет чистотой, посылает сильный сигнал о том, что вы достаточно заботитесь о том, чтобы все делать правильно, и не пожалеете времени, чтобы довести свою работу до совершенства на благо других, которые на нее смотрят. Являются ли ваши комментарии кураторскими, достаточно ли места, отступы в строке? Опасный код выглядит рискованным, поэтому его легко заметить (и исправить)? А когда придет время нарушать правила и условности, сможете ли вы отстаивать свои решения до победного конца? Если вам не все равно, это проявится в отработанной последовательности — даже во время собеседования по программированию.

Искать возможности

Я специализируюсь на лингвистике. Если ваш первый ответ: Значит, вы будете преподавать английский язык? вы не будете слишком далеки от обычного (примечание: когда я обучаю людей Python, мое эмпирическое правило звучит так: Одна строка кода = одно английское предложение, оно подтверждается). Признаться, я не ожидал светлого будущего в инженерии. Как назло — но было ли это на самом деле везением? — Меня порекомендовали на летнюю стажировку в Сингапурском Национальном речевом корпусе в IMDA. Я был взволнован, так как в интервью я рассказал о своем опыте работы с MySQL и Python.

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

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

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

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

Если у вас уже есть ноу-хау и смелость, чтобы доказать это, подайте заявку в Circles Academy, где вы сможете наточить зубы в реальных проблемах под наставничеством ветеранов. Конечно, есть обычные требования «соответствующей степени», но будьте смелыми, и мы будем непредубежденными — это встроено прямо в основные ценности Circles. Увидимся там!

Об авторе:Уилсон — инженер-программист в команде платформы в Circles.Life. Как обычный ремесленник и мыслитель, он балуется взломом и восстановлением любимых проектов, а также слишком глубоко читает малоизвестные темы. (Вы слышали блестящие шары грязи?)

Загляните также на нашу доску вакансий: в Circles.Life возможность искать ВАС!