因为很酷很帅很性感啊!
人生苦短,我用Python!
**Python3!!!**课程中的所有代码,都请在Python3下完成。
对应的是Python2版本,虽然应用还有很多,虽然包有的兼容性好一些,但是请记住,作为初学者:你应该只用Python3。
其实Python3在2008年就发布了,为的是:It was designed to rectify fundamental design flaws in the language—the changes required could not be implemented while retaining full backwards compatibility with the 2.x series, which necessitated a new major version number.
人话翻译过来就是:Python2有一些不合理的地方,痛定思痛,我们发布了Python3,好消息是真的特别好用,坏消息是,Python2的代码好多都不能被Python3兼容呦。 Python 发展历史
注:因为课程后来增加了 Turtle 画图这一课,所以课程编号有顺延。
课程中提醒了3条 Python 编程时候的注意事项:
其实每种语言都有自己的一些习惯,随着使用的深入会逐渐接触,也会慢慢熟悉,掌握一门语言,是从写bug开始的。另外遇到各种花样报错也是编程中的日常,接下来将会扩展下关于软件思维的一点闲聊。
其实Udacity在新版本课程中(SVIP Part I:欢迎来到你的专属数据分析师纳米学位)中的一些说明非常到位,请没什么 Python 基础的同学一定要看看:
其中一些内容摘选扩展如下:
当软件出现了Bug,我们使用的抓虫方法:
微软的搜索引擎Bing与HackerRank联姻后,加入了实时代码编辑器功能,允许程序员编辑和执行代码示例,实时查看运行结果,不过这一功能需要使用Bing国际版进行搜索。必应的搜索引擎的实时代码编辑器可以作为Stackoverflow和Stackexchange等编程问答网站的精简替代。除了学习在某个语言中特定算法、代码是如何编写的,你还可以检查同样的方案是如何在其他编程语言中实现的(小遗憾Python2示例比较少,咱们课程以Python3为主)
搜索关键词的选择:
好的问题比完美的答案更重要。用几个关键词来精准描述你的问题,比“为什么我的Python安装失败”或者“我的程序为什么报错了”更有可能得到有用的结果。
尝试使用首次搜索时在网页上发现的关键词,使搜索引擎在后续搜索中得到更好的结果。
复制粘贴错误信息作为搜索关键词,这样会出现错误解释性信息和潜在原因。错误和异常中通常会包括错误相关的特定行号、变量名等信息,注意在搜索框中忽略这类特定信息。
添加范围限定的关键词,比如当你要搜索python相关的问题时,加上“python”这个关键词,可以缩小搜索范围,更容易得到有用的结果。
搜索引擎的高级技巧:
知易行难。在你掌握数据类型、运算符、控制流、函数等编程基础知识以后,也许仍然会在实际任务(比如Udacity的课程项目)面前感到无从下手。这是因为编程思维的养成不仅仅是编程语法的记忆,更重要的是解决问题的能力。我们建议你在剖析实际任务时,采用自顶向下的设计方法。
最后,在实践中应用编程思维解决问题时,初学者的心态十分重要。这里是一些额外建议,供你参考:
首先要有信心。
虽然可能你看了几个小时,找了一些材料,但却压根儿就没能把程序运行起来。但相信我,基本上所有程序员都是这么过来的,工作人员可以给你很多截图来印证这一点。
写代码,写更多的代码。
光看教程,编不出程序。跟着课程视频开始写,学着做练习、写小程序片段,然后写完整的项目,Learning by doing。
切勿过于钻牛角尖。
遇到编程问题优先自己寻找解决方式,但这并不代表你应该在一个小问题/小练习中耗费过多时间。5年经验的程序员也不可能对所有面试题都对答如流,所以如果你在一个小练习上花费超过1小时,请及时发出求助,并告诉助教你的思路。
为了不让自己定下的目标成为立下的flag,优达在此推荐一个目标设置方法:SMART原则,让你可以更好地设定合理目标。
SMART是五个英文单词的缩写:
具体性(S):
具体性是指要用明确而具体的语言清楚地说明要达成的行为标准,在涉及到次数的时候应该使用明确的数值,而不能泛泛地使用“多次”或“迅速”等通用性词汇。
在实际目标设置过程中,你可以通过回答六个W问题来帮助你将目标具体化:
可衡量性(M):
可衡量性是指目标的进度是可以跟踪的。如果一个目标的进度无法跟踪,或者说你也无法知道已经完成了多少工作,离最终实现还有多远,那这个目标就无法管理了。
怎样检查一个目标是不是可衡量的呢?你可以问自己下面的问题:
其实这又回到了第一个特征,如果你的目标具体,那你的目标一般来说也是可以衡量的。
可达成性(A):
目标必须是可以达成的,或者说是可以实现的。我们常说:可以制定跳起来“摘桃子”的目标,但不能制定跳起来“摘星星”的目标。这就要求我们制定出的目标通过相关人员的努力最终能够被实现,而不是超出我们的能力范围以外。例如下面这目标是一个具体并且可衡量的目标:
我一个月内要在国内建造十座千米高的金字塔。这个目标具有明确的时间和地点以及需要完成的任务,也可以用建成多少米来衡量其进度。但这个目标就目前的科技而言无法实现,因此它不具有可达成性。
但有时候,制定一些可达成的目标也没有意义:
我明年读完某本书的一页书。我们并不是为了制定目标而制定目标,制定目标是为了实现自己的理想,因此一个目标必须是自己经过大量的努力才能实现的,这样的目标才能推动我们向前。
相关性(R):
相关性指的是实现此目标与其他目标的关联情况。如果实现了这个目标但和其他目标关联不大,或者说完全没有关联,那么这个目标的设定就是不相关的,对于其他目标的发展可能没有帮助。
当然,这里说的相关性是指和自己个人发展方面如工作和学习上的相关性。如果在兴趣爱好上设置目标,则并不需要那么严谨地遵守相关性的要求。毕竟很多兴趣爱好和工作、学习是不相关的,但是这些内容也可以对个人的综合发展起到帮助。
时限性(T):
目标的时限性就是指目标的完成是有时间限制的。没有时间限制的目标没办法考核,或带来考核的不公平。我们应该避免使用诸如“以后有一天“或者”最终“等不确定的词汇。
例如有人定目标的时候会说:我放假了读三本书。这样的目标已经具有比较明确的时间,但时间还不够精确,很多同学往往会拖到假期结束的时候才开始看书。正确的目标应该是:我放假了要读完三本书,每天读五页。