开始学习C#的最佳方法是什么?

时间:2009-12-28 00:05:29

标签: c#

我对vb 6和vb.net的编程经验不多。请告诉我成为专家C#程序员的最佳方法,我知道这需要很长时间。

6 个答案:

答案 0 :(得分:10)

想想你如何学习人类语言 - 阅读,写作,口语和听力。

  • 阅读代码。阅读文章。阅读例子。如果您有经验,请查看您使用的某些项目的源代码。
  • 编写代码。玩你读过的例子。修改它们。解决Project Euler中的问题。想想你自己的项目,然后尝试解决这些问题。
  • 谈论代码。关于它的博客。告诉你的朋友。看看你是否可以给你的祖母留下深刻的印象。现在试着打动你的教授。了解如何与不同类型的人沟通编程。
  • 倾听其他程序员的意见。他们中的许多人拥有比你更多的经验,并且有用的东西可以说你可以学习。学习他们使用的词汇。与他们讨论你的想法。

实践。实践。实践。

Google是你的朋友。

答案 1 :(得分:1)

首先下载http://www.microsoft.com/express/并开始编程。如果您没有自己的项目或其他人想要完成的项目,请开始查找流行的算法并实施这些算法。尝试实现某些设计模式。这种方式而不仅仅是专注于语法,你的学习更多的是一般的编程。

答案 2 :(得分:1)

即使我觉得这个帖子上的其他答案已经很好地覆盖了基础,在回答一个相当“模糊”,甚至“天真”的问题方面:我将添加另一个意见(稍微过长)只是一个评论)。

我恭敬地不同意一些帖子,这些帖子暗示了学习编程语言来学习口语或书面语言的类比。 SO不是讨论语言理论的地方,它与进化,认知结构的关系,以及乔姆斯基和Pinker等人的工作。这不仅暗示了语言学习的“天赋”,而且暗示了“禀赋”(遗传,甚至,甚至“气质”)的变异,以及它与环境的动态互动,以及“机会的发展窗口”。学习可以以惊人的加速率进行,对语素能力与音素能力的差异有所贡献等。

但是,请允许我注册假设,有许多方法可以将学习编程语言与学习口语和书面语言的类比更多地称为“全能”这掩盖了复杂性,而不是一个有用的工具。

另一方面,我怀疑(假设)一个掌握了多种语言/书面语言的人确实已经形成了某些认知结构和技能可能 “学习编程语言。

在我看来,上述两段并非本质上相互矛盾的陈述。

一般而言,imho编程也不会对学习数学或几何学有所帮助,这些数学或几何学将结构从公理或基本假设构建到有时可以“正式”证明或验证的复杂系统中。当然,有一些“稀有鸟类”从Knuth或Gamma等开始。人。和“设计模式”,“努力工作”到“现实世界”:)

我的“投票”从一本好书开始,并且,作为Mark Byers建议,将其与实践相结合,测试自己,接受像Mark提到的Euler项目那样的问题,以及,是的,当然,正如马克建议的那样,研究其他人的代码。

但问题在一开始就是,imho:如何知道哪些代码适合学习

对我来说,答案就是:研究由Jesse Liberty提供的非常好的书籍提供的代码示例,例如:来自O'Reilly的"Programming C#"最新版(第3版)。注意:我的理解是第四个。版本将于2010年3月到期。

作为编程语言的老师,imho Jesse有着不同寻常的天赋,能够以巧妙的方式“调整”材料的引入,以正确的顺序选择和呈现正确的例子,以及他的清晰的显着礼物技术写作。

CodeProject文章是学习代码示例的绝佳资源。在您感兴趣的区域中查找其他用户评分非常高的文章,并且特定于C#。

自由"C# 2005 : A Developers's Notebook"鲜为人知的书籍是一本很棒的资源(同样,imho,在图形设计和书籍结构方面最令人着迷的书之一,曾经在任何技术领域都有过)。这是一系列“练习”,我将与音乐中的“练习曲”进行比较:每个练习演示一个主题,挑战你理解这个主题的一个好例子,每个主题都是真正有用的东西。 “现实世界”的编程。

imho,一旦你有了“脚踏实地”,一百个小时左右的学习和实践.NET:飞行,不要走路,在Jon Skeet's "C# in Depth"发布的“guru-level”曼宁他也是imho,是一位出色的技术作家,他与Liberty分享了选择性展示材料的天赋,并有自己特别的,独特的礼物,用于“走出书本直接与你交谈”,解决了各种各样的问题。当你遇到更难的材料时,你可能正在思考。我应该注意到,我觉得自己距离掌握这本书的内容还有很长的路要走,这让我对理解它有了兴趣。在Skeet的写作中,有一个机智和幽默的元素,根据我的经验,在技术书籍中极为罕见。

请注意:免责声明:虽然我曾担任Addison-Wesley的付费顾问,负责两本主要.NET书籍的技术编辑,但我从未为O'Reilly或Manning工作过,或者收到了他们的“comp”副本书(该死的:)。

我必须,尊敬地,不同意Albahari和Albahari(也是O'Reilly;我相信第4版。现在已经出版:我只见过第3版)的“C#in a Nutshell”的建议:我认为对于.NET的新手来说,这将是一个非常不合适的工具。另一方面,当你学习Linq时:你会发现,imho,Albahari's website和LinqPad的免费版本是帮助你“进入”并探索Linq的最酷的事情。

祝你好运!

答案 3 :(得分:0)

毫无疑问,与学习VB6和VB.NET的方式相同。拿起一本书,然后开始阅读。它没有什么根本不同,需要任何深奥的学习方法。在巴恩斯和贵族蹲下几个小时之前,他们已经好好地蹲了下来并且买了一本书。你也可以在http://msdn.microsoft.com/en-us/vcsharp/aa336809.aspx左右看看并稍微阅读一下。

如果你已经使用过VB.NET,那么C#对你来说应该很自然。语法会有所不同,但对象,方法等都会很熟悉。查看MSDN上的C#教程:http://msdn.microsoft.com/en-us/library/aa288436(VS.71).aspx

哦,欢迎来到StackOverflow!

答案 4 :(得分:0)

如果您已经熟悉其他编程语言,那么O'Reilly的“In a Nutshell”书籍通常是一个很好的起点。 “C#in a Nutshell”既是一个很好的介绍,也是一个很好的参考。

答案 5 :(得分:0)

下载Charles Petzold的.NET Book Zero并从头到尾阅读,即使您认为某个特定区域有一点点,也不要跳过任何内容。