Skip to main content

Волшебство на кончиках пальцев...

Интересно так складывается жизнь иногда. Я всю жизнь (ну а если точнее лет эдак до 16) мечтал стать археологом, да и сейчас иногда подрывает все бросить и умчаться куда нить в Среднюю Азию или Южную Америку на какие нибудь раскопки, книжки интересные читал по данной тематике. Знает например кто-нибудь, что древнеиндские письмена с печатей в Мохенджо - Даро (город мертвых кажись в переводе) до сих пор никто так и не расшифровал? а население Канарских Островов на каком языке говорило, пока его конкистадоры не перебили? он ведь не был родственным (насколько я знаю) ни одному языку в мире. а что письмена иберов, к примеру, в 80-х годах расшифровывали используя древнегрузинские тексты?

А после школы я поступил в Харьковский Авиационный Институт (ныне Национальный аэрокосмический университет им. Н.Е. Жуковского) - там летать не учат, а учат строить самолеты, вертолеты, ракеты, в общем все, что летает и каким либо образом с этим связано. Специальность моя называется "Компьютерные технологии проектирования" и относится к разряду Computer Sciense. Как только я туда поступил, куратор собрал нашу группу, и радостно нам сообщил, что мы не программисты, а инженеры будущие.

Вот так нам и сказали что мы не программисты, и года три учили программировать - сначала год на Pascal под DOS, потом пол года на С++ (хотя так как нам его преподносили то это скорее всего был С), потом был ассемблер (тоже под DOS). Чего мы только на асме не переписали - и резиденты, и драйвера, и защищенный режим, и с BIOS работали напрямую и с нереентерабельностью DOS боролись, вообщем много чего писали.

Самая большая ошибка на мой взгляд во всем этом - это был Pascal. Он привил всем без исключения плохой стиль. Затем мы начали изучать FoxPro и Delphi. Про фокс у меня вообще слов нету, - одни ругательства. А относительно Delphi - да система действительно хорошая для своего времени, если бы не несколько но. Первое - это Pascal - программы в большинстве своем так и оставались процедурными, хоть и были написаны на Delphi (иногда доходило до абсурда - у одной девушки в выпускной работе бакалавра встретил листинг класса в распечатанном виде и около 10 листов там занимали компоненты TextEdit, являвшиеся членами класса, хотя задача решалась проще банальным StringGrid, кажись так), второе - это то, о чем писал Джоэль в статье The Law of Leaky Abstractions - никто из нас совершенно не представлял как работает Windows приложение.

А потом мы начали изучать СAD/CAM/CAE пакеты - AutoCAD (для которого писали программы на AutoLISP, но которые все равно оставались программами на Паскале), Unigraphics (еще его старый вариант, который работал под ОС VAX VMS, на VAX машинах), Solid Works (для него мы писали на Visual Basic и Delphi вcе том же), NASTRAN & ANSYS тоже были, CATIA это вообще отдельная песня, КОМПАС тоже затронули. В общем мы прошли этот курс (который конечно же дополняли классические предметы CS - высшая, дискретная математика, численные методы, моделирование систем, теория вероятности, и специфичные для аэрокосмической области - например вероятностное проектирование), выжили не все...

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

Вот, и после всей этой CAD/CAM/CAE солянки, нам радостно сообщили, что мы все таки программисты. В итоге сейчас (5-6 курс) программистами работают считанные единицы - кто-то в вебдеве, кто-то в геймдеве, кто-то 1С, кто-то пишет бух-приложения на Delphi. Мне повезло - вовремя прочитал Страуструпа и потом все что только мог писал на С++.

Единственное полезное чему нас научили так это учиться и еще курс системного анализа мне пригождается чуть ли не каждый день.

Сейчас я работаю программистом эмбедед систем на С++ под Linux. Разрабатываем систему ЧПУ нового поколения для станков (в основном, есть еще проект по разработке системы доступа по отпечаткам пальцев, но я не в нем). Уже разработанные системы выглядят вот так (вариантов компоновки на самом деле несколько больше)



Я непосредственно разрабатываю новый интерпретатор языка, различные парсеры, анализаторы текста.

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

А однажды я набрел в сети на блог Алёна С++, который и вдохновил меня на создание собственного. По началу читателей было мало, но их количество постепенно растет и география посетителей сайта тоже, как можно увидеть в Google Analytics.


Значит буду писать еще =).

Comments

  1. программист вообще инженерная профессия так что вопрос инженер или программист звучит как масло масленное.

    ReplyDelete
  2. > Мне повезло - вовремя прочитал Страуструпа и потом все что только мог писал на С++.

    Сразу вспомнился анекдот:
    - Ты что можешь?
    - Могу копать.
    - А еще что?
    - Могу не копать.
    - А лестницу можешь сделать?
    - Могу, только копать долго придется...

    ReplyDelete
  3. программист вообще инженерная профессия так что вопрос инженер или программист звучит как масло масленное.
    не совсем точно выразился, забыл как там точно говорилось, но имелось ввиду нечто более близкое к аэрокосмической отрасли (проектирование там конструкций, расчеты на прочность, сопровождение и внедрение CAD/CAM/CAE пакетов). Надеюсь смог хоть как-то отразить мысль.

    ...Сразу вспомнился анекдот:...
    ну я же учился! С++ не простой язык. Я и сейчас узнаю много нового! Как сказал какой-то гуру C++ here we all are like novices ну или что-то в этом роде. А в такой динамично развивающейся отрасли как ИТ индустрия учиться придется всегда.
    И потом если задача не была привязана к какому либо языку я выбирал С++ чтобы учиться, и кроме всего прочего зачастую задача решалась быстрее на С++ нежели например на том же паскале. Могу вспомнить лабу по вероятностному проектированию, на которой мы испытывали различные генераторы случайных чисел, так STL мне здорово помог - от меня потребовалось лишь создать класс этих генераторов а все остальное - стандартные контейнеры и алгоритмы.

    ReplyDelete
  4. а можно вопрос?) интерпретатор какого языка вы разрабатываете, и рассматривался ли вариант использования cpython, вместо своего? какие получились аргументы?

    ReplyDelete
  5. язык называется EIA RS-274-D (Interchangeable Block Data Format for NC Machines) - очень похож на язык комманд плоттера )). Естественно сипайтон не рассматривался, т.к. нужен был интерпретатор именно этого языка ибо именно на нем постпроцессоры CAM систем генерируют программы по машинообработке деталей.

    ReplyDelete
  6. Да Паскаль, конечно прививает плохой стиль)))до сих пор мучаюсь. Хотя сейчас больше низкоуровневым программированием занимаюсь, ну так сказать на любительском уровне)

    ReplyDelete

Post a Comment

СООБЩЕНИЕ СПАМЕРАМ: прежде чем пытаться оставить ссылку на свой ресурс в комментарии, прошу обратить внимание на тег nofollow, которым они помечены и зря не терять ни свое ни мое время. А будете упорствовать еще и noindex поставлю