我是一名中级 c++ 程序员并使用 ACE 完成了一些工作,现在我想彻底学习其中一个库,以便在我的职业生涯中取得进步。这就是为什么我需要你的帮助来做决定,我应该首先学习什么。还请考虑我的目标是成为专家网络程序员和协议设计师。提前感谢您的时间和友好的回答。
1 回答
这可能不是您要寻找的答案,但我强烈建议您在职业目标方面不要人为地限制自己太多。弄清楚你希望你作为程序员的职业生涯能持续多久,然后问自己是否 (a) 真的可以看到自己只在这段时间内进行网络编程,以及 (b) 你是否完全相信一个库您选择的深入知识将能够满足您现在在您的职业生涯中的剩余需求,而不会停滞您的职业生涯。
从长远来看,能够维持您的编程生涯的不是对一两个库的深入了解,而是您作为程序员的整体能力。库是工具(除非您是库设计师),就像编程语言是工具(除非您是语言设计师)一样,优秀程序员的一个标志是她或他有能力为任务选择合适的工具。
综上所述,我确实建议每个 C++ 程序员至少熟悉 boost 存在的事实以及一些核心库,如智能指针库、正则表达式等。我不希望任何为我工作的人成为 Boost 各个方面的专家,但我确实希望即使是相当缺乏经验的 C++ 程序员也知道他们在哪里可以找到它,并且他们会更好地使用来自 Boost 的代码,而不是尝试编写自己的池内存分配器。我给出的示例可能看起来并不直接适用于最狭义的网络编程,但它们肯定会在大多数非平凡规模的程序中使用。
跟上 Boost 的另一个好理由是,许多最终将/可能进入 C++ 标准库的技术都源自 Boost。密切关注 Boost 的发展方向将使您能够密切关注 C++ 社区的某些发展,因为 C++ 中仍在开发新的使用习惯;该语言及其规范用法不是“固定的”,至少目前还没有,如果您计划作为 C++ 程序员的长期职业生涯,这也是您必须跟上的事情。