

🔥个人主页:艾莉丝努力练剑 ❄专栏传送门:《C语言》、《数据结构与算法》、C语言刷题12天IO强训、LeetCode代码强化刷题 🍉学习方向:C/C++方向 ⭐️人生格言:为天地立心,为生民立命,为往圣继绝学,为万世开太平
前言: 我们在学习过程中会碰到很多很多问题,本系列文章不会博主不会额外再创建一个新的专栏来收录,因为这一系列文章创作的初心主要是针对回顾知识点(遵循遗忘曲线并且根据自身的实际情况可以做出一些计划,回顾知识点很重要)、缓解学习过程中的可能出现的焦虑等等。主包就不另外开一个专栏了,uu们可以把本系列的文章作为【C语言】专栏的后日谈来看。这篇文章是详解C++和Java的选择的。 主包学习能力很一般,学起语言、算法来和大佬们完全无法比。

正文
一、难度
(一)C++
(二)Java
(三)C++和Java
(四)整体的三个方向
二、就业
三、岗位选择
四、薪酬待遇
五、未来发展
六、就业数据分析
结尾
三个方向分别是C++、Java、测试开发方向。
C++和Java都是后端的,测试开发学习的内容大部分和Java类似(所以说Java转测试很好转)。
下面我们分别来详细介绍一下这几个方向——
C++主要是应用在后端开发、嵌入式开发、游戏开发(比如去年爆火的国产“3A”大作《黑神话·悟空》就是以C++为主开发的)、音视频开发等,而且如果uu们要考研的话,选择C++方向很有优势,计算机语言数据结构的90%是用C/C++写的。大家点击进入博主的个人主页或者只要任意点开博主的一篇博客就可以看到博主几乎在每篇文章开头都介绍了博主的学习方向——C/C++方向。
和博主一样选择这一方向进行学习的uu们可以关注博主之后会更新的文章,对考研408的覆盖率不夸张的说,基本上可以达到60%以上,可以作为考研宝子们的笔记本看。
C++像腾讯这种大厂需求量大,开发偏底层,大厂招的比较多。
Java主要是应用在后端开发、大数据开发、安卓开发、小程序开发等。
Java开发效率高,偏向业务,像民办本科层次学历的学生偏向中小厂,大厂不是说没有,很少,而中小厂对于C++的需求不像大厂,中小厂对偏向业务的Java需求量大。这就是后面主包建议双非以下学历的uu们选择Java作为学习的方向的原因。大厂卡学历其实得看公司,像腾讯其实并没有我们相信的那么卡学历,但是像阿里巴巴、字节跳动是卡学历的。这里简单说一下。
(1)Java是上手快(因为Java有自己的库),前面简单,难的是后期,后期的重点:JavaEE,像Spring系列框架、微服务这些,很难,如果难度满分是10分的话,Java应该是8分;
(2)C++就不一样了,C++是全程难,难度10分,大概能打9分。
两种语言没有什么好与坏的高下之分,我们这里仅从语言的角度来比较一些两者,拿照相机举个例子来解释,uu们可能会更好理解一些——
(1)C++“掌控一切”,就像是单反相机,什么都要你亲力亲为,语法细节更多; (2)Java“省心”,就好像是傻瓜相机,没有像C++那样那么多语法细节(只是跟C++比)。
数据结构与算法、操作系统、网络编程、数据库等知识,无论是C++还是Java都要学。这里其实也能看出语言其实并没有那么重要,掌握了其中一门,学其他的就很快了,因为有很多共通点。
三个方向没有高下之分,高薪势必就意味着高难度。
对于绝大部分的学生而言,主流语言至少得先学精一门,才是最要紧的,不管是什么层次的学校,先学精一门语言,再去学另外的,不要一心二用,要对自己的能力有清晰的认识,你如果办得到,再这么干。
无论你选择了什么方向,一定要好好学,不要把时间浪费在游戏、刷视频上,有精神内耗的时间不如去多刷一道力扣题、多做一道算法题。路在脚下,不要待在自己的舒适区里求安稳,要敢于前进,敢于跳出舒适区,提升能力、不断积累。这样才会学有所成。
就业分为校招和社招。

