当您可以创建类并做一些简单的事情(GUI、阅读文本文件等)时,我该从哪里开始?我已经开始阅读 Code Complete 2nd Edition,它很棒,但更像是一本通用的编程书籍。接下来我应该学习哪些主题?
22 回答
我认为,在某些时候,它不再是关于主题的。这是关于做事。您必须编写代码,并且必须编写很多代码。
人们经常会告诉你在学习一门新语言时找到一些小众问题来尝试解决,这很好,但是如果有一个应用程序或应用程序的功能你真的喜欢使用或非常欣赏,那么尝试构建它(或部分它)你自己。更重要的是,如果您发现自己想知道嘿,[此应用程序] 是如何做到的?!尝试构建它。
您的许多项目可能永远不会在您的桌面之外看到曙光,但是您将拥有的学习、经验和工具将是您可以带到每个后续项目中的东西。
但是,您永远不会知道,其中一个小爱好项目最终可能会为某人解决问题。
不要不同意那些说“写东西”的人,但是接下来你应该学习的一个主题是 CLR 的基本原理——所有这些库背后的引擎的工作原理。一个很好的资源是 Richter 的“CLR Via C#”。
编写一个桌面 RSS 阅读器。您将接触到许多不同的领域(解析文件、图形应用程序、HTTP、互联网的脆弱性),并且您可能实际上每天都会使用这些结果。选择一个特定的目标或特征来努力将帮助你比抽象的东西更快地学习。
到目前为止,我同意大多数答案,但是我认为,如果您想作为开发人员进行改进,则可以通过不单独运行而受益匪浅。试着找一个可以指导你的人。多年来,通过与比我更聪明、更有经验的程序员合作,我在理解的深度上取得了最大的进步。(他们仍然是:-))
学习另一种语言并将学到的知识应用于 C#。
F#、Scala、Haskell - 很多选择:)
获取 ReSharper,启用所有建议并了解它们。
学习最佳实践和软件工程以及如何将它们应用到 C#。
学习版本控制、TDD、领域驱动开发、持续集成、MVC、MVP、少数模式:外观、工厂、存储库与活动记录等。
学习可以帮助您避免重新发明轮子的工具:验证应用程序块、NHibernate 等。
几天前,我从 CodeBetter 的人那里找到了这本免费的电子书: link text
我还没有读完它,但它看起来像一个很好的阅读。
尝试阅读 Mono 源代码以了解用 C# 编写的 C# 编译器的外观。你会学到很多关于语言、编译器和计算机体系结构的知识。这是一个有源代码的项目的巨大好处——你可以从中学习。
访问CodePlex.com和GitHub.com并寻找您可以贡献的开源项目。
查看stackoverflow的q/a,c#主题。:-D
最好的学习方式是真正陷入困境并构建一些很酷的应用程序、网站等等。跟上各种网站以学习您可能没有遇到过的新东西仍然是一个好主意。
也许建立下一个 facebook 或 google :)
还有一个好方法是参与一个有多个成员(可能是朋友)的小项目,这样你就可以互相学习,看看其他人是如何做他们的事情的。
- 阅读代码
- 编写代码
- 测试代码
- 阅读书籍(一些建议)、博客等。
- 重复
编写好的单元测试并尝试尽可能高的代码覆盖率
自己写代码,读别人写的代码。但是,不是其他任何人;一个你确信他写出好的、干净、聪明的代码的人。
- 与更好的程序员一起工作- 获得工作
- 从事大型开源项目。
我不同意这里的大多数人的观点,即通过自己构建东西来学习是最好的方法。
写代码,很多。而不是那些毛茸茸的小 HelloWorld 类型的程序。
找到一个您感兴趣的真实项目或您已经编写的可以转换为 C# 的项目并执行此操作。只有通过实践(不幸的是,犯了很多错误),我们才能学习。
实践,看看开源项目,完全理解它是做什么的以及它是如何做到的,尤其是复杂的库,比如 mocking 框架、ORM 等
CLR 通过 C# 一本好书!帮助(仍然帮助)我了解了很多语言你也可以下载c#语言规范书
如果您想成为更好的 C#(替换为任何其他语言),请在大型应用程序上工作,这种应用程序具有某些“必须”功能,您知道您还不知道如何实现它们。围绕这些核心“坚果到破解”的所有简单内容也会对您有所帮助.. 习惯于在项目中考虑大型、相互交织的依赖关系总是很好的,这会迫使您思考和布局最终产品的架构前期。
这不是特别与 c# 相关,但如果你想成为一个更好的开发人员,这类项目(隐含包括大量 ((c)lean) 编码和测试等)是最好的学习基础。
如果没有一个客户想“给你机会”用你目前的技能来从事这样的项目,那么继续(或无论如何)开始在开源项目上编码,并留住朋友、同事和类似的地方涉及stackoverflow。
准备好并敞开心扉去犯“错误”(因为你可能会在之后判断它们)......因为只有无数错误才会让你看到它们之间的狭窄/多风路径。
话虽如此,学会不要过度设计或过早变得过于完美主义。会出现错误,考虑到某些影响条件等,错误甚至可能保留在最终产品中,作为工程师/开发人员学会忍受。
建议您深入阅读 C#。这是对 C# 的深入探讨,将极大地增强您对该语言的理解。据传作者 Jon Skeet 是这个网站的潜伏者……
使用一种新语言,尝试解决一些Project Euler问题。同时提高数学和编码!