香雨站

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 149|回复: 20

如果一定要在C++和JAVA中选择,是C++还是Java?

[复制链接]

3

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2022-9-20 09:05:48 | 显示全部楼层 |阅读模式
首先推荐一个免费的经典计算机PDF仓库:
地址1:https://github.com/forthespada/CS-Books(由于VPN等因素如果不能访问可以尝试地址2)
地址2 :https://gitee.com/ForthEspada/CS-Books
这可能是整个GitHub上最全的计算机经典PDF仓库了。 在我自己学习计算机的过程中,慢慢的养成了收集书籍的爱好,前段时间看了一下,吓了一跳!!不知不觉间我已经收集超过 1000 本了。其中涉及C/C++、Java、Python、Go语言等各种编程语言,还有数据结构与算法、操作系统、后端架构、计算机系统知识、数据库、计算机网络、设计模式、前端、汇编以及校招社招各种面经等~
前言

作为一个学习计算机八九年的老学长,今天不请自来,也来聊聊这个话题。
我自己经历了2021届的互联网秋招,在面试的过程中,被问过各种各样的问题,但是大部分都是基础性的题,所以基本功很重要,也很关键。
在我以前通过校招上岸字节跳动后,将自己的秋招找工作笔记开源在github上了。
可以说我能够凭借双非的学历进入字节跳动全靠我自己总结的这份笔记,后来我将这份笔记制作成了PDF,并且同步到了自己的校招学习网站上,现在免费分享给学习学妹们
自己以前的学习笔记包括操作系统、计算机网络、数据库(MySQL、Redis)、常见情景题、智力题以及计算机面试中需要注意的问题
下面是我的校招学习笔记网站内容大纲



《阿秀的校招学习笔记》网站内容大纲

不少学弟学妹们在这个网站的帮助下,顺利进入BAT、TMD,甚至去了字节跟阿秀一起做同事,都跑来找我报喜!
这是我的学习笔记网站:
背景

2021届双非渣硕,本科四年 + 研究生三年,现在在字节跳动抖音部门写代码,技术栈为C/C++/Golang,现在也在写点前端JavaScript和Vue。
以前也在知乎上分享过自己的校招总结和学习总结
说回正题,这个问题真的很高频,以至于很多学弟学妹加我第一个问题就是:秀哥,我想学Java/Python去找工作可以不可以
真的特别多。。。今天写了一篇五千字长文来聊聊这个问题。




今天就聊聊吧,到底 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,能干的活确实很多,这点你不得不承认,招的人也是最多的,岗位也是最多的。
但,相应的,它也是最卷的,字节提前批第一天开放的时候投递Java后端开发的应届生是最多的。
最后来说一说Python
Python作为新兴的一门编程语言,这几年也受到很多学弟学妹的喜欢。
比如用它去爬个数据、做做数据可视化、处理处理数据,确实挺好使的。
Python也可以用来做后端开发,比如它的Django框架,只不过招Python做后端开发的比较少。
Python还可以用来做爬虫,我以前也玩过一年多的爬虫,Python在搜集网络公开数据的时候还是挺好用的。
除此之外,还可以做一些数据分析以及数据挖掘这些岗位。
相信大家都能看到培训班满天飞的人工智能、Python爬虫的广告。。。
各种宣传语层出不穷,甚至有的培训班直接打出了“人工智能就是Python”这种标语,周志华和吴恩达老师看到了估计想吐血、、、
这些培训广告是不是让你心动了?想报班去学了?
先别急,我先给你浇盆凉水
这些培训班只告诉了你,Python容易好学,但没告诉你数据分析和数据挖掘甚至是算法工程师门槛有多高吧?
没有一个好的学历 + 一些不错的竞赛奖牌(比如国内的阿里天池或者Kaggle比赛等),小白/非科班/转行去搞数据分析、数据挖掘、甚至是算法工程师,基本可以说是飞蛾扑火了。
“注意:这里的算法不是数据结构与算法的那个算法,数据结构里的算法是二分查找、遍历等,算法工程师主要是计算机视觉工程师(也叫CV工程师)、自然语言处理工程师(也叫NLP工程师)、推荐算法工程师。
计算机这行看技术是不错,但门槛你都到不了就没必要说技术了。
就比如岗位招聘中明确要求大专及其本科以上,你如果高中毕业去应聘,我觉得可能就直接被刷下来了。
算法工程师确实高薪,可以说是校招社招岗位中薪资最高的一档了。
我记的去年便利蜂招聘的CV工程师薪资基本都是38K/月,
但门槛也是真的高啊啊啊啊。
因此不建议一般人去学Python做算法。
在自己本科+研究生七八年的学习时间里,陆陆续续收集了很多的计算机专业书籍,还有一些刷题笔记、简历模板和视频资料等。现在大致整理了一下,居然有1000本之多,我都打包分享出来了。
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个小时的时间来做免费答疑
对于粉丝大多数的问题我都能帮他们解决,对于某些比较刁钻的问题虽然有时候不能直接告诉他们某个问题的答案,但至少能给他们一个大概的方向或者告诉他们应该去哪些网站/查哪些资料/找哪些人。
这可比无头苍蝇一样到处乱撞要强的多。
<hr/>能看到这的基本都是真爱了,哈哈,送你们一份算法资料吧,我在github上发现的,现在大厂面试必考算法!
我最近发现三位谷歌大神写算法刷题资料,支持Java、C++、Go三种语言,其中对于面试中考察较多的链表、树、动态规划、数组等知识点讲解的都很全!如果你算法能力比较弱,比如互联网大厂面试中手撕算法比较差的话,那要好好看看了。
<hr/>推荐阅读

