这里为什么用 Python 举例呢?

因为在很多人看来,Python 比较“简单”。

写这篇文章主要是因为我在知乎上看到了一条有趣的动态:

该条动态的作者认为一个高考600分以上的人,一天时间能学会 Python,一周时间就能推完 Andrew Ng 的 ML 课程。

恰好,我是一个高考600分以上的人,学过 Python,也看过 Andrew Ng 的 Machine Learning 课程。所以我想设身处地就这个话题聊一聊,到底能不能在短时间内学会 Python,这里我们不限制时间为一天,就一周好了。

我并不反对上图中作者的观点,因为我确实只用了一天就初学和上手了 Python(大学四年级),还写出了小应用。不过这个学习成果存在一个不可忽略的前提条件:在学习 Python 之前,我已经写过两年 C++ 和一年 Java 了。

和没有一点基础的人相比,我已经拥有了大量的编程实践经验和计算机理论知识,所以我能一天上手 Python,并不是非常奇怪和罕见的现象。

1.站在山顶能看见什么?

针对上面的问题,我的观点是:即使是高考600分以上的人,如果没有一定的编程基础,也很难在一周内学会 Python。

当然,也不排除有人是天才,可以速成。但是至今我还没有发现这样的人。我女朋友、我周围的同学,高考都是600分甚至650分以上,但我真的没有见过谁能一天或一周就学会编程的。

那么,更一般的情况是,高考600分以上的人尚且不能一周学会 Python,那些没有600分以下的人是不是更难学会呢?从概率上讲,是的,这里不是歧视,只是阐述一种现象。

但为什么时常有人说可以快速入门 “Python”,是他们在说假话吗?

我想他们并没有说假话,只是忽略了一个关键的问题——我在前文提到的“基础”。有了基础之后,一周入门 Python,速成 Django,一天学会爬虫,这都是再正常不过的事情了。但这些对于完全没有接触过编程的同学来说,实在是难度太大。

之前听过我的一个直系学长关于创业的讲座,我印象最深刻的一幕,是台下的同学请他分享一下自己在创业过程中遇到的困难,他答道——当你走过荆棘、越过重重困难走到山顶的时候,你看到的是一望无际的远方和光明,之前的困难你都会忘得一干二净。

这句话我十分认同,我在第一次高考失利后复读过一年,每当我读到自己在复读时期记录的点滴生活,都会感叹那些日子是多么艰难,却总是忘记那就是我曾经的生活,忘记复读的那个人是我,忘记那些日子究竟有多苦。唯一记得的就是我复读后的成绩——比前一年多考了140多分。

人在经历重重磨难并取得暂时的成功后,会很容易忘记自己受过的苦,记得的只是成功。

所以,当有人告诉你可以快速学会一项大部分人都很难学好的技能时,有三种可能,一是他在装逼,二是他是天才,三是他努力过了却忘记了自己的努力。大部分情况下,是第三种。

一周学不会 Python。

2.Python真的简单吗?

为什么很多人都觉得 Python 简单,到底是谁在说 Python 简单,Python 是否真的简单,如果真的简单它到底简单在哪里?

我想,很多人说 Python 简单指的是“语法”层面的简单。的确如此,Python 和其他编程语言如 C++、Java、PHP、Go 相比,语法要简单很多。

除了语法简单,Python 天然适合和数据打交道,对数据的处理相对其他编程语言也是比较方便,内置的数据结构也比较少。

但是我们很容易忽略一个问题:编程语言不能独立于业务而单独存在,编程是为了解决问题的。各个编程语言都有自己擅长的方面,比如 Linux 内核系统调用、底层交互方面,C++ 可能更占优势;实际业务场景中有大量的计算任务和并发时,可能要达到某一参数指标,Go 会更加简单。

只是语法简单没有用,在能满足业务要求的前提下,谁最容易达成目标,谁才是最简单的。

况且,Python也没有传说中那么简单,只会语法和能做出东西是有本质区别的,就像你会了 Python 语法,但你能做出数据分析吗,能写爬虫吗,能开发 Web 吗?任何一门编程语言往深学,都会成为工具,能用工具完成具体的任务才是真的学好并用好了它。

我喜欢买书,也喜欢看书,下图是我从书柜上随便拿的几本关于Python的书,有的我看完了,有的正在看,有的还没看,每本书都有几百页厚,任何一个方向往深了学,都不简单。

