Prg67.ru

Онлайн вебинары
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Вопросы о программировании

19 вопросов, которые стоит задать веб-разработчику на собеседовании

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

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

Подготовьтесь заранее

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

Вот главные советы.

Опытные веб-разработчики всегда очень заняты. Нужно определиться с вашими ожиданиями и объёмом работы кандидата. Чётко сформулируйте должностную инструкцию и особенности работы в компании. Соискатель должен ясно понимать рабочие обязанности и предлагаемые условия труда.

Выделите оптимальный бюджет

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

Обязанности и уровень самоотдачи разработчика зависят от зарплаты, которую вы предлагаете. По статистике, ведущий разработчик в США в среднем получает 85 000 $ в год. Для удалённых сотрудников зарплаты разнятся от 60 $ до 120 $ в час и выше.

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

В России на первое полугодие 2018 года средняя зарплата ИТ-специалистов составляет около 100 тыс. руб. в месяц. При этом диапазон зарплат достаточно большой — от 14 до 350 тыс. рублей.

В целом зарплата по миру в сфере разработки может достигать 89 000 $ в год.

Установите реалистичные дедлайны

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

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

Подготовьтесь к собеседованию

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

Вопросы для собеседования с разработчиком

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

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

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

Вопросы об опыте

1. Расскажите о проекте, которым по-настоящему гордитесь. Что вы сделали для его успешной реализации?

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

2. Расскажите о проекте, который вас разочаровал. Что бы вы сейчас изменили при работе над ним?

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

3. Что в программировании для вас самое сложное?

Другими словами, какие слабые стороны видит разработчик в своих технических навыках.

4. Как проводите тестирование? И что вообще о нем думаете?

Хороший код — это минимум багов в работе приложения и мало ошибок в коде. Хороший разработчик уделяет много внимания тестированию качества. Так можно сократить количество бессонных ночей в поисках ошибок на ранних этапах работы.

5. Как следите за последними тенденциями в веб-разработке?

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

Сфера веб-разработки постоянно меняется, поэтому для специалиста важно интересоваться последними тенденциями и формировать своё мнение о них.

6. Какую среду разработки предпочитаете?

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

Вопросы о коммуникативных и управленческих навыках

7. Расскажите, какие качества помогают вам в работе.

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

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

8. Расскажите о проблеме, которую вы решили вне программирования.

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

9. Как бы описали вас другие разработчики / менеджеры проектов, с которыми вы работали?

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

10. Представьте, что не можете решить проблему, связанную с программированием. Что сделаете, чтобы найти решение?

Спросит ли он коллег, зайдёт на StackOverflow или другие ресурсы? Здесь нет правильных и неправильных ответов. Важно понять, как кандидат преодолевает рабочие трудности.

11. Что вы думаете о парном программировании? Был ли у вас такой опыт?

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

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

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

Вопросы для проверки технических навыков разработчика

13. Опишите, пожалуйста, процесс создания веб-страницы или приложения.

Это отличный способ оценить, как кандидат справляется с базовыми задачами. Он используют фрагменты кода для быстрого создания базовой HTML-страницы, добавляет jQuery и начинает программировать или использует вспомогательные инструменты для разработки, типа Bower или Yeoman?

14. Какие инструменты используете для поиска багов?

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

Читать еще:  Как научиться веб программированию

15. Что знаете о CORS?

CORS (Cross-Origin Resource Sharing, с англ. — «совместное использование ресурсов между разными источниками») является основным элементом HTML5, который должен быть знаком большинству фронтенд-разработчиков. Технология позволяет запрашивать доступ к различным ресурсам другого домена (jQuery, библиотекам шрифтов).

16. Вы можете объяснить назначение каждого типа HTTP-запроса при соблюдении требований RESTful?

Знает ли ваш кандидат разницу между запросом GET и POST? Не забыл ли он упомянуть запросы PATCH и CONNECT? Это серьёзный вопрос для оценки базового понимания HTML.

17. У вас есть пять разных таблиц стилей, как лучше всего интегрировать их в сайт?

Этот вопрос проверяет понимание CSS. Объединит ли кандидат стили в один CSS-файл или объединит только стили для конкретного приложения? И как он использует библиотеки стилей, например, Bootstrap?

18. Как вы организуете JavaScript-код?

Ответ на этот вопрос покажет, как кандидат систематизирует свой код. Он разделяет JavaScript и HTML? JS разбит на логические блоки и хранится в отдельных файлах? Он использует скрипт для объединения этих файлов в один пакет? А пространство имён в JavaScript, чтобы не захламлять глобальное пространство имён?

