Pull to refresh

Comments 7

Вот я всегда, еще со школы, когда имел дело с/слышал об олимпиадах по информатике/программированию не мог понять одну вещь: кому в реальной практике приходилось хоть раз вычислять задания, подобные конкурсным? Нет, я согласен — аналитическое умение и математика в программировании только в плюс. Но и без них можно быть замечательным разработчиком любого уровня. Иначе надо идти в ученые, а не программисты (ученые ведь тоже кодят, но на каких-нибудь Scala).

Просто никогда не мог понять людей, занимающих первые места на олимпиадах по программированию, но не понимающих разницу между полиморфизмом и перегрузкой.
У меня такое ощущение, что подобные задачи вылезают всё время, причём там, где их не ждёшь. То неожиданно возникнет транспортная задача (хотя работа шла над совмещением изображений), то реализация кучи структур в ограниченной памяти, то оптимальным решением оказывается какая-то динамика…
А чтобы объяснить разницу между полиморфизмом и перегрузкой, нужно, хотя бы, знать, что под ними понимается в этом десятилетии. Для решения задач это знание, пожалуй, ни к чему — если термин встретится в умной книжке, то его смысл можно понять и по контексту, а где он может попасться ещё? Неужели в разговорах в курилке?
А вообще, Вы, конечно правы. Можно стать разработчиком любого уровня — при условии, что вы не будете браться за задачи, требующие для решения использования аналитики/математики на уровне, соответствующем олимпиадному. Сейчас и других задач много.
Что в вашем понимании соответствует олимпиадному и насколько часто они встречаются? Программирование термоядерного реактора? Так это ученые. Логистическая система или игры? Ну, да. Однако это процентов 20% от всех задач в обычной работе на мой взгляд. Тогда как знание ООП требуется всегда и постоянно.
Если бы это было 20%, то каждая пятая задача требовала бы олимпиадного подхода, и большинство программистов встречались бы с ними регулярно. Тогда бы и вопроса «бывают ли такие задачи» не возникало. И думаю, что 30-40 лет назад ситуация была примерно такой.
Мне кажется, что более близкая к реальности оценка — 3% (что примерно соответствует количеству задач, в которых Дейкстра разрешает предварительную оптимизацию — впрочем, множества этих задач совпадать не обязаны).
Но делать такие оценки и обобщения в мире, где программистами считаются все от пишущих коды для ПЛИС до работающих в HTML, довольно опасно. Наверное, ООП действительно нужно всегда, но оно может принимать такие формы, что его будет очень сложно узнать.
--редко, но бывает нужно

польза от таких задач — расширяют сознание.
Это примерно то же, что и сказать, что обучение школе в течении 11 лет закладывает какие-то там основы и дает знание на будущее, хотя все нужные знания можно получить в течении 3-4 лет без испорченной молодости и нервов. Расширение сознания само по себе бессмысленно, если только этим и заниматься.

«Теория — это когда все всё знают, но ничего не работает. Практика — когда никто ничего не знает, но всё работает.»
Sign up to leave a comment.