学了编程黑魔法,你就脱离了麻瓜的行列

优达学城Udacity2019-05-22 07:49:26


编程入门就一句话:从入门到放弃。


who say eight road!学会套路,保准成为编程超人!

欧剃


编程是个麻烦事,从哪里入手也是件麻烦的事情,但学了编程黑魔法,你脱离了麻瓜的行列(点击查看文章)。很多初学者往往找不到北,这时候,如果能掌从一门简单易学的编程语言,那就信心百倍了!


在这里,我郑重跟各位安利 Python 。

蟒蛇:老铁,咱能不提到我吗?



大家别被这名吓到,这门语言的创造者Guido van Rossum是根据BBC的搞笑节目“蟒蛇飞行马戏”(Monty Python’s Flying Cirecus)来命名的——并非他有喜欢看蟒蛇绞杀动物的奇特癖好(不过logo的确是两条蛇缠在一起)



优达菌

欧老师,为啥要安利大家用python?


据我多年 女装大佬  Python老司机经验,总结有下:


  • 简单:阅读一个好的Python程序,就像在读英语一样,这种伪代码本质是它最大优点之一,使你能专注解决问题,而不是去搞明白语言本身。


  • 免费、开源:Python是FLOSS(自由/开放源码软件)之一。你可以自由发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。


  • 高级语言:当你用Python编写程序时,你无需考虑一些底层细节。诸如:怎么管理你的程序使用的内存之类的。


  • 可移植性:由于它的开源本质,Python已经被移植在许多平台上。如果你小心避免使用依赖于系统的特性,那么你的所有Python程序无需修改就能在这些平台上运行。包括Linux、Windows、FreeBSD、Macintosh、AS/400、Windows CE等,甚至还有PocketPC!



所以有人说,Python 是一款非常适合新手开的好车,不要驾驶证就能上路。除非你想体验速度与激情的快感,一般来说,你不需要其它车。



优达菌

听说Python有两个不同版本,我该选择2还是3?


Python2.x是已经进入稳定状态的Python版本,Python3.x是开发更加活跃的面向未来的版本。它们在语言特性上有略微不同,但不至于相差太大。


至于选择哪个版本,要根据你的使用方式而定。一般来说,大部分Linux和MacOS设备都默认预装Python 2,且旧版本支持的第三方库也更多;Python 3 则提供更舒服的字符编码处理机制。


所以,如果你需要处理中文文本,或者你并不需要用到某些只有在Python 2上才能运行的库,那你可从 Python 3 开始你的学习之旅。



优达菌

了解了些基本内容,我需要怎么开工?


为了编写存储程序代码的文本文件,我们需要一个趁手的编辑器


对于编辑器的基本要求之一是语法加亮功能,利用这一功能,你的Python程序的不同部分被标以不同的颜色,这样你可更好看清你的程序,使它的运行显得形象化。



如果你使用Windows,我建议你使用IDLE。IDLE具备语法加亮功能,还有其他功能,比如允许你在IDLE中运行你的程序。注意:不要使用Notepad——它是一个糟糕的选择,它没有语法加亮功能,且不支持文本缩进。


如果你使用Linux/FreeBSD,你有很多种选择。

初学编程:使用GEdit / Kate。

有经验的程序员:使用VIM/Emacs。

勿庸置疑,它们是两个功能最强大的编辑器。我个人使用VIM编写我的大多数程序。



优达菌

是不是还要选择适合我学习方式的教程?


目前初学者容易接触到的Python教材大致有以下两类(文末有具体推荐):


一类是文字材料,例如实体书、电子书、网络教程和程序文档等。文字教程的好处在于信息密度大,学习中遇到不懂的内容可随时查阅,书中的文字材料/代码段可直接复制,方便看到运行结果。



另一类是多媒体教材,例如视频课程和自学APP等。它们的好处在于直观、互动性强,能清楚通过动画、视频的演示了解教学内容。



不管选哪个,结合教材中的实例代码,通过不同的修改和输出了解代码的执行原理,都是非常重要的环节,多动手吧!


优达菌

那么,入门的时候要怎么做?


懂得查


啊,明明按照教程做的,怎么跳出这么多红字?