19. Как вы учитываете SEO, производительность, безопасность и UX при создании приложения?

Это очень важный вопрос. Способность понимать и сочетать эти факторы в работе является ключевым навыком для любого веб-разработчика. Из ответа также будет понятно, чему кандидат отдаёт приоритет при программировании. Например, если вы — крупная финансовая компания, безопасность для вас будет важнее SEO. Если вы — интернет-издание, на первом месте производительность сайта и SEO.

Ваше собеседование не ограничивается перечисленными вопросами.

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

Примеры вопросов для технической части собеседования и ответы специалистов:

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

Из-за нехватки специалистов веб-разработчики очень востребованы. Если вы ищите разработчика, действуйте быстро: оцените всех кандидатов и сразу же свяжитесь с теми, кто вам подходит. Хороший кандидат быстро найдёт работу.

Нет единой правильной схемы для поиска разработчика — важны детали. Чтобы найти идеальный вариант, ясно определите собственные ожидания и требования для разработчика. На Github есть целый список вопросов для интервью.

Мнение автора и редакции может не совпадать. Хотите написать колонку для «Нетологии»? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.

Тест по информатике с ответами «Программирование»

При пользовании «Инфоуроком» вам не нужно платить за интернет!

Минкомсвязь РФ: «Инфоурок» включен в перечень социально значимых ресурсов .

Тело цикла заключается между служебными словами

Если начальное значение переменной-счётчика n в цикле for i := n to k do превышает её конечное значение k , то последовательность операторов между begin и end будет выполнена

бесконечное множество раз

За начальным значением переменной-счётчика в цикле for следует служебное слово

За конечным значением переменной-счётчика в цикле for следует служебное слово

Условие в цикле while должно быть выражением . типа

Тело цикла while выполняется до тех пор, пока значение условия равно

Тело цикла repeat выполняется до тех пор, пока значение условия равно

Условие в инструкции Repeat следует за служебным словом

Переменные, объявленные в функции программиста, называются

FOR – это инструкция цикла:

WHILE – это инструкция цикла:

REPEAT – это инструкция цикла:

За служебным словом For следует . переменной-счётчика

Циклической инструкцией является инструкция:

Функция, которая обращается сама к себе, называется . функцией.

For i := n to m do begin тело цикла end . В данном примере (при условии m >= n ) тело цикла будет выполнено . раз

For i:=m downto n do begin тело цикла end. В данном примере (при условии m >= n ) тело цикла будет выполнено . раз

Инструкцией безусловного перехода является:

Для решения относительно простых задач, в которых не предусмотрен выбор из нескольких возможных альтернатив или циклическое повторение каких-либо операций, предназначены…

алгоритмы разветвляющейся структуры

линейные алгоритмы и линейные программы

оба ответа верны

Из каких блоков состоит алгоритм решения задач линейного программирования?

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

из заголовка, за которым следуют раздел объявления переменных и вывод результатов

нет правильного ответа

ошибка, переменной типа real присваивается значение переменной integer

ошибка, переменной типа integer присваивается значение переменной real

Какие элементы данных могут изменять свое значение в ходе выполнения программы?

Условный оператор и оператор выбора реализуют одну из основных алгоритмических структур, а именно

Какое значение может принимать логическое выражение типа Boolean ?

только True (“истина”)

только False (“ложь”)

оба ответа верны

