Работа программистом с чего начать

От «ничего не понятно» до первой работы: как становятся программистами с нуля

⏱ Время прочтения — 7 минут

Шаг 1. Знакомство с веб-разработкой

Начинаем с общего знакомства с направлениями веб-разработки. Вам предстоит определиться, насколько вам подходит программирование и какое направление ближе — фронтенд или бэкенд.

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

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

На этом этапе стоит потренироваться на бесплатных тренажерах. Темы тренажеров и длительность их прохождения могут быть разными. Например, занятия на тренажере «Знакомство с веб-разработкой» займут у вас 4 часа и дадут представление о базовых технологиях веб-разработки. После можно выбрать тренажеры, раскрывающие какое-то из направлений разработки более подробно. Занятия бывают для разного уровня — от новичков до опытных пользователей.

Много информации и базовых уроков есть на «Ютубе». Можно проходить их дома самостоятельно. Еще один вариант — читать книги по разработке для новичков. В обоих случаях нужно следить за тем, чтобы информация была актуальной. ИТ стремительно развивается — и есть риск получить устаревшие знания, а потом долго переучиваться заново.

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

По времени этап займет около месяца.

Шаг 2. Обучение

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

Самостоятельное обучение

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

Идеи проектов для тренировки

Обучение на курсах программирования

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

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

Необходимая база для любого хорошего разработчика/верстальщика

Чтобы получить ее, возможно, понадобится не один, а два или три курса — например, по обычной и адаптивной верстке, а еще по JavaScript.

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

Инструменты (для верстки и JavaScript):

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

Как найти наставника и что от него ожидать

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

На хороших курсах за вами закрепят хорошего наставника, которому вы сможете задавать вопросы, который будет отслеживать ваш прогресс. Если вы обучаетесь самостоятельно, не переживайте, что останетесь без поддержки: киньте клич в социальных сетях и попросите кого-то из знакомых помочь вам. Еще один вариант — поискать наставника на форумах для программистов или в сообществе разработчиков. Например, в HTML Academy есть чат сообщества в «Телеграме», где можно задать любой вопрос.

Шаг 3. Углубление навыков, чтобы зарабатывать больше

Первую работу вы можете найти уже на этом этапе. Например, после курсов по верстке можно устроиться младшим верстальщиком. Зарплата в данном случае будет в районе 25–45 тысяч. Те, кто выучил основы JavaScript, смогут зарабатывать до до 40–75 тысяч на начальном этапе.

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

Самые популярные и прибыльные фреймворки для фронтендеров — React, Angular, Vue.js, Ember.js и Meteor. Для бэкендеров — Yii2, Laravel, Symfony, Django и Flask. Если вы знаете JavaScript, но вам понравилось делать бэкенд, попробуйте Express.js — это фреймворк для Node.js.

Знание фреймворков повышает зарплату. Средний заработок React-разработчика — около 100 тысяч. И чем дольше и лучше вы работаете, тем больше получаете.

К чему готовиться: заложите на изучение фреймворков еще от 1 до 3 месяцев.

Шаг 4. Стажировка или первая работа

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

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

Трудоустройство. К этому моменту у вас уже будет наработанное портфолио — профиль на «Гитхабе» с вашими проектами. Осталось сделать резюме, указать ваши ключевые компетенции, сослаться на профиль и опубликовать на hh.ru или других сайтах по поиску работы. Пока у вас мало опыта, стоит активно откликаться на вакансии и ходить на собеседования.

Тина Кузьменко — выпускница HTML Academy, живет в Нидерландах. По образованию она журналист, но после переезда в новую страну освоила профессию и устроилась фронтенд-разработчиком в продуктовую компанию:

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

По итогу собеседований я получила в один день сразу два предложения. Одно из них было на мидла в продуктовую компанию Copernica Marketing Software. Его я и выбрала.

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

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

Источник

Как найти свою первую работу программистом? От резюме до испытательного срока

