Oct 08

В продолжение предыдущего поста хочется немного пофилософствовать. На дворе 2007-й год, прошло уже 13 лет с момента издания этой книги (имеется ввиду именно англоязычная версия), а примеры, из которых эта книга родилась появились еще в далеких 80-х. А теперь посмотрите вокруг себя - много ли вы видите людей, которые действительно хорошо знают OOP, OOD и OOA? Большинство программистов как писали в процедурном стиле, так и пишут. Некоторые, судя по их кодам, патаются перейти к ООП, но у них ничего не получается, в итоге код получается хуже, чем если бы они писали в своем любимом процедурном стиле. Да, процедурная методология не плоха, но ее время ушло. Да, я считаю, что не уходит, а именно ушло! ООП дает все то же, и добавляет еще больше. Почему этим не пользоваться - для меня это до сих пор остается загадкой.

Торможению развития ООП способствует (по крайней мере у нас на Украине) образование на IT-специальностях. Я сейчас учусь на 3-м курсе, на программиста, и нам только в этом семестре начали рассказывать про ООП - хорошо еще, что препод классный - хорошо шарит в предмете и понятно обьясняет его. А большая часть преподов застряла в далеком прошлом и ни о чем новом слышать даже не хочет. Нам даже АТД (абстрактные типы данных) нормально не рассказали, а на программы препода, который нам их рассказывал просто страшно было смотреть (мне одну и программ пришлось переводить из паскаля в c++ - в итоге пришлось перевести чуть ли не 1 в 1, потому что там по дургому пришлось бы переписывать все, что я, кстати, через пару недель после того, как отдал преподу этот “перевод”, и сделал). А сейчас нам еще Java читают… Препод в яве шарит меньше чем я, хотя я по ней читал наверное, штук 10 статей за всю жизнь. Ну что тут еще скажешь… Какое нахер ООП - хоть как-то программировать научиться хотя-бы.

О проектировании вообще стыдно говорить - вот, статейку почитайте про проектирование программ под Web, полезно будет. Вот скажите, делаете ли вы тестирование своих программ? А если делаете - стали бы вы делать его, если бы вам не сказали этого делать на фирмах, где вы работаете? (Если не угадал - приношу извинения.)

Да и ко всему прочему - я не знаю, как было раньше, меня тогда вообще не было еще, но сейчас я вижу (могу судить по друзьям, знакомым, просто форумам), что программисты превратились (опять же - может так и раньше было) из хорошо разбирающихся в IT-мире людей в непонятно кого. Меня одногрупник-программист вот просит приехать переставить Windows. Сегодня, после моего двухнедельного отнекивания (каюсь я, каюсь) он попробовал переставить сам. В итоге у него там вышел какой-то бок, что инсталляха отказывалась форматировать диск C и, соответстсвенно, ставиться на него нормально. Прийдется все-таки поехать… Со своим LiveCD Ubuntu. :) Другие одногрупники также не блещут красотой своих программ, до сих пор не научились (за два года-то) читать доки на английском, не знают ровным счетом ничего в ООП и радуются тому, что они разбираются в C++ Builder 6.0 лучше меня. Молодцы - мышкой на формочках поклацать - это как-то не для меня, я консоль люблю больше (про web-программирование пока что забудем). Многие учаться лишь бы получить корочку… Нахрена только им на программистов было идти… Форумы пестрят вопросами типа: “а у меня #include <iostream> не работает” - я, правда, не знаю, как такого можно добиться, но факт остается фактом. И таких примеров - множество…

Вот смотрю на то, что написал и думаю - неужели все дествительно так плохо. Начинал писать этот пост с совершненно другими намереньями (почему ООП не юзают повсеместно), а получилось совсем другое. Зато будет над чем подумать на досуге.

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

PS. Я не говорю, что все программисты такие, как я описывал выше.

PPS. Да, я тоже программист. Да, я тоже дохера всего не знаю и многое делаю плохо. Да, можете считать, что я ничем не лучше вас. Время покажет.

PPPS. Хочу спросить тех, кто старше - раньше было также или лучше? Или, может я сгущаю краски?…

written by fxposter


