Обновить
58
0

Пользователь

Отправить сообщение
Радует, что хотя бы догадались к 2015 году проверять решения нормально. Мне приходилось складывать решения в папочку на рабочем столе, так же делали и последователи после меня. И вот, в 2015, эволюция шагнула вперед. На РОИ же всегда использовалась ejudge, почему так же не сделать в регионах. Или такие варварские методы были только в моем регионе?
Я уже написал по этому поводу — http://habrahabr.ru/company/hexlet/blog/248921/#comment_8246799. Вы наверняка айтишник и смотрите на это однобоко, конечно же программирование у вас важнее всего на свете.
AFAIK, программирование и так есть. У меня оно было, по крайней мере, причем отдельным предметом от «информатики». Я точно не помню, но, кажется, начиналось это в 7 классе и там был Pascal. Просто люди предлагают чуть ли не в начальной школе это давать. И уж точно это не важнее, чем база вроде математики. Тут не важно, в каменном веке мы живем или в цифровом — база есть база.
Ну целые числа вы же будете вводить, раз у вас конечные поля и вычеты по модулю? Значит вам нужны азы теории групп и теории множеств.
Возможно будет и лучше, но нужно быть осторожнее в рассуждениях что и для кого лучше. Я вот никакого отношения к школьному образованию не имею и не берусь утверждать что выкидывать а что нет. Иначе вы рискуете стать как Роскомнадзор — он ведь тоже хочет как лучше, запрещает вам всякие гитхабы и стимы, лишь бы вы ненароком марихуаны не попробовали, но почему-то всем он мешает жить и все его ненавидят за это. Вот и вы можете стать как Роскомнадзор для школьников, т.к. это проблема сложная, и тут нужно очень хорошо разобраться перед тем как что-то менять.
А что, неплохо. Мне нравится. Вы ещё теорию множеств забыли :)
Ваша логика не работает. Если вы хотите что-то добавить, то вы должны что-то выкинуть из программы. А выкидывать нельзя. Значит и добавить нельзя. Конечно, можно напичкать кучу всего в программу, так, чтобы ученик уходил утром и приходил вечером, но это уж точно будет насилие, вряд ли вы это подразумевали.
Я императивно покупки тоже не планирую, если вы об этом. Как и функционально. У меня есть список покупок, но нет четкой последовательности действий. Но алгоритмы именно из идеи воплощать в код проще на функциональном языке, и я сейчас говорю только про себя. It's all about this, воплотить алгоритм в работающий код. А как там думает человек, я не знаю. Я знаю, что те алгоритмы и те абстракции, которые у меня возникают в голове, проще писать на функциональном языке.
ЯП — это инструмент. Человек живёт в императивном мире, мыслит императивно и действует императивно. С какой стати он должен подгонять себя под неудобные инструменты?

Это Вы мыслите императивно, а не человек. Не надо делать таких смелых утверждений. Мне вот функциональное программирование кажется ближе, а ваши аргументы про «неудобные» инструменты смешными. Функциональное программирование и создавалось, как инструмент для решения конкретных задач, а не плясок вокруг синтаксических примудростей как в современном C++.
Основная мысль была в том, что это и не нужно — для тех задач, которые решаются. Так что незнание основ — это даже более рационально. Я по идеологии скорее математик, чем программист, и мне незнание основ кажеться вообще дикостью какой-то. Но на деле эти основы и не нужны. А если и нужны, то задача очень специфичная.
А чем те же плюсы, например, предпочтительнее хаскелля? Чем паскаль предпочтительнее? На самом деле, все дело в качестве компиляторов и количестве уже существующего кода на тех же плюсах. А задачу можно решать на любом языке, в каких-то местах код на хаскелле будет длинее, где-то лаконичнее, но это не имеет значения. Просто специалистов по хаскеллу днем с огнем не найдешь, а хороших библиотек для него почти нет. Так что, если я правильно понял «предпочтительность использования», то хаскелл использовать не предпочтительно.
Ну лично мне он помогает писать наброски алгоритмов. Например, появилась какая-то бешеная идея в голове, доказать не можешь, но хочеться по-быстрому проверить работает или нет. Писать на какой-нибудь Java долго, а на хаскелле написать набросок в разы быстрее. Почему хаскель не прижился в проф. сфере, это уже другой вопрос, но польза от него есть.
Так зачем насильно пропагандировать программирование? Качество обучения важнее. А кто хочет (на самом деле) этим заниматься, тот будет, и никаких проблем не возникнет.
И сложно решить, что лучше: как можно быстрее научить созданию простых приложений без реального понимания программирования, алгоритмов и их вычислительной сложности, а потом начать знакомство с этими важными темами, или начать «с начала», и органично придти к созданию приложений и продуктов после освоения фундамента.

