到底学哪个? 从找工作角度来谈一谈,C++ or Java?

作者:阿秀

原文链接:https://mp.weixin.qq.com/s/k7K2rMGT4prR9dB5rlEMmw (opens new window)

如果你想在校招中顺利拿到更好的offer,阿秀建议你多看看前人的经验 ,比如准备简历实习上岸经历校招总结阿里、字节、腾讯、美团等一二线大厂真实面经也欢迎来一起参加秋招打卡活动 等;如果你是计算机小白,学习/转行/校招路上感到迷茫或者需要帮助,可以点此联系阿秀;免费分享阿秀个人学习计算机以来的收集到的好资源,点此白嫖;如果你需要《阿秀的学习笔记》网站中求职相关知识点的PDF版本的话,可以点此下载

# 导读

周末了,聊点别的吧。

很多学弟学妹加我第一个问题就是:秀哥,我想学Python去找工作可以不可以?

Java还是C++

C++还是Java

今天就聊聊吧,到底 C++ or Java or Python

或者你也可以把它理解为:哪些人适合学习 C++ ?哪些人适合学 Java ? 哪些人适合学 Python?

这个问题没有一个统一的答案,撇开实际情况统一推荐一种语言都是耍流氓和不负责任的。

今天只是从找工作的角度来聊一聊这种语言,不谈其他。

1、这几种语言能做什么?

2、你适合学哪种语言?

3、几个高频问题回答

# 1、这几种语言能做什么?

我知道很多人跟我一样,学习编程只是为了 搞钱 兴趣。

先说一下这几门语言的能做些什么以及主要的应用场景。

先说 C++,这门语言主要是用来做一些底层开发以及一些对于性能要求比较高的业务或者场景下使用,比如要求响应速度更快场景等。

C++在找工作的过程中,能够投递的岗位主要有 Linux/C++后台开发、嵌入式开发、游戏研发、服务器开发、编译器研发等。

它能干的活其实不少,很多人都在担心学了C++找不到工作。。。说实话,还没到那个地步,虽然比不上Java岗位多,但也绝对不少的。

再说说Java,不管你信不信,Java是毫无争议的互联网第一语言。

你看各种培训机构,Java培训广告满天飞。

可以说我们现在能够尽情在互联网各种冲浪,Java这门语言可以说是居功至伟!!!

就因为它能干的活实在是太多了!!!

它可以做网站,可以搞Android客户端,还有就是做一些软件开发,甚至现在很火的大数据开发也可以用Java来做。

学了Java,能干的活确实很多,这点你不得不承认。

最后来说一说Python

Python作为新兴的一门编程语言,这几年也受到很多学弟学妹的喜欢。

比如用它去爬个数据、做做数据可视化、处理处理数据,确实挺好使的。

Python也可以用来做后端开发,比如它的Django框架,只不过招Python做后端开发的比较少。

Python还可以用来做爬虫,我以前也玩过一年多的爬虫,Python在搜集网络公开数据的时候还是挺好用的。

除此之外,还可以做一些数据分析以及数据挖掘这些岗位。

相信大家都能看到培训班满天飞的人工智能、Python爬虫的广告。。。

各种宣传语层出不穷,甚至有的培训班直接打出了“人工智能就是Python”这种标语,周志华和吴恩达老师看到了估计想吐血、、、

这些培训广告是不是让你心动了?想报班去学了?

先别急,我先给你浇盆凉水

这些培训班只告诉了你,Python容易好学,但没告诉你数据分析和数据挖掘甚至是算法工程师门槛有多高吧?

没有一个好的学历 + 一些不错的竞赛奖牌(比如国内的阿里天池或者Kaggle比赛等),小白/非科班/转行去搞数据分析、数据挖掘、甚至是算法工程师,基本可以说是飞蛾扑火了。

注意:这里的算法不是数据结构与算法的那个算法,数据结构里的算法是二分查找、遍历等,算法工程师主要是计算机视觉工程师(也叫CV工程师)、自然语言处理工程师(也叫NLP工程师)、推荐算法工程师。

计算机这行看技术是不错,但门槛你都到不了就没必要说技术了。

就比如岗位招聘中明确要求大专及其本科以上,你如果高中毕业去应聘,我觉得可能就直接被刷下来了。

算法工程师确实高薪,可以说是校招社招岗位中薪资最高的一档了。

我记的去年便利蜂招聘的CV工程师薪资基本都是38K/月,

但门槛也是真的高啊啊啊啊。

因此不建议一般人去学Python做算法。

# 2、你适合学哪种语言?

说完这几种语言主要可以用来做什么后,再来聊一聊你适合学什么语言。

当然了,我也只是推荐,到底选哪个还是要结合你自身的实际情况来判断的。

1、如果你是个在校生且还在大一大二或者研一,那Java和C++都可以,选一门就可以。

Python则慎重,不建议把它作为主攻语言,可以把它作为一门辅助语言去了解和学习,写写脚本、处理处理文本还是挺好使的。。

2、如果你是个在校生且但已经大三大四或者研二研三了,这个时候可能要面临找工作的情况了。

C++和Java到底选哪个?

这两种语言:前者难学、难上手,但竞争小一些,内卷比Java好得多。后者好学一点,也比较容易上手学,但竞争大,内卷严重。

你说学哪个,鱼与熊掌的关系罢了。

看你自己了,我选的是C++,并且我也不后悔学了C++。

虽然现在不怎么写C++了,但在学习C++过程中打下的底子给了我很大帮助。

我在学习其余语言的时候,上手很快,真的很快,我在学习前端的时候没花多少时间就能上手干活了。

