×

我作为程序员的2016年

96
MeloDev
2017.02.05 13:46* 字数 4470

当我面对着电脑决定写下这篇总结的时候,北京恰好下起了雪。

在北京这座匆匆忙忙的城市,难得能有这样一个周末,让我不再被时间追赶,仔仔细细思考到北京的这段时间发生的事,心里的起起伏伏,来争取写下一些值得自己回看的文字。

这是我第一次见到北京的雪,看着窗外车道上从东向西行驶的车,路灯的色调、远处商铺的霓虹灯,都像极了读书时在沈阳所见到的。

为什么还要提沈阳,可能是念旧,又或者是刚毕业半年没有从一个学生的身份真正转变过来。不去深究,既然想了干脆就好好回忆回忆。

三月份来北京投简历找工作,之后实习,一切总体上算是顺利,五月份回学校答辩。当我再背着笔记本电脑走在去图书馆路上的时候,心态变了特别多。当我知道马上就会离开这个生活四年的地方,以后也不会有任何充分的理由能让我不管带着怎样的面目来到这里,所以无论心底有着多少不解,有着多少怨恨,有着多少不甘,也都能烟消云散,这个地方对于我又变得珍贵了起来。

五月是沈阳最舒适的时候,冬天的雪已融化,太阳也不会像夏天那般照射得那么热烈,每天下午读一会书之后都会去篮球场看看,这条小路上有一排我叫不出名字的树,阳光照在上面拉出长长得树影,我就在树荫里插着兜走着,听着树叶发出沙沙的声音,那不是下课的时间,路上同学很少,我喜欢人少的时候,不嘈杂拥挤,加上心里温暖平静,所以真的觉得四年里,这个时候时间过得最慢,我也最满足惬意。

晚上在操场夜跑的学弟学妹们很多,聚在一起聊着最近在学校发生的琐事,聊门口哪家的外卖好吃,回想自己当时也是这样,对这里感觉一切新鲜,也会抬头看操场上的星空,定下一个个不切实际的目标然后低头就忘记了。刚才说到快餐,学校门口那家辣白菜炒饭好吃极了,在北京价格三倍也吃不到,哈哈哈,感觉突然好饿。

食堂二楼有一家档口我经常去吃,大姐每次都会多盛一些给我,半年之前还与我聊了聊考研和工作之间的选择,现在再去的时候祝愿我在北京一切顺利,真的热心善良的人。

跟班里和宿舍朋友们打球、玩游戏、聚会的频率明显变多了,大家心里都知道下个月就各自奔向新的旅程,不知道什么时候还能再相聚。这段时光好像一场宁静酣甜的梦,走在一条短短的街,微笑着与每一个朋友摆手道别,真的不希望任何人来叫醒我。可是时间跑得飞快,转眼我还是真真正正离开学校,毕业了。

既然是年终总结嘛,这次可以多写写技术之外的事情,好让愿意了解我的人多知道一点,哈哈。来到北京也算是人生地不熟,找一个住处成了当务之急,所以我选择住在自如,关于租房这件事,下文再多说几句,好让有相同需求困惑的朋友能心里有个数。

中介黑不黑?确实黑啊,我其实可以负责任的说,中介确实没有不黑的。看似房租便宜的中介,可能会找各种借口扣你的押金,多交物业费、或着下各种各样的套路让你栽进去。房租不便宜的中介,就是在卖自己的服务了。自如就算是花钱买省心的一个中介,总体上除了贵其实别的方面还可以。因为贵嘛所以我住的地方距离公司很远,上班差不多需要一个小时。出门要去挤地铁,下了地铁之后还要顶着灼热的太阳步行十多分钟才到公司,夏天的时候同事们经常看我进门的时候满身大汗,问我是不是跑着过来的,哎,都是泪。这些非主观因素无形之中都会折损这一天的精力,所以我在住了三个月之后,宁可违约交罚金也搬到了公司旁,节省出来的两个小时我可以多看一些书,多睡一会觉,或者做我想做的事,与此相比,多花点钱还是非常非常划算的。