Все знают, что сейчас программирование — это супервостребованная и супероплачиваемая профессия. Но немногие знают, что вакансий для начинающих очень мало. Все работодатели хотят, чтобы к ним пришёл человек, который уже что-то умеет. Напишет код, который не надо выкидывать. Джуниорских вакансий (не требующих опыта работы) мало, и конкуренция здесь очень большая. С одной стороны, существует огромная потребность в программистах. С другой — в начале карьеры вы можете столкнуться со сложностями. Работодатели обращают внимание в первую очередь на тех, у кого в резюме уже есть строчка о прошлом месте работы. Если у вас её нет, будет сложно.

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

Итак, как же новичку получить первую работу?

Название резюме

Оно должно как-то называться. Существуют два варианта.

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

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

Выбор языка

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

Так что при выборе языка обращайте внимание:

Что касается Objectivе-С и Swift, я давно присматриваю за этими языками, и буквально на днях количество вакансий на Swift сравнялось с Objective-C. Мое мнение, это очень серьезный показатель, что Swift будет только набирать обороты и со временем может вытеснить Objective-C.

Технологии

Итак, мы выбрали язык и указали его в резюме. Далее перечисляем технологии, которые мы знаем. Давайте снова разбираться, что круче. Допустим, вы программируете на PHP. Имеет ли смысл писать, что вы знаете С, С++, Pascal, C# и так далее? Не надо перечислять все технологии, которые напрямую не относятся к вашей компетенции. Надо назвать вакансию «программист: РНР». В таком случае работодателю неинтересно, что вы когда-то писали на С и Visual Basic. Весь этот длинный хвост можете не указывать.

Есть и другой вариант. Допустим, я программист на РНР, но знаю все эти технологии, потому что они относятся к веб-разработке: и РНР, и YII2, и HTML, разные фреймворки. Если будете искать вакансию веб-разработчика, то наверняка увидите здоровенную простыню дополнительных требований с кучей умных слов. И многие этого пугаются, особенно в веб-разработке, страшно, что надо столько знать… К этому надо стремиться: знать Webpack, работать с разными БД и так далее.

Многие для повышения авторитета сразу пишут, что я и это знаю, и это примерно знаю, но я новичок и готов получать пока 15—30 тысяч, и опыта работы у меня нет. Какое будет впечатление у работодателя? То же самое: человек-оркестр.

Есть и другая проблема. Допустим, работодатель поверит, что вы всё это знаете. Он же на собеседование придёт с этим списком, ткнёт в любую технологию и скажет: «Теперь мы говорим про React, что ты знаешь про него? А это что? А это? Ясно, React мы не знаем».

«Хорошо, поговорим про MySQL, напиши мне транзакцию, которая делает то-то и то-то».
«Ну, я в MySQL установил только среду разработки, два select-а сделал…»

MySQL тоже вычеркиваем. Всё остальное он даже смотреть не будет. Работодателю уже будет неинтересно, что вы полгода жарили РНР: он поймал вас на вранье. Так что зачеркиваем всё перечисленное.

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

Более того, даже не пытайтесь ознакомиться со всеми этими многочисленными технологиями. Если вы РНР-программист — так и напишите, что знаете РНР и немного HTML и CSS для верстки. Ещё знакомы с одним фреймворком — всё, работодателя это устроит. Он не будет вас гонять по YII, поскольку вы и не указали, что знаете его. Работодатель понимает, что вас можно гонять по РНР.

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

Образование

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

Когда я набирал в команду джуниоров по C#, мы опубликовали вакансию и в течение двух-трёх недель получили 50 откликов. У нас не было кадровика, поэтому мы пошли программерским путём: всем кандидатам выслали тестовое задание. Кто его сделал, проходил дальше. И мне как работодателю не были интересны сертификаты и диплом. Я даже на резюме не смотрел, пока человек не присылал мне решение тестового задания. Но для кадровика это может быть важно.

Портфолио

