我想进入C ++团队工作。他们的工作是用C ++编写CGI(主要但不限于此)。我知道基本的C ++。在SO C++ book guide问题上阅读列表,我有一本朋友的三本书(我实际上有第一本书)。
我想知道是否有任何项目或想法,你可以告诉我,我可以实施,以便我做得更好。
我需要的设置。我有一个Macbook和一个个人糟糕的Ubuntu开发服务器机器。如果需要,我可以使用bootcamp来安装任何操作系统。
您能否就如何开始编写CGI(或任何教程)给我一些建议?
非常感谢。
AJ
答案 0 :(得分:6)
让我添加您的阅读材料清单; C++ FAQ Lite绝对是学习C ++细节的最佳资源。它既可作为旧计时器的参考,也可作为初学者的介绍。我强烈建议您尽可能多地阅读它,并尝试一些小例子来演示在加入实际项目之前提到的每个功能。
一旦您对该语言感到有些自在,我建议您查看Github并查看是否有任何需要帮助的C++ projects。至于计算机生成的图像或公共网关接口,这两者都是语言无关的。这些可以用任何编程语言编写,但不同的编程语言将有不同的现有库来处理它们。我建议你阅读这个主题,以便更好地理解标准/算法(取决于你所指的那两个)。一旦您对该主题更熟悉,您就应该更好地理解相关库的文档。
至于开发环境,我发现Ubuntu是最容易配置的,因为几乎所有设置都可以简化为一系列apt-get install
命令。例如:
sudo apt-get install build-essential
无论您使用哪种操作系统,您都可能希望在可预测,可重现的环境中构建和运行代码。我还应该指出,您开发的环境不需要与实际构建和运行代码的环境相同。例如,您可以在Mac OS X上编写所有代码,但是在Docker容器中构建和执行代码,该容器运行具有预设,可重现的构建/运行配置的Ubuntu实例。
在C ++(以及其他代码)中实现CGI的资源方面,请查看我网站上的C++ resources页面。它列出了几种用于网络,计算机图形和其他C ++任务的工具,以及Boost和Qt等通用库。
答案 1 :(得分:4)
在C ++中变得更好的最好方法是......编写C ++代码。从没有任何外部依赖关系的简单光线跟踪器开始(只需将输出写入PPM文件)。
在您拥有更多经验之后继续发展。返回,重构代码,添加更复杂的功能,第三方库(例如,编写JPEG输出,开始使用增强位,如智能指针)。
冲洗,重复。
答案 2 :(得分:3)
回答问题的标题:)假设C ++ 03
来自Bjarnes网站:
2. Principles and Practice Using C++(应提供有关短程序/项目的想法)
是的,如果你必须学习优秀的C ++,请有一位优秀的评论员。保留相关标准的副本(open-std.org)
答案 3 :(得分:2)
在我看来,如果你使用
做一些小项目你可以进入像表达模板这样的高级C ++主题。 只要你能够把碎片放在一起产生一些输出,项目甚至不需要做任何有用的事情。
如果你了解一些C ++,那么只用凤凰就可以将语言推向极限。
就想法而言,CGI很可能在数学方面很重要,例如尝试使用表达模板编写并行集成算法。
例如,您可以创建如下语法:integrate(x*x + sin(x), 0, 100, threads(4));
答案 4 :(得分:2)
阅读Scott Meyers撰写的“Effective C ++”一书。它非常好,并且会为您提供有关最佳实践和要避免的内容的良好建议。