前言linux
“吾日三省吾身”,《论语》如是说;“我是靠总结经验吃饭的”,毛主席如是说;“作人要像竹子同样,每攀登一步,就作一次小结”,名人亦如是说。可见,总结对于人生的成长有着多么重要的做用。我等凡人作不到曾子“日三省”,但一年总结一次仍是能够办到的。从去年的6月份开始正式写博客,到如今不知不觉已经一年了,正好6月又是一个大考月,也是对过去一个阶段的学业总结,这里就对过去一年写博客的经历作一些总结吧。git
1、为何要写博客程序员
至于我写博客的初衷,这和我工做经历和面试经历有关。这里我想简单回忆一下过去7年的程序员生涯的,不知道读者您是否有相似的经历呢?面试
一、过往的工做经历编程
在这里,我先简单说一下过去7年我作程序员的工做经历:设计模式
1)第一份工做,三年。前三年在一家创业公司作Android应用开发,参与的App是和游戏盒子,电视板,手机等硬件绑定在一块儿的应用,后来负责咱们团队的那个老板说话作事太恶心,我愤然裸辞了。性能优化
2)第二份工做,一年。离职后,去了一家上市公司,团队从零开始开发一款应用,整个Android端由我一我的开发,一年以内在各个应用市场发布了多个版本,刚有了必定的用户后,因为所在的这个部门没有盈利,公司将咱们这个新组建的部门裁了,以前开发的App被废弃了。因此,工做一年,又失业了。架构
3)第三份工做,一年。后来我又去了另一家上市公司,公司作手机的,咱们团队负责作App,既绑定手机出售,同时也上架到一些主流的应用商店上。来这家公司一年时间里,先是公司股票连续跌停,创下A股连续跌停的吉利斯记录,很快,公司大老板卷款77亿人民币跑路了。接下来就是公司裁人,手机业务相关的几百人几乎所有裁掉了,也就是说,工做一年后,我又又得找工做了,并且以前参与的应用也再也不维护,又被废弃了。工具
4)第四份工做,一年多了,一直到如今。接着我又到了某兴旗下的手机公司某比亚科技有限公司作系统开发。刚到公司,碰到该兴被美国制裁,罚款14亿美圆的事件,公司耗费了很大精力和时间挺过这一关,可是伤了元气,咱们该比亚公司营业额大幅降低,几个月后(也就是如今了)又大裁人,所幸目前为止尚未被裁掉,但接下来会不会继续裁就很难说了,说不定,我又又又要失业了。post
这里又不是《中国好声音》导师选学生,“卖惨”有啥用? 说的这些经历,和为何写博客能有什么关系呢?
固然有了,并且有很大的关系。由于我老是忽然失业,忽然又要找工做,但是每当我面试的时候,我根本无法拿本身像样的做品给面试官去看。前面也说了,要么App和硬件绑定,没法装在本身手机里面给面试官演示;要么就是整个业务团队被裁,App随之被废弃掉了;就算勉强能拿给面试官看,开发才一年的应用,又能牛逼到哪去,能有多大的竞争力呢?我作了将近7年的Android程序员了,每当回忆起个人职业生涯,真的是苍白无力。古人常说,“人过留名,雁过留声”,拿不出任务做品的我,常常坐卧不安,就算要跟别人吹牛,都没底气。因此我以为应该作点什么,让本身的职业生涯,留下一些痕迹。
二、过往的面试经历
每次失业后,都有一到两个月的处处面试的经历。记得有一次,从那个工做了三年的创业公司出来后,我去某安科技去面试。面试官问了我一些问题,虽然这些问题我在工做中也有所接触,但以前我一直都是一个面向百度编程的程序员,问题理解不深刻,因此回答得不理想,天然而然,面试没有经过,并且该面试官面试中还不经意说了句“这都工做3年了......”。
两年后,我再次找工做时,在另一家公司面试,竟然又碰到了这个面试官,固然他确定对我没有印象,我却一眼就认出了他,由于他那句“这都工做3年了”。这一次他提的问题,有很多是上次面试中问过的,在上次面试以后的工做中,对那次提到的一些没回答上的问题刻意学习过,因此此次都能答出一二来。此次面试技术面试过了,接下来的HR面试时聊了不少,也聊得挺开心的,其实我自我感受仍是没什么问题的,但后来仍是没有录用我。我心有不甘就去问了这家公司的HR,固然她找了一些理由把我搪塞过去了。我后来回忆了这一次的面试,技术面试虽然过了,但应该是勉强过了而已,尽管当时我都回答出了一些问题,但都不够深刻,这一点我本身仍是有数的,并且面试的级别是高级,天然要求更高,当时还听到这位面试官说了一句“这都工做5年了”。
因此,根本缘由仍是我基础不扎实,面试效果不够好。巧合的不仅是碰到了之前面过个人面试官,还有这家公司。由于此次面试的前一年,我在这家公司的其余部门也面试过,只不过地点在附近的其它地方。那一次技术面是两我的同时面试的我,面了一个多小时后,让我留下来作一套题,而后回去等消息,也是没有下文了。我想应该也是技术面勉强经过的那种吧,公司在犹豫的时候,有了稍微强一点的竞争者后,就没我啥事了。
若是面试得很是满意,结果每每是很快就通知你入职了。曾经有一次面试状况很好,有公司当场就给我签了合同。还有一次,就是当前工做的某比亚公司,当时是下午去面试的,技术面是3我的一块儿面试的我,面试效果也很好,一面后立刻就二面,二面完了差很少下班时间了,到晚上7点不到,HR就直接通知我准备入职了,HR面试都免了,薪资也和我要求的差很少。推荐我去面试的猎头说,我当时是面试官标注为重点跟进的对象(这里有点扯远了,其实我就是想表达一下,我不是那么不堪的,哈哈哈~~~)。
我举上面的例子,其实就是说圈子其实很小,每次面试的基础知识,其实也就那些。这些年陆陆续续面试过不少次,从最近3年参与过的高级程序员岗位面试状况来看,面试官提的问题大多雷同,好比跨进程间通讯、MVC/MVP/MVVM架构、Handler机制、性能优化、View绘制流程、Android事件分发机制、自定义View、事件冲突、常见的设计模式等。遗憾的是,以往的工做当中对这些都没有深刻研究过,几乎都只是碰到问题后上网查一下,解决问题了就无论了。这有些客观和主观的因素,客观因素是,深圳的IT公司加班多,光是工做任务就须要加班来完成,同时常常项目紧急,几乎没有时间让你深刻去研究某个基础知识,并且常常不须要掌握太深的基础知识,也能解决通常的项目问题。
主观因素是,不知道从哪里下手,须要学到什么程度,致使没有那么强的驱动力去深刻学习。因此,这就致使面试中问的那些问题,工做中都遇到过,但就是只知皮毛,只知其一;不知其二,知识点零零散散,根本没法跟面试官解释清楚,一深刻问就跪,更没法成体系去掌握它们。
时间过得很快,一晃就是不少年过去了。而本身的职业生涯情况也让我一度很堪忧,固然,饿是饿不死的,但相比于相同工龄的程序员,真的没有什么优点可言。因此,本身也常常看技术书或者看看网上的文章学习,但这么泛泛地看效果不佳,当时看明白了,很快又还回去了。大神廖雪峰曾经说过,要想掌握好一项技能,就去写一本书。因此,我后来开始写博客了。
2、写博客的经历
这里,我想记录一下我第一次正儿八经认真写博客的经历。
来到某比亚后,这边软件流程比较规范,代码审核比以往的公司都严格。不少我之前认为一点问题都没有的代码,常常审核不过被打回来修改。此时,我深入地感觉到,我薄弱的基础,已经严重地制约着我。事实上,日常审核我代码的同事,可能比我小,工做经验也没有我丰富,可是他们负责某一块的功能很长时间了,常常深刻去研究这些基础知识,因此在他们面前我就是“虚胖”而已。虽然可能我在公司的级别比他们高,但真正讨论起某个知识点来,个人的确确是哑口无言,毫无“反击”之力。
直到有一次,如何使用HandlerThread,如何判断Handler回调方法所在线程问题等一些Handler相关的问题频繁出现后,我才发现我是懵逼的,本身用了这么多年的Handler,竟然有如此之多的盲点而不自知。尽管曾经在面试中常常碰到面试官问Handler机制相关的问题,但差很少就是提早背一下答案简单回答一下而已,平时根本没有真正去研究过,我甚至彻底没研究过sendMessage,sendEmptyMessage,post,postDelay这些方法的源码,它们的联系和区别。因此我一度很惭愧,用了这么多年的Handler,我竟然不过是个小学生水平,在同事面前掉价掉大了。
过后,我发誓,必定要好好研究一下Handler,因而我开始看源码,查资料,看博客,顿时豁然开朗了。终于搞明白了平时工做中遇到的Handler问题,也明白了曾经在面试中屡次难倒个人Handler机制是这么回事,后来碰到Handler的常见问题,我也就轻松了不少。同时我把Handler相关的知识点用文字描述一遍,整理成一篇博客,发到朋友圈获得了很多好评,这也算得上是我第一篇真正意义上的技术博客了。
万事开头难,真正用心写完第一篇博客后,就一发不可收拾了。在过去的一年里,写了40多篇,曾经面试中让我吃了很多苦头的问题,工做中常常碰到的问题,学习某一款工具后的记录等,都花很长的篇幅去梳理和总结,常常半个月到一个月才写完一篇。
3、写博客所受的益处
写博客最大的受益者是写博客的人,尽管我只写了一年的时间,但也明显感受到本身受益不小了。
1)学到了更多更深的知识。写博客并非彻底懂了才写,而是懂得大概后开始写,一边写一边发现不懂之处,而后弄懂这些不懂之处,再继续写,像滚雪球同样,至少我就是这么干的。
2)清除盲点。对于某一个知识点,我会查阅不少资料,阅读其余优质博客,搜索源码,看书上的描述等,与当前知识点相关的内容都会去涉猎。
3)创建本身的技术栈。做为一个程序员,须要明白本身这个阶段必需要掌握的技能和知识,而经过写博客可以直观地记录本身懂了什么,还有什么须要学习,而不是只记录在脑海里。
4)加深对知识的理解。“好记性不如烂笔头”,其实当咱们把一些已知的知识梳理一遍并写下来的时候,会对已知知识的记忆和理解会更深入。
5)刺激求知欲。当我在不断发现本身的不懂之处时,就特别想把它们搞明白。其实我之前对技术老是缺乏一种深刻探索的欲望,一切是只要能应付工做须要就够了。可是自从开始写博客后,就有一种想把整个程序世界都研究透的欲望,尽管这是不可能实现的,但我确实更爱研究技术了,常常是乐此不疲。
6)成就感爆棚。看着本身曾经困惑不已的知识点被一一攻破,心里的喜悦和成就感是不言而喻的。并且时不时周围会有同事和朋友对我写的博客赞许有加,这也让我信心满满,由于平时工做中写博客的人其实很少,能写得还不错的人就更少了(虽然我写得也未必很好,但绝对是走心了的,不是每个程序员都能坚持去写的)。
7)增长面试时的筹码。有些招聘信息中,若是常常写技术博客,会让面试者在简历中留下博客地址。无疑,技术博客写得好的话,对面试无疑是有很大好处的。这也是我努力写博客的动力之一。
8)利于作工做记录,提升工做效率。用博客来记录之前常常出现的问题,分析思路和解决问题,有助于再次碰到时轻松解决。并且对于经常使用的linux命令,git命令等,均可以作好记录,之后记忆不清晰了,随时能够打开博客开查看。
9)提高表达能力等。除了前面提到的对于技能和知识点的提高有很大帮助外,还能够培养本身的表述能力,由于把一个问题描述清楚让读者来阅读而且理解,这种技能也是须要磨练的。同时,写一篇高质量的博客,可能须要很长时间,无疑这也是在培养一我的的耐心和心性吧,会让人少一丝的浮躁。
总之,坚持写博客,好处多多。好处说了一大堆,固然这都是笔者这一年写博客的感悟,对于别人不必定也这样。多是笔者以前基础太薄弱了,因此才会感受到受益这么多吧,就好像一个饿得快死的人,几个白馒头给他,他都会以为是山珍海味同样。不过,我仍是但愿,在之后的写做中,仍然可以感觉到这些益处。
固然,写了一年博客,带来的也不必定都是积极的影响,负面的影响也是有的,好比,陪老婆玩耍的时间少了很多,哈哈哈~~~
4、一些疑惑
尽管写博客一年下来,本身受益颇多,可是相比与不少的博客专家和大神,我还只是个刚入门的新人而已。我不太清楚后面持续写下去会出现怎样的景象:对职业生涯的影响会有多大?怎样平衡写博客、工做和生活的时间?怎样让博客获得更多的关注?如何提高本身的写做技能?等等!并且编程是一门实践性很强的技能,写博客要转化成真正解决工做问题,也还有不少路要走吧。
结语
在写博客这条路上,我还刚刚开始,所谓“路漫漫其修远兮,吾将上下而求索”,我还有很长的一段路要走。所幸,本身还比较喜欢写,但愿本身能在IT这条道路上越走越顺吧。