Очень важная вещь на этапе отбора. Если у вас есть портфолио, то работодатель-программист сможет понять, в состоянии ли вы решить задачу аналогичную той, которую вы уже решали.
Что можно написать в своём портфолио? Если вы хотите разрабатывать сайты, то просто придумайте себе задачку и решите её за необходимое время. Сделайте небольшой сайт и выложите его, лучше всего на Github. И напишите: я создал небольшой интернет-магазин, использовал такие-то технологии, вот код. Для работодателя это будет показателем, что вы ещё и про Git знаете. Он понимает: если я возьму этого новичка на работу, он мне за два дня сделает примерно то же самое, с чем сам разбирался месяц. И не надо будет ему платить за то, чтобы он выучил, что такое Bootstrap, познакомился со всякими нужными штуками. Он сам уже это изучил и теперь в состоянии решить задачу за пару дней. Поэтому не пренебрегайте портфолио. Вам оно очень сильно поможет.

Опыт работы

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

Отклики на вакансии

Резюме готово, что делать дальше? Прежде чем откликаться на вакансии, надо немного психологически настроиться, чтобы процесс пошёл правильно. Представьте свой идеальный рабочий день, что бы вам хотелось получить в итоге? Иначе мы просто будем белкой в колесе, станем бежать за какой-то мечтой, каким-то счастьем. Представьте, как выглядит ваш офис, ваши коллеги, какое у вас самоощущение, какими проектами вы занимаетесь. Просто настройтесь на то, какие эмоции вы будете испытывать, когда станете ходить на работу. Сделайте запрос мирозданию: «Хочу, чтобы было так, так и так». И успокойтесь, всё у вас будет хорошо.

Расскажу о том, как я устроился в компанию GeekBrains. В какой-то момент мне надоело программировать. Это классное занятие, я пять лет ему отдал, но меня не очень удовлетворяли цели компании, в которой я работал. Я подумал, что мне было бы интересно открыть свою школу и учить людей. Дать им возможность получить новую специальность, новую профессию. Потом я увидел вакансию и начал преподавать в GeekBrains, совмещая это с основной работой. Затем я просто попросился к ним на работу.

Так выглядел мой разговор с генеральным директором GeekBrains.

Гендир: «А что ты умеешь делать? Ты на C# программируешь, а мне нужен Ruby».
Я: «Я не хочу программировать, я умею то, умею сё».

Через две недели я вышел на работу.

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

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

Не парьтесь, ребята. Отправьте 100, 200, 300 откликов, сколько найдёте. И законом больших чисел вы сообщите мирозданию, что реально хотите работу. Вас пригласят на пять собеседований, на одном из них вы устроитесь на работу — всё. Если вам посылают тестовое задание, не пренебрегайте им. По моему опыту, 90 % кандидатов отваливаются, когда получают тестовое задание.

Собеседование

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

Испытательный срок

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

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

Источник

Путь в программисты (С++)

Привет. С вами я. Мне нравилось боксировать и бегать на дальние дистанции, и думал я только о спорте, но выучился на моряка. Работал в авиации, а стал программистом С++ в 29. Расскажу, как так получилось.

О программировании к октябрю 2017 я знал ровно столько, сколько сейчас о квантовой физике- ничего. Абсолютно. «hello world»- даже не слышал о такой фразе. Время от начала обучения до трудоустройства — полтора года.

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

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

Что нужно, чтобы начать: доступ в интернет (можно и не постоянный, просто загрузить страницу), старенький компьютер 10- летней давности подойдет, высшее образование для трудоустройства не обязательно для 30% вакансий в России, у меня оно есть с морским уклоном — закончил МГУ им. адм. Г.И.Невельского по специальности «техническая эксплуатация транспортного радиооборудования». И около года времени на учебу, если заниматься продуктивно. Не верьте обучалкам «стать программистом за 1-4 месяца», это невозможно. Работа программиста далеко не заканчивается на знаниях синтаксиса ЯП (язык программирования).

Помимо ЯП, нужен язык английский. Если вы не решили с чего начать, то с английского и начните.

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

10 октября 2017 года впервые наткнулся на «уроки С++», в первую неделю потратил часов 40.

Учёба. Шаг за шагом

