Судьба программиста

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

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

Демпресса истерит по этому поводу, а между тем пограничник прав — «нигерийский программист» это уже интернет-мем какой-то, обозначающий жулика, ничего не понимающего в IT технологиях, но косящего под программиста. Такого жулья въехало в США под видом «высококвалифицированных специалистов» целое море.

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

Суть в том, что для абстрактного класса нельзя выполнить конструктор («создать экземпляр» или «создать объект»), но можно создать производный класс, наследующий от абстрактного класса его свойства. И уже от этого класса создавать экземпляры и их использовать. То есть абстрактный класс — это некое описание полезных свойств объекта, но чтобы создать объект с такими свойствами, вам надо сначала создать СОБСТВЕННЫЙ класс, наследующий от абстрактного, и уже от него конструктор сможет создать объект с описанными свойствами и методами.

Абстрактные методы (методы, описанные для абстрактного класса) часто являются и виртуальными, в связи с чем понятия «абстрактный» и «виртуальный» иногда путают. Хороший тест на ОО программиста — попросить объяснить разницу между абстрактным методом и виртуальным. Если человек начал плавать — это клоун, обезьянка, нажимающая на кнопки без понимания, что она вообще делает.

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

Внезапно для клоунов, косящих под программистов, «сбалансированность» это всего лишь максимальная разница между глубиной левого и правого поддерева среди всех вершин. Чтобы это знать — надо знать основы алгоритмизации, понятие бинарного поиска и т.д. Ну а если человек даже знает, что такое Адельсон-Вельский-Ландис — то вообще ОК, он явно что-то читал по специальности. Ну и да, то, что рандомизированные бинарные деревья поиска обеспечивают сбалансированность только в вероятностном смысле — знают нынче не только лишь все. Хе-хе.

Вот спросят вас такое в аэропорту — и всё, приплыл стартапер.

Материал: Proper специально для PUTC.ORG
Настоящий материал самостоятельно опубликован в нашем сообществе пользователем Proper на основании действующей редакции Пользовательского Соглашения. Если вы считаете, что такая публикация нарушает ваши авторские и/или смежные права, вам необходимо сообщить об этом администрации сайта на EMAIL abuse@newru.org с указанием адреса (URL) страницы, содержащей спорный материал. Нарушение будет в кратчайшие сроки устранено, виновные наказаны.

Читайте также:

21 Комментарий
старые
новые
Встроенные Обратные Связи
Все комментарии
Anunah
Anunah
7 лет назад

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

Ոሉαዙҿτα ಭҿҝҿሉҿʓяҝα〄
Ոሉαዙҿτα ಭҿҝҿሉҿʓяҝα〄
7 лет назад

В очках и лыбится, значит програмизд.

Ванёк26
Ванёк26
7 лет назад

Аааааа! Что это за хрень?!
(Ххххххх)

colobok
colobok
для  Proper
7 лет назад

Объяснение практически уровня Перельмана. Неплохо бы в таком смысле целую книгу прочитать, «Занимательное программирование».

Ванёк26
Ванёк26
для  Proper
7 лет назад

В методе Учить забыли «розги» и «училка». Кроме того, return будет «только портить».

Ванёк26
Ванёк26
для  Proper
7 лет назад

Да. И объект не «3 часа», а «время». которому присвоить значение в тактах. Ыыыыыыыыыы.

Ванёк26
Ванёк26
для  Proper
7 лет назад

Это смотря что написать в методе. А зачем объекты час доставать да еще из контейнера, если можно просто растягивать объект «Время»? Или объект Ванек26 должен участвовать еще в каких-то параллельных методах, например Флирт(Машка, уровень_флирта)?

Ванёк26
Ванёк26
для  Proper
7 лет назад

Просто вы забиваете одинаковыми объектами контейнер, чем занимаете память. А при применении объекта «Время» выполняется метод «Учеба» пока внутренний объект метода (допустим i при инкрименироВАНИи не достигнет значения «Время» (или для надежности — не станет больше)). Если же каждый раз генерировать объект «Час» то получается алгоритм несильно отличается от применения объекта «Время». Тут, действительно вопрос многопоточности. С микроконтроллерами вопрос решается прерываниями. У хорошего железячника в функции while(1){} максимум одна функция.

Ванёк26
Ванёк26
для  Proper
7 лет назад

В «железе» пока так.

Ванёк26
Ванёк26
7 лет назад

Инженегр-программизд.. Звучит.

Ванёк26
Ванёк26
7 лет назад

Оффтоп.

На интернет-страницах погибших детей идет гибридная война

http://izvestia.ru/news/667495

Ոሉαዙҿτα ಭҿҝҿሉҿʓяҝα〄
Ոሉαዙҿτα ಭҿҝҿሉҿʓяҝα〄
для  Ванёк26
7 лет назад

А вот не понимаю слова- гибридная, если война, так война..

Ванёк26
Ванёк26

Это просто разновидность войны. Иначе — ядерный удар.

Ոሉαዙҿτα ಭҿҝҿሉҿʓяҝα〄
Ոሉαዙҿτα ಭҿҝҿሉҿʓяҝα〄
для  Ванёк26
7 лет назад

отрупидь интернет , прямо на хранитсэ, топором..
#ввестивойска
вот пендосы ш поставляют оружие в 404, 404 воюет с нашими бурятскими войсками, все это знают, не так ли? так где наш ответ Лаврова? надо прямо так и спросить, вы подвердите, что петрошенко воюет с нашими войсками? ну и далее по тексту..
И вооще, Лаврову одеть мундир с погонами, и выйти так на встручу с пендосами, пусть у них отвалятся челюсти, а чё? гибридная война, он на переднем окопе.
Если так сделают… ыыы..хъххъ…мамамия…ууугггг.. это будет сколько мегатонн?

Ванёк26
Ванёк26
7 лет назад

«Вдруг CNN узнает?»: Захарова «предостерегла» посла США от визитов в МИД

https://ria.ru/politics/20170303/1489201484.html

Ոሉαዙҿτα ಭҿҝҿሉҿʓяҝα〄
Ոሉαዙҿτα ಭҿҝҿሉҿʓяҝα〄
для  Ванёк26
7 лет назад

Вань, дай просто ссылку- риа.ру… И читайте дальше))

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