597

Программисту нужно больше, чем математика

Вот копипаст одной любопытной точки зрения. Даже не знаю, как к ней отнестись. Почитаешь - все совершенно верно, но как-то... Программист не может быть сборной солянкой, как мне кажется.http://relib.ruИнформационные технологии сегодня очень бурно развиваются и это развитие требует все большего количества специалистов. Если раньше профессия программиста преподавалась в университетах, то сегодня программистов не обучает только ленивый. Каждые 3-4 месяца появляются новые программные технологии, некоторые становятся модными, некоторые теряются и программистам приходится за всем следить, чтобы быть в курсе. Раньше каждый мог рассказать о семействе процессоров Intel, их возможностях и недостатках. Знали почти что все компиляторы. А что творится сегодня ? Появился Интернет и вместе с ним Java, Perl, CGI, PHP, ASP, HTML, DHTML, CSS и т.д. Мода сменилась в сторону Интернета и всем требуются специалисты знающие эту технологию. А за ней потянулись люди. Многие мне говорят, что пора переходить на Java или Perl, проектировать сайты и заниматься Веб дизайном. По моему глубокому убеждению все это большая глупость. Если человек не умел разрабатывать приложения на Бейсике, Паскале или Си, то Интернет технологии ему ни чем не помогут. Во всякой технологии необходимо уметь логически мыслить, понимать саму технологию, да и просто знать основы проектирования программных средств. Приведу один пример. Был у меня знакомый и учился на далекой специальности от программирования - менеджер. А так как учится ему было лень то закончил университет он с трудом. И тут начал развиваться Интернет. Увидел он какие зарплаты предлагают западные работодатели и уехал, учиться Java. А в мире все возвращается на круги своя. Java это тоже язык программирования, множество функций, отладка, объекты и в итоге бросил он это "неблагодарное дело". Или другой пример. Сейчас все предлагают за месяц или два сделать из человека программиста. Из человека КОТОРЫЙ ВИДЕЛ КОМПЬЮТЕР НА КАРТИНКАХ, это я конечно утрирую, но суть остается. Приходит паренек в фирму, его натаскивают на Visual Basic и через месяц он готов выпускать приложения, а если амбиций много так и продавать их начинает. Не хочу сказать, что все кто там учатся ничего не знают. Но для программирования нужен опыт, маломальская теория и самое главное ФАНАТИЗМ. Представьте себе, что этот программист разработал какую нибудь гипотетическую задачу по обработке данных с датчиков. Она работает правильно и в один прекрасный момент, данные поступают неправильные. В итоге приложение аварийно завершается, а если оно работало в комплексе то тянет за собой всю систему. Это реальность. Сейчас программисты не художники, а ремесленники. Они выдают "нагора" программы с минимальной отладкой, потому что давит рынок, руководство и т.д. Но профессионал всегда на этапе проектирования уже продумывает возможные ошибочные ситуации, не все конечно, в разумных пределах, а это уже повышает надежность приложения на несколько порядков. Большинство программистов создают свои программы без каких-либо норм построения интерфейса, цветовой гаммы, документирования и т.д. Принцип один: "Она же работает". Так дело в том, что программа работает пока рядом с ней этот же программист и сидит. Только отошел как начинаются звонки пользователей, как это сделать, а почему поиск неправильный, а какую кнопочку нажать, чтобы вывести только часть списка ? Неужели трудно прочитать рекомендации Microsoft (это для Windows платформ) или просто посмотреть на распространенные приложения. Любой уважающий себя программист знает несколько языков и технологий. Тем самым он реализует многие возможности, которые не предоставляют стандартные средства языка. Приведу одно высказывание : "В Visual Basic невозможно написать серьезную программу". Во-первых, ничего невозможного нет, во-вторых, есть API функции Windows. Некоторые функции или константы Microsoft не описала для Visual Basic, но эти описания можно найти в Visual C или Delphi. Здесь можно возразить, что для этого надо знать эти языки, но тогда зачем вообще заниматься программированием ? Допустим я не владею в полной мере Visual C, но читать исходный текст и понимать алгоритмы для меня не представляет сложности, то же самое относится и к Java. Зная Си вы поймете Java, зная событийную модель программирования поймете DHTML, не говоря уже о CSS или VBScript. Ещё программистов смущает сложность и объемность документации. Библиотека MSDN описывает почти всю технологию от Microsoft, а программист не хочет в ней разбираться, по сведущим причинам: Долго искать нужную информацию Весь синтаксис функций на Си Большое количество аргументов функций Краткость изложения Но это не причины, чтобы отказаться от создания производительного и эффективного приложения. Документация указывает путь, по которому необходимо двигаться для достижения цели и её не надо рассматривать как "волшебную палочку" - прочитал и готово. Программисту всегда помогает опыт, знания и постоянные эксперименты (думаю меня поймут женатые люди, когда часа в 2 ночи жена дергает вилку из розетки). За время своей работы я заметил одну особенность - человек ставший программистом начинает проявляться спесивость. По моему мнению это один из самых страшных грехов программистов в целом. Любой вопрос, любое замечание вызывают довольно неоднозначную реакцию и после этого с человеком уже не хочется общаться на добровольной основе. По этому поводу хочу посоветовать - не считайте себя умнее, всегда найдется человек лучше вас. У меня есть одно правило которое я себе поставил, как только понял, что программирование это дело моей жизни. Я себя никогда не назову профессионалом до тех пор, пока таким меня не посчитает десять настоящих профессионалов (т.е. эти люди должны быть с моей точки зрения профессионалами). За шесть лет таких людей нашлось всего четыре. В заключение, несколько слов про требования работодателей. Вы заметили по объявлениям требования, приведу одну выдержку: Необходимы следующие знания: MS SQL, Oracle, InterBase, VC++, Java, TCP/IP, ASP, PHP. Администрирование сетей на базе UNIX и NT. Знание протоколов TCP, IPX, NETBIOS. Знание продуктов 1C, Lotus. Прямо шампунь с кондиционером в одном флаконе. Интересно как все это можно знать досконально ? Если программист знаком с этим поверхностно и к примеру хорошо владеет MS SQL и VC++, то это одно, а если все ? У меня при смене Delphi на Visual Basic постоянно происходит путаница в точках запятых и присваивания, не говоря о конструкциях SQL в MS SQL и InterBase. Из всех объявлений я понял одно - все бегут за модой. Можно прекрасно создать систему на основе Windows NT, MS SQL, VB или VC++ с командой из 2 - 3 человек. Не подумайте, что в данной статье я хочу принизить чье либо достоинство как программиста, это мое мнение о современных программистах, т.к. я люблю программирование и мне жалко смотреть во что оно сегодня превращается, потому что самое страшное - это ненужная массовость и разработка продуктов перерастает в количество, а не в качество.
0