Интересно, как лучше всего изучить «новые» технологии (например, LINQ, WPF, WCF, AJAX, последние версии C# 3.0 и т. д.)?
Как научиться лучше всего? Это книги, веб-трансляции, онлайн-статьи, учебные пособия, примеры или практические занятия?
Кроме того, как убедиться, что вы запомните изученный материал? (снова читаете книгу / статью? углубляетесь в тему, которая, по вашему мнению, вам уже знакома?)





Я старомоден. Я все еще начинаю с поиска хорошей книги, читаю ее с самого начала, пока она не слишком сильно полагается на вещи, которые я не уловил при первом прочтении, а затем возвращаюсь и выполняю практические части.
Блоги, веб-трансляции и онлайн-статьи обычно появляются, когда я овладеваю основами.
Начните с разработки проекта, в котором его можно будет использовать. Процесс обучения кардинально меняется, когда вы пытаетесь использовать его для достижения определенной цели.
Отсюда то, что вы делаете, основано на исследованиях. Вы можете найти любую книгу, веб-трансляцию и т. д., В которой рассказывается, как сделать следующий шаг в вашем проекте.
Как только этот проект будет завершен, вы сможете вернуться и изучить внутреннюю работу технологии с гораздо большей точки зрения. (И вы лучше подготовлены к тому, чтобы определить общую тварь, которую предлагают нам некоторые авторы.)
Лучшее, что вы можете сделать, это начать кодирование. Существует огромное количество информации: книги, журналы, блоги и т. д. Что бы вы ни делали, не просто читайте их - следуйте инструкциям и кодируйте примеры.
Источник знаний не слишком важен, я читал плохие книги и хорошие блоги, а также я читал отличные книги и опасно неточные блоги.
Обычно я в восторге от темы, представленной в группе пользователей (у нас много таких в Великобритании), конференции или роуд-шоу. Таким образом, вы сможете в конце задать вопросы тому, кто действительно разбирается в своем деле.
Затем я либо ищу информацию в Интернете, либо покупаю электронную книгу и пытаюсь написать «настоящее» приложение (то есть такое, которое вы хотели написать, чтобы «делать что-то», но до этого не дошли). Если мне повезет, я кодирую модуль для реального приложения, над которым я работаю.
Это вдохновение от того, кто говорит об этом, кто на самом деле действительно его использует и приводит реальный пример, который пробуждает мой интерес.
Найдите пару хороших блогов / подкастов / чего угодно, что познакомит вас с новой технологией. Это позволит вам узнать сходства / различия между существующими технологиями и очень быстро даст вам ключевые слова для поиска и общий обзор технологии.
Найдите пару действительно простых проектов с исходным кодом, которые дадут вам представление о том, как работает работающее приложение, и потенциально могут указать вам правильное направление, когда вы пытаетесь что-то выяснить.
Найдите пару хороших досок сообщений (например, SOFlow 8 ^ D), к которым вы можете подключиться, когда столкнетесь с проблемами. В нем часто будут фрагменты кода, которые вам понадобятся, если вы сами собираете что-то вместе.
Запачкаться! Придумайте отличный небольшой проект, который вам захочется создать, и создайте его с помощью новых технологий. Энтузиазм поможет вам справиться с этими сложными проблемами и даст вам личное право хвастаться, когда все будет готово. 8 ^ D
Это может показаться забавным, но это мой обычный способ обучения. Я не скажу, что это лучший способ, но вот как я это делаю.
У меня есть книга, которая лишь поверхностно касается, что-то для абсолютных новичков, например, научитесь за 24 часа или что-то в этом роде. Это дает мне возможность познакомить пользователя с терминологией и избежать запугивания.
Я ищу несколько видео и руководств в Интернете и практикую / повторяю примеры, которые я вижу.
Как только вы освоитесь, можете начинать читать библии для этого языка / технологии и не прекращайте реализовывать примеры.
Продолжайте искать бесплатные онлайн-тесты или анкеты, чтобы убедиться в этом. Вот где приходит StackOverflow :)
методом проб и ошибок! Это ЛУЧШИЙ способ чему-либо научиться!
Думайте, как научиться плавать: вы можете МНОГОЧИТАТЬ о плавании, но если вы не попробуете, вы никогда не научитесь.
Если вы учитесь из книги, откройте свой редактор / IDE и попробуйте ЛЮБОЙ пример этой книги, даже если он выглядит глупо. Этот глупый пример разовьет ваше аналитическое мышление;)
Для обзора многих технологий я бы поискал технический подкаст. За ними легче следить, чем за блогами (хотя блог - еще один хороший выбор).
Для более глубокого изучения конкретной технологии вам следует создать подкаст на эту тему. Вы узнаете об этом быстрее, чем могли представить.
Лучшая техника работы для меня:
Я лучше всего учусь, когда у меня есть цель, поэтому лучше всего начать с хорошей идеи для тестового приложения. Я воспользуюсь хорошей записью в блоге или двумя, чтобы начать работу, а затем методом проб и ошибок! Приятно вернуться и уточнить то, чему я научился с помощью книг, веб-трансляций и т. д., Однако нет ничего лучше, чем обучение на практике. Если меня слишком много кормят с ложечки, это труднее понять.
К сожалению, для меня единственный способ - это практиковаться в реальном мире.
Я могу читать много статей и загружать фреймворки, компиляторы, образцы и т. д. И т. Д., И это очень полезно, потому что я знаю, что такое технология, но я просто не изучаю ее, пока мне не придется использовать ее на моя работа для клиента.
Хобби-проекты для меня просто не работают, поскольку требования всегда «слишком мягкие», то есть, поскольку я устанавливаю свои собственные требования, я склонен «требовать» только то, что я знаю. Но когда дело доходит до нового клиента, и он спрашивает о чем-то, что никогда не приходило мне в голову, и я должен выяснить, как это сделать (или, если это вообще возможно), тогда я могу сказать, что узнал что-то новое.
Мне никогда не удавалось по-настоящему изучить новую технологию, просто читая о ней - первым шагом всегда была идея, которую я где-то видел или которая приходила мне в голову, и которую я действительно хотел реализовать. В идеальном случае (для максимальной мотивации) вы обнаружите, что есть что-то, что вы хотите, но этого еще нет - тогда вы просто начинаете двигаться (вначале медленно ;-) и, пытаясь выполнить свой проект, учитесь у различные существующие источники (будь то книги, блоги, статьи и т. д., не имели для меня особого значения).
Я бы сказал, что 33% слушают / читают, 67% делают.
Читайте, слушайте подкасты и т. д., Пока не почувствуете, что хорошо разбираетесь в возможностях этой технологии. Затем найти того, кому нужен программный виджет, у которого гибкий график и небольшие деньги, предложите построить его для них по сниженной цене, если они согласятся, что он будет построен с использованием технологии X. Вы можете изучить технологию в реальном мире, и они получат решение, которое прослужит некоторое время. У вас будет реальный пользователь с реальными требованиями, и вам потребуется создать что-то, что работает в реальном мире. Намного лучше, чем хобби-проект или учебное пособие. Вот как я изучаю Silverlight.
Вот подход, который я использую сейчас, я думаю, что это хороший способ стать очень опытным в технологии:
Кажется, это много, но я думаю, что это поможет вам стать очень профессиональным за короткий период времени. Шаги 1–3 можно выполнять медленно, если у вас есть свободное время на работе. Поскольку у вас есть (хороший) набор заметок, вы можете обновить свою память до того места, где остановились.
Для каждого элемента технологии, который вы хотите изучить, создайте доказательство концепции того, что вы хотите из них сделать.
Например, создайте доказательство концепции автозаполнения с помощью Winforms или Ajax. Используя технологии удаленного взаимодействия или веб-сервисов, создайте собственное доказательство того, как взаимодействовать с сервером без использования sql или низкоуровневой сантехники TCP / IP.
Обучение тому, как делать (писать) вещи, даст вам реальный и быстрый способ чему-то научиться. Google и Stackoverflow - ваш друг, читайте много книг. Для вещей, связанных с LINQ, количество и качество вопросов и ответов LINQ здесь довольно хорошее.
Я думаю, что лучший способ - это проделать реальную работу, в которой, по утверждениям технологии, хороши (WPF => Smart Client, ASP .Net => Веб-сайт) .
Кроме того, если у вас есть работающий проект, использующий устаревшую версию новой технологии, которую вы собираетесь понять (клиент Windows в WPF, ASP в ASP .Net, Flash в Flex), ее миграция значительно ускорит процесс.
Надеюсь это поможет.
Мне нравится начинать с хорошей книги об этой конкретной технологии. Иногда я не читаю его от корки до корки, а просто читаю важные разделы и советы. Затем я составляю список всех новых интересных фактов, которые я обнаружил на данный момент. Это моя отправная точка. С этого момента я буду продолжать играть и кое-что делать с этой технологией, а также буду следить за блогами или веб-сайтами, на которых есть связанный контент.
Я думаю, что самая важная часть изучения технологии - это ее использование и изучение ее практик, как лучших, так и худших.
Я фанат методологии «делать что-то для того, чтобы учиться».