学习新技术的最佳方法是什么?

我想知道什么是学习“新”技术的最佳方式(例如LINQ,WPF,WCF,AJAX,最新的C#3.0等)?

你是如何学到最好的? 是通过书籍,网络广播,在线文章,教程,示例还是动手实验?

另外,你如何确保你会记住学到的东西? (再读一本书/文章?深入挖掘你认为已经熟悉的话题?)

我很老式。 我仍然从找到一本好书开始,从头开始阅读,直到它过分依赖我在第一次阅读时没有掌握的东西,然后回去做实际操作。

一旦掌握了基础知识,博客,网络广播和在线文章就会出现。

你能做的最好的事情就是开始编码 。 那里有大量的信息:书籍,杂志,博客等。无论你做什么,不要只是阅读它们 – 跟随并编写示例代码。

学习的来源不是很重要,我读过坏书和好博客,而且我还阅读了优秀的书籍和危险的不准确的博客。

首先考虑一个项目来使用它。 当您尝试使用它来完成特定目标时,学习过程会发生巨大变化。

从那里你正在做的是研究驱动。 您可以查找任何书籍,网络广播等,告诉您如何在项目中执行下一步。

完成该项目后,您可以回过头来了解更多视角的技术内部工作原理。 (而且你更有能力检测一些作者为我们提供的总BS。)

我通常会对用户组(我们在英国有很多),会议或路演中提出的主题感到兴奋。 这样你就可以在最后向真正了解他们的东西的人提问。

然后,我要么在网上研究,要么购买一本电子书,并尝试编写“真正的”应用程序(即你一直想要写的’做’东西’,但还没有完成)。 如果我很幸运,我会为我正在处理的真实应用程序编写模块代码。

这是一个人在谈论它的灵感,它实际上真正使用它,并提供了一个引起我兴趣的现实世界的例子。

反复试验! 这是学习任何东西的最佳方式!

想想要学会游泳:你可以读很多游泳,但如果你不尝试,你将永远不会学习。

如果您从一本书中学习,请打开编辑器/ IDE并尝试该书的任何示例,即使它看起来很愚蠢。 那些愚蠢的例子将发展你的分析思维;)

我从来没有真正通过阅读来学习新技术 – 第一步始终是我在某个地方看到的想法,或者我想到的是我真的想看到实施。 在理想的情况下(为了最大的动力),你会发现有你想要的东西,但它还没有 – 然后你就开始着手(开始时慢慢地;-)并且在尝试完成你的项目时学习存在的各种来源(无论是书籍,博客,文章等对我来说真的不重要)。

  1. 找一些好的博客/播客/任何能够为您介绍新技术的内容。 这让您了解现有技术之间的相似之处/不同之处,并为您提供要查找的关键字以及对该技术的一般概述。

  2. 找一些带有源代码的非常简单的项目,让您了解正在运行的应用程序的工作原理,并在您尝试解决问题时为潜在的方向提供一点。

  3. 找到几个好的消息板(如SOFlow 8 ^ D),当遇到问题时可以使用它们。 如果你自己拼凑一些东西,它通常会有你需要的代码片段。

  4. 弄脏! 想出一个很棒的小项目,你会热衷于用新技术创建和构建它。 激情将帮助您解决这些棘手的问题,并在完成后为您提供一些个人吹牛的权利。 8 ^ d

这可能听起来很有趣,但这是我通常的学习路径。 我不会说它是最好的方式,但这是我如何做到这一点。

  1. 我抓住了一本只是划伤表面的书,对于绝对的初学者来说,就像在24小时或其他什么时候自学。 这让我有机会让用户了解术语并避免受到恐吓。

  2. 我在网上寻找一些video和教程,并练习/复制我看到的例子。

  3. 一旦你感到舒服,你就可以开始阅读该语言/技术的圣经。并且不要停止实施例子。

  4. 继续寻找免费的在线测试或问卷,让你对它充满信心。 这是StackOverflow进来的地方:)