За учёбой проводил от 2 до 10 часов в будние дни, в выходные и отпуск занимался мало, либо даже не вспоминал об этом.

Начал с этого сайта — там хорошие задачки.
Одновременно темы можно изучать и здесь.

Решил все задачи, кроме последнего уровня (там 3-4 только смог) — тут. Вообще, на этом сайте лучший список задач, а также хорошее объяснение тем.

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

В это время уже настал 2019 год, и я начал отсылать резюме прямо в новогодние праздники (ридер-переводчик еще не был написан).

Во время его написания я также увлекся реализацией своих STL контейнеров и умных указателей (после первого провального собеседования понял, что без 11 стандарта и глубокого понимания STL делать на собеседованиях нечего).

У меня были реализованы: вектор, одно связный список, двух- связный список, unique_ptr, shared_ptr, auto_ptr. И после того, как я покопался во всем этом, чувствовать себя стал увереннее намного на собеседованиях, сильно помогло.

Всё это залил на гитхаб (пользоваться гитом легко, но изучение может занять не малое время), в итоге, в резюме было следующее- позорный морской бой, «проект» ридер-переводчик, реализация STL + smart_pointers (только по STL и SmartPointers мне задавали вопросы, указывали ошибки, просили исправить их прямо на собеседовании, было интересно обсуждать. На остальные мои «писульки» никто внимания не обратил).

+ я немного, совсем поверхностно, старался изучить основные паттерны (на собеседовании вопрос о паттернах всегда был под звездочкой), устно мог рассказать про MVC, MVP (но различия объяснить не мог), и 3-4 основных порождающих паттерна- вот хороший сайт по паттернам. Этот ещё и красиво оформлен.

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

Мне очень в изучении помогали два форума, пользуюсь ими и сейчас- cyberforum, evileg.

За всё время обучения лишь 6 раз обратился для разъяснения некоторых тем к частному репетитору С++ (около 1500р одно занятие), 5 из этих занятий были по Qt (туго он мне давался тогда и некоторое время после трудоустройства). После нового года я начал посещать курсы английского. В месяц на индивидуальные занятия английского тратил примерно 3000р.

По поводу Qt, если вы, как и я, решите его изучать и хотите к началу работы действительно иметь хорошее, пусть и поверхностное, представление, то советую разобраться в архитектуре модель/представление — model/view (кстати, не плохое будет начало для изучения паттернов MVC model/view/controller, MVP model/view/presenter). Эта архитектура- как бы упрощенный паттерн MVP.

Информация здесь. Её не так много, но у меня ушли месяцы на то, чтобы более менее уверенно пользоваться всеми благами Qt.

Ничего этого я не знал до трудоустройства, но советую вам изучить.

Резюме

Моё резюме в том виде, в котором оно попало на стол моему работодателю. Ничего в нём не менял, кроме ссылки на ГитХаб и номера телефона.

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

Резюме во время поиска работы переписывал много раз.

Собеседования

С чем я подошел к этому этапу в IT — Стек знаний (а может куча?), что касаемо программирования: всё основное в ООП, 11 стандарт плюсов, STL, поверхностно Qt (не умел пользоваться даже сигнально/слотовыми соединениями), основные запросы SQL и git, паттерны, о которых писал выше.

Более подробно (переписываю то, что у меня на шпорах к собеседованиям было, на каждый пункт один-два листа): auto, decltype; forward; explicit; noexcept; mutable; — выучил зачем-то все методы этих классов отсюда; перегруженные функции/перегрузка операторов; шаблонные классы/функции; всё о «виртуальности» в ООП (функции, классы, чисто виртуальные функции и пр); всё о конструкторах (конструктор копирования, делегирующий коструктор, перемещающий и пр); отключение копирования в классе; move() семантика, ссылки (lvalue, rvalue, xvalue, glvalue, prvalue); std::forward; исключения в деструкторе/конструкторе; где уместен try\catch; сопоставление хэш таблиц и map; static; defaul; override; mutable; reinterpret_cast; constexpr; volatile; передача временного объекта по умолчанию; основное о модульном тестировании.

