我编程的热情来自哪里
有个小伙伴和我聊天,问我工作没热情怎么办,我想了一下,觉得我编程的热情可能来源于两个方面。
- 编程对我思维的影响
编程使得我的思维更加的有深度,遇到一个问题我经常会把它转换成编程领域的问题,用编程的一些理论和思想来解决,之后再反馈到现实问题。
我有一个朋友,也是我的前同事,他也很热爱编程,他对我的思维产生了很大影响,他对函数式、对于数学和编程的关系都有很深的理解,他能把一个编程的问题通过函数式的理论转换成数学的范畴学、集合论,变成一个公式,一些转换过程。
我从他那里感受到了更高层的抽象思维的美丽。也使得我的思维变得更有深度,遇到问题会进行层层的抽象,然后总能在某个层次找到答案,然后在层层反馈回去。
- 编程是一件有趣的事
我喜欢编程,但不是在公司敲各种业务代码,而是主动的去做一些东西。
比如我衣服特别多和乱,我就想做一个服装搭配平台,把我所有的衣服管理起来,我可以在手机上搭配,然后明天早上闹钟响的同时会把这条消息推送给我,通过短信、邮件、各种方式。
比如我会去做一个时光轴,把我记忆中的各种趣事记录在上面,拖动时光轴,仿佛就能看完我的一生。
我喜欢这这样的事情,我喜欢这样的编程,我喜欢这个交互的过程,乐此不疲。
编程的抽象思维和各种架构的思想使我的思维有深度,编程做出的各种东西,使我的生活更方便。我是主动的在编程,主动的在学习和工作,这就是我热情的来源。
想到这里,我给了那个朋友一个建议:去做一些你想做的东西吧,在做这个东西的过程中,你会有喜悦、有懊恼、有感悟、也有激动,像是一场冒险的旅程。不是为了工作,只是为了编程。
当然,编程也不只是乐趣,在公司里编程你可能要面对各种情况。
比如项目中的历史代码特别难维护,代码基本没法复用,每次都要从头开发;比如你预估的时间本来只是预期,结果变成了承诺,你想延期发现要解释太多的东西,你感到心很累;比如你发现身边的人没人和你讨论技术,你所喜欢的编程的思想、编程的乐趣仿佛都是自己的,别人只关心业务,只关心工程和开发进度;比如你为了改一个bug要通宵;比如你在接手一个完全没有文档的业务逻辑复杂的项目的时候想骂人。
这些都是一些不那么有乐趣的地方,这些东西可能会影响我们的心情,可能会影响我们对公司的感觉,可能会加班、可能会离职,但是,这些都不会影响我们对编程的热情。
我和我那个朋友态度是一样的:做正确的事情,等着被开除。而不是做hack的事情,快速的完成工作。我们都接受不了用很多不正确的方式去写一些难维护的代码,这不是我们的价值观。
他会推荐我MIT的计算机教材《计算机程序的构造和解释》,他会给我讲着redux-form设计的优雅,聊函数式的复合和推导。同时他也会和我抱怨公司的代码难以复用,抱怨需求不明确和反复修改。转身又去加班。
总之,我编程的热情,来自编程对我思维深度的影响,来自编程可以做一些有趣的事,虽然工作中会遇到很多问题,但是这并不重要。