如何成为C ++库开发人员?

时间:2011-01-04 04:57:50

标签: c++ stl

我想问一下我应该挖掘哪些字段才能成为C ++库开发人员。我5年前就开始自学C ++了,我对它很感兴趣。在工作中我使用C#和Ruby,在学校我主要使用Java和非常少的C ++;但是,C ++总是我最喜欢的语言 我买了很多C ++书籍,一遍又一遍地阅读,这些书是:

  • 有效的C ++
  • 有效STL
  • 加速C ++
  • C ++模板
  • C ++编程语言......等

虽然我喜欢阅读C ++模板书,但材料太干燥,我觉得申请很困难。有时我想将它应用到我的项目中,但事实证明这是不必要的,更糟糕​​的是变得复杂并且难以维护 此外,我发现像STL这样的库实现起来非常困难。我能部分理解的最简单的一个是std::vector<>boost::array<>。其他图书馆就像一堆混乱。从我加入本网站的那天起,我意识到这里有很多C ++专家。那么你们可以分享一些如何学习和理解核心C ++的经验,以及开发编写C ++库的技巧吗?

谢谢,

2 个答案:

答案 0 :(得分:7)

学习用C ++编写代码的最好(也是唯一的)方法就是弄脏你的手。选择一个空闲的时间,没有人会对你造成伤害,当你处于真正的好心情时,打开Visual Studio(或者你正在使用的任何东西,XCode,NetBeans,或者什么),只是编码。

选择一个想法,并尝试实施它。从小处开始,打个招呼世界。尝试以不同的方式制作hello世界,也许使用矢量来存储字母。然后使用向量来存储单词。

让你的思绪徘徊,你的手指做编码。实验。你不会出错,而且你会比阅读一本书学到更多东西。

当你使用矢量时你会遇到一个问题并且去“哦,我希望在这个向量中有更快的方法来搜索这些100k字!”然后你会发现一张地图。也许那时你会好奇地想知道是否有比 更好的东西并找到哈希表。

很有趣:)

答案 1 :(得分:4)

尝试实现库。运用你从这些书中获得的知识。一个好的开始方法是编写一些包装器。例如,用于网络编程的C ++类库怎么样?在系统级套接字调用之上构建一个。你能写入网络就像写入输出流一样简单吗?

Socket sock("host", port);
sock << "hello, world" << std::endl;

考虑如何使您的图书馆比现有图书馆更好。 Google用于“使用C ++建立网络库”,阅读他们的文档并了解他们如何实现某些功能。找到缺失或实施不当的功能,并尝试提出更好的解决方案。在套接字类之上构建更高级的东西。例如,reactor framework for building scalable network servers。想一想如何在C ++中应用现有知识来构建这样的框架。当你遇到一个死胡同,阅读更多(书籍,论文和其他人写的代码)和....编写代码!