对我来说最好的工作技巧:

  1. 一些网络广播,以快速了解如何做什么
  2. 以某种方式使用它,无论是在我的项目上还是在某些沙盒应用程序中
  3. 现在是时候深入了解技术:书籍和博客

对我来说不幸的是,唯一的方法是练习现实世界。

我可以阅读很多文章,并下载框架,编译器,样本等等,这是非常有帮助的,因为我知道技术是什么,但我只是不知道它,直到我必须使用它我的客户工作。

业余爱好项目,只是不适合我,因为要求总是“太软”,因为我设定了自己的要求,我倾向于“只需要”我所知道的。 但是当涉及到一个新客户时,他们会问一些我从未想过的事情,而且我必须找到如何做到这一点(或者如果它首先是可行的话)那么我可以说我已经学到了新东西。

对于您想要学习的每一项技术,创建一个您想要用它们制作的概念certificate。

例如,使用Winforms或Ajax创建自动完成的概念certificate。 在Remoting或Webservices技术之外,无需使用sql或低级tcp / ip管道,就可以自己进行如何与服务器通信的概念certificate。

学习如何做(写)事物,会给你一个真实而快速的学习方法。 谷歌和Stackoverflow是你的朋友,阅读了很多书。 对于与LINQ相关的东西,LINQ问题和答案的数量和质量非常好。

有关许多技术的概述,我会寻找技术播客。 他们比博客更容易跟上(虽然博客是另一个不错的选择)。

要获得有关特定技术的更深入知识,您应该为该主题创建播客。 您将比您想象的更快地了解它。

当我有一个目的时,我学得最好,所以从一个好的想法开始测试应用程序是最好的。 我将使用一个好的博客文章或2来让我去一些试验和错误! 很高兴回过头来使用书籍,网络广播等来改进我所学到的东西,但是没有什么比通过实际学习更好的了。 如果我用勺子喂太多,就更难理解。

这是我现在采取的方法,我认为这是一种非常精通技术的好方法:

  1. 阅读时阅读书籍并创建笔记。 我个人几乎总是使用Apress书作为我的第一本书,但每个人都有不同的口味。
  2. 根据您的笔记,开始在玩具项目中使用该技术,以便您可以触及所有重要主题。 如果你的笔记不足以让你完成这些迷你项目,那么它们还不够。 返回并回填您需要的任何笔记。
  3. 阅读另一本书,附上您的笔记,并填写第一本书中遗漏的任何内容。
  4. 开始在真实项目中使用该技术。

这似乎很多,但我认为它会帮助你在短时间内变得非常精通。 无论何时你有空闲时间,步骤1-3都可以慢慢完成。 因为你有一套(好的)笔记,你可以将记忆刷新到你离开的地方。

我认为最好的方法是做一些技术声称擅长的实际工作(WPF => Smart Client,ASP .Net => A Web Site)。
此外,如果您有一个正在运行的项目使用您想要了解的新技术的旧版本(Windows客户端到WPF,ASP到ASP .Net,Flash到Flex),迁移它会加速很多事情。
希望这可以帮助。

我想首先准备一本关于该特定技术的好书。 有时我不会阅读它的封面,只是阅读重要的部分和提示。 然后我列出了迄今为止我发现的任何新的有趣事实。 这是我的出发点。 从现在开始,我将继续玩这个技术并做一些事情,我也会关注那些有相关内容的博客或网站。

我认为学习技术最重要的部分是使用它并学习其最佳和最差的实践。

我有33%的听力/阅读率,67%的人在做。

阅读,收听播客等,直到您觉得自己能够很好地掌握技术的function。 然后找一个需要构建软件小部件的人,拥有灵活的时间表并且没有多少钱 ,如果他们同意使用Technology X构建它,那么可以以更低的费率为他们构建它。你可以学习中的技术一个现实世界的方式,他们得到一个将持续一段时间的解决方案。 您将拥有真正需求的真实用户,并且您将被要求构建在现实世界中有效的东西。 比业余爱好项目或教程好多了。 这就是我学习Silverlight的方式。