История
Версия для печати

Архив форума

Илья Тетерин 02.04.2004 19:19
Из каких соображений первые должны интересоваться вторыми?

Собственные соображения: большинство задач ACM акцентированы на быстрое создание высокопроизводительных алгоритмов. Первая часть - способность к быстрой реализации алгоритмов, несомненно, очень приятна. А вот вторая...

КН-3 в этом семестре имеют счастье насладиться курсами по java, где, кроме всего прочего, есть вопросы типа: "как называется упорядочивание элементов по возрастанию?". Угадайте, какой ответ правильный? Правильно, сортировка пузырьком! 8) Нет, это не "наезд" на java или даже на составителей программы обучения из cisco. По-моему, ситуация показательна: в большинстве программ (из реальной жизни) нет никакой необходимости применять что-то более сложное, чем сортировка пузырьком. Так стоит ли удивляться, что работодателей не особо возбуждает какой-то там ACM?
Александр Клепинин 03.04.2004 13:07
Цитата:
КН-3 в этом семестре имеют счастье насладиться курсами по java, где, кроме всего прочего, есть вопросы типа: "как называется упорядочивание элементов по возрастанию?". Угадайте, какой ответ правильный? Правильно, сортировка пузырьком! Нет, это не "наезд" на java или даже на составителей программы обучения из cisco. По-моему, ситуация показательна: в большинстве программ (из реальной жизни) нет никакой необходимости применять что-то более сложное, чем сортировка пузырьком. Так стоит ли удивляться, что работодателей не особо возбуждает какой-то там ACM?
Глупости! Просто есть две условные категории программистов, в зависимости от сложности решаемых задач:
1. если работа программиста состоит лишь в рисовании окошек, в создании каких-то форм ввода, написании простеньких обработчиков данных (например, именно к этому сводится работа программиста, обслуживающего какую-нибудь бухгалтерию), то такому программисту действительно просто не нужно знать о быстрых и эффективных алгоритмах (они ему просто не требуются). И поскольку таких простых задач достаточно много, то и в обучении делается акцент на то, чтобы научить человека лишь каким-то базовым вещам (объяснить сортировку пузырьком ведь проще, чем тот же qsort или хиповую сортировку)
2. как только задача становится чуть более крупной (например, разработка самостоятельного крупного программного продукта), тут же возникают проблемы связанные с оптимизацией, со скоростью работы и т.д. И вот тут то и пригождаетяс опыт, полученный в рамках олмпиад ACM.

Возможно, кто-то может высказать и иное мнение, но
я на личном опыте убедился, что человек без опыта олимпиад проигрывает в скорости принятия решений по выбору алгоритма решения задачи, проигрывает по эффективности выбираемых структур, проигрывает по качеству кода. Так что для себя участие в олимпиадах всегда расценивал лишь как прекрасную возможность обрести дополнительный и по-своему уникальный опыт в области программирования. И это, кстати, неплохая мотивация.
Илья Тетерин 03.04.2004 14:38
> Глупости! Просто есть две условные категории программистов, в зависимости от сложности решаемых задач

Не нравится мне такая одномерная характеристика. Где гарантия, что матерый считатель чисел Фибоначчи сможет создать хотя бы простенький пользовательский интерфейс (не говоря уже о профессиональном)? По-моему, правильнее считать, что есть разные области деятельности, и разный уровень способностей в каждой из них (частично зависимые друг от друга, естественно).

Соответственно, брать ACM-щика на работу веб-дизайнером, или 1с-овцем, или, или (тут длинный список) - это все равно что выбирать Г. Каспарова в президенты. И проблема-то в том, что в длинном списке - практически все специалисты-компьютерщики, которые востребованы :)

> И поскольку таких простых задач достаточно много, то и в обучении делается акцент на то, чтобы научить человека лишь каким-то базовым вещам (объяснить сортировку пузырьком ведь проще, чем тот же qsort или хиповую сортировку)

Можете все-таки прочесть курс по java с cisco.netacad.net, там все однозначно:
Q: "как называется упорядочивание по возрастанию??"
A: "bubble sort!!"

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

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

И тут мне очень удачно попался под руку timus.ru - прекрасный пример того, что будет, если ACM-щику доверить крупный проект :wink: Конечно, я видел и более глючные движки сайтов, но их делали школьники...А все потому, что в этом проекте не надо сортировать кучей. И кусортом не надо.
Илья Гофман 03.04.2004 14:49
нельзя не заступиться за Павла Атнашева сотоварищи..
как я понял речь идет об ACM.timus.ru
или я чего-то не понимаю, или их движок совершенно прекрасный, но просто некоторые задачи имеют неправильные тесты.
а если речь о форуме, который не работал полгода и о рейтинге авторов, который до сих пор не работает - то это явно нехватка времени а не невозможность что-то сделать. работало ведь до ремонта.
адекватным дщоказательством является существование портала www.timus.ru, который по-видимому, создавался теми же людьми(если нет - поправьте) и который прекрасно работает и оч популярен.

