日課書

编程100小时挑战

100小时编程挑战——半程感想

十多天前,重看了Meditic的一篇文章,野兽派游戏,颇有感触。大意是,人从本质上看,是一种野兽,其实不需要太多的东西,能维持温饱,生存下去,就已经很成功了。因此在降低需求后,你就可以大体没有后顾之忧的去追求成就感。这种个成就感就是选一项事业,不断的去实践,为自己设立关卡,去想办法突破,随之而来的成就感会带你获得更多。

看完这篇文章,觉得自己应该静下心来真正去掌握一门技能,先不想太多,立马动手实践。当天下午,就写了一篇文章,说要在20多天能完成编程100小时的挑战。时间过得很快,浑浑噩噩而的度日和尽力做事都会有这样的感觉,不过后者让你更安心些。11天过去了,里最后的截止日期过了一半,累计的编程时间也达到了50小时。在这里,为自己的前半程做个梳理和总结,希望有助于自己完成挑战,真正提高编程能力,也希望能把好习惯持续下去,做出作品来。

那么50小时内我做了什么呢?

  • 基本上浏览了Flask文档基础使用部分的内容。
  • 过了《Flask Web开发》一书的第一部分。
  • 实现了Flask文档的教学案例。
  • 学习了Flask源码里的minitwit案例。
  • 仿照minitwit制作了miniweibo并在heroku上线。
  • 学习了SQLite的基本用法
  • 学习了flask的三个插件:Bootstrap,WTForms,SQLAlchemy
  • 学习了较大程序的结构,并应用到自己的博客开发上。

现在达到的水平是,了解Web程序的大体创建流程。能完成基本的,程序功能设计,模型、控制器、模板实现,部署上线。在这个过程中,基本都会自己敲代码,把功能跑一下,同时建立了定位问题并尝试解决的习惯。

这11天50小时中,基本安工作日8小时要求自己,期间有4天是周末。大体感觉每天完成8小时纯学习是难度很高的。因为会有很多生活琐事干扰,同时注意力持续时间也是有限的。学习实践中,也有很多问题会拖慢进度,影响情绪,所以从大局上把握自己的进度调整情绪,是很重要的能力。

在学习的过程中实在不能理解的问题就记下来,大概率后面会再次换个角度碰到,极有可能这时你已经掌握足够的知识,可以理解了。很多时候学不下去,或者觉得只会机械的敲示例代码,这时不妨打开一个文档,为学习的内容写一个CheatSheet边学边总结,帮助自己进入学习状态,提高理解的同时也方便后续查阅。

任何技能的习得都是一个积累的过程,不可能一蹴而就。每天花时间去看一些新概念,敲几段范例代码,看看相关文章。短短10天已有体验到积累的妙处,经年累月,能掌握的量级肯定是惊人的。

编程是一种工具,你学会了编程也仅仅是多掌握了一种技能。你终究需要使用这种技能,去解决问题才行。所以首要的是发现问题、提出方案、给出实现的能力。编程只是其中的一个环节,要去观察周边世界,找到待解决的问题,否则编程这项技能没法实践,没法发挥作用,很快就会被你淡忘。

通过10多天的亲自体验,我发现养成一项习惯是容易的,但是能不能坚持,就看这项习惯对你来说多有用。这种有用是对你的生活产生了明显的效果。健身能坚持下去,是你的身材明显变好了、精力更加充沛,让你有自信,自然而然坚持下去。阅读能坚持下去,是它给你灵感的启发,在独自的阅读时体验到和作者沟通的愉悦感,自然而然就读了下来。对于编程,这个挑战才进行到一半,愿自己通过每日计划总结的方式推进自己完成,更重要的是在完成计划后,利用它来解决实际的问题,把编程的习惯保持下去。

时间是不公平的,你的一天多少时间是有目的性的,又有多少时间是随意的任其流逝呢?永远问自己什么事情是重要的,花更多的精力去实践它,不要浪费时间到无用的地方。或者说,要把生命浪费在美好的事情上。这就是100小时编程挑战在到达一半时,我最深刻的体会。

我们总是热血的提出短期计划,但是实现过后呢?我们都习惯在均匀流逝的时间里,庆祝某些节点。但远看,每个日子只要尽力充实它,就都值得庆祝。

愿我们都能,耐心积累。愿我们都能,把生命浪费在美好的事情上。