作者:阿秀
阿秀的学习笔记:https://interviewguide.cn
你好,我是阿秀。
计算机如今有多火想必不用我多说,许多非科班的小伙伴都陆陆续续转码了,比如材料、机械、生物这些专业的小伙伴转码的是最常见的,此外也有一些化学、环境的小伙伴选择了转码。
但转码只是第一步,决定转码之后就是确定自己的具体方向了,是前端还是后端?
如果是前端,那是学JavaScript和Vue还是JavaScript和React?
如果是后端,那是学Java还是C++?或者是Golang?
...
就像上面说的那样,转码只是第一步,剩下的抉择和具体的学习进度安排才更重要。
阿秀想说明的是由于每个人的基础和水平不一样,转码具体选择哪个方向需要结合你的情况具体情况具体分析,最后再给出建议。
而不是是个人来问你建议或者意见,你就统一建议转Java或者C++或者前端,这是相当没有责任心&极其不ok的表现。
阿秀的学习圈中就有一位师弟,这位师弟即将读研,本硕都是材料专业,打算在读研期间转码,但是在转码路上有一些疑惑和不解,第一个就是确定不好的就是自己到底应该朝哪个方向转。
1、圈友提问
《阿秀的学习圈》是阿秀自己组建的学习圈,本来是打算记录自己的学习和充电经历的:每日一点点,阿秀离开学校后坚持学习135天了。后来也慢慢也带着一些研究生师弟师妹以及本科的学弟学妹们一起学习和准备校招求职。
后来这个学习圈的目的很纯粹,就是让大家通过每日一点点在校招求职中拿到一个好offer,拥有一个好一点的职业起点。
以下是这位学弟在阿秀的学习圈中的提问原文:
秀哥好,我是沿海某985的22级材料专业准研究生,本科阶段浅浅的上过c语言、数电模电、计算方法matlab的课,其余没啥计算机相关基础,计划转CS找工作。
希望能好好利用这个暑假的时间,因为研究生阶段本专业的任务+导师不放人,可能会导致自学CS时间很少。
如果研究生阶段能再有较多时间学习,我是希望届时能拿到SP的offer,但如果只有这一个暑假能高效学习,只希望转行成功即可。
我也看了你关于选择Java还是C++的回答,希望秀哥再考虑下我的学历背景+可支配时间+内卷情况+职业长期发展,综合考虑一下,我走Java还是C++是最明智的选择?
2、回答
阿秀在仔细看过他的问题后,回想起自己曾经的经历,给出了以下建议和回答,以下是阿秀在阿秀的学习圈中的针对这位学弟问题的回答原文:
你好,我仔细看了你的背景,建议你走Java吧。
主要原因有以下几点:
1、你是非科班,像计算机基础几个课你应该都没上过,内存这种概念可能都需要现学,Java对底层要求比较浅一些,不像C++那么严格,上手也很好一点。
2、Java确实能干的活比较多,写业务是一把好手,某种意义上说,Java就是为业务而生的,C++适合性能提优之类的。Java能投递的岗位和类别也要比C++多一些,不仅可以投后端也可以做一些大数据开发的工作。所以如果你打算走后端的话,根据你的情况建议你走Java吧。
不过你也可以考虑下前端,后端要学的东西太多,而且很杂。
语言、算法、操作系统、计算机网络、MySQL、Redis,就这我还没说一些XX框架和XX中间件...
某种意义上你可以试试前端,人更少,学起来也更轻松一些,建议你把前端纳入考虑选择中。
为什么会建议你把前端纳入考虑范围内呢?
原因有两个:
1、人少,竞争小
其实你可以去翻翻计算机科班的培养大纲,你可能会发现这些学校教育大纲的培养路线基本都是后端方向。
不管是教Java还是C++亦或者是C#、Python这些编程语言,还是教数据结构与算法还是计算机网络亦或者是数据库这些内容全部都是后端路子,再多说一些包括什么Java的SSH或者SSM框架、C++下的STL库这些也都是后端方向的东西。
没有哪个学校教你去学Vue、React这些前端框架。
当然了这里并不是说,前端不需要学数据结构与算法和操作系统、计算机网络这些东西,而是前端相较于后端,前端对于这些要求更低。
你可以去看全国90%的大学计算机培养方针都不会发现有教JavaScript的,最多能发现教HTML的,让你去写几个静态界面,压根不会教JavaScript。
所以诸多因素之下,导致很多应届生压根不知道JavaScript和前端方向,全部一个劲儿得往后端挤。
你会发现他们整天纠结到底选Java还是选C++这种问题,现在Go语言开始慢慢成为第三个选择了,而大多数人投简历的时候也只会往这几个方向投,根本不会注意到前端这个方向和相关技术栈。
这也是我建议你把前端纳入自己考虑范围的最主要的原因所在。
2、好学
另一方面JavaScript这门语言是门弱语言,不像Java和C++那样语义严格、语法明确,JavaScript的语法也更加简单,学起来也容易些。
他没有后端逻辑性那么强,前端好就好在你看得见摸得着。不管是CSS还是JasvScript,你都可以很直观得感知到,如果你学后端C++的话很长一段时间陪伴你的都是黑乎乎的命令行窗口。
但学前端有没有不好的地方呢?
那肯定也是有的。
任何事物都是有两面性的,历史经验也证明了:多快好省得建设社会主义是不可能的!
哪有既跑得快又不吃草的马呢?
阿秀自己就是一名全栈开发者,前端和后端都会写一些,没有严格的区分开。
有时候一个需求自己前后端一起做了;有时候一个需求我写前端,别的小伙伴写后端;有时候我来做后端,别人写前端。
日常工作大概60%后端,40%前端吧,所以还是有一些资格来谈一谈前端这个大方向的。
一般来说前端天花板比较低,主要业务逻辑和性能瓶颈这些还是放在后端,我想即使你不懂后端也应该听说过高并发这些名词,这些都是后端方向的事。
还有一个弊端就是前端也容易给后端擦屁股,后端给的接口不太好或者定义的接口数据结构不太ok,都需要前端来做适配。
我习惯把这种情况叫做擦屁股,我在写前端的时候就经常给后端擦屁股,这是前端最大的弊端和短板。
但你要说前端不值得干那就真的大错特错了,即使前端天花板相比于后端低一些,可绝大多数前端从业者依然处于初级开发的水准。
即使是阿秀自己也处于一个前端初级开发者的水平,自己需要学的、能学的依然有很多。
市面上初中级前端开发师也居多,高级和资深前端开发者在市面上都是香饽饽,薪资待遇一点也不比资深后端差。
前几天在这篇文章中也说了我以前同学在研二刚开始就去参加线下培训班的事:三个通过自学进入大厂的真实案例,她这么做是因为知道自己的短板即自律性不行,所以就去报个班,每周定时去上课,回来了按时总结和复习自己在课堂上学的内容。
如果你自律性可以,不管是Java还是前端完全可以自学,你的时间还多的是,没必要去花这两三万的,毕竟两三万也不是小数目了。
所以,根据你的情况,建议你考虑下前端或者Java,比较适合你,过几天会安排一手具体的学习路线,包括阿秀自己学习前端的过程都会发在学习圈子里,到时候可以参考一下。
3、校招加油
最近阿秀在自己的学习圈子里发起了一项校招结伴而行、相互监督
的活动。
因为两年前我就是只管学自己的,剩下的全都交给时间了:双非渣硕的秋招之路总结(已拿抖音研发岗SP)、没有什么逆袭,有的只是一点点坚持!
直到如今工作了,我依然保持每天学一点点:坚持充电!我离开学校后坚持学习135天了!可能一天可能做不了什么,但是一周、一个月能做的就有很多了。
如果你能拆解自己的目标到每月、到每周,甚至到每天具体需要做些什么,并且去执行,剩下的就是交给时间了。
我始终相信成功是一步一个脚印走出来,而不是什么一蹴而成,每天坚持一点,这样才能积少成多、聚沙成塔、水滴石穿。
如果能够有小伙伴一起结伴而行,也能起到相互监督的作用,目前已经有将近500名小伙伴加入了,可以预见的是他们都能在今年校招中收获胜利果实!
此外,对于每位阿秀的学习圈中的圈友也会奉上自己以前的学习和校招面试总结笔记,也就是《阿秀的学习笔记》PDF版本:计算机校招求职八股文PDF版本
秋招结伴而行、相互监督打卡->戳我查看活动详情
我是阿秀,衷心希望各位学弟学妹都能顺利上岸,找到好工作!
提前批👍:不要随大流去参加提前批
实习👍:在大厂实习,表示很慌!
算法岗👍:为什么我苦口婆心劝你不要找算法岗
校招准备👍:对自己目前的秋招进度产生怀疑了...
学习经验👍:一直都是纸上谈兵...
忠告👍:校招途中换语言,真的很不应该!
心路历程👍:三本,身边人都在摆烂....