Здравствуйте, в этой статье мы постараемся ответить на вопрос: «С чего начать обучение программированию и как специалисту найти работу?». Также Вы можете бесплатно проконсультироваться у юристов онлайн прямо на сайте.
IT — перспективная отрасль, которая сулит хорошим специалистам немаленькие зарплаты. Но если деньги — единственная причина, подумайте трижды. Вам предстоит работать в офисе, дома, забывать о выходных и возможности расслабиться: все мысли в тасках и багах. А всё, что обязательно нужно знать начинающему программисту, курсы не дадут: будьте готовы доучиваться.
Если же вы питаете неподдельный интерес к процессу, смело ступайте на стезю разработки.
Как стать разработчиком с нуля
Десктопными называют приложения, которые устанавливаются на компьютер и работают под управлением ОС. Как известно, чтобы стать айтишником с нуля, сперва в любом случае нужно практиковаться на консоли и десктопе.
Хотите заниматься этим на серьёзном уровне? Здесь всё просто: если планируете разрабатывать под Windows — учите язык C#, под Linux — C++ или C, под macOS — Swift.
R в свою очередь характеризуется богатой ML-экосистемой, поддержкой векторных вычислений и синтаксисом, заточенным под нужды статиста. Из минусов — меньшее комьюнити и не самый простой синтаксис.
Но у языка R есть свои инструменты для Data Science:
- Esquisse и Ggplot2 — библиотеки для создания графиков.
- Dplyr — аналог Pandas для R.
- Shiny — пакет для интерактивных веб-приложений с визуализацией исследований.
И это не говоря о randomForest, Caret и других библиотеках с методами машинного обучения.
От «ничего не понятно» до первой работы: как становятся программистами с нуля
Что нужно знать программисту, чтобы войти в геймдев? Сперва необходимо определиться, как устроены игры. Хороший вариант для начинающих — готовые движки, такие как Unity и Unreal Engine (но последний сложнее и серьёзнее).
Далее стоит определиться с платформой, под которую вы хотите разрабатывать игры. Поэтому на вопрос, что нужно знать разработчику игр, ответить не так просто.
Речь о тяжеловесных многопользовательских играх с сильной нагрузкой на сервер. Такая задача под силу языкам C и C++.
9.4.1 C++
Что нужно знать начинающему программисту о C++? Это самый популярный язык программирования для геймдева: быстрый, мощный, с большим набором полезных инструментов. C++ — практически неограниченные возможности в среде масштабных проектов, в том числе в создании 3D-игр со сложной графикой и анимацией.
Не даром ведущие разработчики многопользовательских игр, такие как Blizzard Entertainment, работают с C++. На нём написаны World of Warcraft, Diablo, StarCraft, Counter-Strike и другие популярные игры. В основе Xbox и PlayStation также лежит C++.
9.4.2 С
Да, язык не такой популярный, как «плюсы», но по-прежнему хорошо справляется с большими нагрузками — альтернатив на низком уровне нет. Когда дело доходит до компиляции, сложно представить, какой бы язык мог конкурировать с Си.
Да. Любому программисту необходимо знать английский язык и математику. Вся важная документация и качественные курсы опубликованы на английском. Знание математики требуется не настолько категорично. Но уверенное владение математикой обеспечивает четкое понимание создаваемого кода, осознанность каждого шага и позволяет прикидывать в голове эффективность алгоритмов.
3
Если есть возможность поступить в вуз, то лучше выбрать один из ведущих: МГУ, МИФИ, ВШЭ, СПБГУ, МФТИ, МГТУ им. Баумана, МАИ, ИТМО и т.д. Речь идет, естественно, о профильных факультетах. Выпускники этих университетов лидируют в рейтинге портала Superjob, составленного по критерию уровня стартовых зарплат программистов.
Лучше всего подходить к изучению комплексно, например, совмещая онлайн-курсы, официальную документацию к языкам, лекции, статьи, книги. На GitHub можно найти огромную коллекцию бесплатных книг по программированию. Также доступен корпус электронных книг, охватывающий 24 языка программирования.
9
Программирование с нуля: с чего начать и как выучить
Это способ, позволяющий систематизировать информацию из лекций и самоучителей.
Его можно описать следующими ступенями:
- Читайте книгу. Когда в книге попадется образец кода, прочитайте его, сделайте заметки, которые могут помочь вам вспомнить эту информацию в будущем.
- Закройте книгу.
- Попробуйте набрать код, воссоздав его как можно ближе к оригиналу.
- Сравните свой код с оригиналом, исправьте ошибки, повторите пункты 1−3, пока не начнет получаться оригинальный код из книги.
Этот метод кажется простым и немного похожим на процессы, совершаемые автокодировщиком в машинном обучении. Его суть заключается в усвоении мысленных образов: в основе — идея ментальных репрезентаций и имитации.
Кстати, его можно применять не только при обучении программированию.
10
Считается, что высокие инженерные или исследовательские должности без высшего образования недостижимы. Также диплом необходим тем специалистам, которые захотят работать за границей. При этом многие российские HR-специалисты говорят, что при приеме на работу смотрят, в основном, не на строку «образование» в резюме программиста, а на реальный опыт работы. Кроме того, перед собеседованием или во время него претенденту, скорее всего, предложат выполнить тестовое задание.
11
Есть несколько вариантов развития событий, в результате которых человек становится программистом. Первый — родители-программисты, которые всему научили своих детей. Таким детям даже не нужно идти в университет. Второй вариант — модная профессия программиста. После школы нужно было выбрать, куда пойти учиться, и выбрали модное направление IT, вроде бы понравилось. И последний вариант — хобби, которое переросло в работу.
Это один из самых часто задаваемых вопросов.
Обычно ответ такой: пишите как можно больше программ.
Однако, есть простое упражнение, которое поможет вам улучшить этот навык:
- Выберите действие, которое вы делаете каждый день, например, готовите завтрак или что-то в этом роде. Оно должно быть не слишком простым, но и не слишком сложным.
- Запишите, какие шаги вы при этом предпринимаете, но сделайте это по памяти и не в то время, в которое обычно выполняете выбранное действие. (Запишите шаги, чтобы приготовить завтрак в середине дня.)
- В следующий раз, когда будете выполнять это действие, возьмите этот план и попробуйте неотступно придерживаться его. Постарайтесь не отклоняться от записанных шагов, а если вам пришлось это сделать, то запишите, что вы сделали не по плану.
- Улучшайте алгоритм, пока не будете довольны им.
- Попробуйте повторить то же самое на различных действиях. С каждым разом задание будет даваться всё легче.
Как бы глупо это упражнение ни звучало, оно работает. Схема была испробована на множестве студентов и позволила достичь значительного прогресса.
Инструкция для тех, кто хочет стать программистом с нуля
Программирование подобно любому другому навыку: относительно легко учить и применять основы. Чтобы научиться играть в боулинг, вы выясняете, как вставлять пальцы в отверстия шара и бросать его просто в направлении кеглей. Вам, может, даже удастся сбить несколько штук, и это не особо сложно.
Программирование схоже с большинством навыков в том, что гораздо затруднительнее перейти с начального уровня на более продвинутый. В продолжение примера с боулингом: если вы захотите участвовать в соревнованиях, вам придётся потратить годы, чтобы отточить навык. То же самое верно и для программирования: вам придётся потратить какое-то время (то есть много времени), пытаясь понять, почему эта дурацкая программа не работает, хотя вы всё уже три раза перепроверили. Вам придётся читать книги, сидеть на занятиях и обсуждать их с другими людьми. Вы выучите сленг программистов. Вы выберете специализацию, чтобы более основательно изучить ряд узких областей. Всё это задействует основы программирования, но новыми способами и в новых сочетаниях. Искать решения задач будет тяжело. Часами разбираться с одной задачей будет тяжело. Это нормально, потому что если вы получаете от этого удовольствие и если у вас есть мотивация, трудности не будут казаться такими трудными, и вы справитесь с ними.
Итак, программирование может быть сложным. Как и многие другие вещи, оно требует усилий, и эти усилия могут нелегко даваться. Не опускайте руки — получайте удовольствие, и все трудности будут того стоить.
«Знание языка» в программировании аналогично знанию разговорного языка. Вы можете сказать, что знаете его, когда научитесь эффективно его применять, даже если не знаете его в совершенстве. «Уметь программировать» обычно значит то, что вы понимаете принципы программирования и можете эффективно применять их в одном или нескольких языках. Почитайте недавние ветки по этой теме.
- http://redd.it/vhccu
- http://redd.it/iea3f
- http://redd.it/s4n5o
- http://redd.it/1nf8yd
Особенно когда вы начинаете учиться программировать, лучше учить один язык и на какое-то время остановиться на нём. Даже если отдельная проблемная область использует конкретный язык, которым вы пока не владеете, сначала научитесь программировать. А разобравшись с основами (управление потоком, обработка ошибок, ввод/вывод, имплементация алгоритмов, структуры данных и т.д.), можете начинать думать о том, чтобы взять следующий язык.
Если вы только начинаете, мы рекомендуем выбрать один язык (как сказано в предыдущем ответе, неважно, какой именно) и сосредоточиться на нём минимум на месяц. Опытные программисты могут понемногу учить несколько языков сразу, но новички скорее просто запутаются.
Это плохо, что новички иногда падают с велосипеда, когда учатся кататься? Это плохо, что новички иногда не могут удержаться на воде, когда учатся плавать? Это плохо что новички иногда не попадают в ноты, когда учатся играть на инструменте? Это плохо, что новичкам иногда приходится выбрасывать сгоревший обед?
Конечно, нет!
Серьёзно, это один из глупейших и часто задаваемых вопросов, связанных с программированием. Это естественно, если вам трудно и иногда что-то получается неудачно. В конце концов, вы только начинаете. Вам так и положено.
Неудача — важная часть обучения. Очень важно знать, как не надо делать. Неудача — это просто приобретённый опыт.
Если бы вам не было трудно и вы не сталкивались с неудачами, то вы не были бы новичком — вы уже были бы экспертом (но бывает, что даже у них иногда что-то не получается, просто не так часто, как у новичков, и обычно они знают, как с этим справиться).
Cи, C++, Objective-C и C# — это не вариации одного и того же языка.
Си — самый маленький и старый из этих языков. Изначально он создавался как системный язык программирования для операционной системы Unix и до сих пор широко используется в прикладном программировании.
С++ — очень популярный язык программирования общего назначения, изначально основанный на Си. После некоторых настроек большая часть кода (почти любой код) на Си может быть скомпилирована как код на С++. Однако в языке С++ появляется большой набор особенностей, которые значительно меняют применение языка по сравнению с Си. Написание кода в стиле Си на С++ обычно не приветствуется.
Objective-C — это строгое надмножество языка Си, поэтому любой рабочий код на Си также является рабочим кодом Objective-C. Этот язык далеко не так распространён, как Си или С++, и сегодня в основном используется в разработке для платформ OS X и iOS от Apple.
C# не основан на Си ни в каком техническом плане. С# — это язык программирования общего назначения, созданный Microsoft и подобный Java. Он компилируется в промежуточную форму, которая запускается на виртуальной машине (CLR), в отличие от предыдущих трёх языков, которые компилируются в нативный машинный код. И хотя С# заимствует элементы синтаксиса из Си и С++ (как и Java), технически он с этими языками не связан.
На каждого программиста, который взял в ипотеку двушку в Бутово, ездит на BMW X5 и отдыхает каждый год на Бали, есть как минимум два копирайтера и три сетевых маркетолога, которые прошли те же курсы, купили те же книги, но не смогли выйти даже на начальный уровень.
Программирование — как занятия в тренажерном зале. Эктоморфы плохо набирают мышечную массу, им лучше сосредоточиться на легкой атлетике, беге, воркауте. Эндоморфы в свою очередь вряд ли преуспеют в беге на длинную дистанцию, но достаточно быстро построят впечатляющий мышечный корсет. Каждый должен заниматься не тем, что сулит хорошую зарплату, а тем что нравится и хорошо получается!
Важный дисклеймер!
Несмотря на то, что некоторые люди обучаются программированию гораздо быстрее, чем другие, тем не менее, мы считаем, что практически каждый человек способен стать хорошим программистом. В данной профессии, как и в других, очень многое зависит от вашего желания и усердия. Возможно, чтобы добиться хороших результатов, вам потребуется потратить больше времени, но если программировать вам действительно нравится, то все в ваших руках и важна лишь ваша мотивация и упорство.
- Математический склад ума — это основа. Умеете ли вы играть в шахматы? Если нет, хотели бы научиться? Любили ли вы в детстве собирать головоломки? Можете ли в уме перемножать двузначные цифры? Как насчет кубика Рубика? Пятерку по математике в школьном аттестате работодатель вряд ли будет искать, но если ее там нет, вероятно, программирование будет даваться вам чуть тяжелее, чем коллегам, с математическим складом ума, а это значит, чтобы добиться тех же результатов, вам придется трудиться усерднее и дольше.
- Знание английского — это важно. IT-сфера меняется очень динамично, образовательные материалы публикуются в основном на английском. Многие замечают, что переводы книг на русский иногда содержат ошибки, хотя и появляются спустя полгода-год, когда технологии уже активно применяются теми, кто изучил их описание на оригинальном языке. Стандартом сферы уже давно является необходимость предоставить резюме на английском, а также доказать свои знания на собеседовании, даже если вас интересует работа начинающего программиста без опыта. Карьерный рост без знания английского невозможен, ведь даже начинающему программисту часто приходится участвовать в конференциях с заказчиками, которые часто базируются в Европе и США.
-
Готовность к сложной умственной работе. Думаете, разгружать вагоны сложнее, чем работа программистом 1с? Это так, но качеству сна грузчика позавидует любой программист, потому что его мозг просто не может расслабиться в нерабочее время. Известное исследование: во время шахматного матча на первенство мира ученые оценили расход калорий чемпионом мира Анатолием Карповым (игра в шахматы весьма схожа с написанием кода) и пришли к выводу, что на партию ему требуется столько же энергии, сколько и футболисту на один футбольный матч.
Мозг программистов на самом деле постоянно напряжен, и такая нагрузка может быть не под силу бывшим бухгалтерам, экономистам, охранникам, школьникам, которые привыкли списывать, а теперь вдохновились высокими зарплатами и радужными перспективами.
Формальная градация отличается в разных компаниях, но в сфере IT все же принято разделять программистов на следующие уровни:
- Интерн — работа для начинающего программиста без опыта. Интерн отличается молодостью, огоньком в глазах, наличием свободного времени и огромным желанием учиться. Требуются базовые знания языка и умение доказать свои навыки в процессе собеседования.
- Junior — младший программист, основное качества — стремление к выполнению задач. Junior тратит часы на написание элементарного для более опытных коллег кода, часто с ними консультируется и благодаря этому совершенствует свои знания. Задача Junior — продвижение вперед, к следующему уровню.
- Middle — программист среднего уровня. Он может обходиться без какой-либо помощи и способен самостоятельно выполнять достаточно сложные технические задачи.
- Senior — опытный разработчик, который выполняет сложные задачи быстро и эффективно. Его отличительная черта — поиск и реализация оптимального подхода. Он потратит меньше времени и напишет меньше строк кода, но создаст практически оптимальное решение, к тому же в процессе работы проконсультирует трех разных Junior по разным вопросам.
- Team Lead — менеджер, управленец, координатор, начальник. Его задача — организация работы отдела программистов. Он распределяет задания между исполнителями, проводит ревью кода, заботится об обеспечении рабочей обстановки, проводит стендапы с командой, решает архитектурные вопросы.
- Архитектор — высшая профессиональная градация. Его задача — детальный анализ бизнеса клиента, определение оптимальной стратегии удовлетворения его потребности. Работа архитектора в IT весьма схожа с деятельностью его коллеги в более широком понимании. Выражение «архитектор построил дом» весьма условное, так как непосредственным строительством занимаются дизайнеры, прорабы, штукатуры, маляры, разнорабочие, он же решает более глобальные вопросы.
Резюме программиста в значительной мере отличается от резюме в других сферах, в которых данный документ является формальностью.
Правило хорошего тона — иметь резюме и на русском, и на английском, даже если вас интересует работа программистом на должности интерна.
- Не пишите длинный текст. Используйте маркированные списки;
- Укажите, на какую должность претендуете (junior, middle, senior, др.);
- Приведите список технологий, с которыми приходилось работать;
- Укажите конкретный список проектов, над которыми работали/работаете, даже если не добились успеха;
- Укажите информацию об образовании, в том числе о прохождении тематических курсов;
- Обязательно добавьте фото — не обязательно серьезное-паспортное, можно и желательно — обычное, жизненное. Пример:
Тестовые задания — норма для программистов. Их выполняют и новички с небольшим портфолио, и опытные разработчики — при трудоустройстве в крупные корпорации.
Обычно тестовое рассчитано на 2–3 часа. Если же работодатель просит создать для него целый интернет-магазин — его добросовестность под большим вопросом.
Допустим, вы получили адекватную задачу — разработать 3 экрана мобильного приложения. Ваша цель — максимально качественно выполнить задание по ТЗ и обязательно уложиться в срок.
Если есть возможность, попросите более опытного программиста проверить ваш код, чтобы найти и поправить недочёты. Только не делегируйте выполнение тестового целиком: если работодатель поймает вас на обмане, ваша профессиональная репутация сильно пострадает.
А если тестовое задание не поможет устроиться на работу, его можно скорректировать, доработать и положить в портфолио. В любом случае, время потрачено не зря.
Как стать программистом с нуля и устроиться на работу в 2021 году
Итак, вы получили приглашение на собеседование и нервно ждёте назначенной даты. В крупных компаниях по типу «Яндекса» и «Гугла» интервью проходит в несколько этапов. Новичков же в большинстве случаев ждут в компаниях поменьше с собеседованиями попроще.
Рассказываем, как подготовиться к встрече с эйчаром или работодателем и снизить градус волнения.
- Поищите информацию о компании в интернете. Неизвестность всегда пугает, но, возможно, в гугле уже писали о том, как обычно проходят собеседования в интересующей вас компании. Постарайтесь разведать полезную информацию, чтобы знать, к чему готовиться.
- Проанализируйте текст вакансии. Большинство вопросов эйчаров связано с задачами и требованиями, которые прописаны в вакансии. Повторите теорию, но помните, что вы идёте не на экзамен: нужно разбираться в теме на практике.
- Составьте план ответа на возможные вопросы. Продумайте заранее, как отвечать на типовые вопросы: какие технологии вам интересны, что планируете изучать в дальнейшем, почему хотите работать именно здесь. Эйчар обязательно отметит, что ваши интересы совпадают с вектором развития компании, а значит, вы сможете принести проекту пользу.
- Минимизируйте стресс в день собеседования. Продумайте образ и подготовьте одежду, постройте маршрут до места назначения и распланируйте время, чтобы точно не опоздать. Хорошо выспитесь и вкусно позавтракайте, а в пути послушайте любимую музыку или почитайте книгу, чтобы сбросить напряжение.
- Продемонстрируйте софт-скилы. На интервью важны не только хард-скилы, но и умение общаться, справляться с нагрузками и конфликтами и «вписываться» в команду. Проявляйте дружелюбие и искреннюю заинтересованность в проекте, чтобы произвести на работодателя позитивное впечатление.
Помните, что не знать ответа на вопрос — нормально, быть новичком — тоже. Вы не становитесь плохим программистом, если после собеседования вам отказали.
Остановитесь, выдохните и проанализируйте, почему это могло произойти:
- не хватило знаний — определите, какие темы нужно подтянуть;
- не смогли выстроить общение с интервьюером — прокачивайте софт-скилы и больше общайтесь с IT-специалистами;
- не сошлись в условиях работы и зарплате — тщательнее отбирайте вакансии и уточняйте условия заранее.
Относитесь к интервью с работодателем, как к деловым переговорам: обе стороны изначально действуют на равных и хотят договориться о взаимовыгодном сотрудничестве. Получается не всегда, но любое собеседование даёт бесценный опыт, с которым проще двигаться дальше.
Испытательный срок — это нормально. При официальном трудоустройстве вы ничем не рискуете, и максимум через 3 месяца станете полноправным сотрудником компании. А если трудовые отношения не сложатся, сможете уволиться, не отрабатывая ещё 2 недели.
Ниже даём рекомендации, которые помогут успешно пройти испытательный срок.
Советы новичку на испытательном сроке:
- обсудите ваш круг обязанностей и ожидания руководства по результатам испытательного периода;
- познакомьтесь с сотрудниками и поддерживайте с ними контакт;
- изучите продукт, корпоративные регламенты и проектную документацию, чтобы понимать что к чему в компании;
- не бойтесь задавать вопросы и просить совета у коллег, если разобраться самостоятельно не получается;
- предлагайте помощь коллегам, если есть время и ресурсы, чтобы быстрее «влиться» в команду;
- проявляйте инициативу — выступайте на совещаниях и митапах, демонстрируйте промежуточные результаты своей работы;
- просите обратную связь по результатам месяца у руководства.
Помимо решения рабочих задач, обращайте внимание на внутреннее состояние и задавайте себе вопросы:
- интересно ли вам выполнять свои обязанности и задачи;
- подходят ли вам условия работы и график;
- устраивает ли вас коммуникация в коллективе и с руководством;
- видите ли вы своё будущее в этом проекте.
- Как составить резюме программисту без опыта и найти работу
- Где искать вакансии и работу начинающим и junior разработчикам без опыта, чтобы получить работу
- Как собрать портфолио начинающего программиста
- Как junior-у написать сопроводительное письмо
- Как выполнять тестовые задания программистам без опыта
- Как программистам новичкам проходить собеседования, чтобы обзавестись работой
Портфолио — это практические проекты по программированию, который вы делали или в которых работали. Они показывают уровень навыков, а не теоретических знаний. Портфолио — один из главных пунктов при приеме на работу.
Если вы проходили какие-нибудь курсы, то портфолио у вас уже должно быть. Но этого недостаточно для того, чтобы обзавестись работой программиста. Каждый месяц из всех онлайн-школ выпускаются сотни людей с одинаковыми и обезличенными портфолио. На их фоне нужно как-то выделяться. Делать собственные проекты по программированию, проявлять инициативу. Вот что на эту тему советует HR-менеджер DataArt Дарья Анурова:
«Инициатива — это всегда выигрышно. Кейсы, которые дают на курсах, достаточно обезличенные. Классно, если вы хотя бы выложите на GitHub ту часть кода, которой занимались именно вы. HR точно это заметит. А дополнительный личный кейс, которого не было на обучении, еще больше увеличит ваши шансы»
Резюме: Выложите свою часть кода из общего кейса на GitHub. Добавьте к нему проект по программированию, над которым работали полностью самостоятельно. Это будет выигрышнее, чем прилизанное, но стандартное портфолио остальных учеников курсов по программированию.
👨💻️ Как стать профессиональным веб-разработчиком с нуля и найти первую работу
- Составьте резюме разработчика на HeadHunter
- Опубликуйте его на HH и остальных площадках, где можно найти работу программисту без опыта
- Соберите портфолио начинающего разработчика, чтобы получить работу программиста
- Откликайтесь на вакансии программистов без опыта с сопроводительным письмом
- Выполняйте тестовые задания для разработчиков, чтобы обзавестись работой программиста
- Проходите собеседования и устраивайтесь на работу программистом
Зарегистрируйтесь или авторизуйтесь, тогда вы сможете оценивать материалы, оставлять комментарии и создавать записи.
И далее алгоритм трудоустройства следующий:1 этап — Найти общие технологии в той сфере, в которой хотите работать (Frontend, Backend)2 этап — Изучение общих технологий и формирование портфолио3 этап — Подготовка к собеседованию (составление резюме с портфолио, изучение частых вопросов на собеседованиях) 4 этап — Отклики на вакансии и прохождение собеседований5 этап — Трудоустройство и прохождение испытательного срока
На этом этапе вы сообщаете своим потенциальным работодателям о желании работать и начинаете ходить на собеседования. Прохождения собеседований, даже если вам отказывают, очень важный этап. На этом этапе вы понимаете, какие пробелы есть у вас в знаниях и что нужно дополнительно изучить. Не стесняйтесь после того как вам откажут, попросить обратную связь, где вы провалились и на основе этих данных изучайте дополнительно технологии. Есть один важный момент. Некоторые соискатели могут негативно реагировать на отказ и уходить в депрессию, опускать руки и забрасывать учебу. Ни в коем случаи не стоит расстраиваться, если вам отказали. Даже если вы на 100% подходите, вам могут отказать, потому-что ранее уже определились с кандидатом и на всякий случай, если кандидат фаворит откажется, могут взять вас, т.е. провели с вами собеседование на всякий случай. Не нужно гнаться за хорошей зарплатой на первом же месте работы по данной профессии. Ваша цель — это устроиться на работу и пройти испытательный срок и в последствии, вы можете найти более выгодное предложение и как только в вашем резюме появятся 2 — 3 места работы по профессии, вы уже будете интересным кандидатом и сами работодатели будут вам предлагать трудоустройство и предлагать хорошее вознаграждение за ваш труд.
Как найти работу программисту, даже новичку без опыта?
Итак, вы нашли подходящую вакансию, на которую хотите устроиться, что делать дальше?
- Определите, какие именно навыки требуются от кандидата.
- Составьте резюме.
- Откликнитесь на вакансию.
- Подумайте, какие вопросы могут задать на встрече.
-
Смело отправляйтесь на собеседование.
Рассмотрим каждый шаг подробнее.
Грамотно составленное и оформленное резюме имеет большое значение. В нем желательно отразить информацию, которая касается конкретной вакансии — только релевантный опыт и знания, без лишней «воды» и самолюбования.
Развернутую информацию с подробным описанием всего своего опыта уместно размещать там, где ее увидит большое количество работодателей с различными потребностями: в анкетах на агрегаторах вакансий и фриланс-биржах.
Что нужно обязательно включить в резюме:
- Образование. Пишите все: ВУЗы, курсы, участие в олимпиадах, хакатонах, воркшопах. Это многое расскажет о вашем «багаже» и раскроет личность. Важно знание английского языка — чем выше уровень, тем лучше.
- Опыт работы. Опишите задачи, которые доводилось решать, и лучше в формате кейсов (стояла такая-то задача, решил ее таким-то путем, получил вот такой результат).
- Портфолио. Для программиста лучшее портфолио — хранилище кодов Github. Так работодатель увидит ваши скрипты и сможет оценить уровень подготовки.
- Ключевые навыки. Перечислите свои фундаментальные (ОС,сети, алгоритмы и структура данных, базы данных) и прикладные (языки, фреймворки, библиотеки и т.д.) навыки. Но не все сразу, а только важные для конкретной вакансии.
-
О себе. Здесь не надо писать, что вы коммуникабельный, легкообучаемый и усидчивый. В вас хотят видеть человека, с которым предстоит тесно общаться. Опишите круг своих интересов, хобби, то есть дайте работодателю точки соприкосновения, чтобы легче было найти общий язык.
Что сыграет против вас:
- Отправка файла в текстовом формате. На ОС Mac и Linux документ не откроется. Сохраняйте и отправляйте резюме в формате PDF. Его смогут открыть и прочитать на любых устройствах.
- Отправка резюме в теле письма. Чтобы им поделиться, получателю придется совершить лишние действия, а это раздражает. Да и читать такую «простыню» неудобно. Проявите уважение — отправьте резюме вложенным файлом.
- Ошибки. Грамотный человек заметит все ваши ошибки и опечатки — впечатление даже от самого хорошего резюме будет испорчено. Перед отправкой вычитайте текст и/или «прогоните» его через сервис типа «Орфограммка».
-
Повествование от первого лица. Не должно быть никаких «Я». Пишите от третьего лица в прошедшем времени: изучил, написал, сделал и т.д.
Если это разовый заказ или вакансия от частного лица и от кандидата не требуют предоставить полноценное резюме, то можно обойтись кратким описанием релевантного опыта и знаний прямо в сообщении. Здесь важна честность: преувеличение собственных навыков всплывет уже на собеседовании или при выполнении тестового задания, и вы точно останетесь без работы.
Если в вакансии не перечислены требуемые языки, то отталкивайтесь от описанных задач. Например, если фигурирует разработка мобильных приложений, то, скорее всего, тут нужен Java, Swift или Objective-C.
Если опыта работа нет, так и напишите, мол, язык программирования знаю, могу делать то-то и то-то, но кейсов пока нет. Не перечисляйте все технологии, с которыми вам когда-то приходилось соприкасаться — работодатель увидит в вас человека с поверхностными знаниями, который не разобрался ни в одном из направлений.
Если в вакансии есть прямой запрос резюме, то его лучше отправлять отдельным файлом с сопроводительным письмом. В сообщении представьтесь, дайте коротко информацию о себе, обозначьте свою заинтересованность в вакансии и уточните, что полное резюме отправляете во вложении.
Еще раз обратитесь к самой вакансии. Из описания задач и требований к кандидату поймете, какие моменты интересны работодателю. По ним и будет большинство вопросов. Плюсом пойдут смежные темы. Поставьте себя на место собеседника: что еще ему нужно о вас узнать?
Чем больше вопросов вы проработаете, тем увереннее будете чувствовать себя на собеседовании и быстрее получите первую работу. Не стесняйтесь задавать уточняющие вопросы. Отвечайте по существу, без пространных размышлений на отвлеченные темы. Не «якайте» и не пытайтесь казаться большим профессионалом, чем вы есть.
Помните: вы идете не на экзамен. У работодателя нет задачи вас «завалить». Вопросы будут заданы не только с целью выяснить вашу профпригодность. Заказчику важно понять, насколько обоюдно комфортным будет сотрудничество, как быстро вы адаптируетесь в новом коллективе, сможете ли усвоить поток новой информации.
Не опускать руки. Проанализируйте моменты, на которых откровенно «плавали». На каком вопросе стало понятно, что вы не подходите? Чего не хватило? Где-то были нечестны и это всплыло?
- Не хватило знаний и опыта — вы знаете, что надо подтянуть.
- Не смогли найти общий язык с собеседником — прокачивайте софт-скиллс.
- Не поняли, что от вас требуется — учитесь задавать правильные вопросы, больше общайтесь с людьми из индустрии.
-
Не понравилась политика компании или условия работы — вы знаете, на что обратить внимание на следующем собеседовании.
Может потребоваться пройти несколько собеседований, чтобы получить первую работу. Это нормальная практика и она не говорит о том, что устроиться на работу программистом сложно. Знайте, что каждое собеседование, даже если вас не взяли, приближает к получению работы.
Как стать программистом: первые шаги
В программировании есть два пути развития:
- Горизонтальный. Специалист расширяет компетенции, становится экспертом в своей области, формально оставаясь на той же должности. Происходит нишевание. Чем выше экспертность, тем выше востребованность разработчика и, соответственно, зарплата. Это развитие по вектору от Junior к Middle и далее к Senior.
-
Вертикальный. От разработчика – к руководителю команды. Как правило, чтобы стать руководителем, необходимо вначале продвинуться на позицию Senior-программиста.
Собеседование — это взаимный процесс: и работник, и работодатель выясняют, подходят ли они друг другу. В то время как ваша задача — убедить работодателя нанять именно вас, его задача — завоевать ваше расположение. Не стесняйтесь использовать собеседование, чтобы оценить возможности рабочего места.
Я общался с любой фирмой, даже если не был особо заинтересован в вакансии. Приезжал на собеседование в офис в каждую компанию, куда меня приглашали. Задавал вопросы, выспрашивал хоть какую-нибудь информацию о проектной организации команды, используемых технологиях и инструментах, задачах компании и архитектуре системы.
Совет. Во время собеседования можно задать такие вопросы: Над какими техническими задачами вы недавно работали? Что больше всего вам нравится в работе на эту компанию? Как организованы команды и как обычно распределяются задачи?
Любое взаимодействие я расценивал как возможность чему-то научиться — улучшить технические навыки, навыки самопрезентации и собеседования. Любая неудача позволяла найти пробелы и заполнить их.
Важно: не продавайтесь задешево! И помните, собеседование — это двусторонний процесс.
-
Обращайтесь к реальным людям.
-
Начинайте с малого и поднимайтесь выше.
-
Учитесь так, словно будущая работа зависит только от этого.
-
Показывайте себя с лучшей стороны.
-
Это не спринт, это — марафон.
Поиск работы кажется бесконечным процессом, но все наладится. Продолжайте усердно трудиться. Рассылайте заявки. Не забрасывайте заботу о себе. И только тогда все старания окупятся.
Такой вопрос стоило задать себе в самом начале пути, когда ты принимал решение, податься ли в программисты. Сейчас же, поскольку ты читаешь эту статью, можно предположить, что программистом ты уже стал и ищешь работу. А чтобы эта работа приносила некоторое удовлетворение, необходимо пересечение трех факторов:
- тебе нравится программировать;
- у тебя получается программировать;
- работа хорошо оплачивается.
Благодаря поп-культуре у большинства далеких от IT людей сформировался стереотип о программистах как о бородатых мужиках в футболках с супергероями, нелюдимых и замкнутых. При этом считается, что они умеют все: от взлома баз данных до починки холодильника, — но на деле в IT-индустрии более узкие специальности.
- Разработка мобильных приложений — одна из топовых специальностей в программировании, в которой ежедневно открываются сотни вакансий. Всего есть три вида мобильной разработки:
- iOS-разработка подразумевает создание приложений для iPhone. Работа с этой системой требует наличия MacBook или компьютера Mac, поэтому новичкам придется вложить на старте профессии от 100 000 рублей.
- Android-разработка имеет низкий порог вхождения — для старта подойдет любой ноутбук на Windows. Выбор устройств для разработки гораздо шире: флагманские, средние и бюджетные линейки Samsung, Xiaomi, Honor и еще десятка производителей.
- Кроссплатформенная разработка для двух операционных систем одновременно.
Можно самостоятельно учиться программированию, записаться на онлайн-курсы и даже учиться очно — плюсы есть у каждого варианта.
Самообразование не требует серьезных затрат, понадобятся только усидчивость и умение добывать нужную информацию. При правильном подходе уже через несколько месяцев после начала обучения получится написать простую программу.
С другой стороны, грамотно составленный курс обучения даст новичку полное представление о профессии и позволит быстро освоить разные инструменты на практике.
Обучение онлайн по сравнению с очным требует меньше времени, а хорошие онлайн-школы сопровождает своих учеников до первого трудоустройства, помогает с составлением резюме и портфолио. Например, в SkillFactory помощью в трудоустройстве занимается специальный карьерный центр.
Программист — это инженер, который превращает идеи в машинный код.
Простыми словами, программист создаёт инструкции для компьютера. Компьютер выполняет эти инструкции, и получается рабочий продукт: веб-сайт, мобильное приложение, компьютерная игра.
За термином «программист» скрываются узкопрофильные специалисты: разработчики программного обеспечения, инженеры, специалисты по безопасности и т.д. Рассмотрим основные сферы работы программиста с примерами.