Игорь Корсар Мастер

Может ли программист ничего не понимать в своем деле?

Заглавие в высшей степени странное. Читатель явно недоумевает. Мне, кстати, делали такой комплимент.

Сначала я расстроился. Как же так? Опыт длительный. Начинал еще с ЕС ЭВМ. Масса сменяющей друг друга техники прошло через мои руки, разные системы, языки — и я вдруг «ничего не понимаю». Потом призадумался.

А что, вообще, означает «программист»? Естественно, человек, который пишет программы. От последнего слова и возник этот термин. Но сейчас в него вкладывают несколько более широкое понятие. Программистами называют и системщиков, и сетевиков, и администраторов. Сами они программы не пишут, но программистами считаются. А программирование управляющих программ для станков с числовым программным управлением? Программист У П для станков с ЧПУ. Так это звучит. Даже просто периодическое ухаживание за компьютерами, поддержание их работоспособности тоже относят к разновидности работы программиста.

Вернемся к истокам, когда вычислительная техника делала только первые шаги. Не было языков высокого уровня. Мизерная память, и всегда недостаточно места. Программы писались в машинных кодах. Гораздо позже появился язык ассемблера, приближенный к этим кодам, но уже язык! Более легкий для понимания и требующий транслятора в эти коды. Когорта программистов резко расширилась. Знание кодов конкретной машины перестало быть актуальным, а работа с ними из ранга искусства превратилась в ненужный хлам.

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

Еще один душещипательный фактор всплывает в памяти. Машинное время. Мы за него дрались! Образно выражаясь, конечно. Эра персональных компьютеров начисто ликвидировала эту проблему.

Но, стоп! Я увлекся. Не лекцию о развитии техники я читаю. Главная мысль в том, что никакая наука, никакое производство так стремительно не прогрессировало, как компьютеры. Математика, к примеру, — наука вечная. Ряды Фурье, какими они были век назад, такими и остались. Значения синуса тридцати градусов не изменится и через столетия. А вычислительные машины… Их представить себе невозможно даже через двадцать лет. В фантастических романах тридцатилетней давности ЭВМ описывались огромными с необозримым количеством проводов, кабелей и кнопок. Разве такие сейчас ноутбуки с беспроводным выходом в Интернет?

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

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

Много времени и сил я отдал операторному программированию. Когда стало преобладать обьектно-ориентированное, мне тяжело было в него вникнуть. Надо было взглянуть на все с непривычной точки зрения. Помню, как молодые специалисты, которых вскормили новым подходом еще на институтской скамье, легко ориентировались в классах, объектах и их свойствах. Связать же два оператора им было трудно. Они сразу начинали искать уже написанный где-то компонент, чтобы быстро присоединить его к программе. Я же в то время — наоборот: мог элементарно создать сто операторов, но не видел, как найти всего лишь одну команду, заменяющую добрую половину из них. Возникает ассоциация с кульманом. Конструктора, создающие сложные чертежи, в свое время не видели больше ничего, кроме хорошего карандаша, ластика и исправного кульмана. Когда появилась возможность делать все на компьютере, многие из них испугались да так и не перешли на новые рельсы. Легкость проектирования чертежа виртуально — без бумаги и кульмана — не всеми была понята.

Качественным скачком было появление персональных компьютеров. Потом переход к многооконному режиму. До сих пор сменяют друг друга системы Windows. Самым изумительным явлением и скачком в развитии стало появление Интернета. Когда с Запада хлынули готовые программные системы, собственное программирование оказалось в загоне. Многие разработки были переведены еще с нашей собственной неуклюжей техники и имели старую идеологию. Развиться они просто не успели. Готовые иностранные системы имели отличный интерфейс и решали нужные нам проблемы. Поэтому многие программисты стали переквалифицироваться в пользователей новых систем. Свое писать оказалось не нужно.

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

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

Какими же будут компьютеры всего через десять лет?

Обновлено 7.07.2010
Статья размещена на сайте 11.06.2010

Комментарии (32):

Чтобы оставить комментарий зарегистрируйтесь или войдите на сайт

