如何系统地自学 Python

Python018

如何系统地自学 Python,第1张

是否非常想学好 Python,一方面被琐事纠缠,一直没能动手,另一方面,担心学习成本太高,心里默默敲着退堂鼓?

幸运的是,Python 是一门初学者友好的编程语言,想要完全掌握它,你不必花上太多的时间和精力。

Python 的设计哲学之一就是简单易学,体现在两个方面:

语法简洁明了:相对 Ruby 和 Perl,它的语法特性不多不少,大多数都很简单直接,不玩儿玄学。

切入点很多:Python 可以让你可以做很多事情,科学计算和数据分析、爬虫、Web 网站、游戏、命令行实用工具等等等等,总有一个是你感兴趣并且愿意投入时间的。

废话不多说,学会一门语言的捷径只有一个: Getting Started

¶ 起步阶段

任何一种编程语言都包含两个部分:硬知识和软知识,起步阶段的主要任务是掌握硬知识。

°1 硬知识

“硬

知识”指的是编程语言的语法、算法和数据结构、编程范式等,例如:变量和类型、循环语句、分支、函数、类。这部分知识也是具有普适性的,看上去是掌握了一

种语法,实际是建立了一种思维。例如:让一个 Java 程序员去学习 Python,他可以很快的将 Java 中的学到的面向对象的知识 map 到

Python 中来,因此能够快速掌握 Python 中面向对象的特性。

如果你是刚开始学习编程的新手,一本可靠的语法书是非常重要的。它看上去可能非常枯燥乏味,但对于建立稳固的编程思维是必不可少。

下面列出了一些适合初学者入门的教学材料:

❖「笨方法学 Python」:http://learnpythonthehardway.org/book/

这本书在讲解 Python 的语法成分时,还附带大量可实践的例子,非常适合快速起步。

❖「廖雪峰的 Python 2.7 教程」:Home - 廖雪峰的官方网站

Python 中文教程的翘楚,专为刚刚步入程序世界的小白打造。

❖「The Hitchhiker’s Guide to Python!」:The Hitchhiker’s Guide to Python!

这本指南着重于 Python 的最佳实践,不管你是 Python 专家还是新手,都能获得极大的帮助。

❖「Python 官方文档」:Our Documentation

实践中大部分问题,都可以在官方文档中找到答案。

❖ 辅助工具:Python Tutor

一个 Python 对象可视化的项目,用图形辅助你理解 Python 中的各种概念。

Python 的哲学:

用一种方法,最好是只有一种方法来做一件事。

学习也是一样,虽然推荐了多种学习资料,但实际学习的时候,最好只选择其中的一个,坚持看完。

必要的时候,可能需要阅读讲解数据结构和算法的书,这些知识对于理解和使用 Python 中的对象模型有着很大的帮助。

°2 软知识

“软知识”则是特定语言环境下的语法技巧、类库的使用、IDE的选择等等。这一部分,即使完全不了解不会使用,也不会妨碍你去编程,只不过写出的程序,看上去显得“傻”了些。

这些知识的学习,取决于你尝试解决的问题的领域和深度。对初学者而言,起步阶段极易走火,或者在选择 Python 版本时徘徊不决,一会儿看 2.7

一会儿又转到 3.0,或者徜徉在类库的大海中无法自拔,Scrapy,Numpy,Django

什么都要试试,或者参与编辑器圣战、大括号缩进探究、操作系统辩论赛等无意义活动,或者整天跪舔语法糖,老想着怎么一行代码把所有的事情做完,或者去构想

圣洁的性能安全通用性健壮性全部满分的解决方案。

很多“大牛”都会告诫初学者,用这个用那个,少走弯路,这样反而把初学者推向了真正的弯路。

还不如告诉初学者,学习本来就是个需要你去走弯路出 Bug,只能脚踏实地,没有奇迹只有狗屎的过程。

选择一个方向先走下去,哪怕脏丑差,走不动了再看看有没有更好的解决途径。

自己走了弯路,你才知道这么做的好处,才能理解为什么人们可以手写状态机去匹配却偏要发明正则表达式,为什么面向过程可以解决却偏要面向对象,为什么我可以操纵每一根指针却偏要自动管理内存,为什么我可以嵌套回调却偏要用 Promise...

更重要的时,你会明白,高层次的解决方法都是对低层次的封装,并不是任何情况下都是最有效最合适的。

技术涌进就像波浪一样,那些陈旧的封存已久的技术,消退了迟早还会涌回的。就像现在移动端应用、手游和 HTML5 的火热,某些方面不正在重演过去 PC 的那些历史么?

因此,不要担心自己走错路误了终身,坚持并保持进步才是正道。

起步阶段的核心任务是掌握硬知识,软知识做适当了解,有了稳固的根,粗壮的枝干,才能长出浓密的叶子,结出甜美的果实。

¶ 发展阶段

完成了基础知识的学习,必定会感到一阵空虚,怀疑这些语法知识是不是真的有用。

没错,你的怀疑是非常正确的。要让 Python 发挥出它的价值,当然不能停留在语法层面。

