Давайте сейчас поговорим не о судьбах индустрии, а о том, что не может не волновать каждого отдельного человека, в этой индустрии работающего. О чём же это? О том, какими путями можно обустроить свою собственную судьбу.
Что лучше - знать много технологий поверхностно, или одну, но хорошо? На этот вопрос меня натолкнуло обилие разномастных курсов по программированию, которые открывают в последнее время самые разные фирмы, как те, которые зарабатывают деньги программированием, так и те, которые зарабатывают именно всяческими курсами. Можно ли походив на курсы по .NET, стать хорошим специалистом по этой платформе? Если честно, сомневаюсь, потому что, например, после университета человек не становится хорошим специалистом в той области, которой его учили - он становится молодым специалистом, а это всё же, согласитесь, немного другое. Но высшее образование - песня долгая, а потому количество людей с больше чем одним высшим не так уж и много. Другое дело курсы - за год можно успеть посетить трое, четверо, а если поднапрячься, то и все десять курсов. И получить, соответственно, десять сертификатов. Только нужно ли это?
Конечно, умные люди хмыкнут: лучше всего - хорошо знать много технологий. Только в этом мире, увы и ах, не всегда такое получается. Ресурсы человека ограничены, да и нельзя же всё время только тем заниматься, что технологии изучать. Нужно ведь ещё хоть немного времени хоть на то, чтобы кушать и спать. Да и то, при таком режиме есть весьма немаленькая вероятность через год-другой отбыть в Новинки и начать помогать какому-нибудь талантливому психиатру собирать материал для диссертации. Поэтому вопрос стоит именно так: знать много или знать хорошо.
А вот здесь нужно остановиться и подумать, какие цели вы преследуете, изучая ту или иную технологию. Если вы хотите заработать с её помощью больше денег, то, безусловно, лучше изучить её более досконально - вполне очевидное утверждение, но, тем не менее, наверняка найдутся люди, готовые с ним поспорить. В краткосрочной перспективе хорошее знание одной технологии вполне способно гарантировать приличный заработок, при условии, конечно же, что эта технология востребована. Хорошие специалисты ещё никогда во время бума не жаловались на отсутствие денег.
Однако давайте взглянем на это всё немного шире. За бумом всегда следует спад, и одна технология вполне может сменить другую на технологическом Олимпе. За примерами далеко ходить не нужно: достаточно вспомнить классику жанра - Кобол. Некогда популярнейший язык программирования уже давно превратился в хрестоматийный пример того, что популярность - вещь зыбкая и коварная. Есть и более свежие примеры - например, PowerBuilder или Delphi (к сожалению, приходится признать, что Delphi, будучи всё ещё очень неплохим средством разработки, используется чаще для обучения школьников и студентов, чем для реальных проектов).
Что делать специалисту, когда рынок перестаёт нуждаться в технологии, которую он хорошо знает? Вопрос интересный и очень жизненный. Можно заниматься поддержкой написанных давным-давно приложений, пока в них не отпадёт надобность. Но это довольно рискованно, потому что надобность может отпасть намного раньше, чем вы выйдете на пенсию. Можно, как вариант, освоить какую-нибудь технологию, спрашивая себя, что мешало немного подсуетиться и освоить её раньше. Можно уйти преподавать информатику в школу, но сейчас там, говорят, нужен диплом с правом преподавания.
Мне кажется, что знать несколько технологий, пусть и не очень подробно, всё же удобнее и выгоднее. Попробую в качестве аргумента привести аналогию со знанием иностранных языков. Чем больше языков вы знаете, тем меньше вероятность того, что каждый из них вы знаете в совершенстве. Но если вы занимаетесь переводами, то никто не запрещает вам пользоваться словарём, если встречается незнакомое слово. Кроме того, как свидетельствуют полиглоты, чем больше языков человек знает, тем ему проще выучить ещё один.
Аналогия тем жизненная, что в программировании знание какой-то технологии предполагает зачастую именно знание какого-то языка. Говоря о технологии Java, имеем в виду, в первую очередь, язык Java. Знание технологии .NET немыслимо без знания языка C#. Но даже если речь идёт не о языке программирования, суть от этого не меняется, потому что способность разобраться и научиться какой-то технологии гораздо важнее в современном динамичном мире, нежели знание самой какой-то конкретной технологии. И способность эту имеет смысл тренировать, знакомясь со всё новыми технологиями - в долгосрочной перспективе это оказывается гораздо выгоднее, чем знания, связанные непосредственно с определёнными технологиями.
Вадим СТАНКЕВИЧ,
[email protected]
Комментарии
Страницы
А если он еще и подметает за собой! ;-)
Есснно, он работает за двоих - за кодера и за постановщика задачи.
Кроме этого владение нескольким технологиями позволяет их сравнить и сделать выводы о плюсах и минусах каждой. И в зависимости от ситуации выбирать ту технологию, которая более всего отвечает требованиям поставленных задач - получить гибкость. Но нужно помнить, что поддерживать одну технологию проще, чем несколько.
Т.е. если ты IT-специалист, то знание нескольких технологий плюс. Если ты контора - использовать нужно минимальное кол-во технологий(единая политика) - проще поддерживать и масштабировать. Например на сервера выполняющие одинаковые функции - не стоит ставить разные ОС без крайней необходимости. Проще админить 50 серверов на Linux, чем 25 на Linux, 20 на FreeBSD и 5 на Solaris. Но к сожалению это не всегда возможно. Из-за своеобразных интерпретаций стандартов некоторых производителей ОС и ПО(не буду называть производителей, дабы не накликать сюда троллей, которые меня обвинят в ОСевом рассизме=), которые вроде бы одинаковы для всех, а работают все равно "не по-стандартному" в конечной реализации.
Какое-то "масло масляное" получается. Думается, язык - выразительное средство, а технология - знание, КАК обустроить софтину. Например, по COM-технологии можно разработать один и тот же пакет и на Си++, и на объектном Паскале. .cgi вообще можно написать на чём угодно. И т.д. (Но в команде нагнут и вставят. В рамки.)
Страницы