现在只要提及编程语言,得到的答复都是:学Python,有未来!
大家可能有一个误区,数据分析带火了Python,让人们觉得只学Python可以进入到人工智能和数据分析领域。诚然,Python社区的庞大产生了不少第三方库,可以让你傻瓜式直接调用库完成某些需求,往往几条语句即可。刚学Python的朋友往往会从request之类的库入手,然后因成功抓取到某个网页的数据而欣喜,最终一直停留在开箱即用的阶段,如果没有这个库,什么都完成不了。那这样还叫编程吗?应该叫粘贴复制,没有思想的灵魂。
Python主要是封装了太多模块,易于调用,在大型项目中作为胶水语言,减少代码量,提高复用率。所以我们可以看到很多项目都提供了Python开发接口,比如微信公众号开发可以使用Python\C++\Java,最终用什么,完全取决于你擅长的语言。而如果没有封装好对应的JS库,你的Python完全跑不起来。这是前端领域,JS的不可替代性。而后端大家经常听见的服务器语言,如Php和Java,对性能要求不高的网站或许会使用这些来开发,而游戏服务器,必然是C++开发的。游戏里面的部分模块可能会由Python或者Lua编写,方便实时改动,毕竟他们是脚本语言,不用编译。这对于时常需要在线更新的软件来说,使用很频繁。
C++不可取代的地方
也就是说脚本语言必须运行在一个底层环境里面,而C和C++包括Java这些都是用于处理底层环境,能对系统接口进行调用,然后实现对应的需求,俗称客户端的开发。而有了这个客户端框架,里面的部分功能可以用任何语言开发,完全看你的用途。在这之上,如果做数据采集,封装一个Python模块,代码量确实很少,效率也很高。这也是Java和C++开发岗位那么多的原因,而Python培训机构多而已。毕竟Python简单,可以让你不用深层次了解系统底层在做什么,对于Python机构来说,可以很快笼络一部分学员,让他们信服,觉得课程物超所值。也有部分大学在开设Python课程,然而万变不离其宗,软件开发正规军没有一个不是从c开始的,然后c++。甚至和一些刚转行的朋友交流到,他们现在处于学了Python很难找工作的地步。这里我立马查看了下大厂对于Python岗位的需求分析:
从C++
Python 岗位挺多,比C++稍微低一点,毕竟腾讯三分之二的是开发人员,能找到这么多的招聘岗位也实属正常。那么我们看看Python的上岗需求是什么。看了很多都发现有如下的要求:
不难发现后面写了一句:具备娘好的学习能力,对互联网新技术有很强的的求知欲望。因为随着工作的深入,你要学习很多依赖,仅仅纯Python是无法应对的。反观C++则不一样:
C++毕竟是一门经历了时间考验的,能应对各种程度项目的这么一门语言,这些年仅仅标准再更新,目前最新的是C++23,其实标准也就是增加部分,弃用部分。对C++高级工程师来说,影响不大。他们不需要学习太多新知识,也不需要什么所谓框架,需要什么自己动手开发就行。
在开源库GitHub,可以看见很多大厂的自己动手造的轮子,只是为了业务顺手而已。
毕竟依赖别人的就得遵循别人的开发标准,很是不方便。
如果真正想入门软件开发,C++是你的必经之路。毕竟Python能做到的C++都能做到,C++能做到的Python不一定能做到。凡事讲究先苦后甜,四年大学难道仅仅为了学一下Python吗?最近很火的ImHex的作者,大二就沉浸在底层开发中,并用C++打造了这款接近一万星的开源十六进制编辑器,为他点赞!C++真的挺难,但是会当凌绝顶,一览众山小。学会C++之后,再用Python来充实自己的职业生涯,岂不是身心舒畅吗?