We're sunsetting PodQuest on 2025-07-28. Thank you for your support!
Export Podcast Subscriptions
cover of episode 852 How To Learn C++? (C++ Programming) - Simple Programmer Podcast

852 How To Learn C++? (C++ Programming) - Simple Programmer Podcast

2021/12/15
logo of podcast Simple Programmer Podcast

Simple Programmer Podcast

AI Deep Dive AI Insights AI Chapters Transcript
People
J
John Sonmez
Topics
John Sonmez: C++ 是一门很难的编程语言,但它具有很高的学习价值。学习C++ 的过程中,你可能会遇到很多困难,例如,你可能只学习了C++ 的理论知识,而缺乏实际编程经验。你可能只知道如何创建类和函数,却不知道如何用C++ 编写实际的应用程序。你可能因为学校的教学方式而难以通过查找教程来学习C++ 编程,因为学校要求你们自己定义库函数,而不是使用STL。 解决这些问题的方法是:首先,你需要学习并使用STL(标准模板库),这是实际应用中非常重要的部分。其次,你需要参与实际项目,例如贡献开源项目或者创建你自己的项目。这将帮助你更好地理解C++ 的应用,并提高你的编程技能。你可以尝试参与编程竞赛,例如TopCoder,这可以帮助你提高你的算法能力和编程速度。 此外,阅读一些优秀的C++书籍,例如Scott Meyers 的《Effective C++》系列,可以帮助你更好地理解C++ 的编程思想和最佳实践。记住,学习C++ 需要时间和努力,但只要你坚持不懈,你就能掌握这门语言,并用它来开发出优秀的应用程序。 Alberto: Alberto 的主要观点在于他在大学学习C++的过程中,遇到了实际编程的困难。学校的课程主要集中在理论知识的学习上,例如如何创建数据结构和函数,而缺乏实际编程的训练。他希望能够学习如何使用C++编写实际的应用程序,并寻求一些建议。

Deep Dive

Key Insights

Why is C++ considered a difficult language to learn?

C++ is challenging because it requires managing memory, pointers, and other low-level details, making it harder to master compared to higher-level languages like Java or C#.

What is the importance of using STL (Standard Template Library) in C++?

STL is crucial because it provides pre-built libraries for common tasks like creating lists and handling data structures, which are essential for real-world C++ programming.

What advice does the speaker give for learning C++ effectively?

To learn C++ effectively, contribute to open-source projects, build substantial applications, and use platforms like Topcoder to practice solving algorithm problems and understanding others' code.

What are some recommended books for mastering C++?

Books like 'Effective C++' by Scott Meyer, 'More Effective C++', 'Effective STL', and 'Code Complete' are highly recommended for learning C++ and improving coding practices.

Why does the speaker suggest contributing to open-source projects for learning C++?

Contributing to open-source projects helps in understanding real-world codebases, fixing bugs, and adding features, which are essential skills for becoming a proficient C++ programmer.

What is the speaker's opinion on the future of C++ in the job market?

The speaker believes that while C++ is still used, most new applications are developed in languages like Java, JavaScript, or C#. However, mastering C++ can make learning other languages easier.

How can Topcoder help in improving C++ skills?

Topcoder offers algorithm challenges where users solve problems using C++ and compete with others, providing an opportunity to learn from others' solutions and improve coding skills.

Chapters
A computer science student is struggling to learn C++ programming despite studying the theoretical aspects. The student seeks advice on bridging the gap between theory and practical application. The question explores the relevance of C++ in the current job market.
  • C++ is difficult to learn
  • University focus on theory, lacks practical application
  • Student struggles to apply theoretical knowledge to practical programming

Shownotes Transcript

欢迎收听 Simple Programmer播客。我们将复杂编程变得简单快捷,内容涵盖职业建议和人生哲理。这就是 Simple Programmer播客。

大家好,我是simpleprogrammer.com的John Sonmez。今天在这个视频中,我将回答另一个关于学习C++的问题:如何学习C++?这不仅仅是一个简单的问题。这个问题来自Alberto,我将对其进行一些释义和总结,因为它有点长。他说他看到一篇帖子讨论C++是否正在复苏,他有一个简单的问题:我是如何学习C++的?

他基本上说,他一直在大学学习计算机科学学士学位,并且在如何实际使用C++编程方面遇到了困难。他说学校提供的帮助不多,主要集中于学习如何在纸上创建结构和函数,他能够通过课程学习这些内容,但他需要学习如何实际编程,并且找不到任何帮助。

助教和一些教师告诉他去查找教程,而不是试图教给他方法,这使得事情变得更加困难,因为你不能查找一段代码并将其转移过来,因为我们实际上必须基于STL定义我们自己的库函数。基本上,其他人使用STL。如果你熟悉C++,它是一个模板中心,模板库或语言库。

它简化了许多事情,例如创建列表以及你在许多Java、.NET框架之类的库函数中看到的内容。他说:“所以我现在可能理解错了,但无论如何,C++是我们毕业前唯一真正使用的语言,我不能仅仅依靠课程的笔试部分来应付考试。你有什么建议吗?”

好的,Alberto,事情是这样的。C++很难。

