【问题标题】:What is the best way to start learning C#?开始学习 C# 的最佳方式是什么?
【发布时间】:2017-01-03 14:06:04
【问题描述】:

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

【问题讨论】:

标签: c#


【解决方案1】:

想想你是如何学习人类语言的——阅读、写作、口语和听力。

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

练习。实践。练习。

Google 是你的朋友。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      尽管我觉得这个线程上的其他答案已经很好地涵盖了基础,但就回答一个相当“模糊”甚至“幼稚”的问题而言:我将添加另一个意见(有点太长了只是作为评论)。

      我非常不同意一些帖子,这些帖子暗示了学习编程语言与学习口语或书面语言的类比。 SO 不是讨论语言理论及其与进化和认知结构的关系以及乔姆斯基和平克等人的工作的地方。 al.,这不仅表明了语言学习的“先天性”,而且还表明了“禀赋”(遗传,是的,甚至是“气质”)的变化,以及它与环境的动态相互作用,以及“发展的机会之窗”,其中学习可以以惊人的速度进行,对语素与音素能力的贡献不同,等等。

      但是,请允许我提出一个假设,在很多方面,学习编程语言与学习口语和书面语言的类比更像是“包罗万象”这掩盖了复杂性,而不是有用的工具。

      另一方面,我怀疑(假设)一个掌握了不止一种口语/书面语言的人确实已经发展了某些可能“有用的认知结构和技能” “在学习编程语言时。

      在我看来,以上两段本质上并不矛盾。

      恕我直言,编程一般也不与学习数学或几何学相提并论,后者从公理或基本假设将结构构建成有时可以“正式”证明或验证的复杂系统。当然,也有一些“稀有鸟类”是从 Knuth 或 Gamma 等开始的。人。和“设计模式”,并“努力工作”到“现实世界”:)

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

      不过,一开始的问题是,恕我直言:如何知道哪些代码适合学习

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

      恕我直言,Jesse 作为一名编程语言教师具有非凡的天赋,能够以娴熟的方式“加快”材料的引入速度,以正确的顺序选择和呈现正确的示例,并且在他的语言中具有非凡的清晰天赋技术写作。

      CodeProject 文章是学习代码示例的绝佳资源。在您感兴趣的领域中寻找其他用户评价很高且专门针对 C# 的文章。

      Liberty "C# 2005 : A Developers's Notebook" 的鲜为人知的书是一个极好的资源(恕我直言,它是任何技术领域中最引人入胜的平面设计和书籍结构方面的书籍之一)。这是一系列“练习”,我将其与音乐中的“练习曲”的概念进行比较:每个练习都展示了一个主题,挑战您理解该主题的一个很好的例子,每个主题确实对您有用“真实世界”的编程。

      恕我直言,一旦你“脚踏实地”学习和实践 .NET 一百小时左右:飞,不要走路,通过曼宁发布的Jon Skeet's "C# in Depth" 达到“大师级” .恕我直言,他还是一位出色的技术作家,他与 Liberty 分享了选择性呈现材料的天赋,并且有他自己的特殊、独特的天赋,可以“走出书本直接与你交谈”,解决各种问题当您遇到更难的材料时,您可能正在考虑。需要说明的是,我觉得自己离掌握这本书的内容还有很长的路要走,这激起了我理解它的欲望。在 Skeet 的作品中,有一种机智和幽默的元素,根据我的经验,这在技术书籍中也是极为罕见的。

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

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

      祝你好运!

      【讨论】:

      • 首先,当然感谢您的客气话。我无法开始知道学习编程语言是否与学习“自然”语言有任何过程或结构类似物,尽管这可能是一个有趣的实验,看看是否有一个理想的年龄以及那个年龄是否大致相同作为语言习得(我会感到惊讶)。 IAC,虽然我不能评论哪本书 我同意一个好的介绍和实践和(如果你能得到它)导师对许多人来说是一条成功的道路。在书上,我只会说在您购买之前进行审查。 -杰西
      【解决方案4】:

      毫无疑问,就像您学习 VB6 和 VB.NET 一样。拿起一本书,开始阅读。没有什么根本不同需要任何深奥的学习方法。只是在 Barnes and Noble 以老式的方式蹲了几个小时,然后崩溃并买了一本书。您也可以在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!

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

          下载 Charles Petzold 的 .NET Book Zero 并从头到尾通读一遍,即使您认为自己对某个特定领域有一定了解,也不要跳过任何内容。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-07-12
            • 2022-06-16
            • 1970-01-01
            • 2011-01-11
            • 2010-11-04
            • 2010-09-14
            • 1970-01-01
            相关资源
            最近更新 更多