前言

     
 “吾日三省吾身”,《论语》如是说;“我是靠总结经验吃饭的”,毛主席如是说;“做人要像竹子一样,每攀登一步,就做一次小结”,名人亦如是说。可见,总结对于人生的成长有着多么重要的作用。我等凡人做不到曾子“日三省”,但一年总结一次还是可以办到的。从去年的6月份开始正式写博客,到现在不知不觉已经一年了,正好6月又是一个大考月,也是对过去一个阶段的学业总结,这里就对过去一年写博客的经历做一些总结吧。

 

 

 

一、为什么要写博客

       至于我写博客的初衷,这和我工作经历和面试经历有关。这里我想简单回忆一下过去7年的程序员生涯的,不知道读者您是否有类似的经历呢?

 

  1、过往的工作经历

       在这里,我先简单说一下过去7年我做程序员的工作经历:

     
1)第一份工作,三年。前三年在一家创业公司做Android应用开发,参与的App是和游戏盒子,电视板,手机等硬件绑定在一起的应用,后来负责我们团队的那个老板说话做事太恶心,我愤然裸辞了。

     
2)第二份工作,一年。离职后,去了一家上市公司,团队从零开始开发一款应用,整个Android端由我一个人开发,一年之内在各个应用市场发布了多个版本,刚有了一定的用户后,由于所在的这个部门没有盈利,公司将我们这个新组建的部门裁了,之前开发的App被废弃了。所以,工作一年,又失业了。

     
3)第三份工作,一年。后来我又去了另外一家上市公司,公司做手机的,我们团队负责做App,既绑定手机出售,同时也上架到一些主流的应用商店上。来这家公司一年时间里,先是公司股票连续跌停,创下A股连续跌停的吉利斯记录,很快,公司大老板卷款77亿人民币跑路了。接下来就是公司裁员,手机业务相关的几百人几乎全部裁掉了,也就是说,工作一年后,我又又得找工作了,而且之前参与的应用也不再维护,又被废弃了。

     
4)第四份工作,一年多了,一直到现在。接着我又到了某兴旗下的手机公司某比亚科技有限公司做系统开发。刚到公司,碰到该兴被美国制裁,罚款14亿美元的事件,公司耗费了很大精力和时间挺过这一关,但是伤了元气,我们该比亚公司营业额大幅下降,几个月后(也就是现在了)又大裁员,所幸目前为止还没有被裁掉,但接下来会不会继续裁就很难说了,说不定,我又又又要失业了。

 

 

       这里又不是《中国好声音》导师选学生,“卖惨”有啥用? 说的这些经历,和为什么写博客能有什么关系呢?

     
 当然有了,而且有很大的关系。因为我总是突然失业,突然又要找工作,可是每当我面试的时候,我根本没法拿自己像样的作品给面试官去看。前面也说了,要么App和硬件绑定,无法装在自己手机里面给面试官演示;要么就是整个业务团队被裁,App随之被废弃掉了;就算勉强能拿给面试官看,开发才一年的应用,又能牛逼到哪去,能有多大的竞争力呢?我做了将近7年的Android程序员了,每当回忆起我的职业生涯,真的是苍白无力。古人常说,“人过留名,雁过留声”,拿不出任务作品的我,经常诚惶诚恐,就算要跟别人吹牛,都没底气。所以我觉得应该做点什么,让自己的职业生涯,留下一些痕迹。

 

 

  2、过往的面试经历

     
 每次失业后,都有一到两个月的到处面试的经历。记得有一次,从那个工作了三年的创业公司出来后,我去某安科技去面试。面试官问了我一些问题,虽然这些问题我在工作中也有所接触,但之前我一直都是一个面向百度编程的程序员,问题理解不深入,所以回答得不理想,自然而然,面试没有通过,而且该面试官面试中还不经意说了句“这都工作3年了......”。



     
 两年后,我再次找工作时,在另外一家公司面试,居然又碰到了这个面试官,当然他肯定对我没有印象,我却一眼就认出了他,因为他那句“这都工作3年了”。这一次他提的问题,有不少是上次面试中问过的,在上次面试之后的工作中,对那次提到的一些没回答上的问题刻意学习过,所以这次都能答出一二来。这次面试技术面试过了,接下来的HR面试时聊了很多,也聊得挺开心的,其实我自我感觉还是没什么问题的,但后来还是没有录用我。我心有不甘就去问了这家公司的HR,当然她找了一些理由把我搪塞过去了。我后来回忆了这一次的面试,技术面试虽然过了,但应该是勉强过了而已,尽管当时我都回答出了一些问题,但都不够深入,这一点我自己还是有数的,而且面试的级别是高级,自然要求更高,当时还听到这位面试官说了一句“这都工作5年了”。



     
 所以,根本原因还是我基础不扎实,面试效果不够好。巧合的不只是碰到了以前面过我的面试官,还有这家公司。因为这次面试的前一年,我在这家公司的其他部门也面试过,只不过地点在附近的其它地方。那一次技术面是两个人同时面试的我,面了一个多小时后,让我留下来做一套题,然后回去等消息,也是没有下文了。我想应该也是技术面勉强通过的那种吧,公司在犹豫的时候,有了稍微强一点的竞争者后,就没我啥事了。



 

     
 如果面试得非常满意,结果往往是很快就通知你入职了。曾经有一次面试情况很好,有公司当场就给我签了合同。还有一次,就是当前工作的某比亚公司,当时是下午去面试的,技术面是3个人一起面试的我,面试效果也很好,一面后马上就二面,二面完了差不多下班时间了,到晚上7点不到,HR就直接通知我准备入职了,HR面试都免了,薪资也和我要求的差不多。推荐我去面试的猎头说,我当时是面试官标注为重点跟进的对象(这里有点扯远了,其实我就是想表达一下,我不是那么不堪的,哈哈哈~~~)。

 

     
 我举上面的例子,其实就是说圈子其实很小,每次面试的基础知识,其实也就那些。这些年陆陆续续面试过很多次,从最近3年参与过的高级程序员岗位面试情况来看,面试官提的问题大多雷同,比如跨进程间通信、MVC/MVP/MVVM架构、Handler机制、性能优化、View绘制流程、Android事件分发机制、自定义View、事件冲突、常见的设计模式等。遗憾的是,以往的工作当中对这些都没有深入研究过,几乎都只是碰到问题后上网查一下,解决问题了就不管了。这有些客观和主观的因素,客观因素是,深圳的IT公司加班多,光是工作任务就需要加班来完成,同时经常项目紧急,几乎没有时间让你深入去研究某个基础知识,而且经常不需要掌握太深的基础知识,也能解决一般的项目问题。

 

 


