3Wd4 Note

感触Top.1--开发能力的联想

  • 通过这几周的课程, 渐渐地发现看似繁琐的任务, 通过不断的分解, 变成一个个小问题, 在解决小问题的过程中, 遇到困难, 去源头寻找解决答案, 解决困难, 进入下一个小问题, 这样一步一步的做下来, 竟然在有限的知识下也能实现一些东西. 这对进入课程前的我来说, 说实话, 是没法想象自己能完成什么东西的. 即使之前自己会有一些想法, 自己要做一些工具来提高自己生产力, 但是对于究竟怎么做毫无概念, 仅仅局限在想象上.
  • 这次通过大妈讨论开发能力的联想, 突然意识这样的可能性, 就是现在的我们其实已经具备一定的开发能力, 但欠缺的是想法, 也就是如何去用我们的开发能力.
  • 为什么会这样呢?
    • 我觉得可能我总觉得自己对python世界了解的不够深, 总觉得自己是不是还不具备这样的独立开发能力, 总之, 就是觉得自己还很嫩啊, 我怎么会有能力去做那么cool的事啊. 进而, 禁锢了自己的联想能力.
  • 那么怎么去解放自己的联想能力呢? 我觉得可以这样,
    • 记录自己生活的痛点. 比如之前有跟小赖同学说过的一个想法, 就是类似于芝麻星卡片, 每天在卡片上记录自己今天的学习内容, 然后按着艾宾浩斯记忆曲线, 每天我都可以打开卡片看到今天我需要复习的内容, 他们可能包括三天前的, 七天前的, 15天前的, 30天前的...这样我就不用再特别麻烦的去用excel记录这些东西. 每次只需要输入当天的内容, 日后复习日程上自然就自动生成, 完全就是等待我那天去发牌嘛!
    • 分解痛点.针对痛点去思考, 如果我要用Python去解决这个痛点, 我应该把它划分成几部分, 每部分我大概可以用什么知识就可以解决. 比如, 通过学习我认识到, 如果想要卡片有复习功能, 关键点是学好Time相关的模块.
    • 安排开发日程.不试怎么知道自己做不来, 试了知道自己差在什么地方啊. 所以, 有想法,更重要的是去实现. 虽然我现在做的挺差的的, 但是我有信心.

感触Top2--Go Pythonic!

  • 这个也是大妈反复提及的东西, 随着课程的深入才慢慢意识到这个东西.
  • 去实现一个想法的路有很多很多, 但是总会有一个最优路径, 最优做不到, 次优总得可以吧.
  • 放到coding上就是, 要多思考如何让代码更简洁,更易读,更优雅.
  • 那么问题来了, 如何?
    • 不要闭门造车. 不比较永远不知道自己代码写的多烂. 更不会知道自己还有那么大进步空间. 这也是我开始写Learn From Others的原因.
    • 实现一个想法后, 回过头再想想, 有没有更优雅的实现方法?
    • 多看经典.比如下边要深入体会的Google Python Style Guide.
    • 目前想的就这么多, 随着自己coding的时间越来越长, 再慢慢补充.我觉得这是一个可以围绕很久的话题. 因为前方的坑还很多.

感触Top3--Google Python Style Guide

  • 之前会以为代码行数少, 应该就是简洁. 甚至还傻呵呵做过把代码各种合并的事情, 但是读了Style Guide之后, 翻看一下当时一顿合之后的代码,,,自己看了半天呐.
  • 尤其以下这个例子, 正是我犯的错误.
Yes:  for key in adict: ...     
      if key not in adict: ...  
      if obj in alist: ...  
      for line in afile: ...  
      for k, v in dict.iteritems(): ...
No:   for key in adict.keys(): ...
      if not adict.has_key(key): ...
      for line in afile.readlines(): ...
  • 自从大妈说过每行不要超过79个字符的那一刻就一直在严格执行. 顺便修改了自己的MATLAB程序.
  • 缩进4spaces. 之前调试代码, 总是说缩进不对, 我反复检查也没查出来, 一怒之下, 每行重新用spaces缩进, 发现有的行是tab缩进的, 这个可能跟从别处复制的代码有关系. 修改完后, 通了.
  • 以前comments都是 在后边加个# 然后写上一通, 后来看了一些别的呢代码, 才发现了用两个'''这种comment的方法. 包括在函数中, class中都会用这种方式去解释.
  • 要想代码的写的规范, 得熟读Style Guide才行.

更新

151108 编辑