程序之路上的一些感悟

好久没有写东西了,转眼工作近7年了,趁着有激情,写一写这些年的工作感悟吧。

中心思想,还是围绕着如何走好程序之路,如何积累,如何提高,总结总结,少走弯路,站在前人的肩膀上,越走越远。

一项工作做的越久,就越能感受到工作的平凡。这话是什么意思呢,就是说,刚开始工作靠的是激情、速度,但越到后面,靠的越是方向、耐力。还在坚持的、剩下的人越来越少了。很多人上了年纪就转行了,剩下的人中,一部分也会因为成家了,有小孩了,很多心思和重心会放在孩子身上,追求工作和生活的平衡。所以也是“剩”者为王。就算是工作进取心较强的人,也会由于没有同龄的对手,只剩下自己和自己较劲了,所以,从主客观因素来看,工作是寂寞的,是平凡。

工作的越久,会发现技能、技巧的成分越少。刚毕业时,总能感受到某项新技术的震撼,特别牛。但久了会发现,真正牛逼的是深度,而不是某项技术。技术日新月异,XML之后又有JSON,Java之后又有grovvy, go, nodejs, swift,VMware之后又有docker。HTML5, Java8, Java9,等等。总之,新技术从来没停止过出现。如果只着眼于学习一种牛逼的技术,那么很可能会失望,等技术过气之后发现很无奈。相反,技术深度却永远不会过气,比如高并发架构,高可用,灾备,性能调优,等等,是每个技术都离开的话题。不同技术的差别,只不过不同场景的差别,简单来说就是适合干的事情不同,有牺牲性能提高可扩展性的,有牺牲性能提高开发速度的,但也有只注重性能的场景,根据业务需要,选择不同的技术,有条件可以做搭配,发挥各种技术的长处,扬长避短。

什么都会,其实就是什么也不会,精力被分摊了,或者说,如果你真有一样拿手的,你很难做到,也没必要做到什么都会。在差一个数量级的人的眼里才可能觉得有些人什么都会,其实不是的,人总要从自己身边的事情,工作需要,缘分,先接触到技术做起,而且先要有一门看家本领,所以掌握程度总会有较大差异。

其实就算是开发,也会有分化。有项目做的多的,客户需求,行业知识掌握的多的专家。有专攻通用技术框架,对时间复杂度、算法敏感的技术大牛。个人感觉,程序写多了,其实就是思维习惯的改变,越来越懂如何用程序将现实表达起来,也就是常说的业务建模。不管是行业专家,还是技术大牛,其实也有很多共性,就是持续学习。搞开发就像搞建筑,偏实践,动手能力。所以所谓的牛逼的技术,也许核心就是科研人员的一篇论文,懂实践的人用程序实现了。将精力花在自己擅长的环节,是一种聪明。

设计比编程重要,方向比设计重要,一切目的都是积累。如果谁能用技术将人类的智慧管理起来,每个人都干不同的事,最后大家又能无冲突的汇集起来,那人类就无敌了。其实编程没有难事,一切觉的难都是因为没有想明白,等想明白了也就不急着去做了,反而觉得浪费时间,想明白就是设计。然而技术之路能走多远,兴趣、身体健康状况、寿命长短、心态、正义等等都起决定作用,资源调配的合理才能走的远,有时有必要可以牺牲速度,这就是方向。最后看毕生成就的高度,或者技术的伟大程度就是看积累的总量,所以,哪怕一点点进步,但是坚实的,方向是向前的,都应该为自己庆贺!

洋洋洒洒,又写了这么多。也是最近1、2年来的所见、所思、所想。既然想走的远,总要迈出第一步。希望我的文字,能帮助到别人,值了。

对于偌大的局域网我能做点什么

我会接触到github做开源开发,习惯了用谷歌查阅英文资料。但是,回到没有vpn的家里,我发现什么都做不了。github打开停止在更新状态。clone自己的代码卡死在大一点的文件,无法谷歌想要的外文资料,去百度只能看到一个个csdn里面“急求大神源码在线等”之类的无头贴。

庆幸的是,我们正在涌现一批批好的,品质的博客,论坛,社区等文化类创业公司,如简书,小红书等。也有些蛮久的老创业公司了,如知乎,开源中国,豆瓣,cnblog,推酷等。从之前的精品化只存在小部分人群,发展到今成为大众需求了。

但这些还远远不够。我们没有github,没有stackoverflow,没有sourceforge,所以我们的学习速度是大打折扣的。以及最宝贵的分享精神,开源精神。这才是人类重大进步的基石,推进科技改变生活,迈向一个真的特别舒服美好的时代。

所以应该如何做?我觉得首先要慢下脚步来,淡定住不要慌,想想清楚自己究竟要什么,为什么急于求结果,是因为太穷急于改变命运吗?结果倒向了就能改变命运吗?不会的,只会降低了自己的格局,阻碍命运的改变。所以,要习惯静下心来,写一篇有头有尾的博客来分享知识,或者问问题的时候,能够很好的描述自己的问题细节以及自己努力后的理解程度,不仅仅是为了解决问题,而且真实乐观的记录了一个问题,将来自己过别人能够借鉴不走或少走弯路。套路,隔离,障碍越多,只能使得社会每个人都疲于跨越重复的障碍,是社会资源的极大浪费,是一种短视的局限性的行为。

因为原创,独一无二,所以再小,也极有价值。

关于ctblog更新SSL证书公告

之前使用的WoSign证书,由于公司原因不被谷歌等浏览器信任,因此更换使用阿里云嗯证书。

PS:前后均使用的免费SSL证书。

FYI, Rregarding WoSign free SSL certificate is no longer trusted by browsers like Chrome, etc. So I switch to Aliyun free SSL certicate. 

我是如何坚持地走着技术道路的

PS:经过一段时间的蛰伏,动荡,迎来了短期的心态的平静。趁热打铁,离梦想更进一步。

随想:写代码如同写诗,他是思想的结晶,寄托着你想表达的情感。

我想说,喜爱很容易,坚持不容易。你可能因为兴趣,喜欢上某一件事,你想去做它。但世上少有不需要坚持就能做好的事情,总会有瓶颈,让你感到付出和回报不成比例。或者你尽力了,但效果不理想,很多时候,这种时候的这种想法,会成为我们放弃坚持的理由。

辩证的去思考,容易做的事情,大家都容易,喜悦感来的快,但也走得快。难的东西,大家都难,喜悦感来的慢,来的艰难,来的痛苦,但到来的时候,喜悦更强烈,更喜悦。想想高考,当年是如何挑灯夜战的,是如何坚持每天凌晨2点睡觉的,考完试是如何不悔的,拿到大学通知书是如何喜悦。你可能不够聪明,但更可能不够努力。压抑的越久,快乐到来时来的越强烈。

技术道路或多或少有相似的地方,走的人很多,坚持的人很少。我是如何坚持的?答案很简单,爱好。答案很虚伪,有人说了,好羡慕有人有这种爱好。这种爱好,不是天然的,是一种思辨,一种选择。眼观放长远,收入预期放低些,保持爱好的精神饱满体力放松,就像散步一样,想要走的远,千万不能跑,要健康的走。切记,不要急于求成。保持住这种状态,便会有源源不断的兴趣,源源不断的动力,一直坚持下去。

其实在选择之前,会问为什么,为什么走技术道路。技术是我进入社会的切入点,技术工作充满神秘,有一种敬畏。三观很正,具有常说的一些优点,比如工匠精神,钻研精神,和气,温柔。这样的人,建设出来的祖国,世界,也会充满温柔,关怀,充满爱。

我是本科毕业已经做了6年的技术,对事情初具自己的想法,看法。也具有一定独当一面的实力。其实,技术的职业道路可以说见仁见智,衡量的尺度很多种,不必追求唯一。始终有所收获即可,保持学习,保持成长,是最重要的。被面试过,也面试过别人,被鄙视过,也被抬举过,拒绝过别人。这些都没什么,最重要的是你自己对自己的看法。

其实一路走过来,也并不平坦。第一份工作在国内软件公司100强,写过C++,写过Java,也写过Flex,很杂,可以说公司需要你用什么,就学什么。好在日子过的扎实,项目经验极其丰富,短短4年做的项目、产品不下10个。调侃自己是:没待过互联网,但有些项目加班却加出了互联网的感觉,呵呵。1星期保持通宵状态,为了项目上线,我都挑了一根大梁,成功了。那次经历对我鼓励很大,启发也很大。当时很累,后来成为了宝贵的财富,值了!第二份工作也是现在,在一家刚进世界500强的外企。一切高大上了起来。因为前一段工作积累很扎实,所以第二份工作上手很快,适应很快。挑战都和技术无关了,反而是一些语言、工作方式上面的。研究的技术也前沿了许多,获取新知识的手段和渠道也宽了很多狠毒。夸张点说简直是做梦都会笑,呵呵。工作职能的安排上,也专注了很多,专业了很多,基本上只需要研究专属领域的技术了,不会再有像之前那样大的跨度了。目前一直专注在Java、云方面的技术了。

回头看来,只有坚持着,才会不断收割之前老天欠你的财富,只有眼光放长远,你才能走的更远。像我的经历的坎坷体现在,毕业错过了某大公司,刚毕业做的东西太杂哪一样都时间不够去学好,好不容易精通了Flex,Flex却死了。曾几何时也一度羡慕过混着互联网的同学,感觉身上个个带着光环。保持学习,不放弃,你会了,这事就成了。后来,又精通回去了Java。其实回顾以往工作中,有80%以上知识或技能是自学的,知识还好,其实最重要的是,养成了快速学习的习惯。后来发现,学的快其实才是我的核心竞争力。

当有了一定基础之后,回过头来,再看世界,再看问题,眼光和着重点又不同了。我不再用某一种语言,或者技术去思考,比如Java,之前有一个阶段,我会认为掌握某一种框架是能力,框架能做的事情,我再去做。但今日又有不同,更多是对问题的一种抽象,定义。也是所谓的建模。宏观上,实体定义好,关系定义好,微观上,流程定义好,策略定义好,最后统一考量安全性,高可用性,维护下,扩展性等方面。因为Java是一种最方便实现的语言,它有完善的作用域类型,足以抽象表达出各种业务场景。配合框架实现狠多基础架构的工作,你只需要定义好架构,接口,只需要实现业务逻辑就好。基础框架越完备,业务逻辑就可以越纯粹。

技术一直在发展,推陈出新,比如,时至今日,又热起来的微服务,使用Docker+Spring Boot去实现Java语言的系统重构,相应基础架构管理的Zookeeper+Kafka等技术。所以,仍然要跟上脚步,保持学习。

如果说重复是程序员的魔咒,那么只有不断学习,不断进步,才能始终保持做不同的事,以传帮带的精神,也不断有新人接过你用已掌握的旧的知识做的重复的事情,对于新人也是新的知识,也是新的挑战,这样就是一个健康的生态环境。

最后,再回归主题,说我是如何坚持地走着技术道路的。我想,就是用一种愉快的开放的心态吧,想着要人别人快乐,这样别人最后也会让你快乐。对未知的世界保持好奇,新鲜。保持学习,保持进步。以这样的一种方式去“爱好”。就像写这篇blog的出发点一样,把一种正能量的心态,成果,经验知识分享给更多人。