Первый закон термодинамики в чистом виде. И это крутой подход! Я чуточку представляю, как работает бухгалтерия — и в ее сторону дорога кодерских приключений заводила. Полагаю, «заднице Одина» все же однажды быть. Лет через десять или даже раньше. Все, что для нее нужно — хорошая СУБД, и простой скриптовый язык. Даже бейсик сойдет. Но, может быть, я уже нежно любимые мной за простоту Питон или Джаваскрипт изобрету.
Про встречу с Тоддом промолчал. Нефиг всякой ерундой от важного отвлекать. А язык Си — это ведь важно? Наверное, да. Он и для написания трехмерных движков отлично подойдет, так как работает быстро. Почти все культовые шутеры из 90-х — Вольфенштейн, Дум 2, Квейк, Халф-Лайф — это Си. Ну, кое-где еще и Си-Плюс-Плюс, но уже не суть. Одно вытекает из другого.
Итак, первый практикум. Аспирант Сэм мне приветливо кивнул. Бренду проигнорировал, но хотя бы заявлений в духе «курица не птица, женщина не программист» делать не стал.
Нас усадили за компьютеры, а точнее, терминалы, дающие доступ к мощному по нынешним временам PDP-11. На вид обычные моноблоки, похожие на TRS-80 третьей модели, но на самом деле это вообще не полноценные машины, а мониторы с клавиатурой. Вся магия творится за перегородкой из толстого стекла, где расположилась допотопная серверная размером со спортзал. Компьютеры — шкафы. Жесткие диски габаритами со стиральную машинку, толстые пучки кабелей, что-то подпаивающие ремонтники в белых халатах. Подозреваю, могли бы обойтись и без стекла, но нарочно оставили юзверям обзор, чтобы прониклись величием и богатством университета. Не бывай я пару раз в продвинутых дата-центрах, тоже, наверное, впечатлился бы.
Гарланд прошелся и раздал каждому листочки с логинами и паролями. Я оказался Си-Си-1965. То есть инициалы и год рождения.
— Предполагается, что все вы владеете минимальными навыками работы с операционной системой. Если у кого-то будут затруднения, позовите, помочь вам моя работа, — посмотрел парень при этом на Бренду, — надеюсь, что все вы хорошо слушали мою лекцию. Сегодняшнее практическое занятие максимально простое: вам нужно написать программу для копирования массива данных с одного имеющегося адреса на другой. Однако…
Сэм подошел к имеющейся в классе грифельной доске и написал «1.5 секунды». Еще и обвёл в несколько кружочков, показывая важность.
— Вот ваша цель. Попробуйте оптимизировать свой код так, чтобы уложиться в поставленные временные рамки. Это сложнее, чем вам кажется и справятся не все.
Казалось бы, ничего сложного. Выдернуть данные из памяти по указанному адресу, перебрать циклом и положить в новые ячейки, оперируя указателями. Решается в один проход. Ну и еще добавить замер времени исполнения и его вывод. Где тут можно накосячить?