作为一个二手黑客,我要努力成为五流诗人
最近突然想到这个题目, 主要原因是我的代码量在减少,并不是因为我工作清闲,而是因为我懒。
刚毕业的时候我努力写代码, 一般早上整理好业务需要什么,然后花一点儿时间整理需要什么,最后写出代码,因为业务复杂度不会太高,按照我自己直接划分的模块, 最后基本上每天都有小模块完成,最后就是花了三个月时间, 把一个系统完完整整搭建起来, 还把很多复杂的业务逻辑实现,而且在后面的时间里,这个代码比较可靠, 几乎很少出问题,出了问题也是能最小调整, 在十几分钟内就完全解决掉,因为我一个人开发,所以我能快速的测试上线。
那个时候我写代码就是为了把业务串起来, 也没想为什么要这么干。
后来这个系统运行的还算可以, 至少有新的业务方式我能很快的解决掉。这个时候更加复杂的来了, 就是需要添加很多支持, 方便更多元化管理,这个时候因为会频繁回到原来写的一些封装地还算不错的代码里面重复操作,使得我发现自己以前写的挺烂, 然后就开始修改,为了不让难看的东西暴露出来并且让以前运行的很好的东西能继续工作下去,我最后用封装的方式把难看的代码,并且从idk6 升到7 最后定型在8, 这个时候很多处理逻辑就换成了lambda, 看起来清晰了很多, 难看的东西也在那些深的地方看不到。
那个时候我写代码是为了让自己的代码足够炫酷,不至于隔了几天再看代码就想吐, 虽然现在我又不满足了。
后来啊后来, 我就去学习数据科学了, 我从pyspark入手,学习了很多机器学习算法掉包的方法, 虽然没有什么成果, 但是有一点是可以肯定的, 那就是我必须了解运行机制。
然后我就学会了很多概率统计, 贝叶斯方法的基本理论,让我有底气去了解为什么模型能运行, 为什么它运行地不怎么好。
突然我又要开发, 这个时候我虽然每次能在很快的时间解决问题, 但是我总觉得解决的不够好, 因为我想知道为什么开源的大佬要这么封装, 为什么这样临时解决问题的办法无法满足我的代码欲望。在这样的情况下, 我才开始在项目中使用之前学的一些设计模式, 然后在代码中看大佬是怎么做reflect,怎么做proxy的。这个时候我的代码效率偏低, 以为每次写完一个临时版本后,我都要去寻找其他解决办法, 有时候因为看到升级包后,出现deprecated标示,好要去用新的接口重现这里的方法。
在学习数据科学与开发的时候,我突然想到学习一门新的编程语言, 不像C时候有人带领, 不像java必须要去开发而且现成的东西很多, 也不想python一样, 太脚本化, 太方便去操作。 最后我选择了go,至少他也有tensorflow的接口。
在这个过程中, 我会遇到很多需要小脚本的地方, 虽然我用python可以在很短时间内完成, 但是我还是坚信要用go才能体会编程的魅力,而且当我写完后,在github上能下载下来编译运行, 真的很爽, 虽然我写的不怎么样,甚至shell或者python真的只需要几句话就行写出一个看起来很清晰的script。
现在,我每次遇到问题后都会想到n多种解决办法, 以及可能的情况,但是我还是会根据紧急情况看要不要先写个凑合版,然后慢慢研究怎么写一个我自己的漂亮版。
现在对于我来说, 写代码其实是一个实验过程, 我不关心语言到底是什么或者说怎么能实现,而是想到怎么更加好的实现。
我并不认为所有的业务都有这么高的紧张程度, 喜欢写代码和糊口写代码完全是不同的概念。
那么多企业都说自己是商业模式创新, 然后核心竞争力上都是一丢沉重地人肉堆叠, 我们的失败也是很彻底的。
写代码其实需要更高一些的想法, 成为闲鱼很简单,特别是确确实实当个码农, 按着需求, 按照自己会的方式实现一个CRUD其实不难。
融会贯通的应该是环境以及技术本质。