TopCoder(R) Single Round Match 504.5 is scheduled for Tuesday, May 17, 2011 at 11:00 UTC -4 hours.
Please be sure to check here for the start time in your time zone:
http://www.timeanddate.com/worldclock/fixedtime.html?iso=20110517T11&p1=179
* Registration will begin at 8:00 and will end at 10:55 UTC -4 hours
* Allowable programming languages are Java, C++, Microsoft(R) Visual
C#(R) .NET, and Microsoft Visual Basic(R) .NET
* TopCoder Administrators will be available in the Admin Lobby Room to answer questions
* For more details click here:
http://www.topcoder.com/tc?module=MatchDetails&rd=14514









Популярный программист-блоггер Майк Тейлор в одном из
Сегодня я в основном склеиваю вместе библиотеки. Так делаете и вы, если работаете в индустрии разработки ПО. Это выглядит не совсем логично, вы так не считаете? Мы проходили курсы параллельного программирования, изучали референционно прозрачные функциональные языки, мучились с Lisp, Prolog и APL, корпели над теорией операционных систем, инвариантами и формальными предусловиями. И что из этого мы используем? Огромная часть работы – это устранение противоречий между большими непрозрачными кусками библиотечного кода, которые почему-то не хотят вместе делать то, что предполагается моей программе. Ну, я не знаю. К примеру, перевод USMARC-записи в Dublin Core. Это программирование? Да? Конечно, всё это требует вкуса, проницательности и опыта, чтобы быть качественно реализованным, но совсем не требует какого-то блеска идей и не прибавляет особых эмоций. Это не то, о чём мы мечтали в 14 лет, или для чего начинали учиться в 18. Это не будоражит кровь. Это не созидание.
С Д. Кнутом, я полагаю, сложно не согласиться. Хочется делать вещи, а не склеивать их вместе. Когда меня спрашивают о том, что мне нравится в работе программиста, я отвечаю – это захватывает: начать с ничего и в процессе что-то создать. Для меня это и есть суть программирования, и весьма печально, что она сейчас перестаёт этим быть.
Но Фаза 2 – это не ядро, не идея нашей работы. Весь смысл в Фазе 1. И даже если вторая фаза отнимает больше времени и усилий, то это всего лишь тщательная проверка всех деталей, необходимая для того, чтобы выпустить наш прекрасный код за пределы компьютера. А проблема современного программирования заключается в том, что всё оно, собственно, и заключается во второй фазе. Повсеместное наличие почти-подходящих-но-не-совсем библиотек и фреймворков, делающих-почти-всё-за-вас-кроме-того-что-они-делать-не могут фактически уничтожают всю радость от Фазы 1, но при этом оставляют нас один на один с возможно ещё более тяжелой и куда более нудной второй фазой. Вместо проектирования прекрасных структур данных и элегантных алгоритмов мы ищем класс EnterpriseFactoryBeanMaker в 3,456 страничном Сборнике Тупых Ужасных Классов, потому что мы не можем вспомнить какой из аргументов createEnterpriseBeanBuilderFactory() метода делает статичный чисто виртуальный паблик деструктор окончательным завершающим элементом декора интерфейса.




