几个礼拜前,一个学弟问我:
“Ray,我打算之后要找工作了,不过现在自己没有特别深入的语言,最近想找一门好好学一下,你觉得学什么语言好呀?”
我表示:“这个要看你求职方向、个人喜好、市场供需了,其实现在热门语言各有各的好,你挑一个顺手的学起来就行。”
兜兜转转,好几个礼拜过去了,这位学弟还在几个语言之间徘徊,由于纠结到底学什么语言好,把所有流行的语言都学了一遍,至今已精通十几门语言的“HELLO WORLD”,却没有深入任何一个语言的底层。
确实,选择哪一门语言深入钻研是一个大学问,一门语言需要你投入非常非常多的精力才可以融会贯通,需要好几年的经验才敢说自己是精通,所以在技术选型这一关上很多同学都花费了大量时间。
其实,对于求职者而言,选择哪一门语言要考虑的不只是自身因素,比如语言风格是否符合个人喜好、语言的学习速度、学习曲线...
更要考虑的是这门语言现在及未来在应用领域的发展、这门语言的学习者数量是否过于庞大导致相关岗位门槛快速升高。
我反思了一下自己,当时模棱两可的回答确实给不了初学者们明确的方向,所以在投入时间成本进行学习前,今天给大家仔细分析分析。
希望看完今天的内容后,大家不要再继续学习十几门语言的“HELLO WORLD”了,赶紧选定一门语言,好好修炼内功,去打磨知识深度吧~
那么今天的讨论主要围绕后端方向的语言,包括Java、C++、Golang、Python。
往下看!
JAVA
第一个登场的是Java,后端开发语言领域的老大哥,要说后端开发应用最广的绝对是它,同样求职岗位供应最多的也是它,如果你已经濒临毕业没什么时间在瞎琢磨其他的,只想一门心思把所有时间都花在更快地找到工作上,选它选它。
不过从另一方面考虑,我们能想到找工作就要学Java,当然所有人都能想到这点了,因此市面上所有培训班的后端课90%都是Java培训。
要说对于Java语言掌握的熟练程度,培训班出来的同学们水平不一定比CS科班毕业的同学们差,因此虽然Java供应的岗位多,但是求职者也多,竞争压力大,门槛一路水涨船高,随便去网上搜一下Java岗位的面经,那难度飙升到让人害怕。
但是也不要太害怕,Java是一个大中小厂全部都大量使用的语言(其他语言很可能只有大厂才用),也就是说即使由于竞争太激烈而痛失大厂offer,还有中小厂可以拼一拼。
不仅如此,近两年疯狂缺人、难度不断降低的安卓岗,如果你会Java,转岗面试是很容易过关的,所以可以考虑一下Java哦~
C++
第二个登场的是C++,性能届的老大哥,广泛应用于游戏开发、图像处理、工业等追求性能和速度的领域,也是学校授课的首选语言。
如果你是一个时间还算充裕,想打磨打磨自己计算机基础知识的同学,选它选它。
C++在我提及的这几门语言中,某种意义上来说,是难度最大的,那让人眼花缭乱看一眼心脏就会漏跳一拍的指针、地址、引用、模板、多态……
厚得用来盖泡面,泡面盒都会被压垮的《C++ primer》,想必是每一个CS学子心中抹不去的记忆。
不过经历过风雨,后面就都是彩虹,我可以很负责任地说,如果你可以把C++学通透了,以后学其他语言基本都是分分钟上手,转语言根本不是问题。
同时,虽然C++在企业的后端开发中使用率没有Java高,但你去应聘任何一个岗位,无论它的要求是熟练掌握Java还是Python还是Golang,只要你告诉面试官你熟练掌握C++,一定可以获得面试机会,如果在面试中对于C++相关问题对答如流,那么一定会给人留下很好的印象。
有时间并且对于底层知识有所追求的同学们,冲!
GOLANG
随着字节跳动后端全面使用Golang,腾讯某些部门开始推广使用Golang,以及其他大中小厂的部门或多或少开始使用Golang。
再加上近几年大火的Docker, Kubernetes均有Golang编写,Golang彻底走进了且占据了每一个后端求职者的心。
Golang代码简洁、易用、开发速度快,且相比于同样以易用、快著称的Python,还具有性能良好的优点,具体比Python快多少,大家可以在Leetcode里用同一道题同一个思路,分别用Python和Golang写一遍对比运行时间。
除此之外,Golang虽然是一门类C语言,同样拥有指针,但是它学习速度快、学习曲线平缓,用来作为一门快速掌握以应对求职的语言也是不错的选择。
要说找后端方向的工作,第一名选Java,第二名就选Golang。不过Golang一般在大中厂使用较多,小厂基本还是Java的天下,也就是说如果水平没有达到中上的层次,学了Golang可能就要没饭恰了。
PYTHON
虽然但是,Python是一门流行度不断上升的语言,可它在后端的地位确实不太行。
Python虽然开发速度很快,但是性能和效率有些不足,后端作为一个处于高并发场景要求快速处理数、据快速响应的部分,对性能的要求还是非常高的,因此选择使用Python作为大型后端项目的开发语言的公司和岗位可以说非常少。
而且相较于其他语言的资料和教程,大部分Python教程面向于初学者、入门爱好者,只提供一些较浅显的知识点,让学习者误以为Python的学习程度到此就够了,导致大家忽略了Python的底层机制、实现等,只学到了一些皮毛,在真正面试时才发现面试官问的自己好像不曾关注过。
不过如果你是一个自驱力强,热爱主动钻研底层,或是学习用Python做一些爬虫、数据处理以及快速开发一些自己的小项目的同学,选择Python造一些有趣的应用也是很不错的~
— END —
撰文:RAY
校改:小A
点个在看
持续为你提供更多求职干货