编程与写作
我在软件算法设计与重构的过程中,脑海中会自然地形成一些想法用于改进已有方案。但其中总有那么一些成份并不完全清晰透彻,甚至难以言表。由此便造成了“心有余而力不足”、难以完全把控的无助感。
我的这种“模糊思想”一是源于基础理论掌握得不够扎实,以至在面对复杂实践时没有什么底气与信心。
二是已有代码在当初实现(bash out)得较为急迫与粗糙,给眼下的重构带来一定困难。对此,另一个看法是,目前正在开发的算法本身便是个复杂工程。而且由于其属于算法库而非解决具体问题的应用逻辑程序,需要在实现功能之外进一步考虑抽象性与通用性,所以基本上没有什么能够轻而易举完工的方案。对于这样的项目,良好的设计与管理无法将其转变为微不足道(trivial)的问题,只能将具体的实施过程变得可能(probable)、可操纵(manageable)、可控(controllable),让日子稍微好过一些。
此外,我在编码过程中写下的文档依旧不够详实。或者,尽管能够做到局部的详实,但在整体上处于零散的状态。
面对以上局面,坐以待毙肯定不行。唯一的办法只有持续阅读已略显陌生的代码,在Anki的辅助下用脑记忆,通过撰写工作日志并创建彼之间及其与数学笔记、测试报告、源代码的关联来用心体会,从而逐步积累感觉(sense),最终达到举重若轻的境地。这个方式如同写作前思路的揣摩酝酿,素材的收集整理,结构、句字的玩味推敲。看似未落笔写下一字,但却是在胸中逐步“成竹”的过程,是至关重要(linchpin)、必不可缺的。对于这样的“创作”,慢即是快。相反,用冰冷、机械的量化指标来评判其进度与成效是没有意义的。这只会令人心生沮丧、行事敷衍,无法汇集起深入宁静思考与周全精妙设计所需的强大心力,这包括坚韧(perseverance)、信心(confidence)、耐心(patience)、专注(focus)。