Фоторепортажи




Кто изобрел самых лучший стул в мире?

Что может программист?

Автор: Корсар Игорь

01.03.2020

Просмотров: 654


Первую программу я писал три месяца. В ней было огромное количество команд, а я был полностью уверен, что короче нельзя. Вторую уже два, и была она в полтора раза меньше. Трудно зафиксировать тот момент, когда скорость качественно изменяется.


Из серии "Парадоксы программирования"

Любая работа начинается с малого. Человек сначала поднимает небольшую ношу. Потом она увеличивается, а он даже не замечает этого. Он уже подготовлен и натренирован. Но есть предел, когда груз уже нарастить невозможно.

В программировании - иначе. Ноша может расти практически бесконечно. Если перевести ее на килограммы, то через семь лет работы можно было бы увидеть человека несущего на себе многоподъездный пятиэтажный дом.

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

Вместе с развитием скорости и умения у программиста появляется ряд дополнительных качеств.

Язык. На каком языке программировать становится совершенно не важно. Только когда начинаешь постигать второй язык, испытываешь определенные трудности. Третий - легче. А дальше все равно.
С определенного уровня квалификации при переходе с языка на язык даже скорость почти не замедляется.

Чутье и интуиция. Появляется чутье, где искать ошибку. По едва уловимым признакам определяется, что система в опасности, что-то в ней запортилось. Одного взгляда на монитор соседа или подчиненного достаточно, чтобы сказать, чем он занимается, а пять минут проведенные за чужим компьютером, дают огромные сведения о квалификации его владельца.

Техника меняется очень быстро, и часто приходится переводить задачи на другие машины. Не всегда исполняемые модули просто переносятся. Порой приходится начинать с трансляции исходных текстов.
Обязательно ли в этом случае знать проблемную область задачи?

Считаю, что совсем не обязательно. У меня был такой случай.

Большой комплекс программ, связанный с расчетами и выпуском чертежей, долгое время работал на СМ-1420
Коллектив, создавший его благополучно уволился. Не сразу, конечно, а постепенно.
Надо было перенести работу комплекса на персональные компьютеры. Разбираться, что делают программы и как, не было времени. Но в образцовом порядке были все исходные тексты.

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

Еще одна черта присуща высокой квалификации - умение создать защиту для собственной разработки и обойти, если таковая имеется, у чужой. Но давайте об этом в следующий раз!..

 



Оцените статью


стиль 0 актуальность 0
форма подачи 0 грамотность 0
фактура 0
* - Всего это среднее арифметическое всех оценок, которые поставили пользователи за эту статью