个人感觉吧,当我学习C++的目的是刷ACM,在传授知识的过程中需要的是那么少,即使我除了少数更熟练的库函数,主函数必须有一个int返回值有洁癖一般偏好,没有C++和C.之间的区别,所以C + +对我来说是很简单的,花几个小时看语法,和其余的全是关于学习算法。
后来,用C++写的操作系统相关的东西,首先是模拟操作系统的一些处理策略,后来做内核编程。在这个时候,各种知识让我想死,最后我没有坚持下去。
编程语言是一种手段,不是目的,你甚至没有一个目的,告诉你,C++是很困难的,或C++并不难,你能做什么呢?但我仍然想告诉你,编程语言的困难常常反映在你有空闲时间去学习东西,并且面临多种选择。你需要平衡成本和收益。有些语言学有更大的成就感,有些语言晦涩难懂。如果我们想成为一种谋生手段,我们就努力解决工业和工业方面的问题。
我们需要用成熟的解决方案来解决问题。就语言而言,你花的时间比熟悉的下限要长得多。所以别担心,找个商业区好好研究一下。
这么说吧,C++有多难,难于上青天。我并没有学习过C++,但是她的学习难度江湖上一直有它的传说,传闻这是一种海纳百川的编程语言。拿做菜来比喻是这样的,C++就是把各种鲍鱼、海叁、熊掌、土豆、玉米、西红柿等各种各样名贵的、不名贵的食材都摆在你面前让你选择。但你如果把这些鲍鱼海参熊掌一股脑儿都倒下去煮出一锅大杂烩,那你一定不是一个好厨子。如下图所示,反正我感觉我是瞎了。
复杂程度
很多人努力学习了很久C++,依然是一脸懵逼状态,我想学海无涯,那个学海里的水有80%都是C++的吧。最恐怖的是可能你穷其一生,都学不完。C++是门很均衡的语言,既不像Java那样过于无聊平淡,也不像Scala过于复杂风骚。这是一门用得越久越离不开越有感情的语言。根据技术和业务场景作适当的减法选择合适的语言特性是门艺术,是编程的美所在,但这是需要经验和智商的。这与许多流行的语言只需要经验还是有明显不同的。
困难程度
作为一个草脚,我说不出什么深度的话来形容它的学习困难程度。甚至有一些大神认为C++并不难,只是比较容易出错而已。其它语言语法本身往往比较简单。因为处理问题的规模不同C++更关注语言细节,留给程序员更多的控制权--包括基本上没有什么象样的类库(不知道现在是不是还是这样),好多轮子都得自己造,当然现在可能有了一些开源组件。所以C++的程序员的主要功夫花在这些方面,无穷无尽的细节和排错,无穷无尽的轮子,导致开发效率很低。
最后,致敬所有C++大神!