对于初学C++的人来说,你觉得从入门到精通需要多长时间?应该怎么学?

简介:

作为已经搞了十几年代码的老司机,对于这种动不动就喊着精通某种语言的初学者有点无奈,现在很多刚毕业或者毕业没有几年的程序员喊着精通几种编程语言,而且这种基本上在面试上遇到老程序员都会遭到技术细节的洗礼,反而越是干的时间越长的程序员越是在介绍自己的时候都是写上熟练某种语言,c++作为一种几乎公认的最难的编程语言,也是一门够得上学一辈子的编程语言,现在很多编程书籍的名字起的也是让人觉得很无语,21天精通某某语言等等也是助长了浮躁之风。

7c993cf497ebca97220a0ece0fc31db775eeb739

为什么这么多人觉得C++难学,而且现在很多大学开设的第一门编程语言就是C++,上来就让啃最难的骨头,而且要问到多长时间能够到精通?让这些做了十几年的c++程序员情何以堪,为什么c++被认为成很难的编程语言?

1.基础语法相当繁杂,而且还在不停的更新

c++的设计理念是尽量在编译的时候通过个各种规则达到一种效果,所以很多初学者在编译的时候就能折腾很长时间,特别是泛型编程里面的各种设计模式,细节多如牛毛。由于这种设计的理念,导致很多编程大神炮轰这种理念,觉得是一门把人带沟里的编程语言,现在学校开设的c++课程主要在讲述面向对象的设计理念,基本上很少涉及到泛型编程,所以很多人觉得c++没有那么难,因为只是讲述了面向对象的理念是个什么样子,对于真正实战类型的接触的比较少,很多进入工作岗位才发现原来这东西这么难,还能这么玩,关键这还不是全部还在不停的更新,一旦踏进去想玩彻底基本很难,正因为骨头硬所以很多架构师倒是非常喜欢琢磨这门编程语言,觉得特别有味道。

56a9aaa6b180a280eea2e09ce86d507ec2fa0238
2.靠近底层可以直接对底层语言,特别是指针操作

如果要找出一种编程语言既能直接操控硬件又能带有面向对象的编程思想,也只有c++了,正是因为这个特性,很多对性能要求比较大的框架都在c++的基础上进行构建,这也就是为什么很多架构师喜欢琢磨c++,根本原因还是刚需。操空底层的编程语言就会涉及到指针的操作,指针问题对于初学者来讲简直的一个噩梦,本质上不难主要计算机相关基础知识不到位的情况下,去学习理解起来就费劲很多。

5bf20f5bc15bae0d7513be661eef82beb2993ad2

很多人初学者从开源社区拿到c++写的代码源码,开始基本上看不懂,因为里面涉及到很多语法细节不说,关键还有各种编程模式,加上泛型编程里面语法,要真要能看明白代码如何实现基本上对于c++已经有了大概的认识,距离自己真实写代码已经非常接近了。

难于不难,主要是客观上评价,关键看主观上如何去对待,真正进入状态学习了,也不会去想精通不精通这码事情了,做编程有一种感觉叫水到渠成,开始觉得自己写不了代码到了一定时间自然就会写了,都是坚持学习的结果。


原文发布时间为:2018-09-28

本文作者:东辉在线

本文来自云栖社区合作伙伴“程序员互动联盟”,了解相关信息可以关注“程序员互动联盟”。

相关文章
|
15天前
|
存储 安全 编译器
c++入门
c++作为面向对象的语言与c的简单区别:c语言作为面向过程的语言还是跟c++有很大的区别的,比如说一个简单的五子棋的实现对于c语言面向过程的设计思路是首先分析解决这个问题的步骤:(1)开始游戏(2)黑子先走(3)绘制画面(4)判断输赢(5)轮到白子(6)绘制画面(7)判断输赢(8)返回步骤(2) (9)输出最后结果。但对于c++就不一样了,在下五子棋的例子中,用面向对象的方法来解决的话,首先将整个五子棋游戏分为三个对象:(1)黑白双方,这两方的行为是一样的。(2)棋盘系统,负责绘制画面。
|
3月前
|
存储 分布式计算 编译器
C++入门基础2
本内容主要讲解C++中的引用、inline函数和nullptr。引用是变量的别名,与原变量共享内存,定义时需初始化且不可更改指向对象,适用于传参和返回值以提高效率;const引用可增强代码灵活性。Inline函数通过展开提高效率,但是否展开由编译器决定,不建议分离声明与定义。Nullptr用于指针赋空,取代C语言中的NULL。最后鼓励持续学习,精进技能,提升竞争力。
|
4月前
|
存储 缓存 C++
C++ 容器全面剖析:掌握 STL 的奥秘,从入门到高效编程
C++ 标准模板库(STL)提供了一组功能强大的容器类,用于存储和操作数据集合。不同的容器具有独特的特性和应用场景,因此选择合适的容器对于程序的性能和代码的可读性至关重要。对于刚接触 C++ 的开发者来说,了解这些容器的基础知识以及它们的特点是迈向高效编程的重要一步。本文将详细介绍 C++ 常用的容器,包括序列容器(`std::vector`、`std::array`、`std::list`、`std::deque`)、关联容器(`std::set`、`std::map`)和无序容器(`std::unordered_set`、`std::unordered_map`),全面解析它们的特点、用法
C++ 容器全面剖析:掌握 STL 的奥秘,从入门到高效编程
|
8月前
|
编译器 C++
C++入门12——详解多态1
C++入门12——详解多态1
103 2
C++入门12——详解多态1
|
8月前
|
C++
C++入门13——详解多态2
C++入门13——详解多态2
139 1
|
8月前
|
存储 C++ 容器
C++入门9——list的使用
C++入门9——list的使用
54 1
|
8月前
|
程序员 C语言 C++
C++入门5——C/C++动态内存管理(new与delete)
C++入门5——C/C++动态内存管理(new与delete)
163 1
|
8月前
|
编译器 C语言 C++
C++入门6——模板(泛型编程、函数模板、类模板)
C++入门6——模板(泛型编程、函数模板、类模板)
138 0
C++入门6——模板(泛型编程、函数模板、类模板)
|
8月前
|
存储 安全 编译器
【C++打怪之路Lv1】-- 入门二级
【C++打怪之路Lv1】-- 入门二级
73 0