Мой первый рабочий день
Nov. 12th, 2009 05:11 pmПохихикав над очередным примером искусства программирования, я вспомнил свой первый рабочий день.
На работу брали по результатам собеседования по MS Access. За пару дней до собеседования мне вручили книгу, из которой я узнал не только, как пишется слово Access, но и такие полезные слова, как таблица, запрос, отчёт и многое другое.
Помню, полдня я провисел над SQL — вроде как и язык программирования, но я в упор не мог понять, как в нём объявляются переменные, как писать циклы и декларировать процедуры.
Собеседование я тем не менее прошёл.
Первым заданием мне было написать просмотрщик каталога продаваемых нашей фирмой моделей. Модели были сгруппированы по категориям, которые были разбиты по группам.
Как потом выяснилось, начальник (в данном контексте надо бы написать «Начальника!») представлял себе что-то типа выпадающего списка групп, после выбора группы появляется список категорий, далее список моделей, потом — характеристики модели.
Логику я понял, но к тому времени я ещё не знал о существовании выпадающих списков. Я вообще до тех пор только консольные программы писал, в лучшем случае с псевдографикой.
Поэтому я быстро сбацал программку, которая читала список групп и отрисовывала кнопки с их названиями (рассчитывая размер кнопок так, чтобы они все поместились на экране). Нажав на кнопку, вы запускали скрипт, который стирал все кнопки с группами и рисовал кнопки с категориями.
Когда я уже дописывал третью ступень, ко мне подошёл начальник. Помолчал. Сказал «ну отчего же, и так тоже можно».
Потом попросил меня перечитать избранные параграфы главы «интерфейс» и переделать.
На работу брали по результатам собеседования по MS Access. За пару дней до собеседования мне вручили книгу, из которой я узнал не только, как пишется слово Access, но и такие полезные слова, как таблица, запрос, отчёт и многое другое.
Помню, полдня я провисел над SQL — вроде как и язык программирования, но я в упор не мог понять, как в нём объявляются переменные, как писать циклы и декларировать процедуры.
Собеседование я тем не менее прошёл.
Первым заданием мне было написать просмотрщик каталога продаваемых нашей фирмой моделей. Модели были сгруппированы по категориям, которые были разбиты по группам.
Как потом выяснилось, начальник (в данном контексте надо бы написать «Начальника!») представлял себе что-то типа выпадающего списка групп, после выбора группы появляется список категорий, далее список моделей, потом — характеристики модели.
Логику я понял, но к тому времени я ещё не знал о существовании выпадающих списков. Я вообще до тех пор только консольные программы писал, в лучшем случае с псевдографикой.
Поэтому я быстро сбацал программку, которая читала список групп и отрисовывала кнопки с их названиями (рассчитывая размер кнопок так, чтобы они все поместились на экране). Нажав на кнопку, вы запускали скрипт, который стирал все кнопки с группами и рисовал кнопки с категориями.
Когда я уже дописывал третью ступень, ко мне подошёл начальник. Помолчал. Сказал «ну отчего же, и так тоже можно».
Потом попросил меня перечитать избранные параграфы главы «интерфейс» и переделать.
no subject
Date: 2009-11-12 04:22 pm (UTC)no subject
Date: 2009-11-13 07:36 am (UTC)no subject
Date: 2009-11-12 04:24 pm (UTC)no subject
Date: 2009-11-13 07:39 am (UTC)no subject
Date: 2009-11-13 08:01 am (UTC)Он несомненно работает, и я помню тот восторг, который я испытал, увидев его у Страуструпа.
Но если я встречу этот или подобный фрагмент в настоящем проекте, то я выругаюсь на автора и заменю его на что-нибудь вроде:
Потому что в подавляющем большинстве задач (в моей практике пока что 100%, но я допускаю) наплевать на то, что второй код работает на пару миллисекунд дольше первого. Зато, если нужно что-то поменять (ошибка, передумал и т.п.), то на модификации первого варианта программист потеряет час — а вот это, по моему опять же опыту, гораздо критичнее.
Это я в общем, а к тому конкретному коду — не знаю, лично мне не нравится использование в коде этих 1, 2, 3, 4. Я начинаю писать цикл, как только появляется второй элемент итерации. Опять же, плевать на скорость, я лучше лишний раз подчеркну, что операция одна и та же, что единственное изменение — это индекс. Вот такие мелочи, как мне кажется, и делают программу живой.
no subject
Date: 2009-11-13 08:52 am (UTC)Ну а макрос хорош нечего сказать, но проблема его в том что
1,как сказал Саша выше код не сопроваждаем, сейчас уже не учат С++ и уж тем более Си. молодняк что приходит не в состоянии читать и понимать простейший код, им подавай СиШарп ну или на крайний случай Жаву
2, да это красиво но не читаемо сразу влёт.
3. это нельзя дебагить :)
no subject
Date: 2009-11-13 09:21 am (UTC)no subject
Date: 2009-11-17 08:21 am (UTC)no subject
Date: 2009-11-13 09:50 am (UTC)Зеленый, я никогда не устану восхищённо взирать на то, что порой генерит твой моск :)
no subject
Date: 2009-11-17 08:17 am (UTC)лизард?
no subject
Date: 2009-11-17 08:28 am (UTC)извращениярешения!no subject
Date: 2009-11-17 09:09 am (UTC)вот у нас тут принцип, исходящий сверху: главное шоб заработало и в срок..а потом как идиот сидишь и трахаешься с этими произведениями бистро-бистро творчества %~~