校招招的是在校大学生(应届的),社招就是工作之后再参加的招聘了。
社招一般等我们工作了三五年,有了不少积累(工作经验、技术成长),这时候学校对于找工作影响已经不大了,公司肯定是选择技术过硬的那个人,不会选一个名校毕业啥技术都不扎实的绣花枕头。此时,我们的竞争力来源于这些年的积累,我们技术如果过硬,那肯定不至于被行业淘汰。
这里再插一句题外话,我们经常说“今天Hello world,明天Change world”,要有这个胆识!
应聘人数是:Java开发 > C++开发
在校招中,C/C++、Java开发岗位数相当,一般不会差太多,大致是4、6开,因为Java开发岗位略多。不过别高兴太早,Java压力要大一些,因为Java卷的更厉害些,原因在于大学生多,大环境已经是供大于求了。
我们一些学长学姐一定对“面试造火箭,工作拧螺丝”这句话深有体会,进入公司肯定或多或少心里是会有点落差感的。正因如此,我们即便顺利入职之后也不要懈怠,继续学习,积累工作经验,不断成长,老话说得好,“打铁还需自身硬”嘛。我们也不要一棵树上吊死,把技术学到,抓紧时间可以跑路到下一家公司嘛。
我一直都跟uu们强调,计算机语言大家不要太过纠结。企业更看重基础技术和综合素质,而不纠结语言。我们主学C++的不一定是C++岗,同样的,Java的也不一定是Java岗。
对于学校专业课,我们千万不要纠结,我们学习这些不就是为了未来能找到好的工作吗?如果你是“92(“985”“211”工程)”学校的学生,你的院校层次足够,给你提供了足够你未来拿到满意offer的实力和底气,那就紧跟学校,按部就班,没什么好说的,都是为了将来就业嘛,学什么要能变现才是嘛。我们如果是普通双非、二本、民办、独立学院的学生,学校没办法提供和“92”似的资源,我们就老老实实的选一门语言,把它学好,我想说的是,我们学这些技术是为了未来就业,不要为了学校的课程而纠结方向的选择。比如说有的uu们说,“学校里教的是Java课程,但我学习的方向是C++方向,我感到有些犹豫”,或者有的uu们“学校里教的是C++课程,但我学的是Java方向,我不知道怎么选”。不用纠结,我们不是为了应付学校课程才选的方向,我们是为了就业。
说到院校层次,主包建议一本及以上选什么方向都可以,双非以下最好还是选择Java。不是瞧不起大家,铸币主包自己也是待在一个双非以下、院校层次比较低的本科院校。主要原因我们已经在【一、难度】分析过了,多的不赘述,就是因为Java岗位比C++多,而且偏向中小厂,对学历卡得没有C++那么死,是从实际的情况为大家分析的。
校招要求掌握一门主流的编程语言即可。Java和C++任选一门即可。我们学好一门就可以了,很少有人能做到同时学习并且精通两门主流语言的,至少主包没见过(可能是主包格局小了)。
比如说字节跳动使用的是Python和Go语言,类似字节这样的很多互联网公司使用的编程语言既非C++也非Java,还是那句话:我们不要纠结语言。主包这么说不是在说C++、Java怎么怎么样,我们参加校招仍然会用C++、Java作为考点,未来发展好不好,相比方向的选择,努力更为重要。
纠结语言是傻瓜才做的事,我们在学习过程中,把自己的能力培养好,才是最重要的,这个能力是指学习能力和解决问题的能力,这个学习能力具体点来讲就比方说别人给你一门技术,你能快速学会,这叫学习能力。所以说学习不是照猫画虎,不是三天打鱼两天晒网,而是一个需要沉下心来,需要每天坚持、日积月累不断训练的、量变引起质变的过程。
再说这个学完C++之后,我们也可以学测开(测试开发),但嵌入式相对而言更好转一点;Java方向选择更多(既可以继续学Java,也可以转测试开发),测试开发相对C++和Java,难度略低,有机会进更好的公司。
我们看看薪酬待遇的问题。像C++开发、Java开发、测试开发都是技术序列待遇是同级的。具体的薪酬待遇和公司的水平、自己的面试表现直接相关,与应聘岗位关系不大(同样都是技术岗)。
(1)对于大厂来说,这几个岗位的薪资都是一样的; (2)对于中小公司,测试岗可能与开发持平,也可能会略低个1k~2k(起薪),但是随着年限的提升,这三个岗位的薪资会逐渐持平。
测试开发并不是说没有技术含量,不然人家公司也不会给出高薪资嘛。测试开发有哪些岗位呢?我们简单来看一下:比如接口测试、自动化测试(代码角度)。
我们再顺嘴提一下C++和Java方向在C语言(房屋的地基)学习的区别——C++因为是在C语言的基础上,我们是要把C语言全部学完的,Java的话学完指针的指针运算就可以不学C语言了。
从长期来看,像刚才我们谈到的薪酬待遇问题,三个方向是相当的作为一个专业的程序员,我们仅仅掌握一门主流语言是不够的,也就是说,我们只会什么C++、Java,肯定是远远不够的,单从语言角度来讲,万一你学的Java,但你入职的公司让你用C++,或者Go语言、Python、JavaScript等等语言,你怎么办?现在刚刚接触计算机的uu们可能会担心:啊!我学的是C++,入职了一家用Java的公司,怎么办啊?很简单,当然是接着学啊。实话实说,语言学到后面其实已经影响不大了,你这门语言能学好,学其他的上手也很快。语言选择影响其实没那么夸张。我们进入公司以后,自身足够努力,保持好奇心、提升竞争力、给公司创造更多价值,不用你说,公司自然会留人的,你不用担心,足够努力就可以。我们现在不用考虑这么多,先入行,再慢慢提升自己就可以了。很正常,大家认真学就好了,与其精神内耗,不如停下来,把手头的工作做好。
总结一下就是:先入行,在慢慢提升自己就行了。
博主对比了一下几种方向对学校层次低的就业招聘情况,如下——
相比于C++,Java对于学校层次低的学历包容度较高,相对来说,Java对于像双非、民办、学院这些学历更友好,就业率也更高一些。
往期回顾:
结语:希望对选择困难症的友友们有所帮助,本文带大家深刻剖析了三个方向的学习选择问题,C++、Java、测试开发,博主已经用尽可能简洁的语言把博主想表述的话给表述出来了,如果大家觉得博主的文章对自己有帮助的话,请给博主点点赞、收藏、关注、评论一下!谢谢uu们的支持和关注。