и еще. ты этой темой чего добиться хочешь? вывода, что АСМ вреден для программиста? ну так не занимайся им - нам же конкуренции меньше:))
P.S. допускаю, что чего-то не понял - читал быстро, но тогда выражай мысли ясней:)))
Сандро 03.04.2004 15:10
Опять про того зануду со второго курса, которого я уже цитировал в теме "Кто виноват, и что делать". Он мне сказал, что АСМ не имеет ничего общего с реальной работой, т.к. в АСМе важно умение знать наизусть спинным мозгом не менее десятка стандартных алгоритмов, а в жизни они никому не нужны, т.к. даже qsort - стандартная процедура. Ему всегда не хватало именно этого, так как умения разрабатывать свои алгоритмы ему не занимать(классе в 9 на школьной олимпиаде он, зная только пузырек, придумал свой метод сортировки-смесь квиксорта и слияния, который работал медленнее и того, и другого, но за N*log(N) !) Он сейчас учится и работает в компании по разработке ПО, а в свободное время пишет парсеры, кодеки, архиваторы и всякое прочее, в чем я ему уступаю в десятки раз. Однако в АСМе он сейчас никто, и не умеет даже компоненты связности графа искать. И прекрасно живет без этого.
Илья Тетерин 03.04.2004 16:32
Цитата:
как я понял речь идет об ACM.timus.ru
или я чего-то не понимаю, или их движок совершенно прекрасный, но просто некоторые задачи имеют неправильные тесты.
Нет, речь идет о веб-приложениях www.timus.ru. Например, о милых грабельках с реализацией обработки гиперссылок в чате, из-за которой без ясной диагностики гиперссылки на фотографии коцаются на 8 символов справа, если их передавать в виде "http://", а не в виде "www...". По этим граблям люди уже не меньше трех месяцев бегают.

Еще есть забавный как в постановке, так и в реализации алгоритм "защиты от капса", который по задумке создателя должен защитить от любителей писать большими буквами (а реально защищает только от желающих написать "УрГУ" ит.п. - он их каверкает). Еще там красиво реализована "защита от мата"- после того, как в тексте встертится слово, посчитанное неприличным, сообщение, адресованное в приват, очень часто попадает на обозрение всей комнате (потому что алгоритм после вывода сообщения "найдено нехорошее слово" забывает заполнить поле "получатель" формы).

В общем, надо этим популярным порталом попользоваться, чтобы понять, что он из себя представляет.
Цитата:
вывода, что АСМ вреден для программиста? ну так не занимайся им - нам же конкуренции меньше:))
Неа, я все жду, что кто-нибудь расскажет про то, что Мисс УрГУ-2004 сохнет по ACM-щикам и все такое прочее. :lol:
Павел 03.04.2004 22:36
Быстрая реализация стандартных алгоритмов - абсолютно бесполезная штуковина в промышленном программировании.
За два года на работе мне пришлось всего:
- два раза реализовать поиск в ширину;
- один раз - QuickSort;
- один раз, реалировать итератор по дереву.
Все!

Чем же на самом деле хорош АСМ для работодателей? А вот чем.
Хороший асм-ер натаскан на:
1. быстрое вбивание кода с минимумом ошибок.
2. постоение своего кода таким образом, чтобы возможность появления ошибки была минимальной, а сама ошибка быстро находилась.
3. создание ПОНЯТНЫХ программ (чтобы их можно было легко отлаживать другому человеку и тд и тп)

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

В добавок ко всему есть еще один момент:
мозг человека, в отличии от машины, обладает способностями находить аналогии, и обобщать.
Чей-то мозг это умеет делать легко и непринужденно, а кому-то это просто не под силу...
Между тем, именно эти два качества крайне нужны в процессе придумывания алгоритмов решения задач в АСМ-е! А значит, у хорошего асм-ера они хорошо развиты. Ну а для промышленного программиста - эти качества, мягко говоря, далеко не лишни. Очень приятно взять на работу человека, который хоть и не умеет создавать ни серверы автоматизации, ни ActivX контролы, но обладает этими качествами: научить первому - дело одной недели, а вот как развить способность обобщения, например, вопрос крайне не тривиальный :)

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

В довесок ко всему, асм-ер как правило владеет базовыми возможностями языка на уровне "сделаю с закрытыми глазами"

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

