相信不少人已经看过了TIOBE 5月份发布的编程界“江湖兵器排行榜”,Python以2.75%的增长趋势赶超Java排到了第2名,不少“强者”还大胆预言Python今年将排到到所有编程语言第1名的地位,但对龙叔看来,这些都很正常,每次编程语言排行榜一旦出现变化,大家都喜欢对未来做点预测。
只是让我受不了的就是,又有些另有目的或根本不懂的人在传“Python是世界上最好的语言”、“小白学编程就该学Python”…
在我看来,这种言论极具误导性,去年11月Python完成了十几年没出现的奇迹“第一次赶超Java”的时候,就有不少“大佬”大放厥词,当时我就发文痛P“误人子弟”,即使今天Python再次强势上升,我也一样要大胆提出自己的看法:
我依然反对那些“Python是最好的编程语言”、“建议小白学Python”的言论!
为什么我要反对?原因有以下几个方面的。
对于我们程序员来说,开发一款软件的过程当中,你可能会用到好几门语言来解决你的问题,也就是说一个程序员他有可能要掌握一到多门语言,但是大多数程序员最熟悉的那门语言,一定是他当前所用的那一门儿,然后以此为基础,引入一些其他的语言的优点,来增强自己软件的一些性能。
所以说好多程序员其实都会陷入类似“PHP是全世界最牛逼语言”的这种误区。
他会钟爱自己的那一门语言,然后点评编程语言优劣的这种说法,其实都具有极强的一个误导性。
我们用某种语言来写程序,写出来的程序是不可能运行在空气中的,我们写出来的程序一定是要运行于某个环境当中的。
所以说决定软件性能优劣的绝对不只是语言的优劣,它是一整套体系决定的。
单独讨论编程语言哪个优劣,就好比你去对比F1赛车跟奇瑞QQ两者的车速,你可能会说F1赛车肯定牛逼,奇瑞QQ肯定弱爆了,但问题是如果我把这两辆车都开到了北京五环呢,堵车堵到水泄不通,那么它两者的速度是不是都差不多?
所以看问题应该成体系、整体去看,不谋全局者不足以谋一域。
大家很少会看到有架构师出来谈语言的一个优劣,你基本上看到的都是程序员在讨论哎说哪种语言更好、哪种语言更坏。有人说JAVA是全世界最牛逼的语言,有人说PHP是全世界最牛逼的语言,有人说Python是全世界最牛逼语言,这其实都是非常愚蠢的一种论调。
语言对于我们程序员来说只是工具,我们要做的是解决问题,而不是去研究谁的工具最牛逼。可以说谁的工具都牛逼,谁的工具也都不怎么牛逼。
编程语言的学习它是一整套体系。
第一层你首先得了解一下计算机硬件,像CPU、内存的硬盘他们大致的工作原理是什么。第二层就是在硬件之上,你得了解一下操作系统是啥,以及它大致的工作原理。第三层才是在操作系统之上来开发应用程序,那这个时候你就需要掌握一到两门编程语言进行开发了。
**但是我看到大多数人的分析都是直接站在了第三层,对于小白来讲无异于高空建楼,**它默认你已经知道了计算机硬件加操作系统,也就是软件的一型平台是个啥,然后去对比语言层面的优劣。
如果说你已经进入到互联网开发领域了,那这种。你尚且可以听一听编程语言优劣分析的言论,因为你已经有一定的基础了,那你可以站在第三层去听一听这种语言它有什么优点和缺点,对你来说尚且有一定的意义。
但如果说你还没有进入到互联网开发领域,你连软件的历经平台是个啥你都不知道,那语言层面的对比对你来说毫无意义。
因为你此时所面临的首要问题就是如何入门开发领域,能够进入到这个行业,这才是最关键的。
对于小白来说,你要时刻牢记,你学的是编程,是去解决问题的,其次才是选择合适的编程语言,把你的思维逻辑翻译下来,这个先后顺序一定要搞清楚。
如果你上来就已经假定自己是一名行业内的程序员,你去选择自己合适的工具,那这是非常愚蠢的,因为你都不知道你会遇到什么问题,你甚至连编程是什么你都不知道。
所以我的建议小白,如果你对IT领域确实感兴趣,那如何快速学会编程,先进到这个领域当中去,这才是最关键的。
虽然Python并没有想象中的那么全面,但有些方面还是值得肯定的,如果你觉得这些方面就是你想要的,那么你可以去学Python是没有错的。
你想快速把你自己的编程逻辑用某种语言给实现出来,Python绝对是小白的一个首选。
学Python你一个月你就可以立马去写程序了,这对小白来说是非常友好的,那你应该选择一门能够快速上手开发程序,然后再了解了这个编程是什么,最后再去讨论应该选择python这种工具还是换成其他的工具。
与其一上来就选择一门比较重型的语言,然后长期徘徊在入门级别而不能上手去写程序,最终因为你毅力不足而导致而选择放弃,倒不如选一门容易上手的编程语言。
拿我自己为例,我最开始学的C语言,大学时自学了Java,进入工作的十几年里陆续学了PHP和Python,对我来说,给我1个月的时间我就能掌握1门编程语言,你别不信,等你精通了一门语言,你就能做到这种触类旁通的效果。
因为要时刻牢记你学的是编程,等到你会了编程以后,换一门语说白了就是把你实现编程的工具由一种换了另外一种,这是非常简单的一件事儿。
当然,深入学习所有的这个语言你都会觉得难,为啥呢?因为语言它是一门工具,深入学习下去就不是在研究工具了,是在寻求如何高效解决问题的办法。
说白了,你此时遇到的问题可能是多种多样的,某一种语言它也不能完全解决你所有的问题,你可能需要多种语言配合的来解决你的问题,所以我们常说,一名合格的程序员应该至少掌握两门语言。
如果说你自己根正苗红计算机专业毕业的,你计算机基础知识比较扎实,或者说你对自己的意志力和学习能力足够的自信,那你优先选择什么语言,我觉得都可以进入到互联网开发领域中来。
如果不是,那其实我推荐小白以python这种容易上手的这种工具为基础,快速的掌握编程,然后再横向地去学习其他的工具。
现在市场上最多的就是Java程序员,这是毫无疑问的,对于刚进入职场的年轻程序员,你的竞争对手可能是具有四五年甚至更多年开发经验的老程序员,就比如以前我给技术部门的指标基本都是“优先考虑有经验的”。
那么对于绝大多数新人来说,除了有干劲和头发多之外,似乎别无优势。
但其实在技术层面,是可以打一个差异化,Python的入行薪资普遍比Java高,这是招聘平台的大数据,目前掌握Python的程序员并没有那么多,而Python这4年来的势头很迅猛,连续4年的最受欢迎的编程语言排行榜第1名,那么恰恰是此时,用Python进入职场打1个差异化,也是不错的选择。
至于有人说学Python找不到工作的人,我不知道怎么讲了,学Java、学C、学C+++找不到工作的人也大有人在,请不要把这归咎于语言身上,尤其是一门一直处于前列的语言,请反思一下你掌握了多少东西?你掌握的东西能满足企业的需求吗?从企业角度来讲,你能创造的价值是否能高于你的要价?
我听过很多人说“Python是被国内的教育培训机构炒热的”,我听了之后无言以对,我甚至有点佩服说这话的人的脑子。
首先,我先说明一点,我没收谁的一份钱,我也不想替哪家机构洗白,我只是想替Python说几句公道话。
我来问大家两个问题。
第一个问题,是不是全世界的程序员都被咱国内的培训机构忽悠了?
第二个问题,你可能会说,我一直讲的都是世界排名,可能Python只是在国外用的比较多呀,在我们国内用的比较少。
那你告诉我,你哪一种编程语言不是先从国外火起来,然后在我们国内再效仿着使用的?有一个算一个,Java是不是先从国外火起来的?C是不是?C++是不是?
说白了,这些编程语言的原产地都是国外,都是先从国外用起来,然后再推广到国内的,Python的世界占有率那么大,世界上都在广泛使用,你觉得国内接下来不会广泛使用吗?
不管未来怎么样,当下更多的还是国外在影响着咱国内的技术总下。
毫无疑问,任何一门新技术的引入必然会冲击到老基础,褒贬不一那是肯定的。但是作为一名技术人员,你如果没有一点点前瞻性,那你凭什么走在别人前面?希望大家是通过数据来得到客观的答案,而不是站在自己狭隘的立场里主观的下结论说“我觉得A不行、B用的不多”、”C在世界的大火是被培训机构宣传起来的”。
培训机构从来只是技术趋势的跟随者,而不是创造者。所以请跳出你的主观臆断,你只代表你自己,你左右不了世界排名,你更代表不了世界占有率。希望看完文章的同学,你要有自己科学的分析,而不是只听自己愿意听的。