На самом деле, сам факт того, что в этом месте ставится выбор — это уже печально. Я думал, что тут выбор очевиден, но вопрос-то ставится, значит кому-то скорость обучения важнее качества. Я понимаю, что в современных реалиях почти вся теоретическая основа не нужна, все сводится к бездумному умению строчить код. Дошло уже до того, что многие корректно написать бинпоиск не в состоянии — так зачем уметь, если всё это есть в стандартной библиотеке любого языка? Кстати, тот же алгоритм Дейкстры сейчас разве что программист-олимпиадник напишет просто из головы. Но с другой стороны, люди, у которых знания шире обычного «программиста» всегда ценятся. И чем больше дефицит, тем больше они ценятся. Тех же призеров Google Code Jam/Facebook Hacker Cup гугл с фейсбуком сами в слезах уговаривают пойти к ним работать, знаю не по наслышке. Вас вряд ли встретят с таким энтузиазмом, если вы просто придете на собеседование.
Тоже интересно. Наверное, его просто загружают в любой свободный регистр, если он нужен. Если не нужен, то и не занимают регистр.
хотелось поломать голову и познакомится с чем-нибудь новым

Заходите на http://codeforces.ru/problemset, там есть задачки интереснее и сложнее.
Вот тут подробнее про runtime cost и его причину. Там же предлагается решение, если thread_local используется как __thread:
If the programmer can be sure that no use of the variable in a non-defining TU needs to trigger dynamic initialization (either because the variable is statically initialized, or a use of the variable in the defining TU will be executed before any uses in another TU), they can avoid this overhead with the -fno-extern-tls-init option.
Аккуратнее с новым TLS в GCC — это не то же самое, что и старый __thread. Там есть runtime cost при каждом обращении, по крайней мере в текущей версии. Лучше использовать старую версию там, где возможно.
Время-то он конечно экономит, вот только парадокс в том, что сам по себе статический анализ замедляет сборку (а в случае PVS довольно сильно) и не все запускают его прям после каждой правки в коде :) Каждый должен сам для себя решить, если такое происходит постоянно, то может быть анализатор и стоит покупки.
Говорю же, ошибки, которые обнаруживаются статическим анализом — это очень маленькое подмножество возможных ошибок. Не важно, что конкретно ищет анализатор, даже идеального анализатора будет мало чтобы окупить его стоимость. Ни компилятор, ни анализатор не знают, что за алгоритм вы пишите и как он должен себя вести. А вот хорошие юнит-тесты очень даже помогают.
Могут, но не нужно забывать, что описываемый анализатор платный и его покупка должна быть целесообразна. В моем случае это не целесообразно. А возможность такой ошибки в своем коде я не отрицаю. Возможно судить обо всех статических анализаторах по clang неправильно, но тем не менее, он то бесплатный (и встроен в компилятор), и я могу его позволить как «дополнительный» уровень защиты от всякого рода ошибок, даже если он мне не помогает. Другое дело PVS Studio, даже если он нашел бы ошибку там, где не справился clang, много ли было бы таких случаев? Вряд ли. Потому что почти все ошибки связаны с логикой работы, а такие ошибки не поддаются статическому анализу.

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность