前两天写了篇文章,给想进程序员这个行当的同学们一点建议,没想到反响这么好,关注和阅读数都上了新高度,有点人生巅峰的感觉呀。今天趁热打铁,聊聊我最喜欢的编程语言——Python。
为什么要说Python
先说说编程语言,这里有一些梗,程序员之间因为使用不同的编程语言一直都存在着很多鄙视链,比如写汇编的鄙视写 C 的,写 C 的鄙视写 C++的,写C++的鄙视 写 C#,写Java 的鄙视前面所有和C相关的程序员,天天写脚本的程序员又一起鄙视 Java 程序员,写静态语言的和写动态语言的相互鄙视,写前端的和写后端的相互鄙视,Vim 程序员和 Emacs 程序员相互鄙视,然后一起鄙视需要使用 IDE 的程序员。还有一条最劲爆的,所有其他语言的程序员都鄙视 PHP 程序员,因为PHP 程序员说,PHP 是世界上最好的编程语言。
说了这么长长的一条鄙视链,只是为了引出今天的重点——Python。同「PHP 是世界上最好的编程语言」一样举世无双的,我们也有一句心法,是Python之父的名言:人生苦短,我用 Python。
Python功能强大,使用简单,实现一个功能往往只有一种方法。在我刚毕业工作的时候,就接触了Python和Perl两种脚本语言。这两种语言也可以说是非常鲜明的对比,在实现一个功能的时候,Perl 会有十八种实现方法,而且Python可能只有一种。Python开发者的哲学就是“用一种方法,最好是只有一种方法来做一件事”。
在池老师的文章里看到过有程序员这么评价Python:
免费,简洁,生态好,库丰富,操心少;之前刷机器学习的题,用 C# 写了一坨儿。结果人家引个 SciPy 库,三行代码搞定
这个评价我也是高度赞同。Python的生态环境确实很好,让你在开发的时候几乎不用操心太多。
AI时代的宠儿
Python有太多的适合机器学习的库了,而且都可以免费使。比如SciPy 是一个数值计算库,NumPy 是Python 另一个开源的数值计算扩展库,Pandas是基于 NumPy 的数据分析工具,matplotlib 是图形绘制库,最近火热的 Scikit-learn则是开源的机器学习框架。
也正因为这样,在AI时代,Python渐渐地变成了时代的宠儿。不知道如果AI真的这么一直发展下去,久而久之,Python会不会变成Excel这样的工具,人人都会用,事事都可用。
看看最新出炉的兵器排行榜,Python牢牢的占据着第4名。
Python其实不仅在做机器学习上是把好手,还有很多方面都是一流高手。比如有Scrapy这样优秀的做爬虫框架,强大的文本处理功能,Djnago这样出色的Web开发框架,还可以做自动化测试和运维以及数据分析等等。
所以,我认为无论是已经工作了的同学们或者是还在学校的同学们,多多少少都可以学习一些Python。如果是想要投身机器学习人工智能怀抱的,更是可以趁早开始了。
并不是天下无敌,也有自身的不足
Python自身的不足其实也挺多的。
首先语法上自成一派,让很多老手感到不习惯(比如语句结束不需要分号)。
其次Python 的速度很慢,在不同的任务上比C 语言大约慢数十倍到数千倍不等
再者由于全局解释器锁(GIL)的限制,单个Python 程序无法在多核上并发执行;(这个我不知道Python3是什么样的,没有去仔细研究过了,欢迎读者里的大神指点一下)。
不过最让人头疼的是,Python 2 和 Python 3 两个版本长期并行,各成一派,很多模块需要同时维护两个不同的版本,给开发者选择带来了很多不必要的混乱和麻烦。至于为什么Python 2 和 Python 3 会长期共存了数年之久,原因很复杂,我也说不清楚。但目前官方表示对 2 的支持到2020年。可能新入坑的同学会很纠结,Python2 的生态库远远大于Python3,那么应该要学习哪个版本呢?
我的建议是两个版本都学,语法上的差别也不是很大,如果非要选择一个先开始的话,我选Python2。(不要问我为什么,就是这么任性)
图片来自廖雪峰的Python教程
如何学习Python
扯了这么多,最后一部份放点干货,我们聊聊要如何学习Python。就我本人来说,会学Python,完全是机缘巧合,因为刚工作的时候,组里没人对Python特别熟,我是被安排自学研究Python,以备日后需要。学着学着,我慢慢的把开发的重心都转移动Python上面了。
要开始开发,先要安装,这里就不详细说了,说了你也记不住,macOS自带就有,其它系统网上搜一下,一大堆。
有了环境就需要开始学语法了。初学一门新的编程语言的语法时,我会先把赋值、条件判断和循环这三种语句学会了,这时其实基本的操作就都可以做了,然后再去扩展一些语言独特的东西,在Python里,你可以学习Python需的面向对象是怎么做的,学一些map,filter, lambda这样的高阶用法。然后估计有个3,5天的时间,就可以开始开发第一个Python应用程序了。
对于新手,在选择应用程序方向的时候,建议选择一个自己感兴趣的方向,例如对爬虫感兴趣,可以尝试写个Python爬虫去抓取微博或今日头条的内容, 对web应用感兴趣可以开发个人网站,如果有机器学习算法基础,可以用Python来实现你平时的算法,找个数据集来跑跑(这方面我也比较弱,正在恶补学习中,欢迎有兴趣的同学一起来研究)。再或者可以做个推荐系统,算法可以参照我之前的一篇文章(推荐系统入门),可用Python来实现一个小型的推荐系统。(最近自己刚刚实现了一下这个程序,有兴趣的同学需要帮助可以留言)
人生苦短,我用 Python!大家一起加油吧www.huazongyulept.cn。
欢迎大家关注我的公众号,你的关注就是我坚持下去最大的动力。另外大家有什么建议或有什么想了解的,也欢迎留言给我,谢谢。

