C++是我真正进入的第一种编程语言,但我的大部分工作都是学术或游戏编程.我居住的大多数编程工作都需要Java或.NET程序员,除了基本语言之外,我对他们需要什么技术有相当好的了解.例如,Java程序员可能需要了解EJB,Servlets,Hibernate,Spring以及其他技术,库和框架.
但是,我不确定C++.在现实生活中,对于一般的业务编程,除了语言特性之外,C++程序员还需要了解什么?像Win32 API,某些库,框架,技术,工具等等.
编辑:当我说基本语言时,我也想到了标准库,对不起,如果它错了或不清楚.我想知道是否有更多特定的域要求类似于Java或.NET程序员可能需要学习的所有技术,以及C++程序员通常需要知道的内容.我同意标准库和Boost是必不可少的,但除此之外还有什么或者每个公司/项目/域都有所不同吗?
Mac*_*Mac 33
至于每种语言,我认为有三个相互关联的知识水平:
aku*_*aku 16
其他技术清单在很大程度上取决于项目类型.您肯定会与SO进行一些互动,因此您需要了解您所在环境的API.
至于数据访问和其他东西,有很多不同的解决方案.在这个意义上,C++比一些管理的lang更丰富.99%的旧流行系统都有C/C++接口.
在您对我的回答的评论中澄清了您的问题后,我可以建议:
作为C++程序员应该知道的技术(因此在技术上比较小的程序员知识更多;)):
性能问题 - 什么使事情变得缓慢,如何找到并解决这些问题.我还指的是诸如上下文切换,缓存行,优化搜索,内存使用和约束以及普通VB/C#开发人员不关心的类似内容.
线程问题 - 如何从多线程应用程序中获得最大收益,如何检测和修复滥用问题.
低级通信 - 特别是能够连接到其他人没有为其编写工具包的模糊系统(特别是无线电通信),延迟和带宽管理.
否则,对于特定工具 - 它取决于您的目标,Windows开发与Linux不同,与嵌入式不同.
这将在很大程度上取决于所使用的平台和其他约束条件。通常,优秀的(C ++)程序员可以(或应该)在很短的时间内学习平台特定的API。对于C ++,了解不同的工具链(例如Windows程序员也应该了解GCC工具链)和编译器之间的差异就显得尤为重要。程序员还应该了解该语言的局限性和与平台有关的行为。
对于库,C ++程序员绝对需要了解STL和Boost。没有讨论。
| 归档时间: |
|
| 查看次数: |
18356 次 |
| 最近记录: |