做中学

Learning by doing 可以翻译为做中学,但是它还有个更好的翻译,叫做“知行合一”。也就是孔子经常说的“学而时习之”的那个“学”和“习”。

大二暑假的课程设计中,我故意选了个带安卓的东西(日程管理)。那次是我头一回上手安卓应用,而且还是第二次用java来做东西(之前第一次是写web书店)。我没有任何时间停下项目的进度去专门学习它的类库,最后只用了两个星期就做出来了,通过了90%的交叉测试用例。虽然没加样式表美化,没经过上线流程,但起码我得到了一个prototype。以后如果我再做安卓的东西,我有可借鉴的东西。虽然我知道github里那种东西一大堆,但还是自己做出来的比较顺手。

不仅仅是技术层面,理论性的东西也一样。ics最后一个lab,mini proxy ,大概是让我们用c语言写一个代理服务器。从这次lab我了解到了一些unix网络编程,和一些计算机网络的知识。之后,我也经常的接触有关网络的东西,比如node.js最开始要监听某个端口发来的请求,而且它五行就能写一个server的代码,我这个lab用c代码写要写100行。别人看这五行代码,就是五行代码,我却仿佛能通过它看到它后面调用的socket接口。

技术和知识都需要实践来巩固。我并不是忽视理论的学习,而是实践太重要了。它就像“一图胜千言”一样,有着事半功倍的效果。你若是问我计算机的文件系统或者boot是怎么回事,可能我把所有设计细节给你说出来甚至写在纸上,你都读不懂;但是你如果做一个yfs或者jos的lab,会马上秒懂。也难怪,os本来就是用一行一行代码写成的,你让我把代码翻译成自然语言给你说一遍,不是白费劲吗,而且还会出现二义性之类的偏差。

由于有着如此多的实践,读计算机的一大感觉就是累,铺天盖地的代码量,以及各种大作业(proj)小作业(hw)和lab的轮番轰炸。不过我觉得还是相当值得,除了写出来的项目足够在简历上充场子以外,还加深巩固了对知识的理解,总比上课听天书要好。

最近总是看到一些人说想做app但是这个不会那个不会。我想插一句,并不用挤出大段时间专门学习,边做边学即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,831评论 25 709
  • 美国华盛顿儿童博物馆的墙上写着这样一段话:“我听见了,就忘记了;我看见了,就记住了;我做了,就理解了。”可以说,这...
    样样养成计划阅读 469评论 0 0
  • 教育和学习,是我们终身关注的话题。无论是我们自己,还是面对下一代;无论是教师、教练等从事教学工作的人,还是其他需要...
    zhizhuwang阅读 1,234评论 0 1
  • 本周我们班科学区投放了新的区角材料——磁铁,在老师还没有介绍材料之前孩子们已经被这些材料吸引了,他们不停地摆...
    石丽0202阅读 821评论 0 2
  • 001人生成功的秘密就是:只做一件最重要的事。这就像多米诺骨牌效应,只要推倒第一块其他的问题也就会随之解决。骨牌虽...
    taiya1984阅读 200评论 0 0