我怎样才能成为更好的C#程序员?

时间:2009-02-06 00:21:04

标签: c# code-complete

当您可以创建类并执行简单的操作(GUI,阅读文本文件等)时,我从哪里开始?我已经开始阅读Code Complete第2版了,它很棒,但更像是一本通用的编程书。我接下来应该学习哪些主题?

22 个答案:

答案 0 :(得分:51)

我认为,在某些时候,它不再是主题。这是关于做事。你必须编写代码,你必须写很多。

人们会经常告诉你在学习一门新语言时找到一些利基问题来尝试和解决,这很好,但如果有一个应用程序或应用程序的功能,你真的很喜欢使用或真正钦佩,尝试构建它(或部分)你自己。更重要的是,如果你发现自己想知道嘿,[这个应用程序]如何那么?! 尝试构建它。

您的许多项目可能永远不会在桌面之外看到光明,但您将拥有的学习,经验和工具将成为您可以随身携带到每个后续项目的东西。

你永远不会知道,其中一个小爱好项目最终可能会为某人解决问题。

答案 1 :(得分:23)

不要不同意那些说“写东西”的人,但接下来应该了解的一个主题是CLR的基本原理 - 所有这些库背后的引擎的工作原理。 Richter的“CLR Via C#”是一个很好的资源。

答案 2 :(得分:11)

编写桌面RSS阅读器。您将接触到许多不同的区域(解析文件,图形应用程序,HTTP,互联网的瑕疵),您实际上可能每天都会使用该结果。选择一个特定的目标或功能来帮助您比抽象的东西更快地学习。

答案 3 :(得分:9)

我同意目前为止的大多数答案,但我认为如果你想作为开发人员进行改进,你可以通过不运行独奏来获益。试着找一个可以指导你的人。多年来,我通过与比我更聪明,更有经验的程序员合作,在理解的深度上获得了最大的成功。 (他们仍然是:-))

答案 4 :(得分:8)

学习另一种语言并将学到的知识应用于C#。

F#,Scala,Haskell - 很多选择:)

答案 5 :(得分:6)

获取ReSharper,启用所有建议并理解它们。

答案 6 :(得分:4)

了解最佳实践和软件工程以及如何将它们应用于C#。

学习版本控制,TDD,领域驱动开发,持续集成,MVC,MVP,一些模式:外观,工厂,存储库与活动记录等。

学习可以帮助您避免重新发明轮子的工具:验证应用程序块,NHibernate等。

我几天前在CodeBetter找到了这个免费的电子书: link text

我还没有阅读所有内容,但它看起来很好看。

答案 7 :(得分:3)

尝试阅读Mono源代码,了解用C#编写的C#编译器的外观。您将学习很多关于语言,编译器和计算机体系结构的知识。这是带有源代码的项目的巨大好处 - 您可以从中学习。

答案 8 :(得分:2)

  • 与更好的程序员一起工作团队 - 获得就业
  • 开展大型开源项目。

我不同意这里的大多数人,通过自己构建东西来学习是最好的方法。

答案 9 :(得分:2)

自己编写代码,并阅读其他人编写的代码。但是,不是其他任何人;一个人,你确信他写的是好的,干净的,聪明的代码。

答案 10 :(得分:2)

编写好的单元测试并尽量使代码覆盖率尽可能高

答案 11 :(得分:2)

  • 阅读代码
  • 编写代码
  • 测试代码
  • 阅读书籍(some suggestions),博客等。
  • 重复

答案 12 :(得分:2)

另一个好方法是参与一个有多个成员的小项目(可能是朋友),这样你就可以互相学习,看看其他人是如何做的。

答案 13 :(得分:2)

查看stackoverflow的q / a,c#topic。 :-D

答案 14 :(得分:2)

访问CodePlex.comGitHub.com,查找可以为之做出贡献的开源项目。

答案 15 :(得分:2)

练习,查看开源项目,完全理解它的作用以及它是如何做到的,尤其是复杂的库,如模拟框架,ORM等等。

答案 16 :(得分:2)

编写代码,很多代码。而不是那些蓬松的小HelloWorld类型的程序。

找到您感兴趣的真实项目或您已经编写的可以转换为C#的内容并执行此操作。只有这样做(而且,不幸的是,犯了大量的错误)我们才能学习。

答案 17 :(得分:1)

如果你想成为一个更好的C#(替换为任何其他语言),可以使用大型应用程序,那种在其中具有某些功能的应用程序,你知道你不知道如何实现它们, 。围绕这些核心“坚果到裂缝”的所有简单方法也将对您有所帮助...在项目中大量交织的依赖关系中,习惯于思考和布局最终产品的架构总是好的。前期。

这不是特别与c#相关,但如果你想成为一个更好的开发者,这些项目(隐含地包括许多((c)精益)编码和测试等)是最好的学习理由。 / p>

如果没有客户希望“让你有机会”使用当前的技能组合来完成这样的项目,请继续(或者无论如何)并开始编写开源项目并与朋友,同事保持联系和stackoverflow这样的地方有关。

做好准备,并做出'错误'(正如你之后可能会判断出来的那样)...因为只有大量的错误让你看到它们之间的细长/多风路径。

话虽如此,学会不要过早地过度工程或过于完美主义。在考虑到某些影响条件等情况下,会产生错误,甚至可能会在最终产品中出现错误,并学习如何与工程师/开发人员一起生活。

答案 18 :(得分:1)

建议您阅读 C#深度。深入了解C#将极大地增强您对语言的理解。据传,作者Jon Skeet在这个网站上是潜伏者......

答案 19 :(得分:1)

最好的学习方法是实际上陷入困境并构建一些很酷的应用程序,网站等等。通过各种网站来学习你可能没有遇到的新东西仍然是一个好主意。

也许建立下一个脸书或谷歌:)

答案 20 :(得分:0)

CLR通过C#一本好书!!帮助(仍然帮助)我理解语言也可以下载c#语言规范书

答案 21 :(得分:0)

使用新语言,尝试解决一些Project Euler问题。在同时改进数学编码!