发展阶段的核心任务,就是“跳出 Python,拥抱世界”。

在你面前会有多个分支:科学计算和数据分析、爬虫、Web 网站、游戏、命令行实用工具等等等等,这些都不是仅仅知道 Python 语法就能解决的问题。

爬虫举例,如果你对计算机网络,HTTP协议,HTML,文本编码,JSON一无所知,你能做好这部分的工作么?而你在起步阶段的基础知识也同样重要,如

果你连循环递归怎么写都还要查文档,连 BFS 都不知道怎么实现,这就像工匠做石凳每次起锤都要思考锤子怎么使用一样,非常低效。

在这个阶段,不可避免要接触大量类库,阅读大量书籍的。

°1 类库方面

「Awesome Python 项目」:vinta/awesome-python · GitHub

这里列出了你在尝试解决各种实际问题时,Python 社区已有的工具型类库,如下图所示:

你可以按照实际需求,寻找你需要的类库。

至于相关类库如何使用,必须掌握的技能便是阅读文档。由于开源社区大多数文档都是英文写成的,所以,英语不好的同学,需要恶补下。

°2 书籍方面:

这里我只列出一些我觉得比较有一些帮助的书籍,详细的请看豆瓣的书评:

科学和数据分析:

❖「集体智慧编程」:集体智慧编程 (豆瓣)

❖「数学之美」:数学之美 (豆瓣)

❖「统计学习方法」:统计学习方法 (豆瓣)

❖「Pattern Recognition And Machine Learning」:Pattern Recognition And Machine Learning (豆瓣)

❖「数据科学实战」:数据科学实战 (豆瓣)

❖「数据检索导论」:信息检索导论 (豆瓣)

爬虫:

❖「HTTP 权威指南」:HTTP权威指南 (豆瓣)

Web 网站:

❖「HTML &CSS 设计与构建网站」:HTML &CSS设计与构建网站 (豆瓣)

...

列到这里已经不需要继续了。

聪明的你一定会发现上面的大部分书籍,并不是讲 Python 的书,而更多的是专业知识。

事实上,这里所谓“跳出 Python,拥抱世界”,其实是发现 Python 和专业知识相结合,能够解决很多实际问题。这个阶段能走到什么程度,更多的取决于自己的专业知识。

¶ 深入阶段

这个阶段的你,对 Python 几乎了如指掌,那么你一定知道 Python 是用 C 语言实现的。

可是 Python 对象的“动态特征”是怎么用相对底层,连自动内存管理都没有的C语言实现的呢?这时候就不能停留在表面了,勇敢的拆开 Python 的黑盒子,深入到语言的内部,去看它的历史,读它的源码,才能真正理解它的设计思路。

这里推荐一本书:

「Python 源码剖析」:Python源码剖析 (豆瓣)

这本书把 Python 源码中最核心的部分,给出了详细的阐释,不过阅读此书需要对 C 语言内存模型和指针有着很好的理解。

外,Python 本身是一门杂糅多种范式的动态语言,也就是说,相对于 C 的过程式、 Haskell 等的函数式、Java

基于类的面向对象而言,它都不够纯粹。换而言之,编程语言的“道学”,在 Python

中只能有限的体悟。学习某种编程范式时,从那些面向这种范式更加纯粹的语言出发,才能有更深刻的理解,也能了解到 Python 语言的根源。

这里推荐一门公开课

「编程范式」:斯坦福大学公开课:编程范式

讲师高屋建瓴,从各种编程范式的代表语言出发,给出了每种编程范式最核心的思想。

值得一提的是,这门课程对C语言有非常深入的讲解,例如C语言的范型和内存管理。这些知识,对阅读 Python 源码也有大有帮助。

Python 的许多最佳实践都隐藏在那些众所周知的框架和类库中,例如 Django、Tornado 等等。在它们的源代码中淘金,也是个不错的选择。

¶ 最后的话

每个人学编程的道路都是不一样的,其实大都殊途同归,没有迷路的人只有不能坚持的人。虽然听上去有点鸡汤,但是这是事实。

希望想学 Python 想学编程的同学,不要犹豫了,看完这篇文章,Just getting started~

第五天-选赛道和调整

2组-胡宽广

项目方向:全品类平台

项目名称:万门大学

第一部分、九大选盘指标

【1.定位】:6-60岁有学习需求的用户。

【2.用户场景痛点】:找不到一个全品类平台可以广泛涉猎不同行业,不同学科的课程。

【3.场景解决方案】:万门大学是一个全品类的学习平台,课程设置从小学到中学、大学和职场,职场课程也细分很多不同学科,包含心理学,经济金融,人工智能,哲学,小语种等,可以让用户随时随地学习到丰富的课程和知识。

【4.场景展现+用户证言】

刚刚加入万门大学的一位终身VIP用户,观望产品一年多,和孩子一起学习,和家人一起进步。

【5.业务数据】:

注册用户:1200万+

个人号思域流量池:500万+

付费用户100万+

终身VIP用户25000人

【6.商业模式&市场规模】

0元课裂变引流获取用户,转化单课、一年VIP和终身VIP。

市场规模:1000000000*100