我们学习的时候,千万不能在刚开始的时候就给自己一个心理暗示:这很简单,很容易学好,如果这样,你将很难在学习中坚持下去。

我时常看到一个有趣的现象,不少人都很在意“编程语言排行榜”,如果自己正在学习 Python 或 C++,而 Python 或 C++ 的排名又上升了,他就会格外开心,反之就开始骂爹喊娘。

其实大可不必这样,学习编程的时候一定不要把自己限定在某一门编程语言中。在实际工作中,大多数情况下我们是根据项目来选择合适的编程语言,而不是根据编程语言选择合适的项目。

比如你一直写 C++,但是来了一个适合用 PHP 做的需求,即使你不会 PHP,你也得用 PHP 写。不会写也要一天入门,工作就是这样的,别问我为什么,工作一年半我已经写过 JAVA、JavaScript、C++、PHP、Python、Lua、Go ... 而我当初入职面试的岗位是C++工程师...

多了解一点没坏处。

3.一步一个脚印

很多初学编程的朋友对如何入门伤透了脑筋,而我的回答只能是:

其实大家现在学习编程比我们当初的条件好多了,我们刚学编程那会儿,慕课还没有流行起来,我那时学C语言看的还是谭浩强的书。哪里有现在这么方便,动不动就送你1024G资料的福利,掩面。

其实学编程和学外语一样,都是阶梯式进步的,而它的特点就是,在学习很长一段时间后都感受不到进步,但突然某一天就开窍了,想通了很多问题,感受到自己的经验值得到了大幅度的提升,然后又会陷入一段平淡期。

当你多经历几次这样的循环,你就算是学会编程了。

学习编程,我们不应该以天为单位,而应该以年为单位。如果非得给一个最快能入门的时间,那就定为三个月吧,如果你真的在三个月里用大量的时间投入去看一门课,啃一本书,三个月后你应该会到达一个新的 Level,就算是入门了。

无论如何,加油!如果你想了解我是如何学习编程的,

需要Python学习资料的,转发私信小编“资料”

阶段一:Python基础知识和高级特性

1、Python语法基础

2、Python字符串解析

3、Python时间和日历

4、Python文件操作

5、Python面向对象

6、并发编程

7、函数式编程

8、正则表达式

9、设计模式

10、排序算法

11、异常

12、模块

阶段二:Linux基础

1、shell操作

2、系统管理

3、常用Linux命令

4、常见Linux系统

5、HDFS搭建

阶段三:数据库原理和sql优化

1、Linux下MySQL数据库

2、数据库设计和SQL标准

3、Python数据库操作的库

4、Linux下MongoDB非关系型数据库

5、SQL优化和数据库优化

6、ORM对象关系映射基本思想

阶段四:前端web开发

1、Html

2、CSS

3、PC端页面开发实战流程

4、Bootstrap

5、html5和css3

6、JQuery

阶段五:Python Web后端开发

1、Django 框架开发

2、Nginx配置和uWSGI部署

3、RESTful接口开发

4、Flask框架开发

5、电商平台项目

6、BBS论坛系统

阶段六:爬虫和数据分析

1、第一个Python网络爬虫

2、专业HTTP分析工具Fiddler的使用

3、实际爬虫Python编码问题

4、urllib2 的使用TesseractOCR语言模型爬取使用带验证码登录的网站

5、Beautiful Soup

6、XPath & CSS选择器

7、PhantomJS

8、SeleniumWebdriver

9、Scrapy大型框架使用代理服务器爬取

10、Scrapy分布式集群多代理爬虫Redis

11、分布式集群Redis MongoDB在爬虫里的应用

12、数据分析工具与模块

阶段七:Python人工智能

1、机器学习

2、深度学习

