当前位置:网站首页 > 经验分享 > 正文

潘石屹分享编程经验(地产大佬潘石屹:人生苦短,我要学Python)

具体而言,与其他编程语言相比,Python 具有以下几方面的特征:

其一,Python 相对易于学习。我们都清楚,编程很难,因此从绝对意义上来说,除非你已经拥有编程经验,否则编程语言难以学习。但相对而言,Python 的高级属性、语法可读性和语义直白性使得它比其他语言更容易学习。Python 社区非常强调遵循样式规定和编写「Python 式的」代码,这意味着相比使用其他语言的程序员而言,Python 程序员更倾向于使用一致的命名规定、行的长度潘石屹分享编程经验、编程习惯和其他许多类似特征,它们共同使别人的代码更易阅读。

其二,Python 是一种高级语言。与其他许多语言相比,Python 是一种相对「高级」的语言:它不需要(并且在许多情况下,不允许)用户担心太多底层细节,而这是其他许多语言需要去处理的。此外,Python 倾向于隐藏需要在底层语言中明确表达的各种死记硬背的声明。这使得我们可以编写非常紧凑、清晰的代码。

其三,Python 是一种通用语言。根据设计,Python 是一种通用的语言。也就是说,它旨在允许程序员在任何领域编写几乎所有类型的应用,而不是专注于一类特定的问题。在这方面,Python 可以与(相对)特定领域的语言进行对比,如 R 或 PHP。这些语言原则上可用于很多情形,但仍针对特定用例进行了明确优化。

其四,Python 是一种(相对)快速的语言。从表面上看,Python 是一种快速语言的说法看起来很愚蠢。因为在标准测试时,和 C 或 Java 这样的编译语言相比,Python 通常会卡顿。毫无疑问,如果速度至关重要,Python 可能不会成为你最优选择的语言,甚至不会是第二好的语言。但在实际中,许多科学家工作流程中的限制因素不是运行时间而是开发时间。一个花费一个小时运行但只需要 5 分钟编写的脚本通常比一个花费 5 秒钟运行但是需要一个礼拜编写和调试的脚本更合意。

其五,Python 是天生面向对象的。即使你正在做的只是编写一些简短的脚本去解析文本或挖掘一些数据,Python 的许多好处也很容易领会到。在你开始编写相对大型的代码片段前,Python 的最佳功能之一可能并不明显:Python 具有设计非常优雅的基于对象的数据模型。事实上,如果你查看底层,你会发现 Python 中的一切都是对象。甚至函数也是对象。

最后,很多人选择 Python 是冲着 Python 社区的。在这里,Python 学习者既可以自由地获得服务和 Python 资源,相互之间也可以进行自由的互动和交流。

Python 入门:把大象装进冰箱总共分几步?

既然 Python 是一门非常重要的编程语言,那么入门它有多难?在很多人看来,Python 是一门用较短时间就能掌握的编程语言。至于学习 Python 的时间,有人说是一个月,有人说是一周,还有人说一天就行。当然,学习 Python 也需要一点计算机理论知识和编程实践经验作为基础,但一天之内上手 Python 的人确实不在少数。

这里介绍一种「一个月从入门到精通」的学习方法。看似天数不多,但如果每天都拿出 6-7 个小时认真学习,也是能精进不少的,而且能够有一个比较扎实的基础。

首先你要确定好目标,第一个月的目标最好不要太过「沉重」,比如:

熟悉基本概念(变量,条件,列表,循环,函数)

练习超过 30 个编程问题

利用这些概念完成两个项目

熟悉至少 2 个框架

开始使用集成开发环境(IDE),Github,hosting,services 等

然后我们应该把这个月度计划细化为周计划,再将周计划拆分为天计划,这样才能更好地落实:

第一周:熟悉 Python

第一天:基本概念(4 小时):print,变量,输入,条件语句;

第二天:基本概念(5 小时):列表,for 循环,while 循环,函数,导入模块;

第三天:简单编程问题(5 小时):交换两个变量值,将摄氏度转换为华氏温度,求数字中各位数之和,判断某数是否为素数,生成随机数,删除列表中的重复项等等;

第四天:中级编程问题(6 小时):反转一个字符串(回文检测),计算最大公约数,合并两个有序数组,猜数字游戏,计算年龄等等;

第五天:数据结构(6 小时):栈,队列,字典,元组,树,链表;

第六天:面向对象编程(OOP)(6 小时):对象,类,方法和构造函数,面向对象编程之继承;

第七天:算法(6 小时):搜索(线性和二分查找)、排序(冒泡排序、选择排序)、递归函数(阶乘、斐波那契数列)、时间复杂度(线性、二次和常量)。

在第一周的学习结束后,千万不要急着安装 Python 环境,因为很多人都在语言工具包和 IDE 安装失败后逐渐失去了学习欲望。你可以使用几个安卓 App 来继续探索,比如编程英雄或者在线代码游乐场、 Repl等等

第二周:开始软件开发(构建项目)

如果你在第一周已经夯实了基础,那么第二周就可以朝着软件开发任务进军了:

第一天:熟悉一种 IDE(5 小时): IDE 是你在编写大型项目时的操作环境,所以你需要精通一个 IDE。在软件开发的初期,我建议你在 VS code 中安装 Python 扩展或使用 Jupyter notebook;

第二天:Github(6 小时):探索 Github,并创建一个代码仓库。尝试提交(Commit)、查看变更(Diff)和上推(Push)你的代码。另外,还要学习如何利用分支工作,如何合并(merge)不同分支以及如何在一个项目中创建拉取请求(pull request);

第三天:第一个项目——简单计算器(4 小时):熟悉 Tkinter,创建一个简单的计算器;

第四、五、六天:个人项目(每天 5 小时):选定一个项目并完成它;

第七天:托管项目(5 小时):学习使用服务器和 hosting 服务来托管你的项目。创建一个 Heroku 设置并部署你构建的应用程序。

在第二周接触项目是为了让你独立思考,学会将课程中的理论转化到实际应用当中去。

第三周:让自己成为一名程序员

第 3 周的目标是熟悉软件开发的整体过程。这个阶段不用掌握所有的知识,但是应该初步了解一些常识:

第一天:数据库基础(6 小时):基本 SQL 查询(创建表、选择、Where 查询、更新)、SQL 函数(Avg、Max、Count)、关系数据库(规范化)、内连接、外连接等

第二天:使用 Python 数据库(5 小时):利用一种数据库框架(SQLite 或 panda),连接到一个数据库,在多个表中创建并插入数据,再从表中读取数据;

第三天:API(5 小时):如何调用 API。学习 JSON、微服务(micro-service)以及表现层应用程序转换应用程序接口(Rest API);

第四天:Numpy(4 小时):熟悉 Numpy并练习前 30 个 Numpy 习题:https://github.com/rougier/numpy-100/blob/master/100_numpy_excercises.md;

第五、六天:作品集网站(一天 5 小时):学习 Django,使用 Django 构建一个作品集网站(https://realpython.com/get- start-with-django -1/),也要了解一下 Flask 框架;

第七天:单元测试、日志、调试(5 小时):学习单元测试(PyTest),如何设置和查看日志,以及使用断点调试。

第四周:认真考虑工作(实习)问题

第 4 周的目标是认真思考如何用 Python 拿到 offer。即使你现在不想找工作,你也可以在这个过程中思考出很多有价值的结论。

第一天:准备简历(5 小时):制作一份一页的简历。把你的技能总结放在最上面,必须在写项目的同时附上 Github 链接;

第二天:作品集网站(6 小时):写几个博客,将它们添加到你之前开发的作品集网站中;

第三天:LinkedIn 简介(4 小时):创建一个 LinkedIn 个人简介,把简历上的所有内容都放到 LinkedIn 上;

第四天:面试准备(7 小时):准备一些谷歌常见的面试问题,练习白皮书中的 10 个面试编程问题。在 Glassdoor、Careercup 等网站中查看前人遇到的面试问题;

第五天:社交(~小时):走出房门,开始参加聚会、招聘会,与其他开发人员和招聘人员见面;

第六天:工作申请(~小时):搜索「Python Job」,查看 LinkedIn Job 和本地求职网站。选择 3 个工作岗位并发送工作申请。为每个工作定制你的简历。在每个工作要求中找出 2 到 3 件你不知道的事情,并在接下来的 3-4 天里学会它们;

第七天:在拒绝中学习(~小时):每次你被拒绝的时候,找出两件为了获得这份工作你应该知道的事情,然后花 4-5 天 的时间来掌握它们。这样,每次拒绝都会让你成为更好的开发人员。

以上是一个非常完美的学习周期,时间是 28 天。如果你是名课程繁重的学生、或者是需要花很多精力去参加社会活动的职场人士,抑或你和潘石屹一般今年也已经 56 岁了——这个学习周期也可以拉长,但是要记住,不能半途而废。

参考链接:

人生苦短,为什么我要用 Python?

Python 从入门到精通:一个月就够了!

版权声明


相关文章:

  • 老程序员编程经验分享(20年老码农分享20条编程经验,你pick哪些?)2024-10-15 08:01:00
  • 编程经验分享11条(20年老码农分享20条编程经验,你pick哪些?)2024-10-15 08:01:00
  • 孩子编程经验分享(小孩学代码编程有什么用:过来人经验分享)2024-10-15 08:01:00
  • 商演灯光编程经验分享(调光,编程,玩灯,编秀……2018改变灯光思维)2024-10-15 08:01:00
  • 脚本编程经验分享文案(**脚本怎么写文案(30个爆款短**脚本文案模板))2024-10-15 08:01:00
  • 数学建模经验分享编程(数学建模比赛建模手经验分享)2024-10-15 08:01:00
  • 编程竞赛经验分享怎么写(分享我在编程比赛中获得金牌的经验和经历)2024-10-15 08:01:00
  • 编程比赛经验交流分享(分享我在编程比赛中获得金牌的经验和经历)2024-10-15 08:01:00
  • 编程开发经验分享ppt(做开发十年,我总结出了这些开发经验)2024-10-15 08:01:00
  • 编程经验分享稿件(20年老码农分享20条编程经验,你pick哪些?)2024-10-15 08:01:00