显然,与C#、Java或JavaScript相比,我不太推荐现在学习这种语言,但是你的学校要求你学习它。学习它并非坏事,因为如果你能掌握C++,你就能使用任何其他编程语言进行编程,因为所有其他语言都比C++更容易。这应该让你感觉好一些,因为它很难,这就是你难以掌握它的原因。

我听到你描述的是,你基本上学习了C++的一些结构,如何解决算法以及如何构建结构,但你并没有真正学习如何使用C++进行编程。你实际上是想编写一个应用程序。

这曾经是我长期以来一直努力解决的问题,尤其是在学习C++时,我觉得我可以创建类。当然,我可以做到。如果你想反转字符串或其他什么,我可以为你创建一个函数,但是我该如何使用C++编写一个真正的应用程序呢?好消息是,幸运的是,对于你来说,

现在你不会从头开始用C++编写很多实际应用程序。如果你找到一份做C++工作,你很可能是在扩展或支持现有的应用程序。有些公司现在确实使用C++创建新的应用程序。我知道这会让我受到一些批评,但我只是告诉你大多数情况下,你可能会使用Java、JavaScript、C#进行编程,除非你专门寻找C++的工作。

事情是这样的,如果你想学习它,并且想达到能够构建应用程序的程度,首先,你需要使用STL。当你看到使用STL的示例代码时,我知道你不能在课堂上实现它,但在现实世界的使用中,

人们不会自己实现这些东西。他们使用STL。他们使用库。这是最重要的技能。认识到这实际上很重要,这不是捷径。你并没有真正学习C++。这是第一点。第二点是你需要实际——大家好!我是simpleprogrammer.com的John Sonmez。我想告诉你我的免费博客课程,你可以在simpleprogrammer.com/pblog注册。

现在,这个免费的博客课程将教你如何创建一个博客来提升你的职业生涯。这绝对是你不容错过的事情。成千上万的开发者已经完成了这个课程,这个你可以通过电子邮件获得的免费课程,并且学习了如何创建一个博客来提升他们的职业生涯,赚更多的钱,甚至发展他们自己的副业。这是每个开发者都应该做的事情,特别是如果你是一个Web开发者。你应该拥有自己的博客。我将向你展示如何做到这一点,如何取得成功,如何获得流量,

创建博客以及从中赚钱所需的一切,只需访问simpleprogrammer.com/pblog立即注册。再次强调,网址是simpleprogrammer.com/pblog。构建一些相当大的东西或为某些项目做贡献。我不建议你只创建你自己的C++应用程序。

显然有一些框架可以让你创建一个Windows应用程序。Windows 8支持它,或者你可以创建一个Linux应用程序,或者

有很多不同的平台。你甚至可以使用C++编写iPhone和Android应用程序,尽管这相当困难。但是,你最好在GitHub上寻找一些你可以贡献的C++项目。从修复bug开始。这正是你在现实世界中会做的事情,试图理解代码库。

然后添加一些功能。如果这有效并且你感觉很舒服,那么下一步就是创建你自己的应用程序,创建一个简单的应用程序,也许是一个非常简单的Windows应用程序或Android应用程序。选择一个平台,学习它的工具。最难的部分将是为该应用程序进行设置。

然后完成它,但这里有一点关于学习C++的一般性问题。这需要时间,而且很难,这仅仅是编写大量C++代码的问题。我真正学习C++的最佳方法之一是,我使用一个名为Topcoder的网站,他们有所有这些你必须解决的问题,以及一个竞争界面(如果你想这样做的话)。在Topcoder中,你解决这个问题,

其他人也同时在竞争。有一部分是你解决这三个不同的问题,你使用STL或其他任何东西来尝试解决它。之后,你进入一轮挑战其他人的解决方案。你给他们提供错误的输入来破坏他们的程序。当你这样做时,你可以看到他们的代码。这帮助我学习了其他擅长C++的人是如何做到的。

这真的帮助了我。我开始每周或两周做一次Topcoder,这真的提高了我的C++技能。但是,是的,C++是一种很难学习的语言。你只需要编写大量的代码。你编写的代码越多,实际执行有用的操作的代码就越多。这就是我说要为某种开源项目做贡献的原因。

启动你自己的项目,这就是你真正学习它的方法。是的,这是一件大事。你还需要学习STL,因为这是现实世界中会用到的东西。我推荐几本书,Scott Meyer的《Effective C++》系列。如果你通读了《Effective C++》、《More Effective C++》,我认为他还写了《Effective STL》。

我过去很喜欢这些书。这些都是非常棒的C++书籍。《代码大全》也是一本很棒的书,不一定是关于C++的,而是关于代码结构的。希望这能帮到你。祝你好运。

不要太担心。你必须考虑一下你是否要成为一名C++程序员。如果不是,那么也不要太担心理解C++。但如果你确实掌握了它,就像我说的那样,你将能够很容易地使用任何其他编程语言,因为一旦你能管理内存和指针以及C++中的所有内容,

很多事情都会变得容易得多。别担心。不要被吓倒。其他人做到了。你也能做到。你只需要继续努力。开始你自己的项目。开始编写大量的C++代码,并阅读一些非常好的C++书籍,例如《Effective C++》系列。好了,本视频就到这里。如果你有任何问题或意见,请在下方留言或给我发电子邮件,并订阅频道。保重。