Python程序在运行时遇到的错误,通常会显示详细行号和错误信息,方便用户查找修正。遇到自己不认识的,别慌,先看看它们的描述,再打开你的文件,找到出错的行号。

如果问题过于诡异,就要好好利用 Google 或者必应这些搜索引擎,搜索你遇到的具体问题,通常情况下,基础性语法和逻辑问题还是比较容易解决的。


懂得想


上面步骤,依然没有解决我的问题怎么办?


耐心点,不要指望搜索几秒钟就能解决一个复杂问题。如果你第一次搜索没有结果(或者结果太多),也不要抛出一堆问题,这时要进行思考。


思考并不是发呆,要动起手来,通过搜索得到的信息,修改你代码中“可能有问题”的部分,观察它的输出结果,逐步定位问题产生原因;


或是通过修改从网山搜到的别人代码,研究运行情况,来了解别人是如何解决特定问题的。



懂得问


可我想破了脑袋还是不明白,救救我啊!


这点我放到最后来说,因为如何提出一个好问题至关重要。


除了学习群和论坛之外,有几个主要的问答网站: 

国内:段错误(https://segmentfault.com/ )

国外:爆栈网(https://stackoverflow.com/ )


在问问题前,请在这网站上再搜索一遍你的问题——毕竟新手容易遇到的问题,在这里可能早有人回答过了。



那么,当你排除以上一切,准备开始问时,该怎么组织自己的问题呢?这里有几点建议:


话不在多而在精


提供简练精确的信息非常重要。

第一,表现出你为简化问题付出了努力,可使你得到回答的机会增加; 

第二,简化问题使你有可能得到更有用的答案; 

第三,在你精炼自己问题的过程中,可能自己就找到了解决方法。


描述错误信息,不做猜测


向别人陈述你的猜测是没有用的(如果你的诊断理论真的那么有用,你还会向别人求助吗?)。所以,你只需要告诉他们问题的原始状态,而不是你的解释和理论,让他们来解释和诊断。


描述目标而不是过程


如果你想知道如何做某事,但在实现过程中卡住了,你需要在开头就表明你的目标,再陈述你遇到问题。



当你选择学习编程,你的业余时间都会被它所占据,随着学习曲线逐渐变陡,你感到枯燥、迷茫、自卑以及脑汁耗竭的痛苦。


这是非常正常的。许多人(包括我)在学习一门新技术时,都会遇到类似问题。对此,我个人的解决办法有:


1、找点乐子


当你看完基础语法,对继续往下挖掘感到枯燥时,别勉强自己,翻翻书本,找一些有趣的练习题练练手,或者编写、修改一些简单有趣的小项目,跟你朋友讲你学到的新内容,给自己找点成就感。


2、专注在当前的学习目标上


没有技术背景的人,学习编程容易被复杂的技术体系吓到,网上经常会出现“一定要读这本书”、“最好先有 XX 基础再看这篇教程”之类的警告,结果常会出现这种情况:本来你只打算学编写网页 ,结果却开始苦读《精通正则表达式》。


别担心,你无需掌握所有分支,很多时候,你只要知道在需要某个知识点时,能从这类教程中找到对应用法即可。


3、习惯无知


无论学习什么,往往越深入就觉得自己无知。这并不是坏事,它能让你保持谦虚,但千万不要被吓得不敢继续前进。


觉得写出来的代码就像一坨屎?正常,因为你看过的例子和学到的知识增进了你的眼界,但编程技能和思想需要在练习中成长,所以千万不要因此而自卑,继续尝试,相信自己。


4、注意休息


人的认知能力是会随着时间流逝而耗竭的,别逞能,站起来走动走动,呼吸一下新鲜空气吧!


欧剃

最后,祝各位新晋魔法师学习顺利,祝大家赚大钱~




欧剃的bonus

微信回复关键字【欧剃】

可以获得欧老师的独家学习资料



长按下面二维码,关注优达学城(Udacity)订阅号,

回复关键字【前端技能】,获取来自硅谷的前端学习指南;

回复关键字【tableau】,获取2017冠军教学pdf;

回复关键字【数据可视化】,获取2017冠军独家pdf!


快点扫我~


@所有人,点击阅读原文,立刻查看新一期的“深度学习”课程内容!