地产大亨潘石屹突然下定决心要学Python。“人生苦短,我学Python”对于很多接触过计算机的同学来说是一句耳熟能详的笑话,但最近这股风潮又蔓延开来。11月14日,知名房地产开发商、SOHO中国董事长潘石屹在微博发表声明:潘石屹的名字经常出现在很多新闻报道中。在2019年福布斯全球亿万富豪榜中,张欣和潘石屹家族以215.7亿元的财富位列第107位。50岁以上的地产大佬现在要不要搞人工智能?消息迅速引起人们关注并转发。或许是为了给自己充分说明学习Python的行为,也或许是为了号召更多的人加入这个行列。一天后,潘老师发了一条“我要学Python”的微博,找到了学习Python的理由。潘石屹认为,Python是计算机语言中“最好的进化”。很多人都知道,随着人工智能和数据科学的飞速发展,Python正在成为计算机领域最流行的编程语言。在今年9月IEEE发布的最新编程语言排行榜中,Python在趋势、开源、工作要求等方面位列第一。当然,Python的“岗位要求高”显然与潘总无关。在知乎上,人们讨论了这件事。有人指出,在房地产行业,收集和分析数据变得越来越重要。使用Python语言进行爬虫、数据分析、机器学习算法预测是一项非常重要的技能。至少学了这门编程语言后,潘老师可能不会再那么容易被ppt上的数字忽悠了。潘石屹曾学过摄影和木工,如今开始涉足编程领域。这背后一定有深刻的思考。潘石屹大哥选择学习Python。为什么这么神奇?与其他一些编程语言相比,Python语言有哪些显着优势?Python语言简单易用,逻辑清晰,拥有大量的扩展包,因此它不仅成为机器学习和数据科学的首选语言,也是网页、数据爬取、和科学研究。此外,很多入门级的机器学习开发者也顺应潮流选择了Python。具体来说,与其他编程语言相比,Python具有以下特点:第一,Python相对容易学习。我们都知道编程很难,所以从绝对意义上讲,编程语言很难学,除非你已经有编程经验。但相对而言,Python的高级属性、句法可读性、语义直白性使其比其他语言更容易学习。Python社区非常强调遵循风格指南和编写“Pythonic”代码,这意味着Python程序员比其他语言的程序员更有可能使用一致的命名约定、行长度、编程习语和其他许多类似的功能,它们共同使其他人的代码更易于阅读。其次,Python是一门高级语言。与许多其他语言相比,Python是一种相对“高级”的语言:它不会(在许多情况下不允许)用户担心许多其他语言需要的低级细节处理。此外,Python倾向于隐藏各种需要在底层语言中明确表达的死记硬背声明。这使我们能够编写非常紧凑、干净的代码。第三,Python是一种通用语言。按照设计,Python是一种通用语言。也就是说,它旨在允许程序员在任何领域编写几乎任何类型的应用程序,而不是专注于特定类别的问题。在这方面,Python可以与(相对)特定领域的语言(如R或PHP)进行对比。这些语言原则上可以在很多情况下使用,但仍针对特定用例进行了明确优化。第四,Python是一种(相对)快速的语言。从表面上看,声称Python是一种快速语言的说法看起来很愚蠢。因为在进行基准测试时,Python与C或Java等编译语言相比往往落后。毫无疑问,如果速度是最重要的,Python可能不会是您的首选语言,甚至不会是第二好的语言。然而,在实践中,许多科学家工作流程的限制因素不是运行时间,而是开发时间。运行一个小时但只需要5分钟编写的脚本通常比运行5秒但需要一周编写和调试的脚本更可取。第五,Python天生就是面向对象的。即使您所做的只是编写一些简短的脚本来解析文本或挖掘一些数据,Python的许多好处也很容易掌握。在您开始编写相对较大的代码之前,Python的最佳功能之一可能并不明显:Python具有设计非常优雅的基于对象的数据模型。事实上,如果深入了解,Python中的一切都是对象。甚至函数也是对象。最终,很多人因为Python社区而选择了Python。在这里,Python学习者不仅可以免费获取服务和Python资源,还可以自由互动交流。Python入门:将大象放入冰箱需要多少步?既然Python是一门如此重要的编程语言,那么入门有多难呢?在很多人眼里,Python是一门可以在较短时间内掌握的编程语言。至于学习Python的时间,有说一个月的,有说一周的,还有说一天的。当然,学习Python也需要一点计算机理论知识和实际编程经验作为基础,但一天之内上手Python的人确实不在少数。这里介绍一个“一个月从入门到精通”的学习方法。看起来天数不多,但是如果每天投入6-7个小时努力学习,就能进步很多,基础也比较扎实。首先,你必须确定你的目标。第一个月的目标不能太“重”,比如:熟悉基本概念(变量、条件、列表、循环、函数)练习30多道编程题用这些概念完成两个项目熟悉at至少2个框架,开始使用集成开发环境(IDE)、Github、hosting、services等,然后把这个月计划细化成周计划,再把周计划拆分成日计划,这样才能更好实施:第1周:熟悉Python第1天:基本概念(4小时):打印、变量、输入、条件语句;第2天:基本概念(5小时):列表、for循环、while循环、函数、导入模块;第3天:简单编程题(5小时):交换两个变量值,将摄氏度转换为华氏度,对一个数的数字求和,判断一个数是否为素数,生成随机数,去除列表项中的重复项等;Day4:中级编程题(6小时):字符串反转(回文检测)、计算最大公约数、合并两个排序数组、猜数字游戏、计算年龄等;第五天:数据结构(6小时):栈、队列、字典、元组、树、链表;第6天:面向对象编程(OOP)(6小时):对象、类、方法和构造函数,面向对象编程继承的一部分;第7天:算法(6小时):搜索(线性和二分搜索)、排序(冒泡排序、选择排序)、递归函数(阶乘、斐波那契数列)、时间复杂度(线性、二次和常数)。第一周学习结束后,不要急于安装Python环境,因为很多人在语言工具包和IDE安装失败后,逐渐失去了学习的欲望。可以使用几款AndroidApp继续探索,比如CodingHero或者OnlineCodePlayground、Repl等。第二周:开始软件开发(buildprojects)如果第一周打好了基础,那么第二周就准备好了走向软件开发任务:Day1:熟悉IDE(5小时):IDE是你编写大型项目时的运行环境,所以你需要熟练使用IDE。在软件开发初期,我建议大家在VScode中安装Python扩展或者使用Jupyternotebook;第2天:Github(6小时):探索Github并创建代码存储库。尝试提交(Commit)、查看更改(Diff)和推送(Push)你的代码。此外,学习如何使用分支、如何合并不同的分支以及如何在一个项目中创建拉取请求;Day3:第一个项目——简单计算器(4小时):熟悉Tkinter,制作一个简单的计算器;第4、5、6天:个人项目(每天5小时):选择一个项目并完成;第7天:托管项目(5小时):学习使用服务器和托管服务来托管您的项目。创建Heroku设置并部署您构建的应用程序。第二周的项目是让你独立思考,学会将课程中的理论转化为实际应用。第3周:让自己成为一名程序员第3周的目标是熟悉软件开发的整个过程。这个阶段你不需要掌握所有的知识,但你应该对一些常识有一个初步的了解:Day1:数据库基础(6小时):基本SQL查询(createtable,select,Wherequery,update)、SQL函数(Avg、Max、Count)、关系数据库(规范化)、内连接、外连接等。第2天:使用Python数据库(5小时):利用数据库框架(SQLite或panda),连接到数据库,在多个表中创建和插入数据,然后从表中读取数据;第3天:API(5小时):如何调用API。学习JSON、微服务、表现层应用转换API(RestAPI);第4天:Numpy(4小时):熟悉Numpy并练习前30个Numpy练习:https://github。com/rougier/numpy-100/blob/master/100_numpy_excercises.md;第5天和第6天:作品集网站(每天5小时):学习Django并使用Django构建作品集网站(https://realpython.com/get-start-with-django-1/),并了解Flask框架;第7天:单元测试、日志记录、调试(5小时):学习单元测试(PyTest)、如何设置和查看日志以及使用中断单击Debug。第4周:认真思考工作(实习)问题第4周的目标是认真思考如何使用Python获得offer。即使你现在不想找工作,你也可以在这个过程中想到很多有价值的结论。第1天:简历准备(5小时):制作一页简历。把自己的技能总结放在最上面,写项目的时候一定要附上Github链接;Day2:Portfoliowebsite(6hours):写几篇博客,加入你之前开发的作品集网站;第3天:LinkedIn简介(4小时):创建LinkedIn个人资料并将您简历上的所有内容放在LinkedIn上;第4天:面试准备(7小时):准备一些常见的Google面试问题,练习白皮书中的10个面试编程问题。在Glassdoor、Careercup等网站上查看前人的面试问题;第5天:网络(~小时):走出家门,开始参加聚会、招聘会,结识其他开发人员和招聘人员;第6天:工作申请(~小时):搜索“PythonJobs”以查看LinkedIn工作和本地工作网站。选择3个职位空缺并发送职位申请。为每份工作定制你的简历。在接下来的3-4天内,针对每个工作请求找出2到3件你不知道的事情;第7天:从拒绝中学习(~小时):每次你的时候到了,找到两件你应该知道的事情来获得这份工作,并花4-5天的时间来掌握它们。这样,每一次拒绝都会让你成为更好的开发者。以上是一个非常完美的学习周期,时间为28天。如果你是课程繁重的学生,或者是需要花费大量精力参加社会活动的专业人士,或者你和潘石屹今年普遍56岁——这个学习周期也可以延长,但切记,你不能半途而废。
