Мой однокурсник сдавал курсовую по алгоритмическим языкам программирования на Дельфи. Сама программа вроде была готова, и можно было приступать к пояснительной записке, но для очистки совести решил он сначала показать продукт преподавателю.
После беглого взгляда на работающую программку препод перешёл к просмотру кода, при этом приговаривая: «Ага... Понятно... Хорошо... Стоп! Ни фига не понятно!» Запустил, ввёл какие-то значения в поля формы и невозмутимо ушёл под звук вылетевшего виндового окошка: «Программа вызвала ошибку... Обратитесь к разработчику и отправьте отчёт такой-то матери».
Разработчик долго сидел и, держась за голову, медитировал над предложением обратиться к самому себе.
В школе две одноклассницы-подруги-блондинки ни с того ни с сего нарисовали на встроенном Бейсике «Корвета» за два дня до зачёта целую картину: солнышко, море, пальмы. Для меня это для стало бы задачей на неделю минимум: ну, точки определить, рассчитать, куда circle() пристроить. Решил подойти к художницам и спросить, как им это удалось.
Оказалось, проще некуда: сперва девчонки нарисовали картину на миллиметровке. Код состоял из сотен команд point(X,Y).
Звонит друг и просит помочь написать программу, которая пишет и считывает из COM-порта данные о состоянии весов. Программисты из нас обоих никакие, так как оба мы электронщики. Провозившись всю ночь и замучив Гугл, получили программу, работающую в одну сторону: читать умеет, писать нет. Код был проверен до каждой буквы и переписан до невероятных конструкций — ничего не помогало.
Чуть позже контора приняла на работу прогера. Он проверил — ошибки в коде не было, как и таймаута на ожидание ответа после записи в порт.
Сдавал у меня товарищ на первом курсе лабораторную по предмету «алгоритмические языки программирования». Всё бы хорошо, но его программа вылетала с ошибкой ровно через 17 секунд после запуска. Лабораторную он сдавал таким образом: подзывал преподавателя, запускал программу и начинал мысленный отсчёт: 17, 16, 15... За секунду до вылета программу товарищ закрывал: «Ну, что тут ещё смотреть! Впрочем, давайте ещё поглядим», — и цикл повторялся.
До 13 лет у меня вовсе не было своего компьютера. К высоким технологиям я приобщался у друзей. Да и у тех не всегда всё было ладно: у одного, например, вместо компьютера была приставка «Денди» в форме клавиатуры со встроенным Бейсиком.
Я думаю, многие были в подобной ситуации, но вряд ли многие испытали такое: 24-листовые тетрадки с бейсиковскими листингами, каждый раз вводимыми с нуля. Если что-то не работало, я находил ошибку, правил в тетрадке, через неделю или две повторял. Простенькие игры получались.
У подрастающего поколения есть Сore Quad и i7, «кризисы» и «прототипы». Зачем вымучивать что-то своё?
Бывший одноклассник, нынче студент Бауманки, поведал историю о том, как сдавал лабораторную на «сях».
Зовёт препода, просит посмотреть. Тот вбивает циферки и запускает. Прога выдаёт строчку, записанную отчасти для дебага и отчасти для прикола — выпасть она могла только в практически невозможном случае. Строчка была такой:
Сегодня в моей аудитории проходила пара информатики у перваков: Паскаль, блок-схемы на доске и тому подобное. Весь ужас заключался в том, что Паскаля не знал препод. Не, какие-то знания были, но их категорически не хватало для того, чтобы писать работающие программы. Всю пару я бегал от преподского компа к студенческим, и преподу, и студентам объясняя, как сделать так, чтобы 2/2 было равно единице, а не «division by zero».
Честно говоря, не помню, какая специальность у этих замечательных ребят, но очень хочется верить, что это не будущие программеры. Если бухгалтеры, тогда всё становится на свои места: их, видать, ещё в универах отучают от компов специально обученные преподы.
Прямо перед выходом из дома на него нападает жена, зажимает в угол и начинает расчёсывать бороду, приговаривая: «Терпи, программист, тимлидом станешь!»
Мы — двое будущих инженеров на практике. Они — двое будущих айтишников, тоже на практике. Судьба свела нас в одном КБ (на редкость вменяемом, не совкового типа), занимающемся изготовлением и разработкой спортивного инвентаря, в том числе мелкокалиберных винтовок для спортивной стендовой стрельбы и биатлона.
Дали задание: совместными усилиями написать программу, описывающую поведение пули определённой массы и плотности с определённым ускорением при попадании в мишень из определённого материала. Причём с графикой — хоть и минималистичной, без всяких излишеств. Программа должна была представлять из себя «выполнятор» для трёх формул, две из которых довольно длинные (надо учесть много переменных, например, возможное влияние ветра).
В процессе изготовления программы наши айтишники то ли в шутку, то ли всерьёз поссорились друг с другом, и в итоге один из них решил бросить другого и писать самостоятельно свою прогу. Волей-неволей нам тоже пришлось разделиться. На следующий день нам показали результаты.
Готовая версия № 1: пуля врезается в металлическую мишень, рикошетит на 180 градусов, устремляется в дуло винтовки, которое для простоты сделано цельным, без канала ствола (а зачем, если объект не вылетает из него, а просто возникает из ниоткуда, имея определённые параметры), точно так же отскакивает от дула, врезается в мишень, и так N раз. Интересно, что значения потенциальной и кинетической энергии одновременно равнялись минус одному джоулю.
Готовая версия № 2: пуля врезается в мишень, после чего та, весело вращаясь, вырывается из «земли» и летит куда-то вдаль, толкаемая пулей (которая даже вращалась вокруг своей оси, как и должна в реальности). Все значения, определявшие прочность и твёрдость мишени, были тоже равны минус единицам, а масса самой мишени вообще не прописывалась.
Мне интересно, что бы они написали, если бы работали вдвоём?