现在,我坚持做开源项目,从无所下手到给开源社区做贡献需要不屑的努力和思考。作为前端工程师,选择的方向有很多,可以从优化体验入手,不经意之间可能就会诞生不错的项目。现在,看到自己的小项目得到大家的认可和喜爱,内心多了一份责任感。
忘我我不知道究竟什么状态才算忘我,或许我也没有经历过。忘我不是不吃不喝,而是对工作的热爱,比如问题不解决就辗转难眠。程序员被认为是远离灯红酒绿的工作狂,大多数时候都与孤独为伴,从前年开始,我变得特别宅,几乎放弃了社交和娱乐活动。
之前做开源项目的时候曾有过一段时间的疯狂。因业务繁重,每晚差不多十点到家,为了能更快的完成项目的第一版,回家之后还要继续工作,凌晨一两点睡觉成为常态,那段时间真的是有点麻木,筋疲力尽。其实做设计的时候也很疯狂,那也是被逼无奈,但是最终并没有换回自己应得的一切。
很多时候我不知道这样做会换回什么,可能依然是一无所有,但是有所坚持总比无所事事要好一些。正如罗曼·罗兰说过的,“生活最大的烦恼不是工作,而是无聊”。
冷静如果问一个面试官最看重应聘者的哪一方面,我想一定是解决问题的能力。
解决问题需要一种心境,沉着冷静是解决问题的前提。我发现很多人在遇到问题时,立刻就在 QQ 群或者论坛提问,其实都是一些比较基础的问题,这不是一个好习惯。技术人员必须学会独立思考,毕竟大多数情况下只有自己可以拯救自己。不管遇到多难的问题,首先要冷静,然后慢慢分析问题的原因。说一些我常用的解决问题的方法。
一、睡前思考。 躺在床上闭上双眼,回顾一遍遇到的问题,非常管用。记得上初中那会儿,我喜欢在睡觉之前或者上学的路上解几何题,有趣的是,往往都能得到答案。刚工作时,我还有个怪癖,喜欢在解决问题之后大吼一声甚至手舞足蹈,想要释放一种压力。所以每次遇到问题,我总是告诉自己,明天这个时候我就会大吼一声,真是有点好笑。
二、学会放松。 说一件自豪的事情,大学期间,我几乎玩遍了塞班手游,总结出很多道理,其中之一是,任何难闯的关卡在休息一晚之后都可以轻松完成,技术问题往往也是如此。
以上说的都是比较虚的方法,实在点的可以浏览 stack overflow,翻一翻 GitHub issues。
关于这一话题的故事有很多。千禧年之际,谷歌的核心系统(抓取网页然后构建“索引”)停止运转,一切都变得非常糟糕,几乎威胁到整个公司的命运。多名工程师奋战四天四夜依然无果。他们检查了所有代码的逻辑也没有发现 bug。第五天,Jeff 和 Sanjay 开始怀疑问题可能不在于逻辑,而存在于物理层面。最终,他们将索引文件转换成了二进制代码,用最原始的方式确认是机器的存储芯片被破坏了。Jeff 和 Sanjay 是谷歌唯二的高级技术专家。
追求作为技术人员必须有所追求,比如代码洁癖。林纳斯对不规范的代码总是直言不讳,“你的代码是一坨狗屎”。不知道从什么时候开始,我也有了一点强迫症,DOM 层级,CSS 属性顺序,变量命名,末尾分号,空行等等,差一点就感觉不舒服。
除此之外,不要把工作局限在需求之内,在前东家的时候,技术经理一直强调做点工作之外的事情,申请一些专利,虽然有些面子工程的意思,不过我赞成这种观点。作为前端工程师肯定不能只是写页面,而后端工程师也不应该只是做 CRUD 的工作。
很多人不知道应该追求什么,正如前文提到的,这要看你自己的定位与兴趣,毕竟作为程序员,爱好应该非常广泛。如果你把工作作为兴趣,我觉得也无可厚非,把工作做到极致也是一种追求。
后记如果现在回答文章开头的问题,我想只要认真做一件事情并坚持下去,或许就会成为引以为傲的资本,即使资本市场再寒冷,我们依然可以从容应对。
曹丕的《典论·论文》有句非常经典的论述:“盖文章经国之大业,不朽之盛事。年寿有时而尽,荣乐止乎其身。二者必至之常期,未若文章之无穷”。这是我记得很熟的一段话,主要是讲文章的功能性,文章是超越生死的载体,通过文章,作者可以声名远播,流芳百世。同样地,技术人员的著述以及开源项目就是实现自我价值最好的体现。