• Концепт «правильного» определения случайного победителя
    0
    Итак, задача сводится к тому, чтобы:
    1. Получить надежный источник энтропии.
    2. Прошлые значения может проверить любой желающий.
    3. Этот источник был независим от заинтересованных лиц, то есть независим от подтасовок.

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

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

    Тогда источником энтропии может быть природа. Значения (с максимально возможным числом знаков после запятой, но исключая влияние погрешности измерений) солнечной активности, геомагнитной активности, и т.д. Брать значения от надежных лабораторий, которые публикуют такую информацию. Можно брать совокупность таких параметров и считать хеш. Так как лабораторий много по всему миру, подделать этот результат так просто не получится.
  • То, что вы, возможно, не знали о словарях в лекции «Словари: мифы и реальность»
    +1
    Первые подобия словарей появились в XXV веке до н.э. у шумеров. Это были так называемые глоссы: на полях рукописей выписывались значения незнакомых слов.

    Какие еще рукописи? У древних шумеров же была клинопись, на глиняных табличках… Или я что-то пропустил?
  • Попрошайничество будущего, или как я спал с QR-кодом в руках под офисом Google в Нью-Йорке
    0
    Согласен. Единственное, что хоть как-то объединяет этот пост с тематикой Хабра, так это использование ключевых слов QR-код и MacBook Pro. IMHO, этому посту тут (да и вообще на Хабре) не место.

    Но вообще автор крут, это нельзя не признать. Хоть в данном случае и проявил себя как попрошайка, как бы негатив, да, но такое по молодости бывает, можно понять… В принципе, не нам судить. Главное, чтобы законы стран пребывания не нарушал (и не подавал другим пример в этом). Будем считать, что в данном случае он ставил социологический эксперимент. ))
  • Попрошайничество будущего, или как я спал с QR-кодом в руках под офисом Google в Нью-Йорке
    +1
    Если человек просит и ему дают — значит он это заслужил (читай заработал).

    IMHO, это в корне неверно. Попрошайки мастерски научились эксплуатировать альтруистические качества простых людей, например, могут использовать грудных детей и т.д., то есть речь идет исключительно о манипулировании, но не о заслугах (или читать как заработал ???). А вот музыканты в метро это уже не совсем попрошайки, хотя и близки к ним, но по крайней мере они хоть как-то пытаются заслужить подаяние.
  • Попрошайничество будущего, или как я спал с QR-кодом в руках под офисом Google в Нью-Йорке
    +1
    Можно искать работу в знакомом городе (поспрашивать у друзей и родственников) удаленно по инету. Или на фрилансерском сайте. Но тут да, действительно, придется работать. И нужно что-то уметь. Хотя, вот, сайты автор делать может, это уже что-то.
  • Попрошайничество будущего, или как я спал с QR-кодом в руках под офисом Google в Нью-Йорке
    +3
    Посмотрел на карту путешествий автора в его блоге. Круто. Только вот, пока что он был в более-менее безопасных местах с доброжелательным мирным населением. А вот дальше, если, конечно, он выберет кругосветку, ему предстоит посетить Латинскую Америку и Африку. Там вряд ли сработает подобная тактика выпрашивания (по QR-коду или как-нибудь еще, не менее креативно), да и подработать на примитивных работах может не получиться, разве что за еду. Тогда и начнется настоящий экстрим. Как бы друзьям и маме с папой не пришлось собирать деньги на выкуп из какой-нибудь африканской страны, с таким образом жизни и без наличных денег это легко может получиться… Хотя мало ли, может быть автор в те места и не собирается, и ограничится путешествиям по благополучным странам, тогда OK.

    IMHO, если уж принципиально хочется путешествовать без денег, и быть открытым миру, это лучше делать с прокачанным фрилансерским аккаунтом, чтобы в случае чего можно было где-то остановиться на несколько дней, и пополнить кошелек, нажимая кнопки и не подвергая жизнь опасности. ))
  • Попрошайничество будущего, или как я спал с QR-кодом в руках под офисом Google в Нью-Йорке
    +1
    Про паразитический образ жизни тут еще никто автору не написал? Ладно, шучу, шучу. Автор, все OK, не слушайте. Навскидку, где-то 70% хомо сапиенсов на этой планете паразитируют на обществе (в том числе немало студентов), так этот мир устроен.

    С точки зрения программиста такой образ жизни вряд ли приемлем, провести полтора года в экстремальных путешествиях, и планировать еще столько же, в возрасте 20-22 года, когда мозг наиболее открыт для получения новых знаний, когда буквально впитывает новые сложнейшие технологии, которые изменят будущее… Более оптимально было бы забуриться в общаге возле своего вуза, и день и ночь проводить на кафедре с кучей компов и прочего железа, участвуя в научных разработках вместе с доцентами и профессорами, или например конструируя роботов, и т.д. Да, я серьезно.

    Но тут же другая ситуация. Автор сам себе организовал прекрасный личный университет журналистики. После такого многолетнего путешествия у него сформируется отличный английский, возможно, еще будет пара языков на сносном уровне. Знание ряда культурных нюансов многих народов мира. Кроме того, сейчас он уже работает на свое будущее портфолио. Уже через несколько лет он, если захочет, будет иметь приоритет перед 99% выпускников какого-нибудь журфака, и сможет поставлять качественные новости для крупнейших новостных каналов, рапортажи из горячих точек, и т.д. С такими-то навыками коммуникации!
  • Снимаем постпродажный шок: короткий совет для интернет-магазинов
    +3
    > Звонок после продажи

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

    IMHO, меня такой звонок бы очень сильно напряг. Особенно если бы я в это время был на работе и писал код, или был на совещании, или у клиента, или в муниципалитете, или в магазине возле кассы… да где угодно. И вообще, зачем мне неожиданный звонок от незнакомых людей?
  • Задачи на собеседованиях в Яндексе
    +1
    Спасибо за развернутый ответ, позиция понятна, принимается. Повторюсь, написать такое за два часа, с нуля, без интернета, это уже отличный уровень. Но в любом случае, не мне судить. Меня просто некоторые детали реализации зантрересовали, у вас они, как оказалось, позволительны, а в некоторых других компаниях строго запрещены. Но это мелочи, в принципе.
  • Задачи на собеседованиях в Яндексе
    +1
    Ясно, спасибо за ответ, принимается. Хотя я бы не доверял во всех случаях компилятору (включая данный случай), так как реальные результаты часто отличаются от того, что ожидается по теории, но я понимаю, что, возможно, это лишь моя личная программерская паранойя. Кстати, если не секрет, какой компилятор Вы в данном случае использовали, и с какими ключами компилировали этот код? Было бы интересно проверить.
  • Задачи на собеседованиях в Яндексе
    0
    Тут скорее не придирка, а констатация факта, что тестовое задание не выполнено. Конечно, это не значит, что такого кандидата не нужно брать на работу, просто достаточно попросить доработать код. Хотя вообще лучше отдавать предпочтение тем кандидатам, которые с первого раза сдают такие задания без ошибок, это потом и по реальной работе будет заметно.
  • Задачи на собеседованиях в Яндексе
    0
    Думаю, то, что получится, очень сильно зависит от выбранного компилятора, а также реализации std::string. Прошу прощения, какой компилятор Вы имеете в виду, и с какими опциями компиляции? Хотелось бы посмотреть, какой генерируется код (на ASM).

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

    Eсли посмотреть имплементацию basic_string.h, то, в зависимости от реализации, будет что-то типа:

    iterator end() {
        return iterator(_M_data() + this->size());
    }
    


    По крайней мере описание именно такое:

    The past-the-end character is a theoretical character that would follow the last character in the string. It shall not be dereferenced.

    Because the ranges used by functions of the standard library do not include the element pointed by their closing iterator, this function is often used in combination with string::begin to specify a range including all the characters in the string.
  • Задачи на собеседованиях в Яндексе
    +1
    #0. Код программиста, приведенный на данный момент в статье, не обрабатывает унарный оператор перед скобками. То есть на выражение -(1+1) будет выдана ошибка, хотя это вполне допустимое выражение с точки зрения математики.

    #1. Код программиста на выражение -1*0 выдаст -0. Вряд ли это хорошо. Или это так было задумано?
  • Задачи на собеседованиях в Яндексе
    +1
    Посмотрел код разработчика, всегда интересно смотреть, как пишут специалисты крупнейших компаний… Правильно ли я понял, что у вас допускается и считается нормальным, когда конструкции типа str.end() многократно вызываются в циклах, включая вложенные циклы?

    for (std::string::const_iterator cit = str.begin(); cit != str.end(); ++cit) {
        ...
        int curnum = 0;
        while (cit != str.end()) {
            curnum = 10*curnum + (*cit - '0');
            if ((cit + 1) == str.end() || !isdigit(*(cit+1))) {
                break;
            }
            ++cit;
        }
        ...
    }


    P.S. То, что я написал выше, это не в упрек программисту. Сам я, с нуля, прямо на собеседовании, такую задачу за два часа скорее всего не решу на C++ (по крайней мере без ошибок и ляпов, и чтобы мне было не стыдно такой код показывать). Попросил бы часа четыре, но при этом написал бы множество юнит-тестов, и доку под доксиген. Хотя тогда проводящие собеседование скорее всего меня назвали бы медленным программистом, и не взяли бы. Жаль.
  • Нелёгкая карьера программиста или чего хотят работодатели
    0
    Правильно ли я Вас понял, что всё, что по ту сторону интерфейса — абстракция?

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

    Да, это именно так.

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

    Действительно, можно притянуть за уши, и назвать это абстракцией. Но на самом деле это просто разные задачи. Железо и прога… тут просто один объект сделал нечто, и передал сообщение другому объекту через некий заданный интерфейс, не более. Так ли уж необходимо вводить дополнительное избыточное понятие абстракции в этом случае?
  • Нелёгкая карьера программиста или чего хотят работодатели
    0
    Можно подумать, прерывание — это не абстракция взаимодействия с внешним миром, а запись бита в контроллер — это не абстракция управления лампочкой.

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

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

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

    Практически всегда можно подобрать [как бы] логичную абстракцию для чего угодно. Но зачем это делать в тех случаях, когда это избыточно? Бритва Оккама — «сущности не следует умножать без необходимости», это относится в том числе и к абстрактным сушностям. Прога для микроконтроллера на обязательно от чего-то абстрагируется… точно также можно сказать, что она просто имеет некое поведение сама по себе, как некий самодостаточный объект, а подкюченные к девайсу внешние устройства просто используют это поведение.

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

    Данная прога для микропроцессора ни от чего не абстрагируется. Ей не нужно ни от чего абстрагироваться. При чем тут форма бачка унитаза? Эта прога самодостаточна — это просто последовательность команд микропроцессора, которая запускается при срабатывании прерывания, не более. Неважно что вызвало прерывание, если оно вызвано, то прога запустится. ))
  • Нелёгкая карьера программиста или чего хотят работодатели
    0
    Программирование бывает не только построением модели, это бывает и просто кодированием, написанием инструкций для выполнения.

    Допустим, я написал программу для микроконтроллера, которая при поступлении прерывания внешнего датчика включает световой индикатор. Где тут модели и абстракции? А, ну да, можно было бы сделать иерархию классов, реализовать гибкую расширяемую архитектуру, все дела… но у меня для моей задачи было всего лишь 128 байт, и мне этого хватило. Или это не программирование? ))
  • Нелёгкая карьера программиста или чего хотят работодатели
    0
    == а вот для* Oracle DBA это бы не составило ни малейшего труда ==
  • Нелёгкая карьера программиста или чего хотят работодатели
    +1
    Но разве вам кажется абсурдной мысль о том, что человек, аккуратно пишущий код, будет стремиться к аккуратности во всём? Мне она кажется вполне естественной.

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

    И я еще не видел профи, который был бы неспособен внятно излагать свои мысли. Обычно этот навык так или иначе приходит с опытом. А грамотное письмо — просто часть этого навыка.

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

    «Неважных вещей» в нашем деле не бывает. В этом я убедился многократно.

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

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

    Сознательно не отказывается. Это несознательно. Когда человек спешит донести другому свою как ему кажется важную мысль где-нибудь в чате, он в это время может меньше всего думать о родном языке или «интеллектуальном имидже», и это нормально. Да и вообще опечатки — нормальны. У очень грамотного и внимательного человека они тоже неизбежно будут, хотя и существенно меньше.
  • Нелёгкая карьера программиста или чего хотят работодатели
    0
    По пунктам.

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

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

    2. Это да, согласен. Для программиста интереснее работать со сложными задачами. Но вот для бизнеса наоборот, выгоднее, чтобы был простой предсказуемый конвейер проектов. Соответственно, нужно заботиться о балансе.
  • Нелёгкая карьера программиста или чего хотят работодатели
    0
    При таком подходе эти задачи будет делать тот, для кого они простые. Например, для меня перевести работающий высоконагруженый проект с Oracle 9 на 11 было бы сложной задачей, хотя я давно работаю с Oracle, а вот для не Oracle DBA это бы не составило ни малейшего труда, и наверняка он сделает это качественнее.

    Иными словами, для бизнеса лучше строить процесс так, чтобы ту или иную задачу делал профессионал, для которого эта задача не является сложной. Нет нужного спеца в данный момент времени? Не проблема, его можно пригласить для выполнения работ по краткосрочному контракту. В этом случае меньше рисков, можно прогнозировать результат, и браться за действительно серьезные проекты, беря на себя ответственность по их разработке.
  • Нелёгкая карьера программиста или чего хотят работодатели
    –1
    Абстракция не является «основным принципом любого программирования». Писать программы можно без малейших абстракций. Если Вы когда-нибудь писали программы под микроконтроллеры, то, надеюсь, понимаете, что я имею в виду.
  • Нелёгкая карьера программиста или чего хотят работодатели
    +1
    Всё правильно, согласен. Про паттерны разве что могу добавить, что конторы правильно делают, что на собеседованиях про них спрашивают. Мало уметь думать головой, нужно еще и говорить с командой на одном языке. Например, если кто-то упоминает cинглтон, фабрику, или декоратор, то остальные должны это как минимум это понимать и уметь реализовать.
  • Нелёгкая карьера программиста или чего хотят работодатели
    0
    Если нужно ставить диагнозы, то еще и не по такому ставят… Мой знакомый психолог, кстати, кандидат наук, специализировался на рисунках, которые люди от нечего делать бессвязно рисуют когда им скучно, ну там на лекциях, собраниях и т.д.

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

    Ответы по пунктам.

    1. Специалисту не нужно следить за своим «интеллектуальным имиджем», чтобы оставаться профи. Это личное дело какой имидж иметь, и не факт что это хоть как-то связанно с выполнением рабочих обязанностей.

    2. Он не привык уделять внимание неважным вещам, таким как проверка нюансов правописания никому ненужных текстов. Если при этом он полностью отдается своей основной работе, то есть все свои личные ресурсы бросает туда, то это как раз-таки нормально для профи.
  • Прохождение интервью — взгляд изнутри
    0
    Это да, но тут про возраст интересно, то есть за 40+ тоже есть жизнь. ))
  • Нелёгкая карьера программиста или чего хотят работодатели
    0
    А вот пост про ситуацию в Канаде. Интересная информация. Специально там задал вопрос автору, чтобы потом Вам ссылку дать. )) К слову, в Европе аналогичная ситуация.
  • Прохождение интервью — взгляд изнутри
    0
    Вот оно, отлично. Надеюсь, автор из предыдущей темы про нелегкую карьеру программиста это прочитает. ))
  • Прохождение интервью — взгляд изнутри
    0
    Да, тоже с подобным сталкиваюсь, некоторые боятся делать коммиты, пока не проверят свой код раз двадцать. Но такое дело, даже и без коммитов, достаточно подойти, и попросить показать код. Или будет негатив? Вряд ли. А менеджеру или тимлиду даже пары минут может быть достаточно, чтобы бегло оценить ситуацию. Это в любом случае лучше, чем пускать на самотек и терять человеко-неделю. ))
  • Прохождение интервью — взгляд изнутри
    0
    Ясно, то есть старше 50, значит, нет. Тогда вопрос, синьоров такого возраста вообще не встречается в вашем регионе, или они просто пока что вам в отдел резюме не присылали? И, если не секрет, сколько человек в таком отделе обычно работает? Хотелось бы оценить процент сотрудников старшего возраста.
  • Прохождение интервью — взгляд изнутри
    +2
    Кстати да, непонятно, зачем неделю ждать. Уже в конце этого же дня можно понять по коммитам, что сотрудника куда-то не туда занесло.
  • Прохождение интервью — взгляд изнутри
    +1
    А как обстоят дела с возрастными ограничениями? Есть ли шанс программисту за 40+ устроиться на работу например в ваш R&D отдел? Есть ли в вашем отделе примеры таких людей?
  • Нелёгкая карьера программиста или чего хотят работодатели
    0
    Попробую рассуждать логически. С одной стороны действительно, существует поговорка: «неграмотно пишешь — неграмотно думаешь». Это может быть и верно, но только если ставится задача излагать мысли на бумаге. Тут такое дело, можно выбирать специализацию: то ли литературные тексты писать, то ли код, то ли еще что. Можно равномерно развивать несколько скилов одновременно, но если больше вкладывать только в один из них, то и достичь можно большего.

    Для профи нормально быть мастером только своего дела, и отставать в других областях, в том числе и во владении таким сложным языком как русский. Например, Александр Сергеевич Пушкин писал на русском языке с ошибками… Исследователи объясняют это так, мол, гений, спешил, старался зафиксировать ускользающий образ. Вот и с программистами тоже может быть где-то так. ))
  • Нелёгкая карьера программиста или чего хотят работодатели
    0
    А каков размер выборки в Ваших личных наблюдениях? Сколько примерно человек Вы подвергли анализу по этим критериям? Я к тому, что если выборка не велика, то это могло привести к поспешным выводам.

    У меня таких наблюдений нет, не проводил. Но если бы была явная взаимосвязь, то наверняка заметил бы. Да и не только я… Уверен, что если это было бы правдой, то программистов на собеседованиях просили бы писать диктант. ))
  • Нелёгкая карьера программиста или чего хотят работодатели
    +2
    Не обязательно. Может быть данному человеку нравятся цифры, возможно, нравится именно цифра 1. Мало ли какие ассоциации возникли, когда он ник выбирал… например, царь Петр Первый, и т.д. Такие вещи хорошо прослеживаются при анализе тысяч ников и сопоставлении с психологическими портретами их обладателей. Психология с этим работает.
  • Нелёгкая карьера программиста или чего хотят работодатели
    0
    Немного не понял мысли. Прошу прощения, а на чем основаны эти Ваши убеждения?

    Я например не вижу никакой корреляции между гигиеной, частотой опечаток и ошибок в текстах, и качеством кода программиста. И вообще не понимаю, при чем ко всему этому ник с единицей. Может быть поясните?
  • Нелёгкая карьера программиста или чего хотят работодатели
    +2
    Да, кстати, может, и единичку в нике как-то объясните рационально?

    С точки зрения психологии цифры в нике говорят об утилитарности мышления. Для программиста это нормально.
  • Нелёгкая карьера программиста или чего хотят работодатели
    –1
    И часто у вас в процессе работы возникают действительно сложные задачи? ))

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