从实习到最初的工作任务都比较简单,帮忙调 UI,做一个非常小的独立的功能等等。老大肯定是希望我刚毕业开始熟悉熟悉公司代码。再说我的老大之前,先来说说我的“师傅”。
为什么会称我的同事为师傅呢,因为从技术角度上,他对我的帮助很大。师傅是一个工作快五年的程序员,我请教他的每一个问题他都会,技术细节都能给我讲得明明白白。就算是他不熟悉知识领域,也会告诉我怎样去查询,技术上从不将就,处理起来问题非常快,那种面对问题解决的思路没有时间肯定没法积累出来。并且师傅很勤勉谦逊,做菜还很好吃,哈哈,是我仰望并且努力追赶的目标。

在工作的初期那个时候对知识的积累非常迅速,通过利用碎片化的时间来阅读,在地铁上看关注的公众号文章,在公司工作时把不会的或者掌握不牢固的知识点统统记录下来,晚上披星戴月地回家也不觉得辛苦,还能看一会技术书再睡觉,回想起那段时间浑身都充满了动力,学新东西并且运用出来的感觉很美妙。感觉是一个小孩子走进了礼品屋,随意去挑选礼物。充实专注和好奇是当时我生活的主旋律。

工作半年里技术提升最快的是毕业的两个月之后,也就是差不多八月的时候。有个同事因为一些原因离职了,当时我参与开发的 app 准备重大改版,所以几乎改版的所有需求都由老大和我共同完成。对于刚毕业的我来说,承担的压力很大,时间也很急迫,手上紧,心里更紧。当然期间遇到了挺多困难,工程中的代码和学校里写的 Demo 完全不一样,要考虑的东西很多,那段时间回家基本上累得倒头就睡,梦里都在想今天白天写的代码可读性怎么样,有没有更优雅的实现方式,使用的控件或者三方库原理是什么的,如果让我自己设计会怎么做。遇到一个功能实现不出来,或者一个 bug 怎么也解决不掉,这些都挺打击自信。当时的心态不是很好,有时候甚至会怀疑自己到底适合不适合当程序员。想在代码中逃避出来,不过虽然心态上有起伏,最终还是完成了开发任务。有一天老大把我叫到一旁,说你刚毕业这么重的担子放在你身上,其实有一点揠苗助长,去稍微逼迫一下你也是看看你的抗压能力,你完成的很出色。老大与管理层商量还给我加了薪水。我记得那天晚上特别开心,一路哼着歌就回家了,哈哈,其实我们大多数程序员对薪水这个数字不是特别敏感,主要是老大说我身上的潜质比他面试面过的一年到两年的程序员还好,认可了我的价值,这句话让我真正的放下了包袱,不再去怀疑自己的能力,静心地读书学习敲代码。

老大已经工作十年有余,之前始终在一线互联网公司做开发工作。总是满怀热情的面对技术,面对工作,有用不完的精力,这是我最钦佩他的地方。像去年大火的 RxJava Retrofit 和 MVP 等等,都是老大提示我,让我了解并保持关注一下。公司每周三都会组织打篮球,这点上我和老大爱好相同,技术上或者生活上有疑问我也会选择跟老大聊聊。最近有点贪睡迟到了好多次,他也会私底下提醒我要准时一点。。。总之,哈哈,老大很 nice 就对了!

每个人的想法心态和对事情的理解都会随着年龄或者处境发生变化。在这里想说下这半年以来我对技术的感悟和对编程的理解。

先来说一下学习方法:

  1. 学一个新的知识点,要去查官方文档,先粗读后细读最后动手实践。英文不好没关系,可以学嘛,或者使用一些翻译软件一样可以理解。
  2. 遇到问题永远是优先 Google + 英文搜索,你会发现基本上 StackOverflow 都会解决你的疑问。
    三方库或者一个控件会使用了不是最终目的,了解他们的原理和设计方式更有必要。如此设计的原因是什么,还有没有其他别的方式实现?相互比较各有什么优点,如果让你去设计,去编写代码,你会怎么做。你看这么一想是不是能挖掘出很多的知识点~

在学校自学编程的时候,就是单纯觉得安安静静写代码踏实又惬意,看到写的 Demo 跑在手机上很有成就感。不过在当时对编程没什么比较深入理解,通过这半年的工作谈谈我对编程浅薄的认识。

