Re[3]: Как вы осваиваете новые технологии?
От: SergeyT. США http://sergeyteplyakov.blogspot.com/
Дата: 20.12.09 16:26
Оценка: 4 (2) +1
Здравствуйте, febus, Вы писали:

Ну ладно, раз речь зашла о конкретике, буду конкретней.
В любой области существуют фундаментальные знания. Можно привести массу примеров. Например, базы данных. Существуют книги, которые оперируют фундаментальными понятиями, такими как релационная алгебра и реляционное исчисление, целостность данных, отношения, нормализация, но существуют книги, описывающие конкретную СУБД и частные случаи реализации определенных возможностей. Для того, чтобы разобраться в теории баз данных и применять их на практике, вначале стоит взять книгу Дейта и статьи Кодда, а потом уже обратить внимание на Sql server 200x для чайников.

Теперь другой пример, вы пишите, что технологии от Майкрософт — это невыгодные капиталовложения и приводите пример asp. Если вы будете изучать asp, не изучив основы построения веб-приложений, это капиталовложение будет дорогостоящим (вы потратите кучу времени) и не выгодным, т.к. при смене поколений технологии придется учить все заново. Но есть и другой путь, вначале понять основы, а потом за считанные дни разобраться с определенной технологией.

Еще один ваш пример: доступ к данным от Майкрософт. Существует множество шаблонов доступа к данным, на основе которых строятся существующие решения. Достаточно изучить именно их и на изучения фирменного решения от МС у вас уйдет минимум времени.

ORM — тоже самое. Существует общепринятая (ну, более или менее) теория, и существует реализация. Поймете основы — конкретику изучите за пару дней.

Тоже самое по распределенным приложениям. Есть общеизвестные шаблоны построения распределенных приложений, а есть реализации от МС и других. Но в целом, все фирменные реализации строятся на общей основе и на общих принципах. Нужно изучать именно эти фундаментальные принципы.

Языки программирования. Аналогично. Существует ограниченный спектр фундаментальных знаний, на основе которых строится все остальное.

Библиотеки. Опять же аналогично. Например, нет смысла изучать библиотеку работы с сетью не понимая суть семиуровневой модели OSI и принципы, заложенные в основу стека протоколов TCP/IP. Поймете основу, один раз реализуете решение на одной платформе, с легкостью перейдете на другую.

В области разработки ПО существует множество различных направлений, тенденций, течений, инструментов, методологий, куча разных фанатиков, которые считают, что они нашли ответ на главный вопрос любого разработчика, но это не так. Главная задача любого разработчика находить знания, которые по-праву признаны компьютерным сообществом фундаментальными. Именно этим отличается матерый специалист от новичка. Матерый специалист не должен быть фанатом технологий, он должен хорошо разбираться в том, что он применяет, но с легкостью переходит на что-либо новое, действительно лучшее. Профессионал не зажат рамками технологий, которые навязывают ему решение, он анализирует задачу и выбирает ту технологию, которая максимально подходит к решению задачи.

З.Ы. Я совершенно не заморачиваюсь с тем, что является более выгодным, а что менее выгодным с точки зрения "инвестиций". Мне просто нравится копаться в чем-то новом, мне не нужно себя заставлять изучать что-то. В изучении нового для меня важна не цель (выучить), а сам процесс (изучать)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.