Определите значение следующего выражения: ( summa >120) and ( summa 10) and ( A =L) or (A =L) and (A>=M) and (L

Тело цикла заключается между служебными словами

Если начальное значение переменной-счётчика n в цикле for i:=n to k do превышает её конечное значение k, то последовательность операторов между begin и end будет выполнена

бесконечное множество раз

  • Васильева Марина Витальевна
  • Написать
  • 16.10.2018

Номер материала: ДБ-152630

Добавляйте авторские материалы и получите призы от Инфоурок

Еженедельный призовой фонд 100 000 Р

  • 16.10.2018
  • 1587
  • 16.10.2018
  • 183
  • 16.10.2018
  • 289
  • 16.10.2018
  • 1230
  • 16.10.2018
  • 341
  • 16.10.2018
  • 1145
  • 16.10.2018
  • 111
  • 16.10.2018
  • 556

Не нашли то что искали?

Как организовать дистанционное обучение во время карантина?

Помогает проект «Инфоурок»

Вам будут интересны эти курсы:

Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение редакции может не совпадать с точкой зрения авторов.

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

Вопросы о программировании

пикабу круче гугла епта!

если бы поиск. он же спрашивать стал.

Нас на пикабу даже учили как игры делать на C/C++ , но все авторы после нескольких длиннопостов пропадали навечно

вот тебе загадка из 4 слов

если ты не сможешь ее решить, то в программировании тебе делать нечего

1. нужен или знание английского или обладание навыка угадывание значение слово.

2. Если не лень, то нужно скачать несколько книг по C++ и учить самому

Опишу свой опыт: учил сначала делфи, потом С++ «просто потому что интересно». На курсы никакие не ходил, просто читал книги и искал инфу в интернете. Надо сказать, что в таком режиме до много доходил дольше, чем если было бы кому подсказать.

Читать еще:  Английский язык и программирование

Дальше нашёл фирму, где брали людей «на обучение», после обучения попал на работу, ну а дальше, после получения «реального опыта», всё просто и понятно.

С другой стороны, стоит посмотреть какие вакансии и возможности есть в твоём городе. Так может быть проще. Впрочем, знакомый (джуниор без опыта) и с переездом нашёл.

0. Английский (как минмиум читать/понимать).

1. Что-то вроде codeacademy. В них получить хотя бы обзорные знания отрасли, начать ориентироваться в общих терминах, трендах.

2. Листать/читать хабр. Великолепный источник информации.

3. Гуглить. Не понял какое-то слово — лезь вбивай запрос на английском языке в гугл (яндекс не подойдет) и вперед, до победного

Да. Любые. Стоит на курсы. НАХУЙ ИДИ.

Начинай с Бьерна Страуструпа, и ты поймешь какой это ад и обрекешь себя на вечные муки, но, если ты выстоишь, станешь достойным.

сайты клепать-очень растяжимое понятие.Верстальщики из гуманитариев выходят отличные, но вот js, не говоря о таких страшных словах как java или php ,уже не каждому даётся.а html может освоить даже обезьяна.

php гумманитарий может вполне осилить. Если с логикой дружит конечно.

приличный гуманитарий и java c js может, также как приличный инженер может в историю и кучеряво трындеть .но есть гуманитарии дивные, они могут в творчество, но логика иногда уж очень альтернативная.

Курсы однозначно, благо время удачное, стартуют они обычно в октябре/конце сентября.Для начала лучше учить любой ООП(С++,Java,PHP тыщи их) просто чтобы понять основы.И да, очень хорошо бы найти учебник по языку(для java это например учебники Блинова).

когда мозг и знания более менее окрепнут Боба Мартина «Чистый код» неплохо прочитать и в целом code convention-ы

если гибкий и живой ум то можно изучать языки вроде lisp, они от «традиционных» отличаются существенно как по синтаксису так и по сфере применения.

и да, если хочется работать в сфере-кровь из носу надо знать БД, хотя бы mySQL.

по мне дак книга «Философия Java» Брюс Эккеля по лучше была в освоении

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

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

Курсы лишними не бывают.

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

Начни изучать с языка Java(да вообще в целом с ООП языков), пиши тесты для автоматизации браузера Selenium(за одно и фронтенд подучишь, html, css, js), я с этого начинал 3 года назад, полноценным ява прогером стал уже через год. Практика всё таки лучший вариант, от теории мало становится понятно, вот когда уже начнешь практиковать появиться интерес к чтению различной литературы.

для начала простой тест:

что будет правильнее, чтобы вывести c: c=a+b или a+b=c

Ни одно из этих выражений c не выведет 🙂

это присваивание разумеется

ты тоже хочешь стать программистом? 🙂

стоит оно того: 4 года ковнокодерства?

ну дык не находишь, что ты 4 года своей жизни ты провел впустую?

— забудьте чему вас учили в школе

— забудьте тому, чем вас учили в вузе

ничего не напоминает? бгг

Стать говнокодером можно за пару месяцев плотного обучения. За полгода стать кодером на каком-нить языке. За 4 года можно стать неплохим программистом.

Вопросы программисту C/C++ на собеседовании с ответами

Заметил, что на собеседовании часто задают одни и те же вопросы по программированию. Если бы брали на работу водителя, то некоторые вопросы звучат примерно так:

  • В какую сторону надо крутить руль, чтоб повернуть направо?
  • За что отвечает педаль сцепления/тормоза/газа?

Такое конечно случается далеко не всегда, но первые пару вопросов обычно такого рода («А какую надо давить педаль, чтоб автомобиль остановился?»). Публикую свои ответы на некоторые вопросы для программистов. Вдруг кому пригодится.. Возможно, здесь много ошибок и помарок — при составлении этого списка я не пользовался интернетом. Старался выдать, что знаю сам.

Как можно оптимизировать данный цикл?

В чем отличие std::list от std::vector ?

std::vector — это обертка над обычным С/C++ массивом. Соответственно:

  • если std::vector заполнен, то при добавлении нового элемента, массив удаляется целиком и создается заново с бОльшим размером
  • любой элемент массива можно получить моментально, потому что позиция элемента вычисляется банальным прибавлением индекса к первому элементу ( array[i] = array + i )
  • удаление любого элемента из массива, кроме последнего, приведет к перемещению всех элементов справа от удаляемого на одну позицию влево (при соблюдении некоторых условий, можно воспользоваться хаком)
  • занимает неразрывный блок памяти

std::list — это список элементов, которые связаны между собой указателями prev (предыдущий элемент) и next (следующий элемент). Внутри себя std::list хранит указатель на первый элемент и последний (зависит от реализации). Исходя из этого:

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

В языке Java различия между ArrayList и LinkedList практически такие же.

Почему в C++ нужно использовать new вместо теплого лампового malloc() ?

Потому что malloc() тупо выделяет блок памяти и возвращает этот блок программисту. А new выделяет память и вызывает конструктор объекта. Тоже самое относится к delete и free() . delete вызывает деструктор и освобождает память. free() просто освобождает память. Также есть размещающий new, который создает объект в уже выделенной вами памяти.

Кстати, изначально конструкторы и деструкторы классов в C++ назывались new и delete и выглядели вот так:

В чем отличие между new/delete и new[]/delete[] ?

new выделяет память для одного элемента и вызывает конструктор для него, в то время как new[] выделяет память для массива элементов и вызывает конструктор для каждого из них. delete должен вызываться для объекта выделенного с помощью new , а delete[] для массива, выделенного с помощью new[] . От проблем соответствия new/delete вас могут избавить классы std::auto_ptr (для одного элемента) и std::tr1::scoped_array (для массива элементов). Которые сами вызывают правильный delete в деструкторе.

Для чего нужен тип std::auto_ptr ?

В стародавние времена вы должны были сами следить за тем, чтоб после каждого new был вызван свой delete . Это было жутко неудобно (программисты Си выкручиваются из этой ситуации вставляя goto ):

bool func() < Stream *stream = new Stream; if (0 != stream->open(«some stream»)) < delete stream; return false; >if (0 != stream->load()) < delete stream; return false; >// Выполняем полезную работу // Закончили полезную работу delete stream; return true; >

После появление std::auto_ptr стало возможным переписать функцию таким образом:

Читать еще:  Рейтинг языков программирования 2020

И еще очень важный момент: std::auto_ptr владеет объектом единолично. Вы не сможете шарить объект между двумя std::auto_ptr (используйте в таких случаях std::shared_ptr ):

И помните: std::auto_ptr не подходит для массивов выделенных с помощью new[] . Для этих целей используйте std::tr1::scoped_array или boost::scoped_array .

Что такое RAII?

Это переводится как «Получение ресурса есть инициализация». Идея вкратце такая: в конструкторе открываем/блокируем ресурс, в деструкторе закрываем/освобождаем ресурс. Вот пример:

Или более каноничный пример (блокирование мьютекса или критической секции):

Зачем нужен виртуальный деструктор?

Попробуем обойтись без него:

#include class A

construct A construct B destruct A

Как можно заметить деструктор B не вызвался. Сделаем деструктор класса A виртуальным и посмотрим что получится:

Теперь все отлично:

construct A construct B destruct B destruct A

В каком порядке инициализируются члены класса?

Члены класса создаются в порядке их объявления в классе. Уничтожаются они в обратном порядке. Давайте проверим:

#include class Printer

Printer() < printf("-%s ", n_); >private: const char *n_; >; class A : public Printer < public: A() : Printer("A") < >>; class B : public Printer < public: B() : Printer("B") < >>; class C : public Printer < public: C() : Printer("C") < >>; class Test < private: A A_; B B_; C C_; >; int main()

Порядок объявления очень важен, если один член класса во время инициализации использует данные другого члена. Кстати, компилятор gcc выдает warning (с флагом -Wall), если вы описали инициализацию членов класса в другом порядке. И это еще одна причина в пользу использования настройки компилятора «считать предупреждения ошибками» (в gcc это флаг -Werror ).

задан массив символов вывести на печать те из них которые являются символами!

Странное ТЗ. Решение: поскольку это массив символов, то каждый элемент массива является символом, значит надо вывести все элементы. 🙂

видимо он имел в виду массив типа char и из него выводить только символы, являющиеся буквами )

