Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Разные вопросы > умение составлять алгоритм |
Автор: insy 6.10.2009, 08:59 |
youri, молодец... "Внимание: данный раздел предназначен для решения сложных, нестандартных задач." У нас как раз такая ![]() |
Автор: Ипатьев 6.10.2009, 09:22 |
Спасибо за сохраненные сообщения. Тема, действительно, сложная, и не все понимают смысл обсуждаемого вопроса. Может быть, даже имело бы смысл создать топик где-нибудь подальше от местной юрисдикции. Не соглашусь. Думать без теоретической или хотя бы практической базы, как мы часто видим на форуме, бывает опасно. Возникают самые фантастическе идеи по поводу оптимизации или путей решения того или иного вопроса ![]() Все составляющие важны. В том числе и теоретическая подготовка. Дело не в чужом коде. Речь-то как раз о своем. Мне кажется, мы смешали умение составить алгоритм вообще и умение его формализовать, изложить в строгой форме. Если второе умение не слишком важно, программист "понимает, но сказать не может", то без первого он просто шагу не ступит! Совсем без алгоритма невозможно. Он как воздух - если мы его не замечаем, то это не значит, что его нет. Даже когда картошку чистим. Поэтому он часто лежит просто в голове в неявной форме. Все ОК, можно работать. Но здесь есть засада. - если алгоритм неправильный и нужно в нем разобраться, сделать, как бы, "трассировку" в уме; - или если нужно им поделиться, как это происходит на форуме, с окружающими то умение формулировать свои мысли выходит на первый план. Или взять вопрос, с которого все началось. Яркая иллюстрация: нет алгоритма - нет идей, как приступать к решению задачи. А если задача чуть посложнее? Взаимодействие различных систем документооборота или, скажем, бронирования каких-нибудь туров? Тут тот, кто не нарисовал сначала на бумажке, осложнил себе задачу в разы. |
Автор: insy 6.10.2009, 09:53 |
Ипатьев, так получилось, что обсуждаем тему максимум в четвером, и у меня просьба,- ты не мог бы говорить про меня напрямую, а не вуалировать обращение под "не все понимают смысл обсуждаемого вопроса." ... Ты же именно меня имел ввиду, или я ошибаюсь? |
Автор: Kallisto 6.10.2009, 10:23 | ||
Ипатьев.
Мне кажется наоборот, нет идей - нет алгоритма. Алгоритм сам по себе это важно - тут вопросов нет, другой вопрос что алгоритм строиться уже на знаниях, а не наоборот. я лично не представляю как бы я мог составить алгоритм работы робота по сбору машин... В общих чертах может быть и угадал, но детально расписать я думаю никто из нас не сможет, а почему? А потому что знаний нет. Вот как в нашем случае с insy. Человек даже не знал про LIMIT, как бы он смог составить алгоритм? Да, он бы составил нечто, может быть, и это нечто было медленное тупое карыто с невероятным алгоритмом (insy без обид - передаю атмосферу) А знания нужно добывать самому или с помощью (советами) другого. Причем во втором случае все происходит в разы быстрее. Можно твердить, что если человек что-то хочет узнать - он сам учится и тд. Да, это клево, но школу оканчивали все. По этому я не вижу проблемы подсказывать знания, даже и часть алгоритма. Если человек в этом заинтересован развиваться как программист то полученные знания он сможет использовать дальше грамотно. А если нет, то все ваши попытки заставить человека подумать ни к чему не приведут за исключением некоторых случаев. |
Автор: youri 6.10.2009, 10:30 | ||||
это как раз та причина, по которой я не могу это прокомментировать (я же составил алгоритм той задачи?). Алгоритмы (в моем, более узком понимании этого слова) я могу составлять и мне это умение не нужно. Либо я не понимаю этого, потому что оно у меня уже есть
а вот если обобщать слово алгоритм к взаимодействию компонентов и т.д. (т.е. такой "высокоуровневый" алгоритм). То тут у меня проблемы. Я понимаю, периодически, что мне не помешал бы упрощенный (более абстрактный) взгляд на код. А смотря на код я грузну в деталях и мне сложно принимать какие-либо более высокоуровневые решения. Но этот skill я пока еще не прокачал не льсти себе |
Автор: insy 6.10.2009, 10:41 | ||
А причем тут лесть? Просто неужели трудно сказать, что ты insy не понимаешь смысл обсуждаемого вопроса... а не говорить, что возможно кто-то тут... |
Автор: youri 6.10.2009, 10:43 | ||||||
но ведь в школе были люди, который учились в педагогическом вузе. А тут прийдет неизвестно кто, ляпнет неизветсно что. А так как ты вообще ничего в этом не смыслишь, то не можешь критически отнестись к ответу. Причем отвечать на самые простые вопросы самые толковые люди вряд ли будут. Форум - это место для обмена опытом, а не для обучения. А если человек действительно хочет что-то узнать, он это действительно узнает. Такие уж люди ;)
так вот эти исключительные случаи и важны. Думать самому всегда полезнее, чем копи-пастить готовое решение (не думать). Такой человек быстрее чего-то добьется. Значит сам сможет помогать людям на форуме
при том, что я тоже либо не понимал, либо не понимаю. И таких непонимающих может целый форум O_o (естественно, я немного преувеличиваю) |
Автор: insy 6.10.2009, 10:58 |
youri, согласен. Предлагаю привести наш спор к апогею! Спасибо всем кто мне помог, каждый в чем-то своем! Дискуссия получилась очень даже занимательной на мой взгляд! В следующий раз буду подходить более осмысленно, и пробовать более подробно раскрыть мысль и суть вопроса! Благодарю за светлые мысли... youri, Kallisto, Ипатьев, |
Автор: Kallisto 6.10.2009, 11:05 | ||||
Авторитетность преподавателя вы не оцениваете. Оценивает директор, ваши родители, тем не менее не вы. Уже после школы, когда приходит разум при выборе учебного заведения вы уже оцениваете его по аккредитации, а полученные знания в вузе проверяете на практике. Здесь очень похожая ситуация, есть человек, который дает совет. Ваше право доверять или нет, но у вас есть возможность всегда проверить его слова на практике, разобрать детальнее, верно ли он говорит или нет - выбирать кого слушать - это ваше право. Уже в вузе дают понять, что он предназначен для тех кто хочет учится. Вас никто не заставляет, вам дают материал и ваше дело учите или нет, в лучшем случае - вы грамотный человек, в другом вас забирают в армию. Здесь аналогично - вам дают информацию, ваше право копнуть в заданном направлении, изучить более подробнее, либо тупо сделать копипаст чтобы получилось нечто, в любом случае дело сугубо индивидуальное. Повторюсь, заставлять кого-то дума априорно гиблое дело, если нет желания - заставлять себе дороже. Дурака учить - себя не уважать.
Вы говорите очевидные вещи, всем понятно что лучше думать и с этим никто не спорит. Но помогать думать и заставлять думать - это совершенно разные вещи. Дать наводку и корректировать его - это хорошо. Но заставлять думать и требовать чтобы человек сам все делал - уже простите не очень. имхо |
Автор: youri 6.10.2009, 11:19 |
уже в этой теме оффтоп начинается. Можно дать еще http://phpclub.ru/faq/WhyForum и закончить на этом обсуждение "как отвечать на вопросы" |
Автор: Kallisto 6.10.2009, 12:40 |
Мне кажется по указанной выше ссылке речь идет для тех кто создает тему, а у нас изначально была другая ситуация. anyway пошел оффтоп |
Автор: Ипатьев 7.10.2009, 12:00 |
Речь о практичекой работе по созданию сайтов? Скажем, пресловутый пузырек не нужен в работе, когда есть sort(), а что у него там внутри - неважно? Вы это имеете в виду? |
Автор: youri 7.10.2009, 12:19 | ||
да
нет. Я мог бы для каждой функции/метода предварительно составлять алгоритм. Но это ничего не даст. Если же говорить о более сложных вещах, то да, предполагаю, что их нужно как-то предварительно "продумывать" на листочке или еще как-нибудь, но это уже не столько алгоритм, а какие-то uml диаграммы. Ну разве что алгоритм в очень широком смысле этого слова |
Автор: unicuum 8.10.2009, 12:49 | ||
Вообще то нет, такие вещи традиционно обсуждают во флейме, так как он единственный где модеры за это не бьют по башке. Да и сами участники там более терпимые и не начинают меряться письками направо и налево. По многолетней традиции такие обсуждения называются умными темами. Вот произвёл очередной http://forum.vingrad.ru/forum/topic-275848.html. ![]() |
Автор: Ипатьев 8.10.2009, 12:52 |
Вы составляете ![]() Вы всегда составляете алгоритм. Просто вы его не формализуете. Он как тот суслик. Я тоже не вижу - а он есть. Очень показательный топик сейчас в профильном форуме. Как раз про алгоритмы. 10 разных букв в тексте найти - 10 раз перебрать текст посимвольно. Это как раз тот самый, "невидимый" алгоритм. Причем если бы человек дал себе труд сформулировать его, формализовать - наверняка задумался бы об оптимальности. ну, и я все написал выше: во-первых, мы путаем сам алгоритм и его формальную форму во-вторых, "интуитивное" иногда не помогает, и надо уметь, все-таки, формализовать а то часто бывают на форуме вопросы "хочу!!!! а сам не знаю - чего, и толком рассказать не могу" |
Автор: youri 8.10.2009, 15:02 | ||
возможно
а можно ссылку? |
Автор: Ипатьев 8.10.2009, 15:26 |
Так она ж в самом верху, про оптимизацию unset. В общих вопросах. Там кривой именно алгоритм. Два раза пробегаем строку, один - чтобы найти открывающие теги, а второй - закрывающие. http://forum.vingrad.ru/forum/topic-275825.html Но это просто как пример. Того, что даже в такой обыденной задаче, как парсинг бб-кодов уже без нормального алгоритма не обойтись. |
Автор: Simpliest 8.10.2009, 21:03 | ||
Это одно и тоже. Если ты человек - ты должен думать... Если ты не хочешь быть человеком - это уже другой вопрос. Алгоритм - это последовательность действий. Степень детализации неважна. Да в некоторых случаях и избыточна. В общем я согласен с Ипатьевым. Без умения составлять алгоритмы в программировании никуда... В противном случае мы будем наблюдать толпу людей с гуманитарным складом ума, занимающихся переводом! с человеческого языка на машинный. А разница банальна чтобы суметь составить алгоритм ты должен разобраться в проблемме. А чтобы перевести это не обязательно. Результат соответственно разный (примечательные примеры можете посмотреть в результатах переводов машинных или выполненных абы-кем и переводы профессионалов) |
Автор: youri 8.10.2009, 23:03 | ||||
а почему, кстати, кривой. Не оптимальный - да UPD: записан разве что немного по-индусски
UPD2: http://forum.vingrad.ru/index.php?showtopic=275848&view=findpost&p=1989189 UPD3: http://forum.vingrad.ru/index.php?showtopic=275848&view=findpost&p=1989233 ![]() |
Автор: solenko 3.11.2009, 10:51 |
http://habrahabr.ru/blogs/webdev/74124/ |