【7.竞品对比&竞争优势】

和竞品相比较万门课程种类丰富,单课价格,和每小时单课价格很低,很大程度上降低了教育的门槛。

【8.创始团队组成、分工及优势】

CEO、COO、课程、销售、产品技术、财务和人事。

仍然是一家创业公司,团队都很年轻,管理扁平化,能快速根据市场调整自己的策略。

【9.融资目标&用途】

第二部分、竞品分析:

【1. 竞品分析目标】

分析竞品公司获客方式,转化流程和盈利模式。

【2. 筛选出目标产品】

竞品1:开课吧

①产品简介:是慧科集团旗下数字化人才在线教育平台。开课吧整合全球前沿IT和互联网企业优质师资及实战项目,提供体系化在线课程,满足用户多层次和个性化学习需求,实现职业提升和可持续成长。今年8月份开课吧从慧科拆分,并融资5.5亿元,今年已经实现单月营收过亿。

②公司规模:1000人左右

③公司地址:北京市海淀区东北旺路8号院尚东数字山谷A区1号楼

④产品官网:https://www.kaikeba.com/

⑤发展路径:

2013年8月26日,作为国内首家泛IT在线教育品牌,“开课吧”正式上线。

2014年3月,开课吧获得2000万美元A轮融资 。

2015年11月,开课吧母公司慧科教育获得3亿元B轮融资。

2016年8月,开课吧先后并购无限互联、莱茵教育、美好学院等三个职业教育机构,探索线上线下结合的教 育新模式。

2016年10月,开课吧母公司慧科集团完成C轮融资,估值超50亿元人民币。

2017年8月,全面启动IT、大数据、产品设计等三大学院专项培养计划。

2017年10月,IT学院重磅推出Web全栈架构师课程,并增设AI(人工智能)学院。

2018年5月,开课吧母公司慧科集团完成D轮融资,估值超10亿美元,成为高等教育领域独角兽。

2018年6月,Python教父廖雪峰独家签约成为开课吧课程战略顾问,执掌研发Python、Web全栈架构师、 Java三大课程。

2018年8月,开课吧完成全部线下教学点裁撤,专注在线直播大班课模式。 

2019年1月,原金山词霸CTO、传课网创始人、百度传课事业部总经理王海明正式加入开课吧任合伙人兼CTO。

2019年2月,“妙味课堂”并入开课吧,其创始人刘伟担任IT学院院长。

2019年5月,前 IBM中国总部数据科学家高民权加入开课吧担任AI学院院长。

2019年7月,原百度教育事业部总经理张高博士加入开课吧担任总裁,全面负责开课吧教学教研体系建设。

2019年8月,开课吧创办专注前沿互联网技术领域的创新实战大学“后厂理工学院”,前百度教育事业部总经理、开课吧总裁张高博士担任后厂理工学院首任院长。

2019年8月26日,开课吧举办“开课吧!2019互联网人826返校大会”,每年一度的“826互联网人返校节”正式拉开帷幕。

2019年10月,开课吧携后厂理工学院落户于具有“中国硅谷”之称的互联网中心——后厂村。

2020年2月,开课吧推出面向大学生群体的新职课,培养具有企业级交付能力的工程师。

2020年3月,开课吧推出企业版,开始为企业提供数字化人才培养方案。

2020年5月,前手机淘宝前端组leader、前淘宝架构组leader 程劭非(Winter)老师签约开课吧,担任Web课程首席顾问。

2020年8月26日,开课吧正式从慧科集团拆分,并独立获得A轮融资5.5亿元,本轮融资由高榕资本和高瓴创投联合投资,泰合资本为本轮融资的独家财务顾问,此次融资也是新职业在线教育历史上最大单笔融资。

⑥融资节奏:2020年8月26日,开课吧正式从慧科集团拆分,并独立获得A轮融资5.5亿元,本轮融资由高榕资本和高瓴创投联合投资,泰合资本为本轮融资的独家财务顾问,此次融资也是新职业在线教育历史上最大单笔融资。

⑦重大新闻节点:

2014年,新浪中国教育盛典最具口碑影响力在线教育机构 。

2016年,网易教育金翼奖年度最受信赖职业教育品牌 。

2018年,“回响中国”年度影响力在线教育品牌。

2019年,Boss直聘“2019王者之心”最爱人才企业管理者。

2019年,36氪“2019职业教育之王” 。

2019年,拉勾“2019年度TOP雇主”潜力雇主奖。

2019年,百度佰育奖“2019年品牌实力职业教育机构”  。

⑧用户评论

⑨自我体验总结:引流课做的很好,服务也很好,后面有正价课和更重服务的产品,不一定适合所有人,整体上来讲服务还是很不错的。

第三部分、优势研判:

行业基本方向:教育是一个朝阳产业,用户好的产品和好的内容付费的意愿也在不断提升,整体上来讲教育未来会发展的很好,不代表所有的公司都会发展的很好,用心做好产品,用心做好服务,为用户负责,用户自然会用脚和钞票投票。

差异化优势:全品类平台目前没有人做,可以说是和所有做教育的公司竞争。