C++ 从开源项目中学习/浏览已编写的代码

C++ 从开源项目中学习/浏览已编写的代码,c++,open-source,C++,Open Source,我想知道开源项目有多大的学习价值 我仍然认为我自己是初学者,因为缺乏经验而不是缺乏知识。我读过很多C/C++教程,还学习过一些课程,但我确实缺乏经验。因此,尽管我了解主要的数据类型和编码技术,但我并不完全掌握在我自己的编程中使用它们的方法。因此,在我继续阅读/练习/学习的同时,我一直在下载大量开源代码(随机应用程序、模拟器、游戏)。值得一看以帮助学习吗?我觉得这非常有趣,但更多的时候不仅仅是迷路 第二个问题,这样做通常从哪里开始?是否在某处查找main()函数?您是否查看了标题以了解在整个代码中

我想知道开源项目有多大的学习价值

我仍然认为我自己是初学者,因为缺乏经验而不是缺乏知识。我读过很多C/C++教程,还学习过一些课程,但我确实缺乏经验。因此,尽管我了解主要的数据类型和编码技术,但我并不完全掌握在我自己的编程中使用它们的方法。因此,在我继续阅读/练习/学习的同时,我一直在下载大量开源代码(随机应用程序、模拟器、游戏)。值得一看以帮助学习吗?我觉得这非常有趣,但更多的时候不仅仅是迷路

第二个问题,这样做通常从哪里开始?是否在某处查找main()函数?您是否查看了标题以了解在整个代码中可以使用哪些函数,并了解可以使用哪些函数

请让我知道


R

试着把注意力集中在你想做的事情上,对于一个没有参考点的应用程序,查看代码没有多大意义

最好的开始可能是看一个像这样的项目

但是,制定一系列您想要研究的应用程序任务,可能是图形、文本编辑或套接字编程。。。然后从那里开始工作

获得一个好的IDE或程序员编辑器来帮助您浏览代码是一个主要的优势


例如,Emacs + EcAcGe/CEDET/语义将帮助您浏览C/C++项目中的所有函数/类。

< P>我个人不建议初学者阅读开源项目的源代码,尤其是如果它们是成熟项目的话。这对于初学者来说可能是压倒性的,因为他们往往是具有数千行代码的相当大的项目,很可能是一个非平凡的设计

如果你缺乏经验,那么在我看来,获得经验的最好方法是编写自己的程序,并承担自己感兴趣的项目。您当然可以阅读其他人的代码来了解“它是如何完成的”,但实际上,自己尝试实现这些想法比被动地阅读代码更能帮助您理解如何编写代码。反过来,获得的理解和经验将允许您更好地理解其他人的代码


这有点像数学;你可能知道这些公式,你可以看到数学家/老师/教授等是如何使用这些公式的,但你只有亲自尝试才能真正理解它们。一旦你理解了它们,数学家写的东西就会更有意义。

我同意电子版的@。查看其他人的代码非常有用,但只有在代码稍微超出您的级别时,您才能学到一些东西。我见过不少项目过于“过度设计”,因此,当你不能真正区分好坏时,从中学习将是一个坏主意

另一件事是向另一个程序员学习,当你可以问他为什么用一种方式而不是另一种方式。在这种情况下,水平的差异并不重要


因此,我建议您自己编程,并在尝试后查看其他人的代码。通过这种方式,你将能够比较你所看到的选择和你与其他人所做的决定(当你不深入了解某个问题时,任何建议的解决方案似乎都是正确的)。你知道,在理论上,理论和实践是一样的。在实践中,它们不是。

我不推荐阅读一个自我描述的C++初学者的Boost源代码。它到处都是编译器的变通方法,使得一些代码几乎无法理解。