Потому что избалованы хорошим. Рассвет давно наступил, и если вы этого не видите, вы или слепец, или настолько привыкли к высоким стандартам технологий, что уже давно не осознаёте, насколько они на самом деле высоки. Как говорил Льюис Си Кей — всё замечательно, но все недовольны.
Не то чтобы я хотел показаться вот прямо очень умным, но к сожалению в логику умеют далеко не все. Ну или как минимум куча народу не умеют это на нужном для программирования уровне.
О том и речь была в моем комменте. Если много людей не умеют в логику — это не означает что логика сложна, это означает лишь что много людей не слишком умны (на всякий случай — это не попытка оскорбления не-программистов, гуманитарные штуки только снаружи выглядят донельзя простыми).
Упрощая на примере, написать компилятор куда сложнее, чем написать сайт. Но если сидеть гордым оттого, что можешь написать сайт (чего не может сделать подавляющее большинство людей на планете), то до написания компилятора ты никогда уже не доберешься.
Точно так же, как хирургия — это просто копание внутри другого человека, ага.
Дайте хирургу настолько стерильную среду, насколько она существует в программировании — и мы увидим настоящий рассвет хирургии. Пересадка голосы будет считаться рядовой операцией. Протестил на стейдже — накатил в прод. Умер пациент — откатил смерть, поправил ошибки, выкатил обратно. Повторять до тех пор, пока пациент не уйдет полностью здоровым.
Опасное заблуждение. Так можно прийти к выводу, что если ты программист — ты очень умный.
В школе я тоже думал, что я очень умный. Из-за чего расслабился и не прилагал серьезных усилий к обучению, как минимум в начальных и средних классах. Гораздо позднее я осознал, что это не я умный, это одноклассники дураки, и что сама школьная программа спроектирована таким образом, чтобы учить не слишком умного ребенка. Что привело, по сути, к безвозвратной потере нескольких лет — сейчас учиться гораздо сложнее, как из-за более старшего возраста (в меньшей степени), так и из-за того, что нужно зарабатывать себе на жизнь (в большей степени). Если какой-то школьник сейчас читает этот коммент — не повторяй моих ошибок, не ставь для себя слишком низкую планку.
Программирование — это просто. Это чистая логика, и ничего, кроме логики. Любую, даже самую сложную область в программировании можно раскрутить до последовательности простейших логических шагов. Какая еще область деятельности человечества может быть проще?
Другое дело, что люди путают «сложно» с «долго». Программирование — это долго. Нужно годами учиться и практиковаться. Но ничего «сложного» в этом нет.
Империя построена, в первую очередь, на продаже объявлений по поисковому запросу. Это первый момент.
Второй момент в том, что незаконную торговлю приватными данными надо еще доказать. И нет, продажу обезличенных данных под это дело впихнуть не получится.
Третий момент в том, что это должно быть незаконно в той стране, где зарегистрирована компания.
Четвертый момент в том, что вся эта эпопея с приватными данными началась гораздо позже начала деятельности компании.
Полно неточностей. Зато манипулятор на хабре с легкой руки сравнивает деятельность гугла с деятельностью наркокартеля. Я как будто Киселева посмотрел.
Вы сделали бездну допущений, ничем не подкрепленных, кроме своего желания высказаться «в защиту» алгоритмена. Забавно при этом выглядят ваши рассуждения про «мыслительный аппарат при этом более разносторонний и тренированный». Вот алгоритмист так же, считает что у него крутой «мыслительный аппарат», а на деле он дальше алгоритмов ничего не видит.
Но ладно, это уже лирика, так можно бесконечно переписываться о том, что для кого очевидно и что не очевидно.
Факт в том, что в «оперативной памяти» хранятся наиболее часто используемые знания и навыки. Чем реже и меньше человек что-то использует, тем с большей вероятностью он это забудет (или положит в «холодное хранилище в долгим временем доступа», если продолжить говорить метафорами).
Если происходит сортировка людей по одному признаку, то первые места занимают те, у кого этот признак «на кончиках пальцев». Если критерий — алгоритмы, то победят те, кто знают алгоритмы лучше других. А кто может знать алгоритмы лучше других? Правильно, тот, кто совсем недавно закончил их изучать. Если человек хотя бы лет так 5 поработал программистом, то, скорее всего, реально изучал алгоритмы он как раз лет так 5 назад. Сейчас ему интересно другое — архитектура, паттерны проектирования, и прочие высокоуровневые штуки. К примеру, вместо того, чтобы сравнивать скорость разных алгоритмов сортировки списков, он сравнивает разные способы организации и получения данных в какой-нибудь базе, типа постгреса.
Вот и получается, что, задавая вопросы в стиле «реализуйте сортировку пузырьком» или «повращайте мне дерево», больше всего баллов наберут студенты, олимпиадники, разработчики чего-то низкоуровневого, типа компиляторов, и всякие кванты, занятые высокочастотной торговлей, когда каждая миллисекунда промедления означает убытки. А, ну и те, кто страстно желают попасть именно в эту компанию, и последние полгода прорешивали литкод. Обычные инженеры, которые первые минут 10 (особенно, если запретить пользоваться справочниками) будут только вспоминать, как именно работает под капотом алгоритм с тем или иным названием, будут в пролёте. А учитывая, что вряд ли много квантов хотят работать в яндексе, то будут они нанимать в основном новичков.
Это раз, второе — когда у вас гигантский поток заявок то нужно отсеивать хоть по каким-то признакам.
А зачем кого-то вообще отсеивать? Нужно набрать условно сотню человек по разным позициям — обрабатываешь входящие заявки до тех пор, пока не наберешь, после чего закрываешь вакансию. Вряд ли кто-то всерьез надеется на таких объемах брать лучших из лучших. Подходят под требования — и ладно.
ттуда же, откуда и у тех, кто ни в алгоритмы, ни в сложность, очевидно. Только у него будут дополнительно важные знания и навыки.
Угу. А еще он на скрипке играть умеет — это тоже очевидно.
Вспоминайте, вводный курс теории вероятности. Что более вероятно: (а) Вася хорошо умеет в алгоритмы или (б) Вася хорошо умеет и в алгоритмы, и в архитектуру?
А потом систему в проде уронит случайный метод. Потому что на него внезапно пришла нагрузка, а он сделан так жутко что роняет всю БД.
Я ведь верно понимаю, что любой алгоритмист, при устройстве на работу, гарантирует своему работодателю некий аналог sla с несколькими девятками, и полной компенсацией в случае падения прода? Или алгоритмисты только говорить могут, а на деле роняют прод примерно так же часто, как и обычные инженеры?
Если нанимаемого не устраивает, он волен покинуть «театр абсурда», а не писать потом негатив в сторону нанимателя.
Почему-то вы сами своим же советом не воспользовались, и, вместо того, чтобы молча покинуть эту статью, начали комментировать её. Так стоит ли требовать от других людей того, чего сами же не выполняете?
Пожалуйста, задачка из моей практики. Сжатие одной картинки JPEG на одном ядре арма занимает 0.08 секунд. Требуется получить поток фреймов минимум 30 fps. Есть несколько ядер. Как будете решать?
Начну с изучения бизнес-требований. Именно бизнес, а не технических — чтобы понять какой результат ожидается, а не как его достичь. Продолжу изучением предметной области — раньше как-то не доводилось работать с изображениями и видео. Изучу, какие алгоритмы для сжатия существуют, их характеристики. Найду нужный — использую его. Если не найду — попробую изменить условие задачи, найти компромисс между требованиями и возможностями.
Почему вы вообще противопоставляете алгоритмы реальному программированию? Программирование — оно целиком про алгоритмы, сюрприз. Если вы берете инженера, а не кодо-макаку, у него не возникнет проблемы увидеть необходимость разработки алгоритма.
Это главное условие специальной олимпиады — сравнивать вырожденные случаи. На одной стороне суперопытный инженер, который при этом не написал самостоятельно ни одного алгоритма сортировки, на другой — суперопытный олимпиадник, который годами только сортировку и пишет, ни на что более не отвлекаясь :)
Алгоритмическая задача — это отсортировать список как можно быстрее, а дальше хоть трава не расти. Любой говнокод, любые недокументированные хаки приветствуются, лишь бы это добавило скорости.
Практическая задача — это не просто сложить два числа. Это написать код так, чтобы он был понятен и легок в поддержке. Это правильно декомпозировать его, написать читаемые имена переменных (а не «a, b, c»), сделать его расширяемым для будущих изменений бизнес-логики, грамотно написать тесты, и тд.
Действительно. Нафига нужны архитекторы, нафига нужен опыт? Берем студента, дрочим его пару месяцев на сортировку список и отправляем какую-нибудь распределенную систему писать, со сложной, меняющейся бизнес-логикой и большой нагрузкой. Главное, что он деревья вращать умеет, а остальное на SO найдет.
Назовите задачку не на алгоритмы, которую нельзя взять и нагуглить.
Хорошая шутка, но я тоже так умею. Назовите задачку на алгоритмы, которую нельзя взять и нагуглить.
Я же прям в моём посте указал пример совершенно обыденной повседневной задачи, решения которой нет в справочнике объемов зелёных резиновых мячей, и на которой запнулся реальный чувак, который не умел писать алгоритмы.
Вы стебетесь надо мной сейчас?
Продублирую тут вашу задачу, чтобы далеко не ходить:
>«отобразить оператору клиентов, которых надо сегодня прозвонить, это клиенты, у которых есть звонки с указанной датой следующего прозвона меньше либо равной текущей дате, и нет звонков с датой следующего прозвона больше текущей даты», которые не лежат в готовом виде на SO.
Ну тут есть важный нюанс: «алгоритм-мен» всегда может решить практическую задачу. [...]
А вот обратное — уже проблема. Если человек владеет инструментами, но алгоритмы сочинять не умеет [...]
Разумеется нет.
«Алгоритм-мен» никогда не сможет решить практическую задачу. Потому что он наловчился только списки сортировать. А опыту за пределами алгоритмов откуда взяться?
А вот обратное как-раз таки верно. Если инженеру нужно отсортировать список, он откроет справочник объемов зеленых резиновых мячей алгоритмов сортировок, выберет из них наиболее подходящий под его требования, и вернется обратно к действительно важным вещам — решению практических задач.
Но вот в теории если чьи-то взгляды выглядят так, что он считает свободное программное обеспечение изобретением дьявола, то можно его тогда на основании этих его взглядов сместить с поста в FSF?
Если его взгляды касаются программного обеспечения, то это один вопрос. Но при чем тут СПО и отношение к женщинам или к трансам? С таким же успехом можно увольнять за то, что он манную кашу не любит.
Есть в интернете места, в которые заходить не так противно.
Конечно есть. В доту, к примеру, можно сыграть — там у школоты примерно на таком же уровне словарный запас развит. Сможете найти общий язык, на тему того, кто с чьей мамкой какие дела делал.
Ваше мнение по данному вопросу не сто́ит и ломаного гроша.
Забирайте даром, мне не жалко. Хотите еще мое мнение о вашем мнении получить? Так сказать, два по цене одного.
Я называю потребностью — «быть на связи».
А хотелкой — последнюю модель модного телефона.
Новые способы связи, новые инструменты, новые орудия труда — это всё объективные требования для жизни. Будь они субъективные — человек бы сидел в пещере.
Однако человек не сидит в пещере, вместо этого он покупает последнюю модель модного телефона.
Я прям запасаюсь попкорном
Я уже давно запасся, как скоро вы, наконец, заметите противоречие в своей картине мира. И заметите ли вообще.
Упрощая на примере, написать компилятор куда сложнее, чем написать сайт. Но если сидеть гордым оттого, что можешь написать сайт (чего не может сделать подавляющее большинство людей на планете), то до написания компилятора ты никогда уже не доберешься.
Я пробовал. Не рекомендую.
В школе я тоже думал, что я очень умный. Из-за чего расслабился и не прилагал серьезных усилий к обучению, как минимум в начальных и средних классах. Гораздо позднее я осознал, что это не я умный, это одноклассники дураки, и что сама школьная программа спроектирована таким образом, чтобы учить не слишком умного ребенка. Что привело, по сути, к безвозвратной потере нескольких лет — сейчас учиться гораздо сложнее, как из-за более старшего возраста (в меньшей степени), так и из-за того, что нужно зарабатывать себе на жизнь (в большей степени). Если какой-то школьник сейчас читает этот коммент — не повторяй моих ошибок, не ставь для себя слишком низкую планку.
Программирование — это просто. Это чистая логика, и ничего, кроме логики. Любую, даже самую сложную область в программировании можно раскрутить до последовательности простейших логических шагов. Какая еще область деятельности человечества может быть проще?
Другое дело, что люди путают «сложно» с «долго». Программирование — это долго. Нужно годами учиться и практиковаться. Но ничего «сложного» в этом нет.
Второй момент в том, что незаконную торговлю приватными данными надо еще доказать. И нет, продажу обезличенных данных под это дело впихнуть не получится.
Третий момент в том, что это должно быть незаконно в той стране, где зарегистрирована компания.
Четвертый момент в том, что вся эта эпопея с приватными данными началась гораздо позже начала деятельности компании.
Полно неточностей. Зато манипулятор на хабре с легкой руки сравнивает деятельность гугла с деятельностью наркокартеля. Я как будто Киселева посмотрел.
Но ладно, это уже лирика, так можно бесконечно переписываться о том, что для кого очевидно и что не очевидно.
Факт в том, что в «оперативной памяти» хранятся наиболее часто используемые знания и навыки. Чем реже и меньше человек что-то использует, тем с большей вероятностью он это забудет (или положит в «холодное хранилище в долгим временем доступа», если продолжить говорить метафорами).
Если происходит сортировка людей по одному признаку, то первые места занимают те, у кого этот признак «на кончиках пальцев». Если критерий — алгоритмы, то победят те, кто знают алгоритмы лучше других. А кто может знать алгоритмы лучше других? Правильно, тот, кто совсем недавно закончил их изучать. Если человек хотя бы лет так 5 поработал программистом, то, скорее всего, реально изучал алгоритмы он как раз лет так 5 назад. Сейчас ему интересно другое — архитектура, паттерны проектирования, и прочие высокоуровневые штуки. К примеру, вместо того, чтобы сравнивать скорость разных алгоритмов сортировки списков, он сравнивает разные способы организации и получения данных в какой-нибудь базе, типа постгреса.
Вот и получается, что, задавая вопросы в стиле «реализуйте сортировку пузырьком» или «повращайте мне дерево», больше всего баллов наберут студенты, олимпиадники, разработчики чего-то низкоуровневого, типа компиляторов, и всякие кванты, занятые высокочастотной торговлей, когда каждая миллисекунда промедления означает убытки. А, ну и те, кто страстно желают попасть именно в эту компанию, и последние полгода прорешивали литкод. Обычные инженеры, которые первые минут 10 (особенно, если запретить пользоваться справочниками) будут только вспоминать, как именно работает под капотом алгоритм с тем или иным названием, будут в пролёте. А учитывая, что вряд ли много квантов хотят работать в яндексе, то будут они нанимать в основном новичков.
Вспоминайте, вводный курс теории вероятности. Что более вероятно: (а) Вася хорошо умеет в алгоритмы или (б) Вася хорошо умеет и в алгоритмы, и в архитектуру?
Это главное условие специальной олимпиады — сравнивать вырожденные случаи. На одной стороне суперопытный инженер, который при этом не написал самостоятельно ни одного алгоритма сортировки, на другой — суперопытный олимпиадник, который годами только сортировку и пишет, ни на что более не отвлекаясь :)
Практическая задача — это не просто сложить два числа. Это написать код так, чтобы он был понятен и легок в поддержке. Это правильно декомпозировать его, написать читаемые имена переменных (а не «a, b, c»), сделать его расширяемым для будущих изменений бизнес-логики, грамотно написать тесты, и тд.
Хорошая шутка, но я тоже так умею. Назовите задачку на алгоритмы, которую нельзя взять и нагуглить.
Вы стебетесь надо мной сейчас?
Продублирую тут вашу задачу, чтобы далеко не ходить:
>«отобразить оператору клиентов, которых надо сегодня прозвонить, это клиенты, у которых есть звонки с указанной датой следующего прозвона меньше либо равной текущей дате, и нет звонков с датой следующего прозвона больше текущей даты», которые не лежат в готовом виде на SO.
Какие тут вообще алгоритмы? Мне справочник по SQL за вас нагуглить? Нет проблем: www.postgresql.org/docs/current/sql-select.html
«Алгоритм-мен» никогда не сможет решить практическую задачу. Потому что он наловчился только списки сортировать. А опыту за пределами алгоритмов откуда взяться?
А вот обратное как-раз таки верно. Если инженеру нужно отсортировать список, он откроет справочник
объемов зеленых резиновых мячейалгоритмов сортировок, выберет из них наиболее подходящий под его требования, и вернется обратно к действительно важным вещам — решению практических задач.Забирайте даром, мне не жалко. Хотите еще мое мнение о вашем мнении получить? Так сказать, два по цене одного.
Я уже давно запасся, как скоро вы, наконец, заметите противоречие в своей картине мира. И заметите ли вообще.