Если работодатели еще не сообразили, что надо со всех ног бежать на чемпионаты АСМ - набирать себе кадры, то они просто не стоят того, чтобы у них работали такие замечательный люди :)))))
Вот IBM, к примеру, все правильно сообразили :)
Илья Тетерин 03.04.2004 23:16
Цитата:
Вот IBM, к примеру, все правильно сообразили :)
а что этот ваш ибеме сделал на рынке софта? DB2? Где оно сейчас? OS/2 ? А оно где? У меня плохие предчувствия по поводу ACM в связи с интересом этой талантливой в плане прос**ания гениальных задумок компании.
Илья Гофман 04.04.2004 15:19
DB2 наряду с OS/2 широко используются в узких кругах. не о них речь, а о том что это компания - голубой гигант, как ее называют - ведущая в мире в ИТ и компьбютерах.
кстати, именно IBM создала первый в мире квантовый компьютер и другие прорывные вещи, включая,в какой-то мере, сам PC.
и вообще не тот асм-ер кто знает даже все алгоритмы на графах, а тот кто может на их базе и сочетая их, создать что-то свое, новое, неповторимое, быстрое и понятное. а это уже недюждинные способности к программированию,а не к изучению какой-нибудь узкой области - научить Java или .NET или Oracle и даже написанию архиватора, можно, а вот научить писать СВОЮ ПРОГРАММУ - тяжело... (если, конечно, ее главным достоинством не является тот факт, что она написана на Java+Oracle)
Александр Мироненко 09.04.2004 10:27
А о чем вообще флейм-то? Покажите хоть одного АЦМера, который не смог найти работу. Не смогших совместить работу и учебу - сколько угодно, а вот безработных... Вчера зашел на мат-мех - все стены увешаны объявами о требующихся программистах. И даже на Ленина они висят. Лет так 6 назад такого не было, а сейчас то какие могут быть проблемы?
Илья Тетерин 09.04.2004 10:55
Александр Мироненко:
А о чем вообще флейм-то? Покажите хоть одного АЦМера, который не смог найти работу. Не смогших совместить работу и учебу - сколько угодно, а вот безработных... Вчера зашел на мат-мех - все стены увешаны объявами о требующихся программистах. И даже на Ленина они висят. Лет так 6 назад такого не было, а сейчас то какие могут быть проблемы?
работу всегда можно найти, при чем тут ацм? вон можно в ISP Олимпус пойти газоны благоустраивать перед офисом (а в промежутках между этим - сисадминить там же).
Александр Мироненко 09.04.2004 11:02
Я имел в виду работу программистом. Об этом ведь был стартовый вопрос?
Илья Тетерин 09.04.2004 11:25
Александр Мироненко:
Я имел в виду работу программистом. Об этом ведь был стартовый вопрос?
Программистом даже 5 лет назад мог устроиться работать любой человек старше 18 лет и владеющий более чем минус одним языком программирования. Сам начинал примерно так же, и несколько знакомых имеются.
Александр Мироненко 09.04.2004 14:25
Ну так в чем проблема?
Сандро 09.04.2004 19:48
Я встряну, хотя и не надо бы. Насколько я понял проблему: это не то, что трудно найти работу программистом, а то, дает ли преимущества в поиске работы участие в АСМ, а если дает, то какое. Первый пост этой темы весьма полно сформулировал проблему: Из каких соображений работодатели должны интересоваться АСМерами? Я тоже знаю кучу людей, которые работают программистами, неплохо зарабатывают, но в АСМе никогда не участвовали. И голова у них на месте. Хотя есть и примеры людей, которых "замечают" именно в связи с участием в соревнованиях.
Илья Гофман 09.04.2004 21:45
по-моим представлениям, неплохо зарабатывает начинается с $1000. такие деньги программисты в нашей стране зарабатывает очень и очень немногие. средняя зарплата IT-специалиста-программиста $500.
но не только поэтому я не хочу быть професстональным программистом, хотя на данный момент это единствеенное в чем я хоть как-то понимаю (в основном, веб-программирование).
просто это работа некоммуникабельная, сидячая, статичная. вот так. хотя если бы платили за интересную работу штуку убитых енотов или больше - почему нет...
Илья Тетерин 09.04.2004 23:27
Цитата:
по-моим представлениям, неплохо зарабатывает начинается с $1000.
а почему именно 1000? на пропитание и 500 много, а самолюбие никогда сытым не будет...
Александр Мироненко 10.04.2004 10:24
Илья Гофман:
просто это работа некоммуникабельная, сидячая, статичная. вот так.
Это вам, батенька, в менеджеры по продажам надо пойти (понародному - "впариватели"). Это коммуникабельная, разъездная, динамичная работа :D .
Илья Гофман 10.04.2004 13:31
ну не надо все в штыки и вкрайности. просто мое мнение