最后再送上一些干货,下面是一个高赞回答合集,建议你点赞&收藏,千万要Mark住啊,丢了可能就找不到了,因为你大学学习计算机期间绝对用得上,其中有好几个都是收藏过万的回答。
记得收藏的时候帮学长 @阿秀 点个赞呀!!不要只收藏不点赞啊, (๑•̀ㅂ•́) ✧ 拒绝白嫖,人人有责!
如果有计算机学习、校招求职、考研、读研感兴趣的小伙伴也可以点击下方卡片关注下阿秀鸭
一直致力于分享计算机学习、校招相关、硬核技术等,让你们不再让我走过的弯路!
1、学习编程其实没你想的那么难,完整复盘我系统准备校招&自学的那一年,好好阅读下去,对你肯定有所帮助。
2、对于一些想要转行或者读研的朋友,下面两个回答肯定能帮到你!
3、如果你决定不了到底学习C++还是Java,不妨来看看这个回答!
4、建议多看经典书,而不是什么《七天教你学会Java》、《21天C++从入门到精通》系列,这类型的书完全是浪费时间,让你走歪路!
5、Linux C/C++ 方向自学的完整路线,很多人不知道学习完 C++ Primer 能做什么项目练手,这个回答不可错过!
6、如果你准备时间不多,就抓住重点,在最短的时间内搞定必要的数据结构和算法而去面试
7、我自己在学习计算机过程中看过的优质网课,这些精品课程你的大学四年绝对够用了。
回复

使用道具 举报

1

主题

4

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2022-9-20 09:06:23 | 显示全部楼层
那就想办法让自己能过简历关。学校不好就好好搞点项目,项目不好就好好参加一些比赛,争取拿点奖,没啥好的比赛就去学学技术做一个有点水平的东西出来。
如果你学校不好,技术不行,英语也不行,四级也没有,大学四年全挂科过来的,哪个大厂也不中啊
回复

使用道具 举报

1

主题

5

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2022-9-20 09:06:36 | 显示全部楼层
不管你学什么语言,都建议你好好练练算法题,前段时间发现一个不错的算法刷题资料,分享给你建议好好利用!拓跋阿秀:超越100%!谷歌出品!三份支持Java、C++、Go三种语言的LeetCode刷题笔记!
回复

使用道具 举报

1

主题

3

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2022-9-20 09:06:43 | 显示全部楼层
博主你好,我是刚研一信息处理专业,也有想转码的念头,但是又感觉直接学Java卷不过他们cs出身的人…编程基础也非常薄弱,只会matlab,如果转码[捂脸]相当于要重新学,本科学过c++,属于勉强能看懂代码意思但是自己基本上什么都写不出来的水平,但是研二需要用c++做一些图像处理的工作,但是我又担心c++就业面是不是没那么广,请问我这个情况应该学Java还是c++?真心求教!
回复

使用道具 举报

2

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2022-9-20 09:07:41 | 显示全部楼层
你好,看个人简介处有答疑方式,不在知乎回答私信 这样没有存档 看不到历史消息
回复

使用道具 举报

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-9-20 09:08:35 | 显示全部楼层
深度学习和研发岗貌似就不咋沾边,只有一个靠点关系,那就是深度学习的平台落地搭建,这个学Go比较可以。
你要是想做深度学习,就就去搞AI算法;你要是想做研发,就远离神经网络、LSTM、多模态这些东西。
回复

使用道具 举报

0

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-9-20 09:09:18 | 显示全部楼层
阿秀大大 我是今年某末流211应届毕业生,专业是数据科学与大数据技术 c++约等于0基础 java仅有课程基础没做过web项目;主要用的是python 因为考研成绩不理想无缘ai算法了 计划走后端开发 有点python web基础 会点数据库linux皮毛。去b站看了就业推荐后加了下网课老师。因为他是卖的c++网课所以推荐我学c++说有定制班针对我的情况可以在6月找到工作 个人认为自己自制力不太强 报班能赶上春招嘛
回复

使用道具 举报

4

主题

6

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2022-9-20 09:09:46 | 显示全部楼层
好好学可以,不过建议你多刷刷题啊,IT求职基本都会考算法了,这是我的刷题记录,你可以看看:LeetCode按照怎样的顺序来刷题比较好?
回复

使用道具 举报

2

主题

6

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2022-9-20 09:09:56 | 显示全部楼层
沙发发[爱]
回复

使用道具 举报

4

主题

6

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2022-9-20 09:10:07 | 显示全部楼层
c++也卷起来了 强烈建议大家继续冲java
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|香雨站

GMT+8, 2025-3-15 03:31 , Processed in 0.795663 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表