【问题标题】:Project ideas to become good at C++ [closed]擅长 C++ 的项目想法 [关闭]
【发布时间】:2011-04-04 14:48:17
【问题描述】:

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

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

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

  2. 我需要的设置。我有一台 Macbook 和一台个人蹩脚的 Ubuntu 开发服务器机器。如果需要,我可以训练营安装任何操作系统。

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

【问题讨论】:

  • 你编程过很多 C++ 吗?如果您还没有,那么 C++ 模板Modern C++ Design 可能有点高级。这两本书都很出色,但并不适合初学者。
  • @James + @AJ:我认为 Bjarne Stroustrup 的书也不适合初学者...
  • Macbook 应该没问题,只需安装 Xcode,就可以使用 C++ 编程了。
  • CGI 在这个问题中是计算机生成的图像还是通用网关接口?
  • @James 和@Billy:我知道 C++,但从未在任何公司担任过 C++ 程序员。我曾经是一名研究助理,写了大约。 2000 行 C++,仅此而已。简而言之,只要我学习,我就能得到它。

标签: c++ cgi


【解决方案1】:

让我添加到您的阅读材料列表中; 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 等通用库。

【讨论】:

  • 我相当肯定他的意思是计算机图形 CGI
  • @aaa,哦。为什么计算机图形是“CGI”而不是“CG”?
  • @Michael:计算机生成的图像。但是,我也认为 OP 意味着通用网关接口。这当然很难说。
  • 我喜欢寻找需要帮助的项目的想法。真的很喜欢它,但我需要照顾环境。我有一台 Mac。我应该为这些项目切换到 Ubuntu 吗?
【解决方案2】:

阅读 Scott Meyers 的《Effective C++》一书。它非常棒,并且会就最佳做法和要避免的事情向您提供很好的建议。

【讨论】:

    【解决方案3】:

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

    来自 Bjarnes 网站:

    1. New learning

    2. Principles and Practice Using C++(应该提供有关短期计划/项目的想法)

    3. Learning and teaching C++

    是的,如果您必须学习好的 C++,请在身边有一位优秀的审阅者。随身携带一份相关标准的副本 (open-std.org)

    【讨论】:

      【解决方案4】:

      精通 C++ 的最佳方法是……编写 C++ 代码。从一个没有任何外部依赖的简单光线追踪器开始(只需将输出写入 PPM 文件)。

      1. 我认为这是一个足够有趣的问题,可以让您开始使用语言核心,
      2. 缺少依赖项将减少您可能无法理解的潜在复杂的第三方库惯用语以及诸如库和链接之类的烦人事物的干扰。此外,您的 C++ 怪癖会更少。

      在您获得更多经验后,再以此为基础。返回,重构您的代码,添加更复杂的功能,第三方库(例如,编写 JPEG 输出,开始使用提升位,如智能指针)。

      冲洗,重复。

      【讨论】:

        【解决方案5】:

        在我看来,如果你做一些小项目使用

        您可以进入高级 C++ 主题,例如表达式模板。 该项目甚至不必做任何有用的事情,只要您能够将各个部分组合在一起以产生一些输出。

        如果您了解一些 C++,您可以通过单独使用 phoenix 将语言推向极限,从而获得很多乐趣。

        就想法而言,CGI 可能在数学方面很重,例如使用表达式模板编写并行积分算法。

        例如,您可以创建如下语法:

        integrate(x*x + sin(x), 0, 100, threads(4));
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-07-20
          • 1970-01-01
          • 1970-01-01
          • 2013-10-19
          • 2011-12-09
          • 1970-01-01
          • 2012-08-18
          • 1970-01-01
          相关资源
          最近更新 更多