转载于:https://www.cnblogs.com/qwangxiao/p/6970351.html

投入机器学习的怀抱?先学Python吧相关推荐

  1. 学python的基础-老司机学python篇:第一季(基础速过、机器学习入门)

    本课程正在限时优惠中,请尽快购买 原价:¥350 优惠价:¥999.00 章节导航 课程大纲 第一章:python基础速过篇 开张课.我们直接开门见山,对着文档先把最基本的东西学一下.注意:关键看视频 ...

  2. Kaggle官网免费课程:从Python到机器学习,4小时学完一门,48小时掌握数据科学...

    点击我爱计算机视觉标星,更快获取CVML新技术 赖可 发自 凹非寺 量子位 报道 | 公众号 QbitAI 听说过Kaggle官网的免费"微课"吗? 想学Python .机器学习. ...

  3. java和python哪个好?学java和学python哪个更有前途?

    其实这是一篇容易引起撕逼的文章,java是一种覆盖范围广,可跨平台的编程语言,python也是近几年火遍全世界的语言.先说结论,java是基础,另外一个是加分项,我仅代表我个人观点,为了祖国和谐,人民 ...

  4. 人大附中高中生学Python获数据挖掘竞赛一等奖,将去旷视科技实习

    本文授权转自光明社教育家(微信ID:jyjzzwx) 作者 | 翟小宁 武迪 朱星宇是人大附中2011级早培班的一名学生,现在在高三出国班上课.他在学校的身份不只是学生,同时也是计算机视觉与深度学习研 ...

  5. 编程语言python入门要电脑什么配置能带动-对于几乎是零基础的人,直接学 Python 编程合适吗?...

    在众多高大上的自学指导中,尝试做一股清流,把要讲清楚的都讲清楚,除了一堆资料之外,你能在学之前就有一个非常明显的结果倾向. 本文以<小白带你学Python>为内容方向,试图在繁杂的信息里, ...

  6. 零基础可以学python吗-对于几乎是零基础的人,直接学 Python 编程合适吗?

    在众多高大上的自学指导中,尝试做一股清流,把要讲清楚的都讲清楚,除了一堆资料之外,你能在学之前就有一个非常明显的结果倾向. 本文以<小白带你学Python>为内容方向,试图在繁杂的信息里, ...

  7. 从零开始学习python-如何从零开始学python?

    在众多高大上的自学指导中,尝试做一股清流,把要讲清楚的都讲清楚,除了一堆资料之外,你能在学之前就有一个非常明显的结果倾向. 本文以<小白带你学Python>为内容方向,试图在繁杂的信息里, ...

  8. 学python找工作有用吗-为什么我不建议你通过 Python 去找工作?

    二哥,你好,我是一名大专生,学校把 Python 做为主语言教给我们,但是我也去了解过,其实 Python 门槛挺高的,所以我在自学 Java,但是我现在并不清楚到底要不要全心的去学 Java,学校里 ...

  9. python难学不-python难学吗-没有编辑基础可以学python吗?

    肯定的回答您:只要下功夫,什么都不难.青岛白癜风医院:https://yyk.familydoctor.com.cn/20595/ 其实,很多个程序员都是从不会到会,每种知识也是从基础到复杂,大家都是 ...

  10. 学Python前途如何,带你了解Python的优势!

    自从20世纪90年代初Python语言诞生至今,它已被广泛应用于系统管理任务的处理和Web编程.今天就带大家一起看看学Python的优势! 01.全球三大主流编程语言之一 Python是一种面向对象的 ...

