Python入门的三大问题和三大谎言
Python广告,铺天盖地,小白们雾里看花,Python无限美好。作为会20几种语言(BASIC Foxbase/pro VB VC C C++ c# js typescript HTML ArduinoC Delphi VBA VB 汇编 scratch java swift python sql vbscript ...)的爱好者,我先说说如果入门python应该想好三大问题,并且在此戳穿三大谎言:
问题一 是不是兴趣?
确认你不是被短期贩卖焦虑的广告撩动的一时冲动,就像我虽然不是程序员但坚持写了二十几年程序,这不是一时兴起能坚持下来的。如果有强烈使命感,真是感兴趣,笑看本贴后,好好看我其它的文章学好编程,因为谁劝你也没用。判断标准就是你平时是否对科技类产品的爱好能长期坚持。否则请沉下心来,仔细往下看。
问题二 用来干嘛?
编程语言就是万能工具,同一种语言,同一种梦想,这是不可能的。
1. 萌懂高初中生。
考虑到中国学生的现实,如果你是高考前的学生,学习python对于纯参加高考学生的意义不大,学好python可以拿几个编程,人工智能比赛的奖是没问题的,择校和申请海外名校有一定帮助,但要投入一定的精力,高中生的逻辑思维已成形,正是形成社会型、批判性思维的关键时刻,过份的逻辑可能会形成刻板映象,可能不利于此时应该成形的社会观、世界观、人生观的形成,想靠编程促进逻辑思维是天方夜谭,收效不大。
2. 无敌的初一(二)和小学生。
此时的孩子天马行空,STEM教育反而应提前布局,通过学习Python来了解基础的语法,的确可以促进孩子扩展解题角度,提高逻辑思维,培养规则意识。有人质疑这会抹杀孩子的想象力,大错特错!中国教育太注重1+1是如何算出来的,天天做计算天天练(shit!),难道这些简单的算式题不都应该交给计算机去做么?学习编程后这些死算硬背的东西编程语言自会处理好,孩子发挥想象空间大了,她会想用这样看似简单的语句组合搭建能解决问题的系统。在此,建议注意基础的学习,应用型技术比如WEB网站,动画制作等可以凭兴趣学点即可。此时学习切不可贪多求全,因为没有必要,培训机构谎言之一:夸张的说python20年不过时!Oh my god,牛叔我学习的语言中已有一半已不复流行,微软曾经力推的vbscript当时几乎与JS二分天下,还不是泯然众人矣,但学习好基础是重点,千变万化均在其中,牛叔初看python语法就在一周内做出了商用智能仪表网站,学习成本几乎为0。
3.浪漫的大学生。
无论什么专业,咱啥也别说,分点谈恋爱的时间,学点python考个计算机二级证书,未来无限好,好处少不了。理工科、金融经济学的学生少不了数据分析,同样的论文你用excel做比用python差了不止一个档次。文科学生,用python做个语义分析、文学史比较、爬个文学网站,艺术舞蹈类以后搞自媒体学点技术美化下视频、B站、淘宝网站也没坏处。
4. 高逼格的商用系统支持与开发。
python本身就是壳语言,作为linux体系的从业人员无论是系统支持还是系统开发,均建议毫无保留的要学习,对国内微软体系的从业人员,除了纯技术的程序员,大部分倾向于咨询方向,其实学不学问题不大。
5. 时髦的手机物联网开发。
实话实说,目前python在移动前端的优势并不大,涉及后端开发api接口、网站等方面,还是简约不简单。培训机构谎言之之二:python是开发APP,大型游戏的语言,还说某宝某陌某微APP是python开发的。基本上是扯***。服务于APP和游戏的API网站是用python开发的我信,大品牌安装到手机上的APP程序真心很少用python来写,游戏的逻辑部分用python写的也有比如:文明四,网易一些网游,但核心引擎都是外采或用C语言写的以供python调用,python能开发APP不假,但由于开发,部署,功能都不太方便,很少被大厂去使用写APP。同样,物联网应用也有把python写入芯片的骚气操作,比如MicroPython。但绝大部分python还是作为测试工具、API平台的编写语言,而不直接往终端设备里写程序。 Python只是天上那一朵云,你的设备用的云,是它开发的。
6. 提升办公技能。
这就到了我们第三个谎言:python运行效率高,能瞬间处理几百个表格,我学会python后把原来十几个小时EXCEL工作量几秒就完成了。debat这个慌言这分两块:
首先从python来讲,能提升办公技能完全不假,处理数据却不是最快的,它的代码运行效率在编程语言中最差。它本身是由C语言编写也是解释性语言,因此对于运算要求高的深度神经网络和3D游戏程序需要编译或转成C语言来运行,当然它处理办公数据时这点差距并不重要,会在意那0.1秒的回眸呢?(除非是美女)python要处理word,excel需要依赖大量第三方库,由于微软的文件格式变化较多,存在大量兼容性问题,DEMO中老师给的都是优化后数据,你工作中会碰到大量问题,比如excel的97格式不认,公式读不出来,合并单元格数值不对,日期不识别……为了一个小问题你要耗一天,这种门槛老师可不会给你手把手解决(我会),开源软件的版本也多,每个版本之间的兼容性也有差别,你可能用了最新的版本,但不一定工作的很好。
第二,从办公软件方面讲。微软的办公系统已经内置了非常强大的功能,无代码化的操作已经非常方便,任何使用编程软件完成的功能,现在已经90%可以使用内置的鼠标点击及拖拉完成。EXCEL可以使用PowerPivot可以分析生成百万级数据图表,其中数据透视表可以实时的给你统计和分析内容,再搞不定可以连接sql数据库学点SQL语言才是正道;Word可以使用邮件合并功能,一次性生成几十篇请贴,也可以引入变量插入文档……学好这些内功,比使用外部工具来操纵它更能体现效率。你能想象几分钟能完成的拖拉数据视图,要用Python搞一个小时还不能用在其它类型的EXCEL表中的痛苦么。另外。微软的一系列编程工具里面,对office组件可以做到无缝支持,VBA可以完成一些自动化的功能,再复杂的C#也可以轻松编程搞定,而且很少出现各种问题。
在办公上Python优势在大数据和功能整合(胶水语言特点)方面明显,利用Python可以快速处理简单而大量的数据,类似于大数据处理,复杂的数据处理通过与数据库的连接来完成,可以迅速搭一个收集数据、处理的平台(当然微软的SharePoint也可以)。但一条原则,这是在学好Office前提下,此时估计你已经能处理99%办公上的问题。
问题三 怎么学?
靠自己,靠实践。古语有云:“耳闻之不如目见之,目见之不如足践之。” 只有自己亲身完成的事情才会在大脑中形成回路,上帝不会让你付他8.9元告诉你,怎么造世界。创造Python世界,只有你自己才可以。所谓跟着老师写代码,然后分享朋友圈,无非是给自己的心理找安慰,结合自己的体验才是真功夫。学习编程好处是写的代码可以立即实践运行给你点亮成就感,我们首先要做的就是给自己建立一个逐步深入的小任务组,在每完成一个任务后检查自己与高手的区别,并且更进一步不断循环迭代加深。
举个栗子:如果你是无敌小学生,为了占领这个世界,咱先定一个小目标:造计算器。
那么目标集合可以这么层层设计。
1、原理:在程序中进行计算 (学会了基本的计算语句)
计算原理
2、简陋计算器:用户输入算式能计算 (学会了输入输出和eval语句)
3、容错计算器:输入错误能识别(条件)
4、成品计算器:出结果后等待下次输入(循环)
5、豪华皮肤:画出计算器的界面(pygame作图)
6、激活按钮:根据鼠标点击计算器按钮显示数字(pygame事件)
7、豪华计算器:完成计算器的制作(pygame文字贴图和计算)
豪华计算器
通过上面的7个步骤,就可以在一周内制作出如上图精美的计算器,全程靠自己的知识逐步积累,学会这个任务后,才会发现python其实很简单。
小牛叔根据自身的学习经验,总结提练学习编程三步曲:
1、选好能逐步点亮成就感的小任务
2、独立网上找资料完成,不断迭代
3、读源码检查你和高手的区别
通过完成简单的任务后,你自然会知道如下几点:
1、python错误了到哪里检查错误
2、新的python知识到哪里找资料
3、我的任务python到底能不能完成
4、以后自学的方向是什么
欢迎关注小牛叔,共同探讨在学习之路的经验,避免学习的坑。