低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

为什么每个人都应该在 2020 年学习 Python?

2019 年 10 月 24 日

为什么每个人都应该在2020年学习Python?

如今每个人都在谈论 Python,包括那些曾经对 Python 嗤之以鼻的人。本文作者 Javinpaul 原是一名 Java 狂热粉,他以前还曾号召大家学习 Java 而不是 Python。如今他的态度却来了一个一百八十度的大转变,现在的他认为每个人都应该在 2020 年学习 Python,这究竟是怎么回事?他的态度为什么会产生如此大的转变?让我们来一探究竟!



如果你经常关注我的博客的话,那么你可能会感到奇怪,为什么我要专门写一篇博文,号召大家去学 Python 呢?因为几年前,我不是说过让你们学 Java 而不是 Python 吗?


从那以后,事情发生了很大变化。2016 年,Python 取代了 Java,成为高校中最受欢迎的语言。从那时起,它就没有再掉落过。


Python 如盛壮之时的骐骥,一日而驰千里。如果你经常阅读编程和技术新闻或博客文章,那么你有可能已经注意到 Python 的崛起,因为许多流行的开发者社区,包括 StackOverflow 和 CodeAcademy,都提到了 Python 作为主要编程语言的崛起。


但最大的问题是,为什么程序员应该学 Python 呢?没错,Python 正在增长,这很好,但这并不意味着 Java 或者 C++ 会如西风落叶般衰落。


我是一个骄傲的 Java 开发者,Java 是我最喜欢的编程语言,并且一直如此,但是,这并不妨碍我们学习潜在的新工具和编程语言,这将会使你成为更好的程序员,而 Python 正好符合这一要求。


对于初学者来说,它很简单,从 Python 开始,因为它很容易学习,而且功能也强大,足以构建一个 Web 应用程序,以及自动处理那些枯燥的工作。


实际上,几年前,脚本是学习 Python 的主要原因,这也是我喜欢 Python 的第一个也是最重要的原因,比起当时另一个流行的脚本语言 Perl,我更喜欢 Python。


对于经验丰富的程序员或已经了解 RubyJavaJavaScript 的人来说,学习 Python 意味着在你的“武器库”中获得一个崭新的、强大的工具,我还没有见过有哪个程序员会对工具说“No!”,当你学习一门新的编程语言时,这是正确方式。


正如 Python 经典著作 Automate the Boring Stuff with Python(有简繁中文版:《Python 编程快速上手》(简体中文版,人民邮电出版社,王海鹏译)、《Python 自動化的樂趣》(繁体中文版,碁峰出版社, H&C 译))一书所提到的那样,Python 为你提供了自动化处理琐碎事务的能力,并让你专注于更令人兴奋和有用的事情。如果你还没有读过这本书,那么我建议你去读一读,这本书值得你花时间去阅读。(译注:简体中文版译者已加上京东购买链接,读者可点击购买)


如果你更喜欢在线课程而不是纸质书籍的话,还有一门同名的在线课程也可以供你学习。


如果你是 Java 开发者,那么你也可以使用 Groovy 来做到这一点,但是 Groovy 并没有像 Python 那样在 API、库、框架以及在诸如数据科学、机器学习和 Web 开发等领域提供了广泛的应用。