主观因素是,不知道从哪里下手,需要学到什么程度,导致没有那么强的驱动力去深入学习。所以,这就导致面试中问的那些问题,工作中都遇到过,但就是只知皮毛,一知半解,知识点零零散散,根本无法跟面试官解释清楚,一深入问就跪,更无法成体系去掌握它们。

 

     
 时间过得很快,一晃就是很多年过去了。而自己的职业生涯状况也让我一度很堪忧,当然,饿是饿不死的,但相比于相同工龄的程序员,真的没有什么优势可言。所以,自己也经常看技术书或者看看网上的文章学习,但这么泛泛地看效果不佳,当时看明白了,很快又还回去了。大神廖雪峰曾经说过,要想掌握好一项技能,就去写一本书。所以,我后来开始写博客了。

 

 

二、写博客的经历

       这里,我想记录一下我第一次正儿八经认真写博客的经历。

     
 来到某比亚后,这边软件流程比较规范,代码审核比以往的公司都严格。很多我以前认为一点问题都没有的代码,经常审核不过被打回来修改。此时,我深刻地感受到,我薄弱的基础,已经严重地制约着我。事实上,平常审核我代码的同事,可能比我小,工作经验也没有我丰富,但是他们负责某一块的功能很长时间了,经常深入去研究这些基础知识,所以在他们面前我就是“虚胖”而已。虽然可能我在公司的级别比他们高,但真正讨论起某个知识点来,我的的确确是哑口无言,毫无“反击”之力。



     
 直到有一次,如何使用HandlerThread,如何判断Handler回调方法所在线程问题等一些Handler相关的问题频繁出现后,我才发现我是懵逼的,自己用了这么多年的Handler,居然有如此之多的盲点而不自知。尽管曾经在面试中经常碰到面试官问Handler机制相关的问题,但差不多就是提前背一下答案简单回答一下而已,平时根本没有真正去研究过,我甚至完全没研究过sendMessage,sendEmptyMessage,post,postDelay这些方法的源码,它们的联系和区别。所以我一度很惭愧,用了这么多年的Handler,我居然不过是个小学生水平,在同事面前掉价掉大了。



     
 事后,我发誓,一定要好好研究一下Handler,于是我开始看源码,查资料,看博客,顿时豁然开朗了。终于搞明白了平时工作中遇到的Handler问题,也明白了曾经在面试中多次难倒我的Handler机制是这么回事,后来碰到Handler的常见问题,我也就轻松了很多。同时我把Handler相关的知识点用文字描述一遍,整理成一篇博客,发到朋友圈得到了不少好评,这也算得上是我第一篇真正意义上的技术博客了。

     
 万事开头难,真正用心写完第一篇博客后,就一发不可收拾了。在过去的一年里,写了40多篇,曾经面试中让我吃了不少苦头的问题,工作中经常碰到的问题,学习某一款工具后的记录等,都花很长的篇幅去梳理和总结,经常半个月到一个月才写完一篇。

 