24 Responses to “Голая правда о программистах”

  1. 1. Igorekk Says:

    Я учился с 1997-го по 2003-й. Всё было так же. Препод по С++ лет 70. Обещали много чего, не научили ничему (Access, Delphi не считаем). Всё так же приходилось изучать самому. Вечерами-ночами :)

  2. 2. Vaganych Says:

    Ты не одинок :( Я на пятомкурсе в Молдавии учусь на программиста. Все то же самое.

  3. 3. larin Says:

    FX Poster, не расстраивайся =) Я тоже разорялся на эту тему когда учился… но все прошло и теперь вспоминаю с улыбкой эти времена. =)
    Дело в том, что большинство вузов учит кодить, а не программировать. Многие преподы даже не видят разницы между кодером и программистом. На таких баранов не стоит смотреть – нервные клетки не восстанавливаются =))) Стоит читать достойные книги и учиться самому. Если сам учиться не будешь, никто научить не сможет.
    А мега-программистов кликающих мышкой хватало всегда =)

  4. 4. Igorekk Says:

    Ну вот у меня интерес к программированию пошел именно после “кликанья мышкой”. Всё-таки первый толчок очень важен. Но еще важнее не зацикливаться, а развиваться.

  5. 5. vtx Says:

    А я сейчас читаю книгу “Рефакторинг” там соавтор с книги по патернам, в ООП пока разобраться особо не получилось, но вот в этой книге уже более понятно что к чему. Трудиться надо :( Но почему-то за свой счет.
    По поводу обучения, это да :) Например на физ-техе я так и не научился тому что должен знать и понимать готовый специалист по радиоэлектронике. Как говорили молодой инженер требует 5 лет доводки на практике. Посмотрим каким прогером или кодером стану за 5 лет работы… :)
    А автору успехов, и не заморачивайся сейчас на преподах и тп, смотри шире. На англоязычных форумах чатах тоже бывают ламеры такие вопросы обсуждают что смотришь на это в шоке. Но , в Украине, программирование отстало очень сильно.

  6. 6. Arhivator Says:

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

  7. 7. vtx Says:

    Мне больше повезло, и патерны и ООП используют. И меня заставляют. Если б ещё нормально с шаблонами было, а то юзаем php шаблоны.

  8. 8. larin Says:

    vtx, php-шаблоны, как раз и есть нормальные шаблоны. =))) Поверь мне ) Все остальное обман, ты же программист! Шаблонизаторы созданы для дизайнеров, которые не разбираются в программировании, зачем же уподобляться им?

  9. 9. JackYF Says:

    А неплохо написал. Я думаю примерно то же самое.

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

    P.S. Шаблоны в С++ рулят и не волнует :)
    P.P.S. процедурное программирование имеет свои ниши. Но их, да, осталось очень немного.

  10. 10. Arhivator Says:

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

  11. 11. larin Says:

    Arhivator, а может он им не нужен был, этот Smarty. Я со Smarty проработал почти 3 года… а на прошлой неделе, удалил его на хрен, и написал за 15 минут “свой шаблонизатор который ровным счетом не умеет ничего” =))) Но работает он в 2-3 раза быстрее Smarty. Так, что иногда нужно выбирать…

    А вообще Smarty все таки уродливый монстр и если ты и программист и верстальщик в одном лице, то Smarty тебе не нужен! Это факт.

  12. 12. FX Poster Says:

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

    Да, спор тут не про C++’ные шаблоны. :)

  13. 13. vtx Says:

    Arhivator
    Так и использую native php + widghets (определенный блок контента с логикой if foreach и тп, который нехотелось выносить в отдельный блок html) + helpers (маленький кусок html типа ссылки опред вида, форматирования даты и тп). Нормально? Ну и конечно модель представление контроллер…

  14. 14. Sam Says:

    “Smarty все таки уродливый монстр”
    Мдя… кто это вам такое внушил-то?
    Неужели вы за 3 года не научились его правильно готовить?!

    Как он может быть медленней, если шаблон не парсится каждый раз? Вы открывали когда-нибудь скомпилированные темплейты?

  15. 15. larin Says:

    Sam,
    на это я вам уже ответил вот здесь: http://larin.in/archives/16#comment-46

    Скажу только, что я на реальном примере и реальных данных, опытным путем доказал, что Smarty в 2-3 раза тормознутее php-шаблонов.

  16. 16. joshua Says:

    Я прям себя узнал=))

  17. 17. Dodikk Says:

    Спасибо на добром слове.
    Оказывается, есть куда падать моей самооценке…
    Не думал, что таким поэтическим даром обладаешь.

    А в целом ты прав. University succs.
    Достало.

  18. 18. Алексей Труфанов Says:

    Тебе повезло – тебе, в отличие от меня, не читали 2 семестра FORTRAN и 1 семестр — BASIC :-) Учился в 1992-1997 гг., преподы по программированию — на 90% читали заученные старые конспекты.

  19. 19. Алексей Труфанов Says:

    Но, кстати, преподы не важны для тебя. “Твоё – это то, что ты сам прополз на брюхе, остальное – ветер: послушал и забыл” (с) не мой — кто-то из преподов сказал.

  20. 20. FX Poster Says:

    ага, препод прав был 100%. :)

  21. 21. Garcia Says:

    > процедурная методология не плоха, но ее время ушло.
    > Да, я считаю, что не уходит, а именно ушло!
    Уйдет оно тогда, когда все станут использовать ООП. А такого не случится никогда. Почему? Да потому, что объекты существуют только в голове. В реальном мире все вещи и предметы – какие есть, все разные. А мозги уже пытаются подогнать объектную модель под питбулей и пуделей – которые мол оба – собаки. Но ведут-то они себя конкретно по-разному! Это конечно не значит, что их нельзя запихать в объектную модель. Просто модель эту придется сильно усложнять. Отсюда и неприязнь к ООП у людей, мыслящих процедурно: питбуль – ховайся! пудель – можно погладить, овчарка – по ходу дела поглядим.
    Объектно-ориентированные языки заставляют мыслить классами. Это такой способ думать. Но он не единственный, а для некоторых задач IMHO не самый эффективный. Так что похороны процедурного подхода несколько преждевременны

  22. 22. FX Poster Says:

    Собственно, похороны уже давно произошли. Просто учебный процесс все никак не может с этим смирится. ;)

  23. 23. JackYF Says:

    Собственно, похороны уже давно произошли.
    Скажи об этом разработчикам ядра Линукс.

    Учебный процесс имеет гораздо более серьёзный недостаток – зашоренность преподов и частая абсурдность программ обучения IT-технологиям.

  24. 24. FX Poster Says:

    Хехе. Я исходники линуха не видел и смотреть не хочу. Давно было принято решение не юзать C++, а юзать C – я полностью его поддерживаю. Но это не отрицает того, что ядро Linux написано чисто в процедурном стиле. Посмотри хотя бы на GTK, которая написана на C, но тем не менее “является объектно-ориентированным” (c) Wikipedia.

Leave a Reply