Профессиональное мышление


Задача: 
Есть две фигуры: прямоугольник и квадрат. Что из них является частным случаем чего? 




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

А что, если взглянуть на проблему глубже и представить квадрат в качестве объекта? С точки зрения объектно-ориентированной концепции, у объекта "квадрат" всего одно поле размера, значение из которого используется для определения обоих измерений. А в объекте "прямоугольник", помимо всего прочего, есть необходимость определять еще и второе поле для другого измерения. Вот и получается, что квадрат является неким абстрактным классом, а класс "прямоугольник" его дополняет.

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

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

А какие вы знаете примеры профессионального мышления?


2 комментария:

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

    ОтветитьУдалить
    Ответы
    1. Про интернатуру в Facebook сказать ничего не могу, т.к. не знаю.
      А вот интервью на позиции - очень специфичные. В первую очередь собеседующие пытаются понять, подойдет ли человек к коллективу и в профессиональном, и в психологическом планах. Много смотрят на уже выполненные проекты и качество их реализации.

      С Google всё немного по-другому.
      Если человек попадает на интервью через участие в GSOC в каком-то из внутренних проектов, то собеседование, в основном, заключается в уточнении влияния собеседуемого на ход проекта и попыток спрогнозировать это самое влияние в обозримой перспективе(1,5 года до первой возможности "спрыгивания" на другой проект. )

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

      Ниже ссылки на три реализации данной задачи от товарища:

      https://pp.vk.me/c623219/v623219196/2374e/WFSDNEIyKqg.jpg
      https://pp.vk.me/c623219/v623219196/23760/NjYo8Hn_UKQ.jpg
      https://pp.vk.me/c623219/v623219196/23770/JBYo9pUhBX4.jpg

      Ими он попробовал как раз разобраться с ответами на вопрос о подсчете площади и периметра. :)

      Удалить