На главную страницу AlgoNet В сотрудничестве с ZDNet
АРХИВ СТАТЕЙ 1999-3-1 на главную / новости от 1999-3-1
AlgoNet.ru
поиск

 

Место для Вашей рекламы!

 

Все новости от 1 марта 1999 г.

Был бы стоящий товар, а покупатель всегда найдется

Здравствуйте, уважаемая редакция!

Письмо Ильи Шилова “Так что же надо знать программисту сегодня” (PC Week/RE, № 50/98, с. 28), не могло оставить меня равнодушным — подобная позиция довольно распространена среди молодых людей, начинающих свою карьеру. На мой взгляд, она несколько ошибочна и “…советик по зарабатыванию денег… на Западе” лучше давать, заработав их “на этом самом Западе”. Я же хочу поделиться с этим поколением собственным, российским опытом работы и знанием, как не остаться не у дел во все времена. Возможно, кому-то что-то из нижеизложенного окажется полезным.

Что же надо знать программисту? Отвечая на этот вопрос, необходимо сначала выяснить, какому программисту. Советы уважаемого Ильи я бы адресовал студентам, заканчивающим второй курс специализированного института или (как стало модным называть их в последнее время) университета.

Уважаемый Илья, скорее всего Вам не приходилось трудиться над большими проектами. Не могу с Вами не согласиться в том, что студенту, который желает стать прекрасным специалистом в области информационных технологий, необходимо знать ассемблер и уметь писать на нем. Если же он “попробует” машинный код на стадии изучения архитектуры и принципов функционирования вычислительных устройств — это просто замечательно. В лучшие времена высшая школа именно это и практиковала при подготовке системотехников.

Ваше “…тьфу ты!” в отношении объектно-ориентированного подхода (ООП) совершенно мне непонятно. Есть замечательная народная мудрость — “о полезности инструмента не судят по опыту его неудачного применения”. Я прошел все стадии “кодирования”: ассемблер, Cи, Си++ , C++ Builder, затронул и машинный код в свое время. Чтобы уяснить разницу между объектными и не объектными языками, следует применять объектный подход в соответствии с его трактовкой. Для этого действительно придется изменить свое мышление (о чем и говорят классики, Б. Страуструп к примеру). Необходимо видеть разницу между классом и объектом (хотя нередко, подразумевая одно, говорят о другом). Я различаю их следующим образом: при помощи классов создаются объекты, а при помощи объектов описывается предметная область. В данном случае подразумеваю под термином “класс” совокупность данных и методов для их обработки, а под “объектом” — систему классов, описывающую поведение некоторого субъекта предметной области под воздействием внешних факторов. Именно это позволяет получать реальную отдачу от объектно-ориентированного подхода. Если же при создании систем взять за правило еще и вариантную технологию (надеюсь, Вам она знакома), вносить изменения в программы и БД можно практически безболезненно, не нарушая их работоспособности даже в период модификации.

За использование высокоуровневых языков и приходится платить некоторым уменьшением производительности, но зато о модификации ранее созданных и отлаженных объектов со временем просто забываешь. Если же Вам приходится на всем протяжении жизненного цикла системы заботиться об их работоспособности, Вам, простите, до ООП еще расти и расти. Эволюция требует жертв не только в программировании, оглянитесь вокруг. Ведь никому не приходит в голову бороться за экологию путем возвращения к первобытному строю. Да и Ваше беспокойство по поводу “дебилизации”, на мой взгляд, совершенно напрасно. Любой мало-мальски серьезный проект рано или поздно потребует перехода от перетаскивания компонентов на форму к более детальному рассмотрению хотя бы пресловутого API, OLE и т. п. даже от “кодера”. А в конечном счете быть “дебилом” от программирования или специалистом — это дело сугубо личное, все зависит от преследуемых целей и способностей.

…По поводу популярности Windows и Unix. Не буду оригинальным, если скажу, что компьютер без операционки — груда железа. Аналогично можно сказать и относительно операционки и прикладного софта. Большинство ратует за Windows именно из-за большого числа наработок под эту систему, мирясь со всеми ее недостатками. Я думаю, мы с вами не увидим всемирной миграции от Windows к Unix или Linux.

…Так что же надо знать программисту сегодня? Свое мнение я хотел бы адресовать тем, кто учится, готовясь вскоре “выйти в свет”. Советовать оставшимся без работы и неспособным найти ее — что мертвому припарка. Если уж оказался никому не нужен, бери в руки руководство под названием “Легких путей не бывает” (хочется перефразировать — “Если долго мучиться — что нибудь получится”) из PC Week/RE, № 44/98, с. 15 è — вперед!

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

Я надеюсь, что основная масса желает творить, и не “за бугром” (если “за бугром”, то и учиться лучше там же), а в нашей родной России (поле-то непаханое!). Я исхожу из предпосылки — все течет, все изменяется, а в сфере информационных технологий — крайне быстро. Поэтому за базис я бы взял фундаментальные вещи:

  1. Системный подход и системный анализ.
  2. Методы проектирования программных систем (не те, которые преподаются в вузе, а те, которые необходимы руководителю проекта и системному аналитику).
  3. Объектно-ориентированное проектирование и программирование.
  4. Теорию баз данных (желательно и по Инмону тоже).
  5. Технологию OLE и CORBA (как рекомендовал уважаемый С. Бобровский), для любителей Inprise — VisiBroker (ее реализация стандарта CORBA).
  6. MAPI и прочие API, если вы планируете работать с Windows.
  7. Само собой, язык программирования и операционную систему.

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

И последнее наблюдение: чтобы не бояться остаться без работы, уважаемые программисты, не работайте там, где к Вам относятся как к “интеллектуальным рабам”. Лично я ценю свои знания и умения, и продаю их, а не “нанимаюсь на работу”. Был бы стоящий товар, а покупатель всегда найдется. Ища работу, представьте, что вы располагаете высококлассным продуктом, и действуйте соответственно. Чтобы эффективно продавать, опять же нужны знания, причем из области маркетинга. В качестве пособия я бы рекомендовал “Учитесь эффективно продавать и управлять сбытом” Джинни Грэхем Скотт. В этой книге можно найти то, что пригодится при поиске хороших возможностей реализации Вашего потенциала.

Наилучшие пожелания и творческих успехов.

Инженер-системотехник Сергей Томский (sibdom@post.tomica.ru)

 

← февраль 1999 1  2  3  4  5  9  10  11  12 апрель 1999 →
Реклама!
 

 

Место для Вашей рекламы!