嗨,小伙伴们!我是W3Cschool编程狮的小狮妹!


(资料图片仅供参考)


今天咱们来聊聊C++的学习,啃多少书能立马上岗?C++是一门非常强大和灵活的编程语言,被广泛应用于各种领域和场景。无论你是想做PC端的Windows研发,还是服务端的Linux开发,或者是网络产品的开发,C++都可以满足你的需求。但是C++也是一门非常复杂和深入的编程语言,涉及到很多知识和技能。那么,作为一个想要从事C++开发的初学者,你应该如何学习C++才能找到并胜任理想的工作呢?


在这篇文章中,小狮妹将从校招和社招的角度,分别介绍一些C++学习的要点和方法。



01 校招和社招的区别


我们要先区分校招和社招的区别。校招是指针对应届毕业生的招聘,社招是指针对有一定工作经验的人才的招聘。校招和社招对C++工程师的要求有什么不同呢?


校招更注重基础知识和学习能力,社招更注重实战经验和解决问题能力。校招的岗位一般要求应聘者有良好的基础知识,包括C++语言本身、数据结构和算法、计算机网络、操作系统等等。同时,也要求应聘者有较强的学习能力,能够在短时间内掌握新技术、新框架、新业务。社招的岗位一般要求应聘者进来就能工作,能够独立完成项目或者模块的开发、调试、优化等工作。同时,也要求应聘者有较强的解决问题能力,能够针对复杂的需求、难题、故障等提出合理的方案、方法、策略。


校招更看重学历和成绩,社招更看重项目和经验。校招的岗位一般会设定一定的学历门槛,比如本科及以上、211/985院校等等。同时,也会考察应聘者在校期间的成绩、奖项、竞赛等方面的表现。社招的岗位一般不会过分关注学历和成绩,而是更看重应聘者在工作中做过什么项目、用过什么技术、解决过什么问题等方面的表现。



校招更多机会和选择,社招更多竞争和挑战。校招的岗位一般会提供更多机会和选择给应届毕业生,比如大量名企会开展校园宣讲、校园招聘、实习生招聘等活动,给应届毕业生提供更多的了解和接触的机会。同时,也会给应届毕业生提供更多的选择,比如可以选择不同的岗位方向、不同的工作地点、不同的工作内容等等。社招的岗位一般会面临更多竞争和挑战,比如社招的岗位数量相对较少,而且竞争者都是有一定工作经验的人才,所以要求更高、难度更大。同时,也会面临更多的挑战,比如要适应新的工作环境、新的团队、新的业务等等。


综上所述,校招和社招对C++工程师的要求有很大的差别,所以我们不能一概而论,而是要根据自己的情况和目标来制定合适的学习计划和准备策略。



02 C++学习到什么程度可以工作?



既然校招和社招有不同的要求,那么C++学习到什么程度可以工作呢?这里我们分别从校招和社招的角度来分析。


校招:打好基础,展现潜力

对于校招而言,C++学习到什么程度可以工作取决于具体的岗位和需求,没有一个固定的标准。但是,我们可以参考一些BAT等知名企业对于校招C++工程师的要求,总结出以下几个方面:


C++语言基础。要求掌握C++语言本身的语法、特性、规范等,能够熟练地编写、阅读、调试C++代码。不一定要把《C++ Primer》这样的书籍通读消化掉,但至少要能在理解业务逻辑的基础上读懂代码,有少量不懂的地方也可以通过搜索或查阅工具书快速地掌握。

数据结构和算法。要求掌握常见的数据结构和算法,包括数组、链表、栈、队列、二叉树、散列表、排序算法、查找算法、递归算法等等。最好能够掌握《算法导论》的前几章内容,包括基础的算法复杂度分析、分治法、动态规划法等等。另外,也要求有一定的数学基础知识,比如概率论、线性代数、微积分等。

计算机网络。要求掌握计算机网络的基本原理和常用协议,包括TCP/IP协议族(5)、HTTP协议(6)、DNS协议 、FTP协议 等等。能够理解网络通信过程中各个层次的功能和作用,能够使用常用的网络编程接口和工具进行网络编程和调试。

操作系统。要求掌握操作系统的基本原理和常用技术,包括进程管理 、内存管理 、文件系统 、设备管理 等等。能够理解操作系统为应用程序提供了哪些服务和接口,能够使用常用的操作系统命令和工具进行操作系统编程和调试。

数据库。要求掌握数据库的基本原理和常用技术(SqlServer、Mysql、Oracle、甚至是Hadoop和Spark等)。


以上这些知识点是校招C++工程师的基本要求,如果你能够掌握并且熟练运用,那么你就有了找到一份C++相关的工作的基础。当然,这些知识点并不是全部,你还可以根据你的兴趣和目标,去学习一些更高级和更专业的知识点。


社招:提高实战,展现能力


对于社招而言,C++学习到什么程度可以工作就要求更高了,因为社招的岗位一般要求应聘者进来就能工作,而不是经过培训之后再工作。这就意味着你不仅要掌握C++语言的基础和高级特性,还要掌握一些与具体业务相关的技术和框架。


社招的岗位也是非常多样化的,不同的领域和方向对于C++程序员的要求也是不同的。但是,我们可以根据一些常见的领域和方向来给出一些参考:


游戏开发。如果你想要从事游戏开发行业,那么你需要掌握一些游戏开发相关的技术和框架,比如图形学、物理引擎、音频处理、人工智能、网络通信等等。你也需要熟悉一些常用的游戏开发引擎和工具,比如Unity、Unreal Engine、Cocos2d-x等等。

嵌入式开发。如果你想要从事嵌入式开发行业,那么你需要掌握一些嵌入式开发相关的技术和框架,比如微处理器、单片机、嵌入式Linux、嵌入式数据库、嵌入式GUI等等。你也需要熟悉一些常用的嵌入式开发平台和工具,比如Arduino、Raspberry Pi、Keil、IAR等等。


网络服务开发。如果你想要从事网络服务开发行业,那么你需要掌握一些网络服务开发相关的技术和框架,比如Web服务器、Web框架、分布式系统、云计算、大数据等等。你也需要熟悉一些常用的网络服务开发平台和工具,比如Apache、Nginx、Django、Flask、Hadoop、Spark等等。


以上这些知识点是社招C+工程师的高级要求,如果你能够掌握并且熟练运用,那么你就有了能够胜任一份C+相关的工作的能力。







无论你是校招还是社招,学习C++都需要有一个持之以恒的态度和一个不断进步的心态。C++是一门不断发展和变化的编程语言,它有着丰富而深邃的内涵,它也有着广阔而多彩的应用。只有不断地学习和实践,才能够掌握C++的精髓,并且用C+创造出优秀的软件。


希望这篇文章对你有所帮助,如果你想获得更多C++资源或者学习C++课程,欢迎下滑扫码下载编程狮APP,用边学边练的方式学会C++。


END




推荐内容