首先编程目的是解决现实场景中的需求,或者未来人类的某些需求,将需求映射到代码上。当然实现的过程中要从许多方面考虑具体的实施过程,比如设计模式让代码可读性更好,可维护性更高;面对不同的需求在时间和空间中寻找一个平衡点,需求是对性能要求更高?还是要求时间更少?这就涉及到了数据结构和算法。对于 Android 来说,你需要关注事件的起始和流向,比如一个点击事件会触发网络请求,网络请求本身也有成功、失败、超时的回调,在正确的地方做恰当的操作就可以了。对于 Android iOS 和前端工程师来说,我个人觉得,产品和设计都要懂一点,没必要多么专业,但是这个需求是不是合理,设计的好看还是丑,要自己有个感觉,毕竟你们聚在一起目的就是把手里的产品做好。

有关编程的学习,每个人都会有自己的方法,最终能达到什么程度,取决于你的学习能力、学习方法,对此付出的精力,以及开发这份工作处于你整个职业生涯中的什么地位。我也在不断地摸索中,觉得路线偏离了就马上纠正,状态不好的时候及时调整状态。总之一句话,道阻且艰,学而多思,一步一步来。

毕业之后工作的这半年,始终坚持的一件事就是写文章了。在我写下这篇总结时,在180多天里,完成了44篇文章,81604字的篇幅,收获了2842个喜欢,得到了1557位朋友的关注。因此经常会有朋友来私信我,让我给一些建议、指导等等。面对很多力所不及的问题,让我感到诚惶诚恐。因为目前可能还没有足够的阅历经验,给出一个相对合适的建议,并且每个人所处的境地也各不相同。不过这里我可以总结一下,坚持写文章这件事给我带来的影响,和我的一些感悟,希望更多的人能有这个还不错的习惯。

对我来说,写文章是一个总结梳理思路的过程。写一篇技术文章容易吗?其实并不容易。代码是理性的、是冰冷的、是程序化的。但是文章本身是感性的、是主观的、是温热的。通常我完成一篇技术博客可能需要半周的时间,期间需要知识储备,把要写的东西弄清楚才能动笔写得清晰。写文章的过程中还需要把握文章的结构,从易到难,层层递进。再运用一些写文章的技巧,最终将文章阐述的观点和传授的知识都表达清楚,易于接受。

可以看到我在毕业之初写文章的频率还是蛮高的,之后就慢慢降了下来。其缘由不是变得低产了,变得懒惰了。而是我掌握了正确的搜索知识、学习掌握知识的方法。如果网络上已经有不错的、高质量的文章了,我也就没必要再写一次。而当我觉得搜索到的文章都不满意、或者有哪些技巧和知识写出来可以做到推陈出新,我自然会动笔将它整理成文分享出来与大家交流。

从读者的角度来说,最直接的当然就是掌握知识、解决技术上的问题。不过我更喜欢更希望能在文章的下面得到读者的一些回复,观点在交流中才有价值。比如我最乐意看到别人说我写的哪里有问题,或者说告知我有更好的解决办法,这就帮助了我纠错或者提升自己,读者也能更好的掌握文章本身。

生活上,坚持写文章也让我结识了许多志同道合的朋友,这真的非常可贵。我们在一起讨论讨论技术,评论评论一些新闻,聊聊各自的工作生活和情感,我们还成立了一个小小的组织 itsCoder,目的仅仅是督促成员间学习,保持对技术的热情,并且如果能为技术分享做出一点贡献,就再好不过了。技术本身是枯燥的,技术人也是要耐得住寂寞的。但是人类作为群居动物,还是应该要交几个朋友的哈哈。认识你们很幸运,由衷地希望我们的故事不断继续。

这篇文章从年前一直写到了年后。。。苦于被拖延症困扰,hhh,有时候想想,哎,拖就拖吧,人生难免得有个打盹的时候。太累太急太追赶反而得不偿失。

新的一年,也给自己提一点要求,也立下一个 flag,未来的某一天我重新打开这篇文章的时候,尽量多完成一些,不要太羞愧。

  • 早睡早起,不熬夜,规律作息。
  • 坚持写作,一个月一篇就好。
  • 完整地完成一个开源项目。
  • 扎实编程基础知识,读完两本技术书籍。
  • 陪心爱的姑娘外出旅游两次,不要嫌麻烦总是宅在家。
  • 坚持锻炼身体。

那就先这样吧,2017 祝你我都一切顺利。

写给自己的情书
Web note ad 1