代码之家  ›  专栏  ›  技术社区  ›  Bjorn

如果我有一点其他编程经验,学习C++最好的方法是什么?[关闭]

c++
  •  21
  • Bjorn  · 技术社区  · 15 年前

    只是想一些关于你如何看待我的学习C++的策略的想法。虽然我知道掌握一门编程语言需要很多年的时间,但我只是想尽快达到我能被认为胜任的程度。为什么这么快?当我说 迅速地 我真的是在说我是有责任的,我不想让它永远花在永远不会发生的地方。如果要花五年时间才能胜任,那就需要五年时间。我不指望24小时或30天。

    关于我:我没有CS学位,我有人类学学位和图书馆学硕士学位。学习诸如大O符号之类的CS基础知识,以及二进制树和链表、排序算法之类的基础知识是一个挑战。很可能没有什么能代替好的C学位。:(我有多年的编程经验,从2001年的php开始,2003年的actionscript,不久之后的javascript。我已经用python编写程序两年了,我已经学习了C语言(通过阅读K&R书籍和编写一些程序),但我可能不会受雇于C语言工作。最近还学习了Objective C.I,目前在一个网站上担任javascript&python&css开发人员。

    无论如何,这是我的策略:读Stroustrup书(我刚开始的第一部分),同时开始一个简单的C++项目,同时也做了很多StruouUp练习。

    思想?

    13 回复  |  直到 10 年前
        1
  •  25
  •   Matt    10 年前

    Bjarne的书非常精彩,尤其是C++语法,但真正能让你成为一个称职的C++程序员的是迈尔斯。 Effective C++ . 了解了。读它。

    我也没有CS学位,但我在硅谷的一家初创公司工作。这是可能的,你只需要意识到外面发生了什么,永远不要停止学习。许多毕业于计算机科学学位的学生最终都使用了他们不学的语言,所以一定要学习基础知识。如果你听到一些你不熟悉的事情,一定要找到一本好书和一家咖啡店,然后去那里。C++会及时出现——Stroustrup和迈尔斯,你有90%的擅长C++的能力。

        2
  •  16
  •   Stack Overflow is garbage    15 年前

    我通常的建议是保持C和C++的独立性。不要假定C建议或最佳实践适用于C++,反之亦然。记住这一点可能会帮助你避免很多坏习惯。

        3
  •  5
  •   TomHastjarjanto    15 年前

    真正变得更好的关键之一是让别人看看你的代码。当别人对你的代码说“wtf”时,你可以改进它并从错误中吸取教训。

    尝试使用代码分析工具,尝试使用C++约定(例如谷歌) http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml )尝试使用valgrind进行内存泄漏检测。了解如何手动编写make脚本,尝试一些跨平台编译,看看哪些部分比较棘手。

    你可能还想看看一些流行的图书馆,比如Boost。

    从项目开始,使它成为开源的,这样人们就可以看到它并给你建议。要真正融入你的CS教育,抓取一份科学论文,并尝试使用C++实现它。检查结果并进行比较。

        4
  •  4
  •   cletus    15 年前

    我不认为斯特鲁斯特罗普的书是一个好的开始。它更像是一本高级/参考书。我会从 Thinking in C++ (Volume 1) (和) Volume 2 . 写很多代码。一旦你对代码有了基本的处理,我就可以得到Scott Meyer有效的C++书籍,当然也可以得到Struoup图书。

        5
  •  4
  •   Holysmoke    15 年前

    这是我建议的阅读/学习清单

    • C++第一版中的第一读思维(直接语法)
    • 阅读Scott Meyer的《有效C++》(获得细微的细微差别)

    在这之后,您可以扩展到以下内容。你可以跳过所有的,除了第一个。你可以使用boost,stl,任何学习这些的东西。 1学习使用字符串和其他容器 (知道何时使用哪个容器) 2假设你已经知道XML,学习使用C++中的XML (可能写一个WBXML到XML转换器) 3.回顾您的TCP/IP基础知识, (可能编写简单的基于xmpp的聊天客户端) 4您可能希望学习一些图形用户界面工具包GTK+、Qt、MFC等。

    此时,您可能需要进一步阅读有关设计模式的内容。我建议“解释设计模式”。

    一旦你花了一年多的时间使用C++,你可能想阅读,其中包括“C++对象模型里面”。

    另外,我不建议你读stroustrup,而是ymmv。

    高温高压

        6
  •  2
  •   sivabudh    15 年前

    学习 Qt . 相信我,我开发了各种各样的C++应用程序。C++与QT使您的生产效率更高。我曾经结合了这么多不同的库(Boost、Intel、数据库连接器等),只是为了实现我们所做的那种工作(高性能/实时计算)。最后,我发现超过80%的我需要的已经包括在qt中。

    更不用说,imo,qt在我研究过的任何框架/库中都有最好的文档,这使得它 非常 很容易自己学习所有东西。

    试试看,自己看看。

    免责声明:我只是一个开发者——我不为诺基亚工作。= P

        7
  •  1
  •   Scott Langham    15 年前

    听起来不错。快点!

        8
  •  1
  •   Andrew Grant    15 年前

    听起来你走对了路;

    1)为自己设定一个不断增加难度的小项目(Hello World、抽奖机等)

    2)找一两本包含练习的好书,作为参考。

    我读了大约15年,但我似乎记得Stroustrup的书并不是“如何学习……”C++书籍中最友好的一本。你可能想花点时间在亚马逊上做些比较。

        9
  •  1
  •   Rob Lachlan    15 年前

    坦率地说,如果你在学习C方面做得很好,并且你已经做了面向对象的编程(既然你已经学习了目标C),你就不必过度思考你的C++学习方法。

    也就是说,你的计划很好。

        10
  •  1
  •   Dana Robinson    15 年前

    同时一定要退房 How Not to Program in C++

        11
  •  1
  •   S.Lott    15 年前

    有几十个 Learning Styles . 你已经选了一个你认为对你有用的。

    你有具体的问题吗?例如,你的问题真的是请求增加或不同的书籍吗?你不需要问比“思想”更具体的问题吗?你可能得不到很多符合你实际需求的回复。

    项目,顺便说一句,是目标导向的。你的学习也要有目标导向。你的问题,同样必须是有目标的。编程是关于具体的具体细节。

        12
  •  1
  •   Scott Langham    15 年前

    如果你在这本书上:

    C++程序设计语言
    http://www.research.att.com/~bs/3rd.html

    发现这很难…这是可能的。您可能希望切换并从这个开始:

    程序设计——C++原理与实践
    http://www.research.att.com/~bs/programming.html

        13
  •  1
  •   Tall Jeff    15 年前

    如果你对C有很强的处理力,那么C++一旦你对OOP概念有了很好的处理,就不是一个巨大的飞跃……希望你能精通Python。来自C++的C++学习中最大的东西是真正熟悉标准模板库(STL),所有微妙的东西都会用到它。

    就我个人而言,我认为斯特鲁普的书对学习语言并不是那么好,它更像是一本参考书。我建议你 C++ Primer Plus 作为一本更好的书 Effective C++ books 梅耶斯为真正学会连贯使用语言。