项目创意要擅长C ++

时间:2010-08-27 03:48:38

标签: c++ cgi

我想进入C ++团队工作。他们的工作是用C ++编写CGI(主要但不限于此)。我知道基本的C ++。在SO C++ book guide问题上阅读列表,我有一本朋友的三本书(我实际上有第一本书)。

  1. C ++编程语言 - Bjarne Stroustrup - 供参考
  2. C ++模板完整指南 - David Vandevoorde / Nicolai M. Josuttis
  3. 现代C ++设计 - Andrei Alexandrescu

    1. 我想知道是否有任何项目或想法,你可以告诉我,我可以实施,以便我做得更好。

    2. 我需要的设置。我有一个Macbook和一个个人糟糕的Ubuntu开发服务器机器。如果需要,我可以使用bootcamp来安装任何操作系统。

    3. 您能否就如何开始编写CGI(或任何教程)给我一些建议?


    4. 非常感谢。

      AJ

5 个答案:

答案 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文件)。

  1. 我认为这是一个非常有趣的问题,可以让你开始使用语言核心
  2. 缺乏依赖性将减少您可能无法理解的潜在复杂的第三方库习语和令人讨厌的事物(如库和链接)的干扰。另外,你脸上的C ++怪癖会减少。
  3. 在您拥有更多经验之后继续发展。返回,重构代码,添加更复杂的功能,第三方库(例如,编写JPEG输出,开始使用增强位,如智能指针)。

    冲洗,重复。

答案 2 :(得分:3)

  

回答问题的标题:)假设C ++ 03

来自Bjarnes网站:

1. New learning

2. Principles and Practice Using C++(应提供有关短程序/项目的想法)

3. Learning and teaching 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 ++”一书。它非常好,并且会为您提供有关最佳实践和要避免的内容的良好建议。