Из уроков об углубленном программировании, ссылку на которые давал выше- работа препроцессора, компилятора, компоновщика, память на низком уровне, виртуальная память, выделение памяти на стеке/куче, malloc, new, глобальная память, inline, особенности работы современных компиляторов в общих чертах- что часто ваш код компилятор представляет и парсит совсем в другой виде, а не который вы написали, особенности передачи объектов по указателю/ссылки/конст ссылки, исходя из этого- выбор того, как передавать объект, лямбда- функции, std::function, основное об кастах, friend, функторы, final, ромбовидное наследование, множественное наследование.

Это только то, что в шпорах и записной книжке.

Многопоточное программирование не понял совершенно (на паре собеседований спрашивали мои навыки в этом, я сразу отвечал «знаю немного теории, не пользовался»). STL контейнера понимал без проблем- это понятно, тк писал свои контейнеры, но умные указатели всё-равно использовать не умел, я просто хорошо знал теорию по ним и как они устроены внутри.

Этапы собеседования

Так как я отправлял резюме по всей России, то и собеседования, соответственно, проходили удаленно. Как это происходит: вам звонят и просят уделить минут 5-15, общаются с вами на общие темы и, если все хорошо, вы договариваетесь о техническом собеседовании — это 2 этапа, но может быть и больше. К назначенной дате обклеивал шпорами весь монитор стикерами с алгоритмами сортировок, на столе/полу/стене/кресле на 360 градусов вокруг были наклеены шпоры. В шпорах было всё + на коленях моя книжка с лекциями, на каждой странице я проклеил заметки- что на ней можно подсмотреть. К слову, шпорами пользоваться не успевал, можете их писать, но не использовать. Быстрее вспомнить, чем сориентироваться в этом хаосе.

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

Все собеседования проходили в скайпе без видео (наверное, так совпало у меня, мне кажется, в большинстве случаев собеседования проходят с видео). Первые 20 минут вам расскажут о компании и вы о себе. Потом, с вами соединится тимлид и начнет терзать вас, с самого простого «что такое полиморфизм?, напишите функцию сложения двух чисел» и подобную базу, затем, внезапно, попросит в вашу примитивную функцию добавить какую-то логику и так будет всё усложняться в течении следующих минут 40-50. Всё это будет смешано с вопросами по теории. Далее, вам могут прислать тестовое задание, или же его могут прислать до собеседования, а может и не пришлют. Через недельку после собеседования, или прохождения тестов, будет обратная связь о результатах.

Про тест- задания: мне несколько раз на почту приходили задания от каких-то непонятных компаний, как потом я понял, это просто были определенные таски, решение которых зальют себе в проект после рефакторинга. Проще говоря, вам скидывают задание в надежде, что вы бесплатно поработаете (вроде- «распарсите сайт», вытяните оттуда-то такие-то данные и скомпонуйте их так-то). Но есть и действительно настоящие тестовые, я решал в DrWeb и еще в какую-то компанию… решал, но не решил.

О некоторых собеседованиях расскажу.

Второе собеседование

Мое второе собеседование проходило в Нижнем Новгороде. Мне очень понравилось, как они описали себя, их сайт, сфера их деятельности и те люди, с которыми я общался. К сожалению, знаниями я не дотянул, но в общем и целом был удовлетворителен. После этого собеседования связался с менеджером и объяснил, что мне понравился контакт с ними, их компания и я бы хотел получить второй шанс, чтобы сотрудничать с ними в дальнейшем. Мне дали контакты того, кто проводил у меня тех интервью (не тим лид), и я связался с ним по скайпу. Сначала, я попросил его помочь мне в обучении за деньги, чтобы он подготовил меня к собеседованию у них, он не согласился. Договорились на том, что он даст основные темы для изучения и будет время от времени мне подсказывать. Иногда, я связывался с ним, и он проводил мне небольшую лекцию. Его ник был Елоу-Пуки. Если ты читаешь это, я тебе очень благодарен, ты сделал процентов 20 моей подготовки к трудоустройству! Крепко жму руку, не забуду твоей помощи. После месяца обучения с ним было назначено следующее собеседование и только на нем я понял- вакансия не программиста, а тестировщика. Меня спрашивали о чем-то мне непонятном, я не ответил ничего, расстроился, сказал спасибо Елоу-Пуки и начал готовиться к следующему собеседованию. Вообще, не понятно, как меня готовили к плюсовому разработчику зная, что вакансия тестировщик. Странный момент, но было так, как было.