Войти через социальные сети:

  • Отвечаю на вопрос в заголовке статьи:"Не существует программистов ничего не понимающих в своем деле! Это по типу может ли хирург резать человека, если он не хирург, а дворник. Может, если он Чикатило.Тьфу,тьфу, тьфу. Если не понимать в программировании, то ты не программист.Меняй работу, раз не успеваешь поспевать за айтишным прогрессом."

  • Михаил Русаков Михаил Русаков Читатель 8 июля 2010 в 22:30 отредактирован 24 мая 2018 в 10:07
    Постоянное совершенствование

    Согласен с Вячеславом Чермных. Сам являюсь программистом уже 5 лет, и приходится ежедневно совершенствоваться, и чем больше я это делаю, тем больше понимаю, как мало я ещё знаю. Причём самое интересное то, что как сильно не старайся, а всё равно всё узнать невозможно из-за постоянного развития компьютеров и, как следствие, смены направления обучения на что-то новое.

    • А кто движет это все?! Мы вами.

      Миша, прекрасная статья. Я тоже вспоминаю ЕС ЭВМ, когда переход с ЕС-33 на ЕС-55 был для нас праздником: 500 Кб оперативной памяти! Фантастика! И то, эту машину впервые увидел я только в Жуковском, когда мы с группой наших программистов из Киева внедряли систему идентификации летных параметров ЛА.

      Но я хотел немного о другом... Ведь все то, о чем вы говорите как о прогрессе языков программирования, их редакторов и компиляторов кто-то делает. Это делаем мы с вами - программисты-новаторы. Без "Энигмы" и ЕС ЭВМ (и многих других систем) не было бы Office 2007 (а теперь уже 2010, насколько мне известно) и множества действительно полезных и теперь уже просто необходимых программ и систем.

      Оценка статьи: 5

  • Игорь Корсар, когда нас учили Алголу о программировании "сверху вниз" шли разговоры, мол надо бы. С тех пор много чего появилось, теперь идёт узкая специализация и всего не ухватишь.
    Получается, что программист всю жизнь учиться должен. Встал - отстал.

    Оценка статьи: 5

    • Вячеслав Чермных, И вот, стукает 45-50 лет, в погоне за новыми технологиями не угнаться (очень часто старые представления мешают быстро понять их) , тем более, когда во главу угла этих технологий ставится скорость разработки, а старый опыт никому не нужен - приходит капец. На том же RSDN - если к 30 годам не стал тимлидом - значит лузер.

      Оценка статьи: 5

  • Народ, покритикуйте выбор. Хочется с минимальным напрягом писать "свободные" приложения.
    ЯЗЫК
    C++ (MS VC++). Как насчёт Qt (Qt - GUI-оболочка для C++ и других языков программирования) ?
    СУБД
    MS Access отпадает - его базы в других языках "крутить" не хочется, в MSA2010 вместо Jet4 появился Ace. Поэтому вместо MS SQL Server 2008 - FireBird ?

  • Игорь Корсар, Завидую я друзьям- медикам. Заучили анатомию в институте - и до пенсии. Тут же каждые 2 года - очередная супер-пупер революционная технология, а прошлая, оказывается, была и не пупер, как 2 года назад говорили.

    Оценка статьи: 5

    • Ю. Лях, в медицине тоже есть развивающиеся направления, некоторые летают обучаться на запад. В поликлиниках - да, до пенсии.

      • Владимир Дмитриев, да уж, а хотелось бы, чтобы и как в ИТ обучение не останавливалось в медицине. Каждый день ведь что-то новое из лекарств появляется, что-то новое о человеке узнается. )

        • Эдуард Ермоленко, В медицине другой принцип, там главное - опыт.И как часто там появляется что-то типа УЗИ или ЯМР? Про лекарства. Был в фармакадемии на открытых дверях. Оказывается, врачи не должны о лекарствах что-то знать. С каждым врачом в паре должен работать фармаколог, один ставит диагноз, второй подбирает медикаментозные схемы лечения. Некоторые опытные провизоры диагностируют, а главное - лечат не хуже врачей.

          Оценка статьи: 5

  • Было...

    Игорь Корсар, спасибо за статью. Было, Было... Сам когда-то начинал с ЕС, с перфокарт ))) Помню windows 3.11 (еще до windows 95) и первый делфи... Программист - это не профессия, это стиль жизни. Собираю Юмор о программистах ))

    Оценка статьи: 5

    • Дмитрий Юлин, ха, а я помню ещё Windows 3.0 ! Просто на моём компьютере IBM PC AT 286 на 6Mhz, 640Kb/38Mb не шла даже Windows 3.1 Но и это было немерянно круче моего первого компьютера - "Микроши"

      По статье:
      Программист не может ничего не понимать в своём деле, иначе он не программист. То же касается всех прочих профессий, за исключением "профессии" экстрасенса. Эти должны уметь пудрить людям мозги, а знать, что такое торсионные поля, биоэнергия, аура, чакры и т.п. им не обязательно. Главное, уметь эти слова с загадочным видом произносить.

      Другое дело, что программист в наше время не может быть универсалом. Зная хорошо свою область, он может слабо знать соседнюю и вовсе не знать далёкую от его области. Тем же программистам ЧПУ вовсе не обязательно знать "Питон" или уметь прокладывать оптоволокно и настраивать маршрутизаторы. И наоборот. Так это и в любой профессии так: терапевт не станет вам сверлить зубы, юрист в области гражданского права не возьмётся за уголовное дело, охранник не будет расследовать, а переводчик с испанского не будет переводить с немецкого.

      • Виктор Губерниев, согласен с тем, что программист не может не понимать в программировании. Я не программист, я системщик. В свое время (Минск-32, ЕС) занимался программирование, но непрофессионально. Может быть я и неправ, но программирование в первую очередь - умение представить структуру программы, то есть создать алгоритм, а вот на каком языке он будет реализован, это уже дело узкой специализации.

        • Эдуард Ермоленко, отстали, однако, лет на 15 . Автор в статье указал, что сейчас о функциональном программировании (алгоритмы) забывают в пользу объектного. Сейчас уже даже о UML не слышу (это - по структурам программ) - идет уход в сторону паттернов и шаблонов, что чуть в стороне от ОПП. А если глянуть http://www.rsdn.ru/article/patterns/gotopatterns.xml , вообще не понятно, о чем Гради Буч писал.
          Не будем о дебрях. Не важно, как называют, главное, чтоб за работу платили денежку.

          Оценка статьи: 5

  • Игорь Корсар, не согласна, что термин "программисты" заменяет всё. Мне кажется, большую популярность имеет слово "айтишники", от it-технологии. То, что системного администратора называют "программист" - не слышала. Даже совсем не продвинутые пользователи чуть-чуть различают.

    • Ирина Сергеева, работаю в большой компании системщиком. Достаточно многие продвинутые пользователи все равно называют меня программистом, хотя в нашем отделе уже лет пять никто не программировал, если не считать написания простеньких скриптов.

  • Здесь тусовка современников Тьюринга??

  • Игорь Корсар, согласен. Сам прошёл ЕС ЭВМ. К тому же многие программеры, и неплохие, уже давно перешли на "часы и трусы"... А школа была классическая! В итоге развития освоил штук 10 разных языков программирования. Сознательно остановился на MS Access, включая VBA, а также VB6. Готов на большее.

    • Владимир Дмитриев, а меня от VBA воротит с тех пор, когда при переходе с одной версии оффиса на другой обнаружилось, что один и тот же скрипт работает совершенно по-разному и нужно сначала определять версию и для каждой делать свою реализацию.
      Воротит от SQL, поскольку декларирован, как стандарт, но каждая СУБД имеет свои "особенности" (хорошо, если работаешь только с одной).
      От продуктов MS воротит, поскольку в них не соблюдается преемственность "сверху вниз" и с выходом новых версий нужно начинать извраты с проверками на совместимость, а для 10 оффиса вообще переписывать.

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

      PS похоже, автор не работает с большими проектами, иначе, точно, и оракло там было бы, и убоище по имени C#.

      Оценка статьи: 5

    • Марианна Власова Марианна Власова Бывший главный редактор 19 июня 2010 в 21:37

      читать дальше →

      • Сергей Попов Сергей Попов Читатель 12 июля 2010 в 10:22 отредактирован 12 июля 2010 в 10:22

        Марианночка, а что в вашем понимании есть "нормальный" размер БД, который нельзя создать в Acces'е?

        Оценка статьи: 5

        • Марианна Власова Марианна Власова Бывший главный редактор 12 июля 2010 в 12:42

          Сергей Попов, простой пример. Работала я на выборах в 2003 году, требовалось личные данные нескольких сот тысяч избирателей вносить в базу из разных источников, фильтровать по определенным параметрам (женщин, ветеранов и т.п.). Не удалось с ней работать без SQL.

        • Сергей Попов, В аксесе база не может быть больше 2 Гб , а уже при 1,5Гб - очень сильные тормоза. Еще баг - в С# при работе через ODBC автоматом включается монопольный режим доступа, который средствами шарпа нам отключить не удалось. В общем - не корпоративная штука - этот Access.

          Оценка статьи: 5

      • Марианна Власова, в условиях, когда на работе хотят неизвестно чего и быстро... Да, MS Access не весть что, это не C++ и не Oracle, и даже не Delphi (повезло, кто его его освоил, много доп.сервиса). Microsoft SQL Server не пробовал, но освоить смог бы. Передо мной просто задачу такую не ставили... В своё время применял СУБД Adabas на ЕС ЭВМ, мощная система.

        • Владимир Дмитриев, согласен относительно Делфи.

          Оценка статьи: 5

          • Богдан С. Петров, я смотрю на соседа-"дельфина" на работе - сидит-ваяет, в крайнем случае что-то посмотрит в Интернете. Я смог бы и Delphi изучить, но с его синтаксиса меня воротит , ибо всего уже "накушался". Поэтому пока решил поддержать уровень знаний MS Access, сейчас изучаю MSA 2007 (в MSA2010 по сравнению с MSA2007, пишут, новшеств мало). Ну и спасибо Марианне Власовой, Microsoft SQL Server [2008] заслуживает того, чтобы посмотреть и его!
            Если у кого есть задачки для MS Access, пишите.

  • любопытно, душевно)

    Оценка статьи: 5