Я программист-самоучка, собирающийся выйти на рынок труда. Что я хочу знать, так это лучший способ показать мой опыт работодателям?
Что работодатели хотят знать о моем опыте программирования? Работодатели хотят посмотреть на код, который я написал, или они могли бы увидеть программное обеспечение в действии? Или их волнует только то, сколько моего программного обеспечения используется / сколько оно принесло доход? Должен ли я написать о своем дизайне и стиле программирования?
Мое прошлое: я недавно закончил университет, в котором я изучал иностранные языки, и именно в это время я узнал, что программирование - это то, чем я действительно хочу заниматься. В настоящее время я программист гаража, разрабатываю программное обеспечение для клиента для коммерческого использования, продолжая самообучаться, но моя цель - начать «правильную» работу и карьеру. В качестве дополнительного повода я сейчас живу в Финляндии, но ищу работу в Китае или Японии (я изучал оба языка во время обучения за границей).
Ответы:
Я бы сказал, что работодатели ищут такие вещи у всех заявителей-программистов (это исходя из моего собственного опыта в качестве главного разработчика, который проверяет кандидатов):
Способность быть гибким и быстро осваивать новые технологии (это особенно важно для программистов-самоучек)
Умение общаться проблемы
Способность решать алгоритмические и логистические задачи (важно для программистов-аналитиков)
Способность соответствовать стандартам и правилам местного бизнеса, т.е. Не зацикливайтесь на своем, обязательно следуйте соглашениям об именах бизнеса, в котором вы работаете.
Честный и трудолюбивый.
В большинстве случаев крупные компании попросят вас предоставить заявителю упражнение. Эти упражнения варьируются по сложности, но одним примером может быть кодирование многократно используемого модуля, который преобразует сумму в долларах в читаемую на английском языке строку текста, которая будет записана в чеке на эту сумму, т.е. "999,34 доллара" - "Девятьсот девяносто девять долларов тридцать четыре цента".
Важно отметить, что это будет не только код, который они будут рассматривать в этих упражнениях, но также и документация, которая идет с ним, т.е. документ, который объясняет проблемы, предположения и используемый алгоритм. Они также будут проверять ваши соглашения об именах (главным образом, проверять согласованность) и проверять четкое комментирование кода.
источник
Ключ
Серьезно, я ищу всего несколько вещей в кандидате:
Примеры: выпускник средней школы с самообучением, который решил 50 задач Эйлера: легкий найм. MSCS с 4.0 GPA, который не может объяснить разницу между TreeMap и HashMap: не нанимайте.
источник
Другие уже ответили на ваш прямой вопрос о кандидатах-самоучках. Однако есть еще одно соображение, которое может быть даже более важным, чем самоучка или нет. Я говорю о культурах стран, в которых вы планируете работать и жить.
Прежде всего, никогда не пишите «работа в Китае или Японии» . Звучит как «Финляндия или Австралия» (без обид). Они совершенно разные, и тебе придется выбирать.
Кроме того, работа в другой стране обычно означает более высокие налоги для компании, различные ограничения (например, нанять одного иностранца, приходится нанимать N местных жителей) и так далее. Поэтому, чтобы быть принятым на работу в Китае, вы должны быть действительно хороши в том, что делаете .
На самом деле, у вас есть два лучших варианта:
источник
Главным образом, что у вас есть. Поставьте себя на их место: если бы вы нанимали кого-то, вы бы выбрали парня, который может не знать, что делать с компилятором, или парня, который несколько раз обходился вокруг блока, научился решать проблемы и мог получить полезная работа сделана без большого количества рук?
Да. Наличие некоторого кода для показа может быть полезным. Полезно также иметь рабочий продукт для демонстрации и быть готовым ответить на вопросы о том, как он работает, почему вы это сделали и т. Д. Разные работодатели будут ценить эти вещи по-разному, но всегда лучше иметь что-то, чем не иметь ничего.
В Китае и Японии много людей, которые говорят на китайском и японском языках соответственно. Наверное, не так много людей, которые свободно говорят на английском и финском языках. Используйте эту силу в своих интересах - ищите компании, которым нужны языковые навыки.
источник
Я бы сказал, что наиболее важные навыки, которые программисты-самоучки могут не иметь, не зная об этом, - это инженерия программного обеспечения и архитектура программного обеспечения.
Убедитесь, что вы знаете больше, чем просто пишете код, убедитесь, что вы знаете, что такое ремонтопригодность и как этого достичь; что такое ТВЕРДЫЕ, почему это считается хорошим и необходимым; шаблоны проектирования и др.
Кроме того, попытайтесь исправить любые плохие части вашего процесса. Например: автоматическое тестирование (что каждый должен делать!), Отслеживание ошибок, контроль версий исходного кода (также обязательно). Этот список не предназначен для включения всего, это всего лишь пример.
источник
Да, это лучшие варианты. Квалификации не являются особенно хорошим показателем способности писать код. То же самое относится и к предыдущим работодателям - многие люди могут найти работу, для которой они не подходят. Я хочу видеть, какой код вы пишете, и отслеживать историю создания материалов, которые были внедрены в производство.
Это за пределами вашей сферы ответственности, меня это не волнует, если вы не претендуете на должность менеджера проекта или выше.
Не слишком много, но, возможно, будут полезны маркеры, показывающие области интереса с вашими примерами кода.
источник
Навыки самообучения
Да, самообучение - это ваш передовой конкурентный навык, который вы должны подчеркнуть и представить с гордостью. Кроме того, вы должны показать свою страсть к программированию и стремление к самосовершенствованию.
Они хотят видеть ваши достижения и навыки аналитического мышления. Они хотят видеть - что вы сделали, что принесло пользу проекту, какую роль вы сыграли в выполнении проекта, если вы работали в команде. Как вы решаете проблемы и преодолеваете технические проблемы. Как вы работали с колледжами, как справлялись с трудовым давлением.
Некоторые другие моменты, которые могут быть очень важны для работодателей:
источник
В дополнение к другим ответам - перечислите инструменты, которым вы научились за время обучения.
Я обучал выпускников известных школ со знаменитостями, которые настаивали на написании кода Java в блокноте Windows и использовании компилятора командной строки («так лучше» - для одноклассной программы). Большинство рабочих мест используют IDE и другие инструменты программирования. И научить их, как использовать Eclipse, было проще, чем пытаться научить их SVN.
Перечислив одну или несколько сред IDE или (что более важно) один или несколько инструментов хранилища кода, вы покажете, что готовы работать с командой.
Ответ B: если вы можете попасть туда, попробуйте выставку CEBIT в Ганновере в Германии. Мы привыкли, что люди посещают наш стенд с просьбой о работе в нашей стране. Вероятность того, что вы встретите нужного человека, который может вам помочь, невелика. Или спросите их, нужен ли им местный / европейский человек, чтобы помочь им.
источник
Как только вы сможете продемонстрировать, что написали качественный код, то как и где вы научились программировать, становится менее важным. Вы создали приложение целиком, поэтому вы сможете объяснить дизайн, проблемы, с которыми столкнулись, и почему вы выбрали эти решения.
Если ваша заявка недостаточно известна, вам нужно будет дать дополнительные пояснения в своем резюме и сопроводительных письмах. Наличие большого количества пользователей является преимуществом, поскольку оно показывает, что вы можете справляться с масштабом, и получение дохода будет затруднительным для добавления какого-либо преимущества. Кто-то может нанять программиста, чтобы создать приложение, используя гороскопы, чтобы помочь хирургам мозга. Не уверен, что я возложил бы на программиста ответственность за этот бесполезный продукт. Может быть, стартап предпочел бы разработчика с некоторым смыслом продукта, но они не могут противостоять вам, потому что вам нужно оплачивать счета.
источник
Если степени не доступны, известные сертификаты являются плюсом. Некоторые сертификаты не требуют курса, вы можете только сдать экзамен.
Ваш опыт программирования заключается в проектах. В своем резюме вы пишете свои навыки. На собеседовании вас спросят о проектах, над которыми вы работали. Затем вы расскажете о том, что вы сделали, с какими проблемами столкнулись, какие решения нашли и т. Д.
Может быть. Лично я не слышал о работодателях, которые просят показать код (кроме кода, который вы пишете во время технического собеседования, в качестве теста). Если вы веб-дизайнер или дизайнер пользовательского интерфейса, в большинстве случаев они захотят увидеть некоторые веб-сайты, которые вы создали или разработали.
Большинству работодателей будут интересны языки программирования, на которых вы свободно пишете код, знания, которыми вы владеете, и приобретенные навыки. То, сколько программного обеспечения используется и приносит доход, - это маркетинговые вещи, а не программирование. Большинство компаний имеют свой собственный дизайн и стиль программирования. Они ожидают, что сотрудник должен быть знаком с такими методами, как Agile, Scrum, Extreme, в зависимости от того, что они используют.
источник