Третье собеседование

Третье собеседование (в Москву, то ли в Нижний Новгород) было отвратительным. У них была включена камера, и я их троих наблюдал за круглым столом. Сразу стало понятно, что с моим резюме ознакамливаются только сейчас, до этого они его не видели. После вопроса о моем возрасте все вопросы по технической части не поднимались выше 2+2, после того, как узнали, что мне скоро 30 на лицах появились ухмылки, короче, я сильно был зол и честно, если бы был у них в офисе в такой момент, то непременно сделал бы замечание «чего смешного?», а может и что-то жесткое. С трудом дотерпел до конца и прервал диалог во время стандартного «мы пере. (звоним, наверное)». Помню в тот вечер пробил рукой дверь в комнате. Их поведение было оскорбительным.

Пятое собеседование

Пятое собеседование проходило в Питер. Общались долго, наверное часа полтора. Получил большое удовольствие от вопросов, собеседующему действительно было важно докопаться до всех минусов в моих знаниях, спрашивал и низкоуровневую работу определенных моментов, и реализацию некоторых моих контейнеров, и указателей на гитхабе, просил исправить ошибки, некоторые моменты объяснял сам и я тут же записывал себе в черновик, чтобы не забыть. Через недели 2 был офер от них, но я так понял, что всё равно они не были уверены во мне на все 100, хотя, собеседование прошло гладко и я ответил на пару вопросов «со звездочкой».

Шестое собеседование

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

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

Было также приглашение в intel Нижний Новгород, договорились на 19:00 для небольшого диалога по телефону. Позвонили мне в 18:20 примерно, когда я был за рулем, когда нажал «ответить» телефон завис, перезвонить не получилось, в назначенное время звонка также не поступило… ну, судьба значит. Написал им на мэйл об этой ситуации и попросил связаться еще раз, но мне не ответили.

Что хорошего в этой профессии?

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

Плохого

Для меня только пару моментов- опыта мало, всё познается с трудом и постоянное чувство, что ты тупой тебя не покидает, поэтому приходится иногда перерабатывать (что меня не напрягает), чтобы наверстать задачи. Отсюда вытекает второй минус- уже два года с начала учебы я не тренируюсь практически- не всегда хватает времени, плюс сидячая работа, физически я убавил сильно.

О мотивации

Я не мотивировал себя абсолютно. Раньше, я постоянно мучал себя этими мотивациями, целями, ты должен не сдаваться, «лежать в сторону своей мечты» и прочим бредом!

На такой волне я не осуществил ни одной своей мечты и цели до конца, просто перегорал. А у меня, поверьте, было их так много. В этот раз всё было по другому. Не думал ни о какой цели, её будто бы не было, мотивации вообще для меня не существовало, было одно уверенное, спокойное- надо. И всё. Надо каждый день тратить на учёбу не менее 3х часов. На этой волне было легко эмоционально. Мне не представлялось это как будто ты должен влезть в лямки и тащить этот груз, или же пробиваться… нет. Ничего вообще внутри не было, я просто, просто учился, как в магазин ходить- это ведь не цель и мотивация для этого не нужна, просто шлёпаешь в магаз и всё. Вот и я — просто шёл.

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

В заключение, хотел бы оставить этот ролик здесь «пока мы работаем, мы живём».

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • Работа принтера приостановлена что делать windows 10
  • Работа под linux что это такое
  • работа по совместительству трудовой кодекс рк 2021 какая статья
  • работа по совместительству трудовой кодекс рк 2019 какая статья
  • Работа по реферальным программам что это

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии