Freud's Blog

Stay hungry, stay foolish. 少年辛苦终身事,莫向光阴惰寸功。

不要让你的习惯禁锢了你的思维

Posted on By Freud Kang

关于工作

以前一直以为自己精力旺盛,可以同时做好几件事情,而后来才发现,完全不是自己想的那样,每件事情都想着,就会每件事情都做不好,我不是Windows,不会宏观并行微观串行,所以我的态度就是,同一时间只做一件事情,并且专心做这一件事情,一件一件解决。

关于技术

工作中遇到不懂的问题是一个很常见的场景,而解决办法是什么,却五花八门,有人会直接张口问同事,有人会Baidu或者Google,有人会直接去查API,还有人会去看自己总结过的博客。每种方法基本上都是可以解决问题,而问题的关键是什么样的习惯会导致什么样的结果。

  • 直接问同事的:或许你觉得太简单了,问一下没什么大不了,但是绝大多数情况下的结果是,这个问题轻松解决了,但是下一次又遇到这个问题,又忘了,再问那个同事。周而复始。自己一直没什么沉淀。甚至假如哪一天那个同事离职了,这个问题就永远的变成了问题。

  • Baidu或者Google:这个已经上升了一个等级,明白了问题要靠自己解决,相信大多数程序猿都是比较高傲的,不喜欢问别人问题,习惯性的自己去解决的。但是Baidu和Google也是讲究技巧的。有的人可以找到,有的人找不到。在这里又把程序猿划分出了等级。而通常能解决问题的是一些大的技术社区,所以,没事还是多去StackOverflow,CSDN之类的地方逛逛,对自己还是比较有好处的。

  • 查API: 前端时间做EasyUI的东西,直接打开官网,看API的使用。这时候有个同事过来看到,聊起来说到底在网上怎么解决问题算是比较效率的。而在这个问题上我俩意见是统一的,查API。因为虽然Baidu或者Google解决了问题,但是只是解决了一个点的问题,而如果查API,获得的将是面的效应。在搜索问题和答案的过程中花了稍多的时间,得到的结果确是天壤之别。

  • 查自己的Blog: 编程看起来是动动手指头就可以搞定的工作,但归根结底还是脑力劳动。随着工作时间的增长,年龄的增长,记忆力会变差,并且技术这种东西,两个月不看,基本就跟你形同陌路了,所以平时养成随时记录学习到的知识点和遇到的问题及解决方案的好习惯是很有必要的。不需要太多时间,每次遇到,随手记录下,按照Agile的思维,每个月总结下前段时间的问题。可能短时间看不出会有什么成长。但是就在这潜移默化间,几年之后,差距是显而易见的。并且就我现在遇到的几个大牛而言, 几乎都有随时记录笔记写写技术心得的好习惯。向大牛们看齐。

关于习惯

结果驱动,不要因为过程多么完美沾沾自喜,结果才是衡量一件事情成功与否的唯一标准。而习惯,是慢慢培养的。前段时间做一个Maven迁移的工作。花了接近2天的时间,本地测试完全没有任何问题,可是提交上去之后,在别人那根本就跑起来。最后发现问题在于我测试的时候,没有清除本地缓存,导致本地一直是好用的,其他人那不可用。老徐说我是习惯不好,确实,有时候有点急功近利,而做技术,急不得,只能一步一个脚印的往前走。
最近一直熬夜,加班。导致记忆力完全不行,前脚说的话,后脚就忘了,以前一直想做一个EasyAgile的东西,个人任务管理工具,后来发现worktile.com跟我想的需求完全一模一样,只不过是个B/S架构,不过B/S就B/S把。坚持使用,每件事都记下来,划分优先级,一件一件解决。

关于思维

学习技术的思维是一根筋,不要总想着把什么东西做出来了就可以了,大家都是学技术的,随便找个差不多的人,给定足够的时间,大家都可以实现功能,而问题是谁实现的更好,在出了问题的时候谁能更快的定位和解决问题。做技术,多问问为什么这么做,这么做有什么好处,技术细节是怎么实现的,性能有没有问题,采用这种方案会导致什么问题,能不能符合业务需求,出现问题的解决方案或者替代方案是什么。比如Java中的匿名内部类,为什么会出现,是为了回调,在java中不允许像javascript那样在参数里传递方法,所以java的解决方案就是匿名内部类,表象上传入的是一个类,实际需要的只是那个重写方法,并且在JDK1.8中已经引入了C#中早就存在的Lambda表达式,看起来就更像是传入了一个方法。漫漫技术路,思维是既定的,但是这种思维的习惯需要时间来慢慢养成的。

关于项目

最近在做一个私活,后台的接口+维护系统。每当客户跟你聊的时候,你会发现,他口中,所有东西都是很简单的。比如维护系统,在客户嘴里就是一堆增删改查,当然,不可否认的是,维护系统大多数的操作确实是增删改查,但是也有很多的逻辑是很复杂的,并且这些很复杂的逻辑会占到30%甚至更多,会占用开发时间的60%。而当你把这些困难,或者换个词叫做成本告诉客户的时候,客户不会思考自己的需求,而是会直接怀疑你的能力,在他眼里,这种小事情都办不到,或者需要这么长时间,这么多钱,你是在骗钱么。而这时候,你就需要斟酌一下自己的词汇,用更多的口舌来说服对方,这个就是需要这么高的成本。最后结果只有一个就是你做,但前提有两种,第一种是客户妥协,第二种是自己妥协。这个时候,沟通其实比项目更累,
前段时间还跟一个要做商城网站的人聊需求,而对方是完全不懂技术的类型。他的想法是,如果你有一套系统,我可以买过来。即使这个是以前给别人做的。在这个地方,先撇开别人的老路再走还有没有意思的问题不谈,单从版权问题上来聊,就有很大的隐患。国内大部分人的想法是想要免费的,或者最少成本的拿到一套软件,因为在客户眼里,软件就是一个光盘,或者一个U盘,里面存了点代码,甚至,就是一个地址,让他下载了一堆他根本看不懂的文件。这东西怎么就能值几十甚至上百万。这是一个很可怕的想法。就像现在的大学生毕业设计一样,网上下载个Demo,Copy一下,随便改改,署上自己名字,搞定。没有人去关心,背后究竟是谁做的,怎么做的。没有人关心原作者的心血。这是个恶性循环。