2020317 开篇词

0.为什么做这件事情以及此刻的想法

  2020年疫情期间,了解了两本书,分别是黑客与画家和计算机程序构造与设计(SICP),实际上在这之前,我已经买了设计模式和重构,还有大部头的算法导论.不过因为各种原因买书如山倒,却都没怎么去看.但是,在特殊的时期,这两本书却吸引着我不断去翻阅和浏览,一遍又一遍,仔细揣摩那些富有寓意的词句.当然,这不是看一遍就可以放下的书,而是那种随着你进步,就越能更好的理解的书籍.

  这两本书都提出--编程语言只是一种媒介,用来表达怎么做某件事情,类似画家的颜料,作家的文字,建筑师的石材.而编程过程就是一个设计和创造的过程.虽然,写了数年代码,但是从来没想过这件事情,在日常工作中就是接受需求,再完成需求,这是第一次让我对编程产生了一种全新的思考,一直都是编程是与机器交流,就是修改bug,在全新的视角下,编程实际上却是创造力的工具,通过它,可以更加强有力的来表达自己.所以,写代码是一个创造性的工作,还涉及到了美感.我一直认为代码实际就是逻辑,和美并没有多大的关系.这让我重新开始思考我的工作,富有启发性的书无疑是深刻的,通过思考,你才能够有所发现,从而最终有所增益.

  SCIP的开篇还提到软件设计的核心并不是算法,也不是编程语言,不是算法的分析和数学推理.而是控制代码复杂性的技术.我认为这是我所了解到的对于什么是编程的最清晰的陈述,固然那些都很重要,但是,后者才真正是核心的东西.这句话也定义了,如何来提升编程的能力,那就是提升对美感的培养以及掌握哪些控制复杂性的技术.

  实际上,书中这种洞见很多,最主要的是,书中例题循序渐进,对于个人的提升无疑是非常有帮助的.因而,我决定要把这本书认真过一遍.因为学习最好的途径就是选择一条路,然后坚持走下去.

  补充:

  1.LISP语言的看法

  通常网上把LISP语言传的神乎其神,""上帝语的言",其实,高手,随便什么语言都能玩的很厉害,当然,我承认语言各有自由的优势,不同人也有自己的偏好,但是预言真的不是本质的问题,而是实用工具的人,LISP也就是一门编程语言,喜欢就去学,不喜欢,还有800多种语言可以选择.

  2.是否一定有必要看SCIP,没有必要,我已经说了我的理由,这也许不是最好的路,但是,条条大道通罗马,实际上,根本不存在所谓最好的路,那只是理论上两点之间直线最短,如果有的话,那就是你院系并且可以坚持下去的路,你完全可以看别的书.学习没有捷径,不是说你用了所谓的神器,看了所谓神书,你就厉害了,核心在于你持续的投入部不断练习,时间会把那点差距完全抹平.最终就是你投入了多少时间,练习了多少.编程是实战,就在于不断去解决问题,每天不断地写代码,需要培养手感,只有这样才不会有生疏的感觉.

1.准备工作:

  1.1 环境配置.

    学习的时候找到这篇教程,手把手教操作:

      https://zhuanlan.zhihu.com/p/37056659

    这里放上这里放上DrRacket7.6有需要请自取:

       https://pan.baidu.com/s/1BZ-XQSVK5tjyyjbDjwBBCg,  提取码:t96h

  1.2 学习资源准备

    1. SICP的纸质书籍,需要电子档网上搜索,资源很多.

    2. SICP的视频教程(https://www.bilibili.com/video/av8515129),支持中文字幕

    3. ghithub找到一个大神做题的记录:

      https://github.com/timeconnection/sicp

  1.3 其它

    1.在github建立仓库SCIP,提交代码.

    2.在博客园写博客,记录学习心得.

3. 学习目标

  1.观念上:

     不断加深对于编程是一种媒介这种观点的认识和实践,同时致力于提升对于代码的品味,形成自己的风格.

  2.技术上:

     掌握常用的控制复杂性的技术,把书中的题目都代码敲一遍,扩展和思考对于控制复杂性的思想和技术和思考,并且尝试用应用,做出属于自己的项目,通过优化做出好的设计,毕竟这是一本充满洞见的书.

4.希望

  索罗说:"我到林子中去,是因为希望过想象中的生活,吸收生命的精髓".这门课当然不可能让我一下成为大牛,但是,却是我在实质性变强的路上至关重要的一环,我希望打通从输入到输出的闭环,学习知识,通过博客加深理解,通过实际编程来不变提升熟练度.当然,最重要的是,我开始逐渐成为那种可以指定合理目标,然后达成目标的人

posted @ 2020-03-17 22:52  AtlasS  阅读(134)  评论(0编辑  收藏  举报