Качество vs. количество, или немного о знаниях

Давайте сейчас поговорим не о судьбах индустрии, а о том, что не может не волновать каждого отдельного человека, в этой индустрии работающего. О чём же это? О том, какими путями можно обустроить свою собственную судьбу.

Что лучше - знать много технологий поверхностно, или одну, но хорошо? На этот вопрос меня натолкнуло обилие разномастных курсов по программированию, которые открывают в последнее время самые разные фирмы, как те, которые зарабатывают деньги программированием, так и те, которые зарабатывают именно всяческими курсами. Можно ли походив на курсы по .NET, стать хорошим специалистом по этой платформе? Если честно, сомневаюсь, потому что, например, после университета человек не становится хорошим специалистом в той области, которой его учили - он становится молодым специалистом, а это всё же, согласитесь, немного другое. Но высшее образование - песня долгая, а потому количество людей с больше чем одним высшим не так уж и много. Другое дело курсы - за год можно успеть посетить трое, четверо, а если поднапрячься, то и все десять курсов. И получить, соответственно, десять сертификатов. Только нужно ли это?

Конечно, умные люди хмыкнут: лучше всего - хорошо знать много технологий. Только в этом мире, увы и ах, не всегда такое получается. Ресурсы человека ограничены, да и нельзя же всё время только тем заниматься, что технологии изучать. Нужно ведь ещё хоть немного времени хоть на то, чтобы кушать и спать. Да и то, при таком режиме есть весьма немаленькая вероятность через год-другой отбыть в Новинки и начать помогать какому-нибудь талантливому психиатру собирать материал для диссертации. Поэтому вопрос стоит именно так: знать много или знать хорошо.

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

Однако давайте взглянем на это всё немного шире. За бумом всегда следует спад, и одна технология вполне может сменить другую на технологическом Олимпе. За примерами далеко ходить не нужно: достаточно вспомнить классику жанра - Кобол. Некогда популярнейший язык программирования уже давно превратился в хрестоматийный пример того, что популярность - вещь зыбкая и коварная. Есть и более свежие примеры - например, PowerBuilder или Delphi (к сожалению, приходится признать, что Delphi, будучи всё ещё очень неплохим средством разработки, используется чаще для обучения школьников и студентов, чем для реальных проектов).

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

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

Аналогия тем жизненная, что в программировании знание какой-то технологии предполагает зачастую именно знание какого-то языка. Говоря о технологии Java, имеем в виду, в первую очередь, язык Java. Знание технологии .NET немыслимо без знания языка C#. Но даже если речь идёт не о языке программирования, суть от этого не меняется, потому что способность разобраться и научиться какой-то технологии гораздо важнее в современном динамичном мире, нежели знание самой какой-то конкретной технологии. И способность эту имеет смысл тренировать, знакомясь со всё новыми технологиями - в долгосрочной перспективе это оказывается гораздо выгоднее, чем знания, связанные непосредственно с определёнными технологиями.

Вадим СТАНКЕВИЧ,
dreamdrusch@tut.by

Версия для печатиВерсия для печати

Номер: 

16 за 2008 год

Рубрика: 

Размышлизмы
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Страницы

Аватар пользователя Лузин Алексей
Хотя последнее время и пропагандируют обучение по "американскому" типу , считаю что знание нескольких технологий приносит неоценимую пользу . Тому пример - программист , пишущий программы для технологического оборудования да еще и разбирающийся в его работе с точки зрения механики , гидравлики и технологии производства на этом оборудовании дает 100% форы любому !
Аватар пользователя паша
для каждой сферы свои правила. Программирование - относительно стабильная сфера, администрирование - более динамическая и т.д.
Аватар пользователя Логик
>программист , пишущий программы для технологического оборудования да еще и разбирающийся в его работе с точки зрения механики , гидравлики и технологии производства на этом оборудовании дает 100% форы любому !

А если он еще и подметает за собой! ;-)

Аватар пользователя Savely
>Тому пример - программист , пишущий программы для технологического оборудования да еще и разбирающийся в его работе с точки зрения механики , гидравлики и технологии производства на этом оборудовании дает 100% форы любому

Есснно, он работает за двоих - за кодера и за постановщика задачи.

Аватар пользователя mike
Мне показалось, что автор смешивает понятия "язык" и "технология". ИМХО 1-ое статично, 2-ое динамично, 1-ое несёт в себе качество, 2-ое - количество. Мне хватает С/С++ (надеюсь, и после пенсии на нём поработаю), а вот технологии приходится учить.
Аватар пользователя Вадим Станкевич
Я же уже говорил, что язык - это важная часть технологии для Java, .NET, Delphi... К С/С++ это относится в куда как меньшей степани.
Аватар пользователя Виктор Краев
Общая грамотность никогда не помешает, а углубится в недры той или иной технологии в зависимости от ситуации - это не мешает. Особенно если опыт есть в других технологиях, перейти к новой/смежной будет проще. Т.к. новые технологии(я бы сказал даже новые версии этих технологий) почти всегда смесь нескольких старых, точнее выводы сделанные на обкатке и использовании этих технологий применяются в создании новой. Реже, но все же бывает - это принципиально новый подход в реализации технологии, но прежде чем она станет действительно востребованной уйдет время на обкатку и естественный отбор - ждите багов и отсутствия каких-то важных/востребованных функций, т.е. допиливать ее будут какое-то время. Поэтому без особой надобности надобности сверхновые технологии не внедряются, выбор падает на новую ветку старой(обкатанной) или вообще ничего не трогают.

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

Т.е. если ты IT-специалист, то знание нескольких технологий плюс. Если ты контора - использовать нужно минимальное кол-во технологий(единая политика) - проще поддерживать и масштабировать. Например на сервера выполняющие одинаковые функции - не стоит ставить разные ОС без крайней необходимости. Проще админить 50 серверов на Linux, чем 25 на Linux, 20 на FreeBSD и 5 на Solaris. Но к сожалению это не всегда возможно. Из-за своеобразных интерпретаций стандартов некоторых производителей ОС и ПО(не буду называть производителей, дабы не накликать сюда троллей, которые меня обвинят в ОСевом рассизме=), которые вроде бы одинаковы для всех, а работают все равно "не по-стандартному" в конечной реализации.

Аватар пользователя mike
>язык - это важная часть технологии для Java, .NET, Delphi...

Какое-то "масло масляное" получается. Думается, язык - выразительное средство, а технология - знание, КАК обустроить софтину. Например, по COM-технологии можно разработать один и тот же пакет и на Си++, и на объектном Паскале. .cgi вообще можно написать на чём угодно. И т.д. (Но в команде нагнут и вставят. В рамки.)

Аватар пользователя Вадим Станкевич
ИМХО, технология - это связка из языка, библиотек для него, и стандартных приёмов использования того и другого.
Аватар пользователя Вадим Станкевич
Хотя, наверное, для традиционного определения технологий (таких, как COM, сокеты, RPC) Ваше определение, mike, подходит лучше. Просто проблема в том, что точной дефиниции как бы и нет, вот и возникают разночтения. С одной стороны, есть технология CGI, с другой - технология .NET. Это как бы две стороны одной медали (под медалью здесь понимается слово "технология программирования"). А в статье технологии и языки смешаны потому, что в компьютерном мире их динамика подчиняется одним и тем же законам.

Страницы