近日,我被人骂是编程小白。
笑死,虽然不敢说是什么大佬吧,但好歹我也是混过NOIP(被取缔那个)蓝桥CSP天梯的人,手写过归并快排根堆希尔的人,封装过队栈串内存池高精向量的人。虽然现在可能有大佬觉得“哇你这不铁小白”,但是那家伙说的是,我就会个helloworld。
我听了真的气笑了,我在我们校队虽然不算第一但好歹也是中上了,洛谷力扣清华OJ刷的题也不少了,他难不成是某985现任校队队长?或者CCSP480分选手?于是我点进去他资料卡以免冲撞大佬,然后,我看到了,这家伙14岁。
14岁可以参加CSP普及组了,虽然我不知道他什么水平,但是鉴于他一句算法没提,口口声声只说着C语言,我贸然推断:这 大佬 可能刚学编程不超过两年。(我教练第三年教的我们C++)
但他有什么底气说我这个算法图画的比他写的include都多的人是小白呢?我想,可能是因为我说:我喜欢Python。
是的,我就是喜欢Python,而他觉得只有只会helloworld的人才喜欢Python。
我不是不会别的语言,java(移动开发和暑期实习用的)js(开发网站用过)cpp14c#(玩游戏开发的时候学过)rmatlab(本人统计系)汇编(会一些,还没背全,觉得好玩)c89(最老最纯粹的C,我甚至用readwrite写过算法)c51(玩过单片机)我不能说精通只能说熟练运用,但他似乎只抓住了一点:我喜欢Python。
而喜欢Python的人,似乎只有小白。
我为什么喜欢Python?我最开始用Python的时候是上大学前,那时我已经有了差不多4~5年代码基础(搞过奥赛,结果后来被取缔了)我用的是Python3,从3.5用到现在的3.9。Python语风很符合直觉的,基本就是学一点点很多就会自然的表达出来。而我也正是因为这一点喜欢上了Python。此后的算法竞赛,我也基本用Python完成,我的观点是:
反正要加缩进,为什么要加大括号?
反正只有流程才是核心,为什么要有主函数?
反正我不搞开发,为什么要搞架构?
反正我自己写着玩,凭什么要听别人指指点点?
Python的强大之处就是,如果你对他没有严格的要求,他会在极其简单的语法下,给你极好的编程体验。其他语言固然很好很快有很多优点,但是我不需要啊!举个通俗的例子说:我在家蒸个馒头吃,你进来指指点点说我酵母少了没发好没蒸对时间没醒好面没捏成正圆形?关你屁事!
固然,Python的确存在某些问题,这些问题使得业内人士对其满腹怨言(比如Cpython的GIL,比如pyword的没法导入excel,比如莫名其妙的else语句等等),但这并不影响他成为一门优秀的语言。4年前,将Python作为主要语言的py开发人员占比已经到达84%,而Python也并没有与老牌领主java争抢过多定位,选择了私人和数据分析领域。这两个领域对时间的要求更低,而对易读性和简易性要求更高,这使得Python相比于更专业的java(偏向信息科学)和R,matlab,spss(偏向统计和数学)等老牌霸主有了那么一丝优势。而Python也凭借着这一丝优势成功的达到了2021年最多人使用的计算机语言(前两名是更简单的js和标记化语言html),而与SQL平分秋色。
的确,目前的Python热只是一个骗局(话几千块钱学Python也找不到好工作的,相信我),也许Python终将与他的前辈们一样冷下来,但是Python自身的优点也是值得我们肯定的。
初学者要把Python作为第一语言吗?就我个人而言,我觉得应该如此。Python作为高度精简化的语言,可以大大缩短初学者理解内部处理机制和基本逻辑的时间。
但同样的,我并不建议想要深入的人将Python作为自己的唯一语言。就我个人而言,Py-C-C++-Java-Py是我认为比较合理的学习路线。
语言没有优劣之分,只有专长。C的速度秒杀几乎所有高级语言,C++在对速度稍作妥协的前提下提供了更方便的编程方式,Java到达了解释语言的新高度(有人认为她是混合型语言),而Python则凭借着几乎无敌的简单在某些领域形成压倒性优势。总而言之,还是那句话,没有垃圾的语言,只有垃圾的人。
哦对了,腾讯Python工程师20k,阿里Python工程师20.5k,虽然相比java少了近一半,但是想想Python和java相比就知道,摸鱼还是要有一丢丢代价的。总之,想说Python垃圾,请指出她的问题所在,和哪些语言能完爆他,而不是十分中二地叫嚣着只有只会写helloworld的人才喜欢Python。



