А что тяжелее слон или кит?

Помню, давно-давно, когда я только начинал программировать, я думал, а вот интересно, что написать сложнее всего или что сложнее всего выучить. В общем, детство прошло, а глупые вопросы остались ;)

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

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

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

Далее идут задачи, которые я считаю сложными. Думаю, люди с другим опытом считают другие задачи сложными.

1. Работа с hardware.

Софт, исходя из своего названия. Он гораздо более мягкий и всегда есть какие-то обходные пути решить задачу. Когда вы работаете с hardware, то обходных путей (как мне показалось) мало.

Плюс, при работе с hardware очень тщательно нужно следить за разными таймаутами и таймингом.

2. Закрытые библиотеки неизвестных фирм

Проблема примерно такая же, как с hardware. Обычно в стандартных библиотеках все хорошо отлажено, но, когда нужно работать с глючной закрытой библиотекой – это просто жуть. Из мягкой разработки, она становился твердой.

3. Сложные математические разработки

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

Вот, пожалуй, это я и считаю сложными задачами.

Хотелось бы услышать ваше мнение, что для вас сложная/тяжелая задача?

48 Responses to “А что тяжелее слон или кит?”

  1. Michael says:

    «естественные языки» :)
    остальное из категории – «глаза боятся – руки делают». главное ввязаться
    хотя математика иногда становится труднопреодолимым припятсятвием… ибо при учёбе уделял ей слишком мало внимания :(

    • Victor Ronin says:

      Да, как я писал – нет нерешаемых задач. Но все таки есть таки сложные задачи.

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

  2. Виктор says:

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

    • Victor Ronin says:

      Забавно. Согласен, что если задачу никто не делал, то она однозначно сложная. Хотя, если честно мне даже нравиться такая сложность.

      А вот оптимальность… у… это действительно непросто.

      • D.Mikhantiev says:

        По-моему, аксиома “если задачу никто не делал, то она однозначно сложная” неверна изначально. Не буду весь “баян” рассказывать, только вывод:
        - Кто это был?!
        - О! Это был сам Неуловимый Джо!
        - А почему он неуловимый?
        - А кому он нафиг нужен?!

        С неделанной задачей может быть таже ситуация. :-)

        • Виктор says:

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

  3. COTOHA says:

    мне страшно становится, когда я думаю о том, чтобы такого сделать, что ещё никто не делал… страшно от того, что вроде как ВСЁ УЖЕ СДЕЛАНО :) единственно что успокаивает это бесконечность слова всё…

    • Victor Ronin says:

      То есть страшно, не от самой задачи, а от отсутствия задач, которых еще никто не делал?
      Это интересно.

  4. Yuri says:

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

    ИМХО – сложности бывают двух видов:
    - Когда тебе нужно накачать пресс или выучить английский – это или больно или ты просто устал, но в принципе ситуация на 100% в твоих руках
    - И когда тебе нужно работать с людьми и при этом не плыть по течению а добиваться результатов – тут сложности другого плана и далеко не всегда ты король ситуации

    А вобще название поста уже говорит о том что для разных людей понятие сложного сильно отличаются и ни черта не понятно кто победит в конце дискуссии – слон или кит :)

    • Victor Ronin says:

      Та да, сложности для каждого свои. Поэтому я это и оставил открытым вопросом.

      Да, признавать свои ошибки сложно. Особенно сложно, если они находятся в базе знаний.

      Других критиковать, по крайней мере мне, обычно проще, кроме случая когда есть какие-то вне рабочие отношения.

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

    • Anonymous says:

      Особенно сложно кого-то п…, если он сделал такие же ошибки, которые ты сам когда-то делал :)

      • Keks says:

        А втройне, как мне кажется, сложно, п…. того, кто качал пресс осваивал алфавит, пока ты делал ошибки и учил английский. :)

        • Victor Ronin says:

          В общем, единогласно принято, что для того, чтобы п… было не сложно. Нужно нанимать специального человека одетого в черную кожу и с кнутом в руках. И он будет всего помогать п…. остальных ;) )

  5. Реально, что в программировании, что в жизни сложные ситуации возникают в основном из-за отсутсвия возможностей контроля чего-либо.

    Вот если взять приведенные типы сложных ситуации:
    1. Hardware, ничего там сложного в программировании нет. Просто там все подругому, и местами программировать _ПРОЩЕ_. Просто если инженер где-то напахал в принципиальной схеме устройства, можно промучится 2 недели прежде чем поймешь, что косяк-то не твой. А поменять схему в 1000 изделий – это ой.

    Или просто имеешь некий феномен, и не знаешь его происхождения (бага, помеха, фаза луны, провода не пропаяны). Как с этой ситуацией бороться – непонятно.

    2. Ну тут все ясно, закрытые исходники. Невозможность контроля.

    3. Вычисления это своя облать. Реально написать программу по спеке расчетов, не такая уж большая проблема, особенно если у тебя есть нормальная библиотека для мат расчетов (см. пункт 2). Опять же основная проблема отсутсвие контроля над выч. библиотекой.

    Так что не боги горшки обжигают. :-) ))

    • Victor Ronin says:

      Да, пожалуй сложными ситуации мы чувствуем именно тогда мы их не можем контролировать.

    • Borisov Pavel says:

      Дополню, сложная ситуация либо отсутствие контроля, либо банальное не понимание. Одним словом – грабли.

      Сложная задача – это когда бьёшся над решением 2 недели и совершенно не зависимо от того открыты исходники или закрыты.

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

  6. jaguar says:

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

    • Victor Ronin says:

      Интересно. То есть сложность состоит не в задаче, а в нужной/важной задачи.

      • jaguar says:

        Ага. Даже если это таск от работодателя, то я еще сильно подумаю, а стоит ли овчинка выделки. Последнее время мне даже удается убеждать начальство, что таск не выгодный :)

        • Victor Ronin says:

          Это отличная привычка. Кстати, очень многим людям пытался объяснить, что если я сказал выкопать яму 20 на 30 метров, то все равно надо перед капание подумать, на фига такая яма нужна, и не опечатался ли я с размерами. Так как тупое выполнение задач “в лоб” бывает хуже, чем их не выполнение вообще.

  7. GeF says:

    Сложно – это когда не знаешь как делать, а когда изучишь, разберешься, попробуешь – ничего сложного уже нет, тоесть сложно бывает только первый раз ;)

    • Victor Ronin says:

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

  8. Keks says:

    Вспоминается старый анекдот “Что главное в танке?”. :) Так вот, я вам доложу, что то самое – в жизни еще не главное :)

    1. Всякие математические штуки – это да, поддерживаю полностью. Особенно учитывая, что в универе математику я не просто “сдал и забыл”, а “кое как отмучал и забыл”.

    2. Для меня достаточно сложно делать всякие мелкие монотонные фиксы. Когда к программе добираются сейлзы, и начинается наведение марафета: тут кнопочку так, тут кнопочку сяк, тут картинку запердолить, а тут надо шоб жужжало и мигало. Сложно с точки зрения мотивации.

    3. Но сложнее всего, опять таки, для меня – это действительно работать с людьми и добиваться результата в обозначенные сроки и с обозначенным бюджетом.

    • Victor Ronin says:

      Ну, третий пункт безусловно сложный. Забавно, что пост я начинал с чисто технических сложностей. Но он быстро разросся, на сложности в IT.

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

      • jaguar says:

        я знаю одну такую вещь. :) править чужой код. :)

        • jaguar says:

          ой. не туда комент пнул. :) Это относиится к
          Comment by Victor Ronin
          Reply to GeF
          2008-03-12 13:16:07

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

  9. Dmitry says:

    Тема очень интересная. Я программирую FW для GPS приёмников уже больше 3х лет. Когда то к начале работы я действительно считал, что работа с железом – это сложно. Со временем я даже не заметил как я перестал так считать.
    1. Но тем не менне, сейчас для меня отладка приложения под RTOS системой не простая задача. Хуже всего для меня сейчас – это когда ты написал, отладил на PC, скомпилил FW, загрузил а оно виснит, причем не сразу, да ещё на процессоре, к которому программно затруднён доступ для отладки. Это для меня страшно. Проходится отлаживать мозгами.
    2. Соглашусь с вами.
    3. Ну тут этого добра в моей области навалом. Сам программировал и продолжаю программировать такие алгоритмы. Самое страшное это не то, что с первого раза без ошибок не получается. Самое страшно, когда начинают выползать арифметические проблемы. Нехватка разрядности, например, когда все на каком-то не понятном проце работает и прочее. Ещё страшнее когда просят оптимизировать производительность, не жертвуя performance’ом. Да ещё заставляют влезать в ограничения по памяти. Это для меня страшно. “У вас есть 50000 байт вот в них пожалуйства уместите свой код, только чтобы быстродействие было на таком-то уровне и результат не отличался от текущего больше чем на 5%”. Это сложно.

    4. Сложно, когда просят дебажить многопроцессорную систему с RTOS когда виснет больше одного проца. Это капец.

    З.Ы. Читаю вас регулярно, очень интересно. А где вы такой плагин взяли для комментов? Тоже очень хочется на свой блог. Спсибо

    • Victor Ronin says:

      А что такое “FW’?

      У меня правда не было таких жестоких штук, как ограничения 50k кода, но было куча ситуаций , когда отладка вообще невозможно.

      Так, что пишется все в логи, а потом долгими зимними вечерами, курятся эти логи в раздумии, какого черта оно работает так, а не иначе.

      • Dmitry says:

        FW – firmware, то то, что крутится во всех железках под управлением RTOS. Ну когда отлаживаются быстро текущие процессы или математика, то так и делаем, но долгих зимних вечеров, правда, нет на это. А что это за плагин такой для комментов?

        • Victor Ronin says:

          А понял. Я просто сокращение от Firmware не знал.

          Плагин взят отсюда: http://meidell.dk/threadedcomments/
          И слегка доточен (цветовая раскраска изменена, поле ReplyTo добавлено) и какие-то еще мелочи.

          • GeF says:

            Хорошо бы было если еще это ReplyTo в письме уведомлении писалось, чтоб знать не только кто написал комент а и еще кому был адресован.

  10. Dmitry says:

    Спасибо. Этот плагин пока самое лучшее что я видел.

    • Victor Ronin says:

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

  11. Лично для меня все новое кажется сложным как только впервые с этим сталкиваешся – будь то двиг или новая работа)

  12. Нина says:

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

  13. Эдуард says:

    Есть и простые задачи не менее интересные

  14. Антон says:

    Переход с Дельфи на Пролог. Чуть крышу не сорвало.
    Совершенно разные способы мышления.

    • Victor Ronin says:

      Какой ужас…. Надеюсь, с Пролога удалось куда-то уйти… Я сам, чуть с ума не сошел, когда с ним разбирался.

  15. На самом деле как мне кажется, очень тяжелых вещей для изучения нет. Есть вещи которые изучать в тягость и есть которые изучать нравится. Вот отсюда и формируются сложности

  16. Сергей says:

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

  17. paceholder says:

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

    • Victor Ronin says:

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

Leave a Reply

Please enter word "captcha":