最新文章

  1. 算法设计与分析 搜索第k元
  2. 图解使用Win8Api进行Metro风格的程序开发二----使用文件选择器访问和保存文件
  3. 【面试招聘】双非渣硕的秋招路
  4. .gradle文件夹_Travis CI org.gradle.wrapper.GradleWrapperMain 错误
  5. android log system
  6. Docker-构建/启停容器镜像及常用命令介绍
  7. jsp学习之路之实现一个用户信息页面并实现跳转到另外一个页面输出用户的相关信息
  8. 网络协议端口号说明(转)
  9. 网件刷breed_小白爱折腾 篇二:矿渣小娱C1刷breed以安装固件(适用其他路由器)...
  10. 看完东野小说 乱写写(含微量剧透)
  11. wps本地模板文件夹的位置
  12. JAVA版 中文地址 识别 切分
  13. c语言中怎么对圆环填充颜色,ps里怎么把圆环填充两种颜色
  14. CentOS7挂载磁盘,4T磁盘挂载方法
  15. 蓝桥杯 python 青少年 真题_蓝桥杯Python真题解析
  16. 修复mysql表快速解决is marked as crashed and should be repaired故障
  17. 法兰克机器人外部自动_FANUC机器人外部轴设置,小白勿点!
  18. 2位数码管秒表c语言程序,利用定时器实现2位数码管秒表0到99循环
  19. 日式键盘与美式键盘转换
  20. Windows Server2012 KB2919355 补丁无法安装

热门文章

  1. 如何在应用程序中隐藏2021款MacBook刘海?
  2. Vitamin-R for Mac(GTD工作效率管理工具)
  3. 轻松修改Mac地址的中文版工具:WiFiSpoof for Mac
  4. 在BetterZip的收藏夹中如何添加经常使用的文件夹?
  5. 如何在Mac上禁用iCloud驱动器?
  6. 烂泥:windows server 2008取消关闭事件跟踪
  7. 三星投8万亿扩充10nm、7nm产能:骁龙835爆发
  8. JavaScript-2.4 改进的Hello程序,使用div,---ShinePans
  9. UIAlertView 弹框
  10. 微博短链接解析ShortUrl【PHP代码实现】