最近,网上有很多站在在职程序员角度分析编程语言优劣的声音,劝小白这个别学那个不行,这对初学者来说是毫无意义的。但它又具有极强的误导性。
为什么会有这种观点?
一、语言只是工具,解决问题才是关键
编程语言只是工具,可选的有很多,每一种语言都不是十全十美的,各有优劣,但我们要解决的问题却是实实在在的。我们要寻求的一定是最优解,扬长避短。
1. 程序员习惯维护自己最擅长的语言
开发软件过程中,可能会用到多门语言。大多数程序员最熟悉的语言一定是当前所用的那一门。然后以此为基础,引入其他语言的优点来增强性能。所以很多程序员会陷入类似'某语言是全世界最牛逼'的误区。他们会钟爱自己的那一门语言,点评编程语言优劣的说法往往带有极强的主观性和误导性。
2. 软件性能由整套体系决定,不仅仅是编程语言
程序运行于特定环境之中。决定软件性能优劣的绝对不只是语言的优劣,它是一整套体系决定的。单独讨论编程语言哪个优劣,好比对比 F1 赛车跟普通轿车的车速。如果都在拥堵的城市道路行驶,两者的速度可能差不多。
看问题应该成体系、整体去看。很少有架构师出来谈语言的一个优劣,你基本上看到的都是程序员在讨论哪种语言更好。有人说 JAVA 是全世界最牛逼的语言,有人说 PHP 是全世界最牛逼的语言,这其实都是非常愚蠢的一种论调。语言对于我们程序员来说只是工具,我们要做的是解决问题,而不是去研究谁的工具最牛逼。
二、为什么建议小白去学 Python?
1. 上手开发程序时间快
无论别人怎么喷 Python,最不应该跟风喷 Python 的就是小白。如果你想快速把自己的编程逻辑用某种语言实现出来,Python 绝对是小白的首选。学 Python 一个月就可以立马去写程序,这对小白来说是非常友好的。你应该选择一门能够快速上手开发程序,然后再了解编程是什么,最后再去讨论应该选择 Python 还是换成其他工具。与其一上来就选择一门比较重型的语言,长期徘徊在入门级别而不能上手,最终因毅力不足而放弃,不如选一门容易上手的编程语言。
2. 考虑职场待遇、竞争和前景
编程小白还需要考虑竞争压力与个人优势。以 Java 为例,与 Python 进行对比。Java 火的时间比较久,因为它是早期的跨平台性语言,很多公司早期都是用 Java 来进行开发的,导致了 Java 的人才基数越来越多。很多时候公司选用一种编程语言,并不只是考虑这门语言本身的一个优劣,还会考虑人才基数有多大。毫无疑问,现在市面上最多的程序员就是 Java 程序员。
如果想通过类似 Java 这种老牌语言入行的话,你的职场会面临什么?第一,竞争对手可都是那些有四五年甚至更多年工作经验的人,竞争力何在?第二,假设你入行了,将要面对的是初级岗位的低待遇以及低薪资。而对于类似 Python 这种新兴语言来说,岗位量保持持续上涨,这是肯定的。从 Python 的使用量世界排名就能看得出来,连夺年度最受欢迎编程语言排行榜冠军,恰恰是因为此时并没有那么多人去掌握 Python,这才是我们小白入行的一个绝佳机会。入行薪资比 Java 高,这也是摆在明面上。谁不想一入行就起点高一点呢?对于小白来说,不打差异化又能打什么呢?
3. 应用场景广泛
Python 语言简单易学,只要是懂一点英语,逻辑思维不是很差的人很快就能学会。学成之后能编写代码处理数据,制作各种专业图表,以及数据分析报告。工作上可以快速提升效率,利用业余时间进行自动化脚本编写等技术实践。
4. 学会 Python 可以做什么?
1)数据处理与分析 总有人需要各类网站的数据,比如大型数据类网站。通过爬虫、数据分析、数据清洗这样的服务,可以快速完成自动化任务。
2)Web 网站开发 例如抢票网站、抓取工具等,有流量就能稳定运行。肉眼可见地发现,网站多了一个又一个的功能模块。
3)技术分享与教学 你可以做 Python 教程分享,帮助他人入门。中小学都被要求学 Python,市场需求明确。
那该怎么学 Python 呢?
学好 Python 不论是就业还是提升技术都不错,但要学会 Python 还是要有一个学习规划。建议按照以下方向整理知识点,形成各个领域的知识点汇总,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
1. 基础语法 掌握变量、数据类型、控制流、函数等核心概念。
2. 常用库与框架 熟悉标准库及第三方库,如 requests, pandas, numpy 等。
3. 项目实战 实践永远是检验真理的唯一标准,脱离了实战的技术一定是不牢靠的。建议参与实际项目开发,积累代码经验。
建议参考官方文档、社区教程及开源项目,建立系统化的知识体系。