三、写博客所受的益处

       写博客最大的受益者是写博客的人,尽管我只写了一年的时间,但也明显感觉到自己受益不小了。



     
 1)学到了更多更深的知识。写博客并不是完全懂了才写,而是懂得大概后开始写,一边写一边发现不懂之处,然后弄懂这些不懂之处,再继续写,像滚雪球一样,至少我就是这么干的。

       2)清除盲点。对于某一个知识点,我会查阅很多资料,阅读其他优质博客,搜索源码,看书上的描述等,与当前知识点相关的内容都会去涉猎。

     
 3)建立自己的技术栈。作为一个程序员,需要明白自己这个阶段必须要掌握的技能和知识,而通过写博客能够直观地记录自己懂了什么,还有什么需要学习,而不是只记录在脑海里。

       4)加深对知识的理解。“好记性不如烂笔头”,其实当我们把一些已知的知识梳理一遍并写下来的时候,会对已知知识的记忆和理解会更深刻。

     
 5)刺激求知欲。当我在不断发现自己的不懂之处时,就特别想把它们搞明白。其实我以前对技术总是缺少一种深入探索的欲望,一切是只要能应付工作需要就够了。但是自从开始写博客后,就有一种想把整个程序世界都研究透的欲望,尽管这是不可能实现的,但我确实更爱研究技术了,经常是乐此不疲。

     
 6)成就感爆棚。看着自己曾经困惑不已的知识点被一一攻破,内心的喜悦和成就感是不言而喻的。而且时不时周围会有同事和朋友对我写的博客赞许有加,这也让我信心满满,因为平时工作中写博客的人其实不多,能写得还不错的人就更少了(虽然我写得也未必很好,但绝对是走心了的,不是每一个程序员都能坚持去写的)。

     
 7)增加面试时的筹码。有些招聘信息中,如果经常写技术博客,会让面试者在简历中留下博客地址。无疑,技术博客写得好的话,对面试无疑是有很大好处的。这也是我努力写博客的动力之一。

     
 8)利于做工作记录,提高工作效率。用博客来记录以前经常出现的问题,分析思路和解决问题,有助于再次碰到时轻松解决。而且对于常用的linux命令,git命令等,都可以做好记录,以后记忆不清晰了,随时可以打开博客开查看。

     
 9)提升表达能力等。除了前面提到的对于技能和知识点的提升有很大帮助外,还可以培养自己的表述能力,因为把一个问题描述清楚让读者来阅读并且理解,这种技能也是需要磨练的。同时,写一篇高质量的博客,可能需要很长时间,无疑这也是在培养一个人的耐心和心性吧,会让人少一丝的浮躁。

     
 总之,坚持写博客,好处多多。好处说了一大堆,当然这都是笔者这一年写博客的感悟,对于别人不一定也这样。可能是笔者之前基础太薄弱了,所以才会感觉到受益这么多吧,就好像一个饿得快死的人,几个白馒头给他,他都会觉得是山珍海味一样。不过,我还是希望,在以后的写作中,仍然能够感受到这些益处。

    当然,写了一年博客,带来的也不一定都是积极的影响,负面的影响也是有的,比如,陪老婆玩耍的时间少了不少,哈哈哈~~~

     

 

四、一些疑惑

     
 尽管写博客一年下来,自己受益颇多,但是相比与很多的博客专家和大神,我还只是个刚入门的新人而已。我不太清楚后面持续写下去会出现怎样的景象:对职业生涯的影响会有多大?怎样平衡写博客、工作和生活的时间?怎样让博客得到更多的关注?如何提升自己的写作技能?等等!而且编程是一门实践性很强的技能,写博客要转化成真正解决工作问题,也还有很多路要走吧。



 

结语

     
 在写博客这条路上,我还刚刚开始,所谓“路漫漫其修远兮,吾将上下而求索”,我还有很长的一段路要走。所幸,自己还比较喜欢写,希望自己能在IT这条道路上越走越顺吧。