python入门应该学什么专业好_真的能半个月学会Python吗?(文末附python入门进阶教程)...相关推荐

  1. 了解和掌握Python的函数(文末附python学习资料)

    Python之所以灵活,就是因为它函数式编程的特性.今天开始学习Python的一些高级特性. 控制流 Python等程序语言,都是从程序顶端从上到下一行行执行语句,可以把它想象成线性.生活中的很多情况 ...

  2. 阿里程序员整理的Python 各种符号,建议收藏,文末附Python资料

    Table 1.1. Python命令行选项 作用 -c cmd 在命令行直接执行python代码.如python -c 'print "hello world"'. -d 脚本编 ...

  3. 一道微软Python面试题(文末附python教程丶电子书资料分享)

    题目 面试题目是这样子的: 两个单词如果包含相同的字母,次序不同,则称为字母易位词(anagram).例如,"silent"和"listen"是字母易位词,而& ...

  4. map初始化_需要掌握的Go基础之map:文末附面试题一道

    Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现. map map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用. map定义 G ...

  5. LZW字典编码(文末附python实现代码)

    字典编码 文章目录 字典编码 1. LZW编码原理和实现算法 2. LZW算法详解 编码算法 解码算法 3. 代码实现 应用最广泛的一种字典编码算法,LZW算法:可以边扫描,边编码,边发送,是一个实时 ...

  6. 北京化工大学计算机专业就业,北京化工大学特色专业介绍_计算机科学与技术_专业课程介绍_专业排名_就业方向...

    北京化工大学特色专业介绍_计算机科学与技术_专业课程介绍_专业排名_就业方向 本专业是任何行业和领域所需的数字信息处理专业.计算机信息技术发展的趋势是多功能化.高效率.高可靠性,它更广泛的适用性和更强 ...

  7. python程序员专用壁纸_程序员炫技必备:用Python生成马赛克画!(文末附源码)...

    原标题:程序员炫技必备:用Python生成马赛克画!(文末附源码) 源 | Python与数据分析文 | 强哥 大家知道马赛克画是什么吗?不是动作片里的马赛克哦~~ 马赛克画是一张由小图拼成的大图,本 ...

  8. @autowired注解_品Spring:对@Autowired和@Value注解的处理方法(文末附spring系列资源合集)...

    作者:编程新说李新杰 出自:微信公众号"编程新说" 原文:品Spring:对@Autowired和@Value注解的处理方法 在Spring中能够完成依赖注入的注解有JavaSE提 ...

  9. 手把手教你如何用Python制作一个电子相册?末附python教程

    这里简单介绍一下python制作电子相册的过程,主要用到tkinter和pillow这2个库,tkinter用于窗口显示照片,pillow用来处理照片,照片切换分为2种方式,一种是自动切换(每隔5秒) ...

最新文章

  1. mysql触发器和存储过程_MySql的存储过程和触发器
  2. C#访问MySQL数据库的方法
  3. Effective C#:避免使用ICloneable接口
  4. [Android官方API阅读]___System Permissions
  5. sql2008 服务器未响应,sql配置管理器,SQL server (MSSQLSERVER)开启不了,请求失败或服务器未响应....
  6. 智能优化算法:类电磁机制算法 - 附代码
  7. 印尼语翻译和爪哇翻译一次争斗为自定义
  8. 计算机编程php网页源码水果网上销售系统mysql数据库web结构html布局
  9. java定时数据同步_java实现定时同步数据同步
  10. Biobank genetic data探析(二)
  11. 银行卡四要素验证接口测试报告
  12. python关系图谱_利用Python+Gephi构建LOL全英雄间的关联图谱
  13. workman定时器使用
  14. python怎么让输出的数字右对齐_Python格式化输出的精度和位数控制
  15. LeetCode 题解随笔:贪心算法
  16. 求最大公约数 最大公约数
  17. Zynq笔记(一) —PL端(FPGA部分)的设计流程
  18. ENSP 单臂路由的配置(带配置命令)
  19. How many times rampant Warcraft Star players ah
  20. No virtual method initSDK(Landroid/content/Context;ILcom/tencent/imsdk/v2/V2

热门文章

  1. 报错,java.lang.NoSuchMethodException: java.awt.print.Pageable
  2. 16软件1班安卓第二学期学习总结
  3. 【英语学习】【医学】Unit 10 Tumor
  4. 【英语学习】【医学】Unit 09 The Respiratory System
  5. 【英语学习】【Daily English】U12 E-World L03 Black Friday is coming!
  6. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (3) - 流水线概述
  7. Intel Core Enhanced Core架构/微架构/流水线 (11) - 高速缓存读/写操作 Cache Load/Store
  8. 此项目与Visual Studio的当前版本不兼容的报错
  9. Mybatis系列全解(六):Mybatis最硬核的API你知道几个?
  10. python调用js文件报错_python - selenium 运行网页中js脚本报错,提示未定义