发展成为程序员

时间:2008-11-28 15:08:59

标签: c++ mfc stl

我已经学习了三个月的C ++,并在那段时间为我的公司创建了许多应用程序。我认为自己对C ++ / MFC和STL非常熟悉,但我不仅仅想成为一名优秀的程序员,我想成为一名优秀的程序员。我有一些关于最佳实践的书籍,但我想知道是否有人可以建议阅读有助于他们的材料以及应该鼓励的任何学科?

谢谢!

18 个答案:

答案 0 :(得分:17)

答案 1 :(得分:14)

对于C ++,Scott Meyers books非常好,可以帮助您进入下一个级别。

如果您还没有C++ by Bjarne Stroustrup, 3rd Edition

答案 2 :(得分:8)

答案 3 :(得分:4)

进入c ++ 3个月后你已经习惯了吗? Sheesh,我已经学习了一年多的c#并且已经学习了很多微软课程,而且我对它不太满意。

话虽这么说,你会听到Code Complete作为一本非常好的书而被抛出。我现在正在阅读它。

答案 4 :(得分:4)

答案 5 :(得分:3)

John Lakos的大规模C ++软件设计为设计方法提供了指导,使您的C ++更易于维护。这是非常沉重的,但你可以深入了解并仍然获得一些好处。

答案 6 :(得分:2)

有些偏离主题:我想提及一些需要考虑的广泛主题,而不是建议学习书籍。

  • 线程。如果你使用MFC,这个并不是很需要,但在许多其他领域它是不可或缺的。线程API的机制很容易掌握,但学习所有角落案例需要花费大量的时间和实践。

  • Closures,Map-Reduce和其他类似lisp的技术。了解它们是什么,C ++中不支持它们的原因,以及它们在C ++中的模仿方式(仿函数以及许多其他有状态回调对象的情况)。为此我实际上有一本书:“计算机程序的结构和解释”。

  • 命令行。这可以让您了解何时不编码自己的程序。命令行将是Unix命令行 - 我不知道MS在这方面的最新实验,但是cmd.exe很糟糕。获取Cygwin并开始试验。

  • 脚本语言。这可以让您了解何时不在C ++中编程。我最喜欢的是Perl,但很多人都说Python,Ruby和诸如此类的东西。嘿,如果你愿意的话,学习XSLT吧!

我确信我遗漏了其他方面。我将此标记为社区Wiki - 随意添加。

答案 7 :(得分:1)

我已经在VB.net上阅读了几本(不完整但有些部分)的oreilly书籍,他们非常好,但如果你想成为专业人士并有时间...... 您可以试用MSDN论坛,帮助其他人并与他们讨论困难和复杂的问题,我认为这是最好的方式..

答案 8 :(得分:1)

学习另一种语言。即使你不会使用它,它也非常适合开心。

我建议Lua,Scheme和Python。但几乎所有其他事情都可以。 (与C最不同,最好)

答案 9 :(得分:1)

好博客: Guru of the Weekall the books by Herb Sutter。那些会给你很多咀嚼的东西。

Alexandrescu的

Modern C++ Design如果你想要对你还不知道的事情有一个很好的感受,而且可能不想知道。

Code Kata用于练习!

答案 10 :(得分:1)

Josuttis和Vandevoorde - 模板:完整指南

答案 11 :(得分:1)

正如我所见,没有人提到布鲁斯·埃克尔的精彩书籍“用C ++思考”。恕我直言,它是开始你的C ++开发的最佳书籍之一。从我的观点来看,第一卷对第二卷更有帮助,但两者都值得一读 http://www.amazon.com/Thinking-C-Introduction-Standard-One/dp/0139798099/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1227890306&sr=8-1

答案 12 :(得分:1)

我很多人都可以推荐更多现代,最新的书籍。但我仍然推荐Margaret A. Ellis& Bjarne Stroustrup。

ARM于90年出版。它在模板方面有点过时了。 STL(显然)缺席。 (The Annotated C++ Reference Manual

然而,ARM很便宜(使用)。 (运输将超过本书的成本。)其信噪比仍然不在规模范围内。它非常善于挖掘C ++的肮脏区域,解释所做的事情。这是为什么。

我仍然用它作为参考。我用Though the website at sgi.com does a good job of covering STL!对它进行排名。

答案 13 :(得分:1)

Dietel / Dietel“如何编写C ++程序”......我的书桌上仍然有这本书(10年后)......我每隔一段时间重读一章。我肯定会像其他人所说的那样获得完整的代码。事实上首先阅读。

答案 14 :(得分:1)

为了更好地理解面向对象,请花一些时间在Smalltalk中。 Squeak是免费下载的。然后阅读Richard P. Gabriel的软件模式,然后他的对象失败了。

答案 15 :(得分:1)

用C ++思考 - Bruce Eckel Symfonia C ++标准 - JerzyGrębosz

答案 16 :(得分:1)

如果你什么都不做,请编程。

如果您没有阅读有关编程的内容以及当您感兴趣的内容时,请使用该知识实现某些内容。我发现这是真正设置主体的唯一方法。

在博客上保持最新状态可能很有趣,但这是分散的知识。它似乎分散了注意力而不是帮助。但结合谷歌和研究某些特定内容的愿望可以真正扼杀大量的信息。但是,不要只订阅很多RSS订阅源,并期望会变得更好。

我认为真正研究特定主题有助于扩展您的能力。吸引你的研究主题,满足人们做像你这样的事情(会议,用户组,irc,facebook,stackoverflow等),最重要的是练习你的艺术。

答案 17 :(得分:0)

您可以查看Boost库以及一些有关它的书籍。虽然这可能不是你想到的,IMO,Boost库是精心设计的现代C ++库的例子,它们使用该语言的功能,就像它们应该用来创建最有效的解决方案一样。他们的问题领域。当然,有一些奇怪的库,比如预处理器和MPL,让你想知道你是否会对它们有任何用处,但它们都非常好。根据我自己的经验,探索图书馆及其文献让我深入了解了如何有效地使用C ++。

Boost Beyond the C++ Standard Library: An Introduction to Boost