Python札记(零)-Python学习方法杂谈(建议别看)

 我相信很多人和我一样,在接触亦或打算学习一门语言的时候,总是会考虑什么样的教程指南是好的。我们心里都清楚,总的纲领和知识点是一样的,但是官方的蓝本(https://www.python.org/doc/)总是生涩些,对新手也不太友好,所以我们开始关注各种各样的公众号去获取内部资料、分享朋友圈得网盘资源,有些也会去网购教程、报培训班。对此我本人并不持任何态度,因为我从来只觉得学习就是一件好事情。每个人有自己喜欢的方式,我想强调或者发出一些关于网上“大神”学习方法的反驳声音。

 为何不在此赘述Python的益处和疗效,而是妄论学习的方式。一,诸位轻易搜索一下是可以知道一门语言的特性,并且我不认为我或者大多数人是有资格或者义务去断言一门语言的利弊。二,当然我是伪哲学论的人,我认为推动科技进步,我们需要站在巨人的肩膀上,这也是我接下来重点要说的观点。

 计算机是人类发明的工具,其实,它没电就不能工作了。无论是ENIAC还是天河二号,谁都不好使。所以你看,计算机只有两个逻辑,断电(关闭)和通电(开启),那你看嘛,这不就是0和1(电信号),然后你想,成百上千个线路都有两个逻辑,这样组合一下是不是有你数不清的可能,那么亿级个电路呢?毫不夸张的讲,新手可以把计算机工作原理的原始雏形想象成无数个开关的排列组合。这下厉害了,你要操作这么多开关,投入多少人工啊?是的,第一台通用计算机有6000多个物理开关。所以我们就发明了语言指令和机器沟通,我写一句话,你就按着去执行,于是有了机器语言(理解为纯0和1的描述,恐怖吧)。

 机器语言的晦涩和不易操作,逼机智的人类发明了汇编语言,简单理解为把一部分指令用英文字母代替一下,比如“ADD”代表加法运算。怎么实现的呢?就是用机器语言写一个可以自己解释一些英文字母的工具,这样就可以省一些事情喽。但这还是很晦涩,并且移植性差到家,因为他是对着硬件来的。我写的东西让你家的机器就不好使了。于是机智的人类这时发明了一些比较高级的语言-比如C语言,具备一定的移植性,和人类语言也比较接近。C语言是怎么实现的呢?就是用汇编写了一个可以解释某些集成语句的工具,然后我们书写规定好格式的语句就可以了。如今高级语言众多,Java、C++、PHP等等,其实本质上就是低级语言写一个集成化的编译工具,可以翻译特定的指令传递给更低级的语言,直到机器语言,然后让计算机根据语言来操作电信号。

 那我问一下,有人现在为了写程序特别想学机器语言么?别急着回答,你使用一部手机需要从它的软硬件原理开始学习么?你开公司需要财务、风控、营销、研发、行政全部学会么?你买个冰箱需要自己制冷么?如果你的目的是发明一门语言,或者和硬件打交道,另当别论。

 我们生活在今天,是很多前辈负重开路的,如果我们仍然追求从0开始学原理,人类的社会岂不是一直在浪费发展的成本?

 所以我想问一下,很多优秀做IDE的公司,为什么一些大神一直提倡使用命令号工具来敲代码,在容错率低的环境下重复一些耽误学习的无意义工作?我觉得不妥,按照这个理论,我们为了弄清原理要从学习机器语言开始……呃,也不妥,应该从学习电的发明开始,也不妥……

 当然,我必须承认学习很多东西是有益处的,诚如我开篇所言,学习就是对的,但是我希望我们不要把时间浪费在排练开始的场地布置上。这属于我个人的见解,确实生敲代码,会提高熟练水平,会提高手写代码能力,会了解原理,会……我无比认可,但我个人认为,效率至上的年代,我们不妨把时间成本多花费在语言本身,而不是应试教育式的学习方式上。在企业级的开发中,是怎样的流程,我们就使用怎样的学习方法。

 以上,第一是给新手理一下语言的发展,二是从我个人的角度出发,阐述一下学习的观点,从简而行,效率至上。不过也不能一概而论,学习低级语言是有助于了解计算机原理的,并且越高级的语言因为封装和兼容的特性,虽然代码通俗易懂,执行起来会效率很低。汇编40行的代码,C序言可能需要20行,Java则可能需要10行,而Python则仅仅需要5行,但是执行的时间呈反比,Python的执行时间会最长。

 另外很多人在学习过程中是有情绪的,参加婚礼、失恋、玩游戏、约会、同学趴、兴趣组……是,都很忙,而且生存的方式也不尽相同。所以难免会在学习的过程当中被打断或者无法集中静心学习。鉴于各种教程不一的原因和大家的心态,我有三个方面和大家沟通:

 1、为了稳定你的学习状态,必须给自己指定诸如百天计划之类的东西,可以使用跟踪表格或者其它表格之类的内容,按时打卡,诸如我这种一时兴起、再而衰的人来说是大有裨益的,另外可以找个小伙伴一起学习,互相督导。

 2、教程繁多,教育行业的广告和资源层出不穷,优劣难辨,所以在选择的时候,我们选择一种主干性的教程,辅以1-2种其它教程,一是温习,二者对比查漏补缺,三者可以避免某一位主讲个人观点出现的偏差导致初始阶段认知的错误。

 3、我大幅的描述前几段内容,无非是想说这一点:直接使用好的IDE来学习,不要花时间在所谓的原理上,这样就避免了本末倒置。下一章节我会给大家推荐好的开发工具,在调试、书写代码的时候,很是方面,并且也对接企业需求。

 另:

  •  必须承认的是,比较好的高级语言对中文支持不是最友好的(当然逐渐在完善,易语言除外哈),无论是开发工具还是代码本身,所以前期我们仍然要克服英文这一障碍。
  •  当然还有就是,我本人使用的是Mac,可能在某些点上操作会稍稍和Windows有些差异,但这并不太影响代码本身,仅仅是快捷键、开发工具、系统设置(或文件)的区别上。
  •  我们学习的是Python3,至于为什么不是2,很好理解,明天出来Python4我们就会去学习4,旧的总是要被新的所替代,稳定性什么的你不用考虑,现在已经是(截止本文章时间)Python3.6.4稳定版发布了,测试版已经到3.7+了。

 学习任何一门编程语言,不要觉得我看一遍就会了,看完教程,合上书本或者电脑。第二天能敲下来么?多敲,敲代码这种重复性的工作在编程上总是有意义的。

 文中所有较为生涩的词汇,均已添加超链接(Wiki被墙,度娘符合和谐社会,大家凑合用),可以直接查看。我本人并不是大神,我也不相信大神的存在,个体的差异是有的,但是我相信勤奋总是会改变一些“天赋”,如果这点毅力和信心都没有,还请不要抱怨你的人生如何悲惨,自找的。我没有最强大脑,所以难免会有错误和偏差,我希望我们可以共同交流和学习。

 WeChat:wolf0523

 Weibo: 己怽 (其实是用来看八卦和段子的)

 

 



 

 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值