如果你已经下定决心,现在就开始学习 Python,我建议你关注一下 Chris Castiglione 开发的《一个月速成 Python》(One Month Python课程,这是 30 天内成为 Python 开发者最简单的课程之一。


为什么程序员要在 2020 年学习 Python?

如果你正在考虑学习 Python,但又不确定为什么要这样做的话,那么以下十个理由强调了在 2020 年学习 Python 的好处。


不过,这些问题取决于是谁提问的问题,对于初学者来说,学习 Python 是有意义的,因为学习 Python 很简单,简单也是学习 Python 的主要原因。


同样,对于一个希望进入数据科学和机器学习领域的有经验的程序员来说,学习 Python 同样也是有意义的,因为它正迅速成为最常用的编程语言,并且有强大的 API 和可用于人工智能、数据科学机器学习的库。


无论如何,让我们言归正传,下面是我认为在 2020 年要学习 Python 的十大理由


1. 数据科学

这是许多程序员在 2020 年学习 Python 的唯一、最大的原因。我知道有许多朋友对投资银行的 Java 编程工作感到厌倦,他们正在 Udemy 学习 Python,以便能够在数据科学领域谋得一席之地,因为这一领域的工作不仅令人兴奋,而且薪水也颇高。


但是,为什么 Python 会成为数据科学和机器学习的首选语言呢? 不久之前 R 语言不还是被认为是最好的机器学习编程语言吗?我认为 Python 提供的库和框架,比如用于人工智能、数据科学和机器学习上的 Pandas、PyBrain、NumPy,就是其中原因之一。


另一个原因就是多样性;借助 Python 的经验,你可以做出比 R 更多的事情,比如,你可以创建脚本来自动化执行某些内容、进行 Web 开发等等。


如果你有兴趣在 2020 年成为数据科学家,并寻求指导的话,我建议你在 Udemy 上看看数据科学、深度学习和机器学习的 Python 课程 。我已经购买了这门课程,这是一个很棒的资源,有时候你可以用不到 10 美元的钱买下这门课程。



2. 机器学习

这也是程序员在 2020 年学习 Python 的另一个原因。在过去的几年里,机器学习的发展如撑霆裂月,惊魂夺魄,它正迅速改变我们周围的一切。


算法的复杂性日甚一日,最好的例子就是 Google 的搜索算法,它现在可以回答你所期望的。到处都有聊天机器人可以回答你的提问,Uber 完全是由算法驱动的。


如果你对机器学习感兴趣,想做一个宠物项目,或者只是想玩一玩,Python 是唯一一种能使之变得简单的主要编程语言。


尽管 Java 也提供了机器学习库,但你会发现关于 Python 的内容更多,因为开发者社区更喜欢 Python,而不是数据科学和机器学习相关的其他任何内容。


如果你对使用 Python 进行 Web 开发感兴趣,我建议你在 Udemy 上了解一下《机器学习入门到精通:数据科学的 Python 与 R 的实践》(Machine Learning A-Z™: Hands-On Python & R In Data Science)课程。



3. Web 开发

良好的传统开发是学习 Python 的另一个原因。它提供了很多优秀的库和框架,比如 DjangoFlask,这使得 Web 开发变得非常简单。


PHP 中需要耗时数小时的任务,在 Python 中只需几分钟即可完成。Python 也经常用于网页抓取。互联网上一些流行的网站,如 Reddit,就是使用 Python 构建的。


如果你对使用 Python 进行 Web 开发感兴趣,我建议你参加 JoshPortilla 的 《Python 和 Django 全栈 Web 开发者训练营》(Python and Django Full Stack Web Developer Bootcamp)课程。



实际上,Udemy 上有一门免费的 Python 课程,在教你 Python 的同时也会教你 Web 开发。


4. 足够简单

这是初学者学习 Python 的最大原因。当你第一次开始编程和编码时,你肯定不想一开始就使用一种语法复杂、规则古怪的编程语言开始。


Python 既可读,又简单。它也更容易设置;你不需要处理像 Java 这样的类路径问题或者像 C++ 这样的编译器问题。


只需安装 Python,即可完成。在安装时,它还会要求你在 PATH 中添加 Python,这意味着你可以在机器上的任何地方运行 Python。


5. 庞大的社区

你需要一个社区来学习新技术,在学习编程语言时,朋友是你最大的财富。你经常遇到这样的或那样的问题,这时候,你需要的是一只援助之手。


多亏了 Google,你可以在几分钟内找到任何 Python 相关问题的解决方案。像 StackOverflow 这样的社区也聚集了很多 Python 专家来帮助新手。


6. 库和框架

Python 和 Java 之间的一个相似之处就是有可以用来做任何你想做的事情的开源库,框架和模块的数量众多。它使应用开发变得非常容易。


想象一下,构建 Web 应用,在 Java 中不使用 Spring,或者在 Python 中不是用 Django 和 Flask,会怎么样?有了库和框架的加持,会使你的工作变得简单,因为你只需关注业务逻辑。


针对不同的需求,Python 还有许多库。Django 和 Flask 是 Web 开发中最受欢迎的两个库,而 NumPy 和 SciPy 是用于数据科学的库。


事实上,Python 拥有最好的机器学习和数据科学的库,如 TensorFlowScikit-LearnKerasPandas 等等。


如果你想了解更多关于 Python 机器学习库的知识,我建议你参加《面向数据科学和机器学习的 Python 训练营》(Python for Data Science and Machine Learning Bootcamp)课程,这是我喜欢的课程之一。



7. 自动化

我第一次了解 Python 是由于我的一个脚本需求。那时候,我正处理一个通过 UDP 接收消息的应用程序,但是出现了一个问题,我们在日志中并没有看到消息。


我想检查我们是否在那个机器和那个端口上接收到任何 UDP 流量,但我找不到一个方便的 UNIX 命令来做这件事。


当时,我一个朋友,就坐在我旁边,那会儿正在学习 Python,他在短短 5 分钟内编写了一个实用程序,使用其中一个 Python 模块来拦截 UDP 消息


显然,他编写这样的工具所花的时间给我留下了深刻的印象,但这只是突出了 Python 在编写脚本、工具和自动化方面的强大功能。


如果你真的想知道 Python 对自动化有多大的帮助,我推荐你看这本书,也是我最喜欢的书籍之一,这本书简直太棒了:Automate the Boring Stuff with Python(有简繁中文版:《Python 编程快速上手》(简体中文版,人民邮电出版社,王海鹏译)、《Python 自動化的樂趣》(繁体中文版,碁峰出版社, H&C 译))。(译注:点击中文版的链接可从京东购买实体书籍)



8. 多用途

我之所以喜欢 Python,还有一个原因是它像瑞士军刀一样好用。它并不仅仅局限于做一件事,比如 R,它擅长数据科学机器学习,但在 Web 开发 方面却毫无用处。而学习 Python 意味着,你可以用它做很多事情。


你可以使用 Django 和 Flask 来创建 Web 应用,也可以使用 NumPy、SciPy、Scikit-Learn 和 NLTK 进行数据分析。


至少,你可以使用 Python 编写脚本,来自动执行许多日常任务。


9. 工作与成长

Python 的发展日新月异,如果你刚刚开始你的编程生涯,那么学习一门正在成长的主要编程语言就非常有意义。


它不仅能帮助你迅速找到工作,还能加速你的职业发展。依我浅见,对于初学者而言,除了简单之外,这应该就是学习 Python 最重要的原因了。


10. 薪水

Python 开发人员是收入最高的开发者之一,特别是在数据科学、机器学习和 Web 开发方面。


平均而言,他们的薪水也很高,根据他们的经验、地点和领域的不同,他们的收入从 7 万美元到 15 万美元不等。


如果你有兴趣了解更多关于高薪技术工作的信息,我建议你阅读我之前写的帖子:《软件工程师十大高薪技术职位》(ten highest-paid technology jobs for Software Engineers)。



作者介绍:


Javinpaul,Java 程序员,博客写手,使用 Java、J2EE、UNIX 和 FIX 协议进行工作。他在 http://javarevisited.blogspot.comhttp://java67.com 分享了 Java 开发的技巧。


原文链接:


Why Everybody Should Learn Python in 2020?


2019 年 10 月 24 日 16:032892

评论

发布
暂无评论
发现更多内容

《Python:Python编程简介:计算机编程和机器学习入门指南》

计算机与AI

Python

嗯,查询滑动窗口最大值的这4种方法不错...

王磊

Java 数据结构和算法

会展云技术解读 | 面对突发事故,APP如何做好崩溃分析与性能监控?

京东科技开发者

云计算 云服务

移动安全加固助力 App 实现全面、有效的安全防护

蚂蚁集团移动开发平台 mPaaS

安全攻防 App风险 mPaaS

医疗界“最强大脑”落户杭州!阿里巴巴联合浙大一院共同打造

阿里云情报局

互联网

天啦撸!打印日志竟然只晓得 Log4j?

沉默王二

Java 日志 log4j

mongodb 源码实现系列 - 网络传输层模块实现三

杨亚洲(专注mongodb及高性能中间件)

MySQL mongodb 分布式 高性能 分布式数据库mongodb

DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座

华章IT

数据库 postgresql

阿里云官方推出操作系统“等保合规”镜像 -- Alibaba Cloud Linux 等保2.0三级版

阿里云基础软件团队

内核

浅谈API网关(API Gateway)如何承载API经济生态链

华为云开发者社区

API 网关

【云小课】版本管理发展史之Git+——代码托管

华为云开发者社区

git 代码管理 托管

帮助企业摆脱困境,名企归乡工程师:能成功全靠有它!

Philips

敏捷开发

go-zero如何追踪你的请求链路

Kevin Wan

go Trace microservice

解决大中型浏览器(Chrome)插件开发痛点:自定义热更新方案——2.基于双缓存更新功能模块

梁龙先森

Java chrome 浏览器 技术方案 前端进阶

谈谈敏捷开发概念和迭代开发方案

Learun

敏捷开发

分库分表的 9种分布式主键ID 生成方案,挺全乎的

程序员内点事

分库分表 Java 分布式

接口测试如何在post请求中传递文件

测试人生路

接口测试

终于啃完了这份Java核心原理+框架“面试圣经”,成功五面上岸美团

Java架构追梦

Java 架构 面试 微服务 框架开发

每周一看:16份文档资料,程序员软硬实力全概览,总有一个适合你

小Q

Java 学习 程序员 架构 面试

Apache DolphinScheduler 是如何走进Apache的

海豚调度

大数据任务调度 数据湖调度 DolphinScheduler Apache DolphinScheduler

【运维思考】如何做好云上运维服务?

嘉为蓝鲸

云计算 运维 数字化转型 数据中心 云服务

如何实现后台管理系统的权限路由和权限菜单

徐小夕

Java 编辑器 H5 数据可视化 前端进阶

揭秘在召唤师峡谷中移动路径选择逻辑?

华为云开发者社区

算法 地图 最短路径

LeetCode题解:77. 组合,递归回溯,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

架构师训练营 - 第 7 周课后作业(1 期)

Pudding

简析低代码开发与传统开发的区别与优势

Marilyn

敏捷开发 低代码

【涂鸦物联网足迹】API及SDK介绍

IoT云工坊

软件开发 物联网 API sdk 云平台

技术分享:WebAssembly能否重新定义前端开发模式?

Geek_Willie

webassembly

重磅解读:K8s Cluster Autoscaler模块及对应华为云插件Deep Dive

华为云开发者社区

容器 k8s 服务

架构训练营 - 第7周课后作业 - 学习总结

Pudding

架构师训练营第一期 - week8

习习

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

为什么每个人都应该在2020年学习Python?-InfoQ