Евгений, спасибо за интересную статью!

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

Но тем не менее, у меня сложилось впечатление что на собеседованиях требуются более подробные ответы (даже на джуниор)(или я ошибаюсь, и это мне так «повезло»).

Поэтому, если у Вас есть новые примеры вопросиков с собеседовний, то пожалуйста, обновите статью (т.к. вы очень хорошо пишите и разбираете, читатели будут благодарны)

Так же я заметил, что в инете — много теоритических вопросов с краткими ответами, но я пока не находил примеров тестовых задач для собеседований Си++.. Вот если у вас такие имеются — то очень здорово было бы выложить их (хотя бы сами задания (без решения) (а лучше с решением 😉 )

Вот например в 2gis, перед приглашением на собеседование — дают задачу (тестовое задание перед собеседовнием) напечатать чек сумму файла (там тематика машинного слова и порядка байтов встречается), так же программа может считать кол-во слов в файле и смещение слов в файле (видимо это для того что бы можно было сделать один базовый класс и 3 производных класса для чексуммы, подсчета и смещений) ну и парсинг аргументов — например если делать свой — то поставят минус за этот пункт, если использовать gnu getopt (поставят +/- — т.к. не свой но и не ооп) — ну а как правильно я не знаю (предполагаю что boost::program_options)

Спасибо за добрые слова!

Статья написана в далеком 2012 году под впечатлением от походов на собеседования. Каждый раз, после начала нашего общения с тимлидом, практически сразу был вопрос: чем отличается std::vector от std::list (а в голове в этот момент: «ну йоп твою мать, шо опять?!»).

На текущем месте работаю уже шестой год подряд, на собеседования не хожу, поэтому не знаю как там сейчас. Наверно, сейчас в моде стандарт C++11x.

Имейте ввиду, что процесс собеседования не всегда подразумевает собой, что вас собираются брать. Иногда собеседование проводится, чтобы тимлид почувствовал себя умнее, чем есть на самом деле. Унизил пару человек никому не нужными энциклопедическими знаниями — значит день удался. 🙂

По поводу тестового задания в 2gis могу сказать следующее: сложно угадать, что ждет от тебя именно этот тимлид (скиньте задание мне на почту, если вас не затруднит).

Одному нравится вставлять всегда и везде boost, который весь такой шаблонный и C++11x (ждать компиляции часами и героически бороться с разбуханием кода), другому нравится использовать легкие сторонние си-библиотеки (между прочим GNU getopt не кросс-платформенный, поэтому Win32 идет лесом), третий хочет разбор командной строки своими силами и чтоб при этом не было аллокаций памяти (и еще учитывать порядок байтов и юникод), четвертому нравится девственно чистый WinAPI и функции с 15-ю аргументами лесенкой.

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

Спрашивайте, что вас конкретно интересует и я постараюсь ответить (я ведь только с виду такой умный, на самом деле — нет).

может надо было спросить что не так с ответом у того кто проводил тестирование?

Интеллектуальная викторина «День программиста»

Авторы: Щербинина Екатерина Сергеевна

Хисамутдинова Надежда Михайловна

1. Как это стихотворение связанно с историей возникновения программирования?

Неспящих солнце, грустная звезда,

Как слезно луч мерцает твой всегда,

Как темнота при нем еще темней,

Как он похож на радость прежних дней!

Так светит прошлое нам в жизненной ночи,

Но уж не греют нас бессильные лучи,

Звезда минувшего так в горе мне видна,

Видна, но далека — светла, но холодна!

Правильный ответ: его написал Лорд Байрон – отец автора первой программы Ады Августы Лавлейс

Как одним словом можно обозначить имя человека, название языка программирования, кратер на Луне, единицу измерения давления?

Правильный ответ: Паскаль

Как зовут самого популярного блоггера-кота, автора «Дневника домашнего кота».

Правильный ответ: Плинтус

Назовите птицу, которая выглядит, как животное или как дирижер во фраке. Как она связана с программированием?

Правильный ответ: Пингвин логотип линукса

Угадайте слово: название плаща из непромокаемой ткани и IT технологии.

Правильный ответ: Макинтош

Кому принадлежат эти слова?

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

(Подсказка) Так же этот человек является одним из основателей компании APPLE .

Правильный ответ: Стив Джобс

Чем полезна человечеству система reCAPTCHA

Правильный ответ: Распознавание слов нераспознанных отсканированных текстов.

7. С помощью последовательности кодов

119 105 110 100 111 119 115

закодировано слово windows .

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

1

51 137 142 132 143 151 147

Ссылка на основную публикацию
Adblock
detector