如何享受编程
作者:韩欣 来源:DATATOMD 2015/03/27 14:56:38
我或许够不上什么顶级程序员,但是我在编程时享受到了无穷的快乐。作为一个自学成才的黑客,编程一直是我的最爱,但是也不是没有心情低落不想碰代码的时候。这就促使我思考我享受编程的原因,我希望通过找出原因,从而能不断激励自己,保持这种积极状态,不断进步。
Kenpachi Sketch
为挑战而生
Byakuya Sketch
有很多原因导致我们一写软件就头大:
——需要全神贯注。
——特别复杂。
——快速高效的工作成果。
——无论项目难易程度,都需要具备大量知识。
这些年我在编程上明白了一件事,如果我所从事的工作不能让我感觉到一丁点挑战,那我很难激励自己去完成任务,工作的分分钟钟都像煎熬。
而我最享受的就是,搞定那些看似不可能的任务,比如构建软件,不仅时间上有紧急要求,而且在精力上还需要付出极大的努力。当然特殊情况除外,比如有的时候因为实际情况需要不得不写一个简单的软件。但是在大多数情况下,只有当我面对具有挑战性的项目时,我的技能才会苏醒。
战斗的心态
Kenpachi Alternate Sketch
我们应对挑战的方式决定了我们工作的质量。如果对一个项目掉以轻心,随随便便捣鼓了一下就算完工了,那你的软件质量肯定不会过关。在过去的两年时间里,在那些不断修改软件的日子里,我悟了:我们需要把自己当成武士,用一种战斗的心态,我们的工作才能高效高质量完成。下面我具体讲一下怎么做。
实现战士心态的第一步是要明白,一旦接受了某个任务,那么你必须完成——就像古代的军令状,不成功便成仁——千万不要有“试试看”的心理。可能你会问,如果每个都要完成,我就是死一百次也不够啊?是的,这就需要你在接受任务的时候,能够有所选择,不要什么阿猫阿狗的活都接下来。
如果一个项目你一看就特中意,即使为它累死也甘愿,那么请毫不犹豫地选择它,而如果不是,那么它就不值得你花费时间和精力。
实现战士心态的第二步就是和你的代码战斗。如果你一直不能解决某个问题,那么就找到一个切入点并且坚持下来,比如对上一个解决不了的难缠对手,你上去砍上一刀,然后一直砍这个地方,一直砍一直砍,决不半途而废,这样无论问题有多复杂,对手有多强悍,通过坚持和不惜一切的决心,我们终能胜利。
在完成那个不可能的任务之后,一种澎湃的满足感和成就感汹涌而来,这或许就是传说中工作里的“高潮”吧。
共享
Kneeling Samurai Sketch
开源是开发软件中一个非常强大的激励因素。在开源环境里写代码有着难以置信的快感。
关于开源的优点:
——提高代码品质。
——鼓励协作。
——从错误中学习从而成长。
——建立自己的名望,和优秀的程序员做朋友。
不过千万不能忘记这个最明显的好处——我在网上发布软件之后,我自己本身就有一个巨大的进步。于我而言,我通过代码解决问题之后,心中那得意劲就先不提了哈,并且经过这次练手之后,以后再碰到这类问题,我就再也不怕不怕了。
发布我的成果,让我感觉我为这个难题画上了句号,世界因为我的奉献而璀璨,当然有没有人需要我的成果就被我完全忽略了。
不要墨守成规
Kenpachi Back Sketch
软件行业是很残酷的——每个人都很聪明,每个人都特别自信。但是这也是导致我们不能推陈出新的罪魁祸首。
常常听到身边的人说你的这种技术烂或者这种技术早就应该被替换了,这个时候我们往往会很轻易就附和他们所说的,但是有的时候事实却并不是这样的。
编程应该是一件很美好的事情,每个人的经验、能力等等都不一样,所以别人的情况不一定适合你。不要老是做你的朋友、同事的“应声虫”,人云亦云,没有主见——要积极主动去做你自己感兴趣的事情。
打个比方,如果仅仅是因为别人告诉你,你不适合云计算,那你就真的不涉及这个领域了,那你就真的狗熊掉进洞里——蠢到底了。
不要去管大家的想法是怎么样的——要推陈出新,不可墨守成规。自己的路自己走。喜欢什么就去尝试,不要因为人言而禁锢自己,另外还有牢记,即使遇到挫折也要保持乐观。
阅读
Ichigo Hollow Sketch
绝对不可低估阅读的力量。如果你有时间,请务必多多阅读那些科技类的书籍。
阅读这些书籍不光可以增长你的领域知识,最重要的是,你可以认识到那些优秀的程序员。如果你想要得到以下正能量,那么没有什么能比阅读更好:
——有用的技术信息。
——作者的心态。
——作者的想法,成果和原因。
——最佳做法。
——用多种途径去完成同一个效果(很多书都有这方面内容)。
——更好的理解我们最常用的技术,以及如何更好的使用这个技术。
我很奇怪,为什么我的同事和朋友都不怎么花时间去看这类书籍,要知道,这真的是个能提升自己的相当好的工具和方法。
对我而言,编程的乐趣很大一部分是来源于学习新的事物,而学习新事物最好的方法之一就是阅读,增长自己的知识面。
记忆
Ichigo Hollow Screaming
写软件首先要打好腹稿,需要我们及时分析想法和运行之后的结果。
要谨记,你在做什么,以及你这么做的原因。要把你的宏伟目标印在脑子里,这样你才能时刻充满动力,真正享受编程。但是,日复一日的完成细节工作,很容易让我们遗忘了我们的初衷是什么。这个时候,如果我们能回头看,看看我们已有的成就,以此为荣的同时,你怎么还会不喜欢编程呢?
无论多么沮丧,心情低落,或者恨死了搞不定的代码——如果你想让自己开心起来的话——想想你为什么要写代码。当我感觉“不会爱了的时候”。我就想想我的目标,一般要不了几分钟,我的活力就回来了,然后继续“不畏艰辛、披荆斩棘”。
和其他程序员交流
Renji Sketch
人生有高峰也会有低谷,其中一个能不断激励和鞭策自己的绝佳方法就是,把自己放入到同水平的程序员中。