年初,自己终于鼓起勇气来了深圳,这一年经历过太多的不适应和焦虑,还好都熬过来了。最值得开心的是,找到了那个真心相爱的人,因此打算用文字记录下来。文章很多是写给自己的,如今多年过去了,我依旧会翻越以前的文章。只是后来发现能够在一起探讨技术,能够给大家一些指引,自己也能反思总结,我觉得乐此不疲。
工作上
在长沙,对未来的路,我真的不知道该怎么走,情绪上的低落让我无法专心去做一些事情。生活,其实很多东西还是很公平的,想过普通的生活就会遇到普通的挫折,想要过最好的生活一定会遇上最强的阻碍。如果深圳的生活我坚持不了,那我就应该退到原来的位置,过自己原本的生活。好在待长沙的那些年让自己忙起来了,写了一些文章讲了一些课。庆幸的是因为这些岁月,才让自己能力有了提升,心态有了变化。
以前在长沙关注更多的是源码和架构部分,一方面是因为没有多少 DAU ,还有一方面是自己认为写业务代码没什么技术含量。刚来公司就傻眼了,每天线上有那么多用户量,不同的机型不同的版本不同的环境。后来发现写业务代码一样可以有各种技巧,例如可以使用封装和抽象使得业务代码更具可扩展性,可以通过和产品多交流以便更好的理解和实现业务,日志记录好了问题定位效率可以提升 n 倍等等。
打个比方,比如我们页面在加载数据的时候,都会需要显示各种状态页面,以前是去网上找个能用就好,或者想到了某种解决方案就开干了,越写到后面发现越蛋疼。再比如某位用户手机上出现了一个偶现 Bug 投诉过来了。出现偶现 Bug 肯定是做了某些操作才引起,或许是清了缓存或者是另一个 App 唤醒的又或是后台数据有问题等等,如果你没记录好日志不知道用户事先都干了什么,无法断定是后台数据还是客服端的逻辑问题,会发现根本无从下手。因此写业务代码一样有技术含量,业务代码都写不好的程序员肯定无法成为技术大牛,但只把业务代码写好的程序员也还不能成为技术大牛。
每周五个工作日有六天都是焦虑的,和我一起进来的五个哥们,试用期只剩下了两个。很多公司的等级和晋升制度是非常完善的,即使有的时候你手头上没需求,也会想各种办法逼你输出。前几年跟大家分享的是不要去抱怨,但现在想说的是我们可以适当抱怨,但必须要有解决方案。当时进公司网络框架有三套,一套是阿里的一个哥们写的(含聊天业务),另一套是封装的 HttpClient (含广告和小游戏业务),还有一套是封装的是 okhttp 。开会有很多哥们就拿这个说事,说项目很多框架重复,老大当然有时会说你认为怎样做最好,或者说这个问题下周你来处理处理。其实项目最初开始动工的时候,我当时正在上大一,不像现在有那么多成熟的第三方库。我进项目组时,负责这个项目开发的总共也就六人,如果我们去重构,熟悉整个业务逻辑的老员工就三人,我们不妨思考一下分配几个人出来,几个工作日?测试投入几个?灰度几天上线?况且项目在不断迭代更新,每周三更新发一个版本,还要同步跟踪线上的 Bug ,当时很难抽出来时间。所以在抱怨的时候,我们要想想前因后果多方位思考。
感情上
年初,去参加同学婚礼,见到了大学年代那个最喜欢的人,毕业这些年始终无法跟其她人有交集,因为心里时时想念放不下。想让一个人进来,必须要让另一个人出去。大学那些年因为家境不好所以很自卑,因此也只能让她埋在心底。这些年不让自己闲下来,不让自己多想,拼命读书赚钱修身养性,为的是让自己变得更有能力,变得大度温和。
仍记得见她的第一天是大学开学第一次活动(融冰之旅),那一刻,灵魂仿佛被贯穿,背景开始模糊,岁月失色,画面定格。青春年少,我们都会遇到那么一个人,走到哪里眼里都会关注她,走到哪里心里总会想起她。人群中总会寻找她的身影,上课喜欢坐在她后面,喜欢静静的看着她。却又害怕和她坐一起,有时自卑,有时也不知所措。
毕业那天我记得很清楚,艳阳高照,帮她搬完行李,离开的那一刻百味成杂,脑袋空空,只是想着,以后天涯海角再难相见。我们都会拥有者各自的生活,却再也没有交织。尽管这辈子都很难再见,但似乎又无能为力。毕业后她去了腾讯(非程序员),而我选择留在了长沙。
天下并不是所有有情人都能终成眷属,所以相处的日子里,经常告诉自己要好好珍惜。《一禅小和尚》中师傅说过一句很有感触的话,大致的意思是:想要在一起三年五载嘛,或许可以强求,但若想要一辈子在一起,就得对她好点对她好点再对她好点,无需勉强。中秋节见了一次家长,这一年生活上的很多事情都是她在帮忙梳理。以前只知道待宿舍敲代码看书看视频,有时真的很压抑郁闷。如今生活中多了一个人,自然增了许多色彩。
希望天下有情人终成眷属,愿我们都能在最有能力的年纪,遇到可以相守一生的人。坚信所有的爱情故事总会有一个答案,重要的是,在最终答案到来之前,我们是否耐得住性子,守得稳初心。回报不一定在付出后立即出现,只要我们肯等一等勇于追求,生活的美好,总在我们不经意的时候,盛装莅临。
家庭上
今年总共就回了两趟家,一次是五一,一次是十一,出门在外才体会到什么是想念,可自己除了能更努力些,也不知道该怎么办。以前只是单纯的想等我有了能力,爸妈就不必再出去打工劳累了,可如今自己远离家乡,陪伴他们的日子却越来越少,也不知自己是对是错。
奶奶是平安夜走的,我急忙从深圳赶回家,可还是没能见上最后一面,本打算元旦回家看看她老人家,真想和以前一样每每回家都可以陪她聊聊天,现在才真正明白什么叫做时间不等人。记得以前奶奶老是开玩笑说,如果她病危了,问我会回去看她吗?每次我的回答都是一定能,如今未能见她老人家最后一面,成了我今生的一个遗憾。
听母亲说奶奶走的时候很安详,爷爷是我大三暑假时离开的,离开时也没什么痛苦。我们终将也会有离去的那一天,或许大家会认为我想法消极,但不管我们想或不想,愿意不愿意,死亡也终是生活的一个部分。就像加措老师说的那样,人生是只能出发一次的旅程,我们每个人其实一直都在路上。如果这一路上,我们只能携带两件行李,我希望是无畏与无执。
其他方面
当初因为喜欢与人分享,所以就去做了。如今不知不觉已讲两年多,也是时候该退了。但若有闲暇时间依旧会坚持写点文章录些视频,不过内容可能会比较散乱,像之前的《内涵段子》《自定义View》《系统架构》《NDK实战》讲的都是一些比较基础的内容。未来一年,打算重新入手 Android 源码细节(含NDK层),第三方开源库源码细节,性能优化,线程和线程池,ART 虚拟机,Gradle 脚本。两年的过程中有很多同学问过我不少问题,这里我挑一些心得作为解答。
有人认为想成为技术大牛最简单直接、快速
有效的方式是“拜技术大牛为师”,给你开小灶。 大牛很忙,不太可能单独给你开小灶,更不可能每天都给你开小灶;而且一个团队里面,如果大牛平时经常给你开小灶,难免会引起其他团队成员的疑惑,最多也只能给到一些建议。经常问那些书本或者 google 能够很容易查到的知识,大牛们也会很不耐烦的。但如果是带着问题去请教或者探讨,这种情况下大牛们都是很乐意的。因为回答或者探讨问题无需太多的时间,更多的是靠经验和积累。还有不太可能每个团队都有技术大牛,只能说团队里面会有比你水平高的人,即使他每天给你开小灶,最终你也只能提升到他的水平。所以对于大部分人来说,要想成为技术大牛,首先还是要明白“主要靠自己”这个道理。适当的时候可以通过请教大牛或者和大牛探讨来提升自己,但大部分时间还是自己系统性、有针对性的提升。(来自阿里大神)
如果你年纪轻轻有机会挤进大公司,那就去大公司。就这几年的行业趋势来看,日子比较好过一些的应该会是大公司,尽管最近也爆出了一些大公司裁员的消息,但公司裁员是为了减轻负重,为了能让留下来的人走得更远,要是在小公司就不是裁员这么简单了,更别提补偿。且大公司周围的同事大都是精英,学习和遇到问题的机会自然就多些,就好比读书时你是去普高还是去重点高中?我刚来公司时,也迎来了一波裁员,只是自己侥幸留了下了,因此对于我们来说没有铁饭碗,也没有一个公司可以让我们干一辈子,所以多专注一些个人技术成长和心态提升,也不失为一种好办法。有很多人看着别人被裁了,自己心里慌的一匹,你慌又有什么用呢?慌个啥?思考过后继续干就是了。当然小公司也有小公司的好,我们跟着自己的心走就好。
当你觉得有压力或者太累的时候,说明你正走在上坡路,因为下坡路是可以走得很轻松的。每一步都会有一个新高度,目光所及每一处都有新风景。生活需要有不断向上的激情,心可以归于平静,但不能趋于死寂。只要我们能坚持走过去就会有进步,但没有人可以代我们走。跟我交流的大致分为两类,一类是通过自己的努力上了一个新的台阶,还有一类是让我下班回家给他写代码。
偌大的城市,相信谁都会有压力。但人长期处在压力的状态下,这些慢性的压力会影响我们的行为、心理和身体健康,容易导致心脏病、高胆固醇、抑郁症甚至有可能会直接导致生命危险。因此我们需要懂得及时调整改变,每个人生活状态不一样工作环境不一样,我的方法并不一定适合你,但可以作为参考。我喜欢做两件事情,一件是看书和电影,另一件是练习正念。如《阿甘正传》我已记不清看了多少遍,对于亲情、爱情和事业,相信每个人每次看都会有不一样的感悟。练习正念,可以帮助我活在当下,既不懊悔过去,也不忧虑未来。可以感觉到生活中很多细微的变化,察觉到身体的健康状态。可以让我们头脑保持清醒,一天都精力充沛。
平时我也关注了很多公众号,像 《今日头条技术团队》《腾讯 Bugly》《阿里百川》等等。我一般都是在坐地铁时候稍微看看,哪里有不懂的再根据这个点去查阅文章去扩散。比如我看到一个非常简单的知识点,dp,px,dip,dpi 之间的区别,为什么同样是 720*1280 分辨率,240dp在你的手机上占屏幕的一半,而在我的手机上面却超过半屏 ? 根据这些点会去扩散,比如系统源码是怎么决定控件宽高的,屏幕适配应该怎样做才能更好,每天利用一些碎片化的时间,弄懂一个知识点就差不多了。
当然公众号的知识都是比较散乱的,个人并不建议大家花太多的时间和精力。尤其是很多公众号发布的文章比较负面,前天阿里程序员被绿了,昨天是程序员逃离北上广,今天又是坎坷的讨薪之路,不知明天又是啥?当然这些都只是个人的观点,并不想针对谁。建议大家看书、google、看视频、看别人的博客都可以,但要注意一点是“系统化”,特别是一些基础性的东西,例如 ART 原理、设计模式、多线程并发,数据结构算法,Socket 等等,这些基础技术不能只通过 google 或者博客学习,我的做法一般是先完整的看完一本书全面的了解,然后再通过 google、视频、博客去有针对性的查找一些有疑问的地方,或者一些技巧。前几年自己看视频看得比较多,现在的自己是书籍资料博客相结合。
后面的内容讲不讲对于大家来说意义应该都不大了,之前的内容基础打牢了,知识体系建立起来了,相信再去学习其他高深的东西都不会太难。我想提醒大家的是身边很多人言语会影响我们的行动,随着年龄的增长压力和焦虑都会成倍。因此我们要明确知道自己想要什么,能勿忘初心。对于未来的路一定要有规划和方向,且不说五、十年那么长远,两、三年的计划还是要有的。比如我们前年学的是自定义 View ,去年计划学习 Android 源码以及第三方库源码,今年学习 NDK 和数据结构算法,明年的计划也有了轮廓,后年打算学学数学了解了解后台。那么我整个一年的闲暇时间都会围绕着这些去学习,也不至于没方向走偏。两年多的时间有的同学进了小米、京东、美团、腾讯比较知名的大型企业,而有的同学依旧在抱怨着天天加班没时间学习,说公司这也不好那也不行,路都是自己选的,也只能自己走。只要大家对未来有规划,并不断朝着那个对的方向走,坚持走下去,就一定会有所收获。
多花些时间和能让你提升或快乐的人在一起,不管我们犯了多少错或者进度有多慢,我们仍然比那些没有开始的人领先,一个人幸运的前提是我们有能力改变自己,至少今天我们还可以做些事情。很多东西是可以相互感染的,用别人良好的心态来改善自己,也不失为一种办法。我无法站在 “过来人” 的角度去说以后我们应该怎么做怎么行,但我们多去做些努力和尝试未尝不可。很多人一上来就叫我大神,但其实我深知自己的技术不够,只能说我比你行动得更早或多花了些时间而已,理所当然更加靠前一些。只要我们能静下心来沉淀,不管速度有多慢,比起那些还站在起跑线上的后来者都要领先。最后希望我们走到生命的哪一个阶段,知道自己想要什么,不迷失自我,勿忘初心,都喜欢那一段时光,完成那一阶段该完成的职责,顺生而行,不沉迷过去,不狂热地期待着未来。
我不能保证所写的所讲的一定都是对的,希望我们自己能做一些思考。但我能保证这些都是我最想要讲的,不复制、不黏贴,保证每一句话、每一行代码都经过认真的推敲、仔细的斟酌。每一篇文章,每一节视频的背后,希望都能看到自己对于技术、对于生活的态度。
我只是一个好为人师的程序员,这就是我现在纯粹人生的全部。