其实编程语言里很多东西都是一样的。

只是基本语法有点差别,把一门语言的思想掌握好了,其余的还远吗?

学好一门编程语言就足够了,学好一门就足够你受用了。

对了,说个去年我在牛客上看到的计算机专业就业统计报告的事情吧。

去年校招,C++岗位简历的投递占比大概在秋招所有岗位的12%左右。

Java岗位的投递简历数据量在秋招所有岗位的26%。

2倍还不止了。。。

看看今年的后端就知道Java有多么卷了,我是建议走C++的,虽说难上手一些,但至少没那么多人跟你卷。

3、如果你是个毕业生或者非科班转行,比如生化环材想转互联网,还是走Java吧。

简单易上手,对于小白来说也比较友好,能找到的学习资料也多。

不得不说一句,C++有时候真恶心。。。

C++由于其语言特性导致它更加适合搞一些底层的东西,所以在学习C++很长的一段时间内,你所面临的都只是一个黑乎乎的命令框。

C++小项目运行成功后给你带来的视觉感受没有Java所搭建出来的Web页面那么具有感染力。

相应的,给你所带来的编程成就感远远比不上Java。

4、不要轻易去拿Python作为自己的主语言

是的,不建议直接把Python作为自己的主语言。

除非你是打算走爬虫工程师/数据分析/数据挖掘/算法工程师,一般人不建议直接拿Python作为主攻语言。

其他三种我不太了解,也不瞎说。

就说说爬虫这个工作,好入手,难精进。

比如逆向 JS 这种,还有高级验证码的破解都是难啃的骨头,都需要人带的。

靠自己自学,很难走的深。

5、如果你是因为:“听说Java岗位多资料全就考虑Java了”,那我强烈建议你还是选C++。

选择一门语言,并不是看他资料多少就去学这个,Java资料多,是因为各大机构都在培训这个,意味着岗位多,竞争的人也多,对应的薪资水平肯定也拉低了,你像算法岗位,需求少,供给也少,薪资非常高,所以选择一门语言之前,还是自己内心想想,自己想从事什么行业,这个行业内的公司大部分都用什么语言。

而且也不要根据“面试、项目准备难度”来区分选择语言,难度只是一个相对的值,每个人对待语言的难度都不一样,Java也有比C++复杂的地方,难度低的面试,薪资也不会太高。

# 3、几个粉丝高频问题

# 1、我一个月/三个月/半年好好学C++/Java可以像你一样进大厂吗?

首先我想说的是,没有说一门语言好学易上手、又好找工作、工作还清闲、工资还高的。

不管学哪门语言都需要好好学,都需要用心学,那些你束之高阁的大黑书都值得好好看。

其次我从来不相信那些什么三天学会Java、七天学会C++的言论,我只相信一步一个脚印、稳扎稳打、慢慢进步,最终收获好结果。

就好像去年寒假班的记录的最认真的几位同学一样,比如下面这位同学。

最后我不知道你的基础怎么样,也不知道你的自学能力怎么样,像这种问题我回答不了,抱歉。

至于我,我是这么走过来的,我已经把我自己的自学经历写出来了,并且是按照时间线写的,具体可以翻一翻下面这两篇文章。

何况我做那些事情都是在周一-周五的晚上 + 周末两天学习的,其余时间都在帮老师做项目或者看论文之类的。

老实说当初自学的时候,一周七天能留给我的时间并不多,我觉得你好好做规划,也是可以的。

别在别人放弃你之前,先放弃了你自己

# 2、学什么语言容易进大厂?

这个问题的频率可以说是 Top3 了....

这个问题真没有定论,不管学什么语言,好好学都可以进大厂。

你适合学哪种语言,上文我基本都写了不少了,可以去找找哪种情况适合你。

只不过有些公司比较偏重某一门语言罢了,比如腾讯比较喜欢C++(不过现在鹅厂很多业务也在转Go了),美团阿里比较偏Java一点。

如果你一心想去腾讯,那就好好学C++;比较喜欢阿里那就好好学Java,其余公司类似。

至于字节这边,Java、C++、Golang、Python都有的,具体要看部门了。

其实作为一个已经工作几年的人来看,语言真的不重要,你的职业有大好前途呢,不能现在就局限于某门语言,过几年Java可能都没人用了。

而且对于校招生来说,公司是非常喜欢有多种技能的人的,而且你现在用C++,面试的时候都会问你可不可以转Java的,内部转很快的。

# 3、阿秀阿秀,你在学习过程中遇到困难是怎么解决的?

说实话,这个问确实不太好回答,但问的人很多啊。

我就简单说一下好了。

首先没有人在学习中不遇到问题的,比如编译环境不会配、软件安装失败、代码各种bug、Demo编译失败。

这些问题在你学习计算机过程中都会遇到,我建议利用好百度和身边资源

百度虽然某些地方不太人道,但搜索引擎这一块做的还是没毛病的。

百度一下,你就知道,把你的报错信息复制到百度上基本都能找到解决之道。

遇事不决问百度就完事了。

还有就是你身边的学长学姐、师兄师姐们,遇到问题了就大胆去问一下,不管是生活上的还是学习上的,

我的师弟师妹们找我问问题,我都会很负责任的解答的,每天至少会抽出30分钟 - 1个小时的时间来做免费答疑。

对于粉丝大多数的问题我都能帮他们解决,对于某些比较刁钻的问题虽然有时候不能直接告诉他们某个问题的答案,但至少能给他们一个大概的方向或者告诉他们应该去哪些网站/查哪些资料/找哪些人。

这可比你自己无头苍蝇一样到处乱撞要强的多。