最近生活的总结

最近公司刚搬到滨江,也刚发布了项目,加之前一段时间参加了一个线下的iOS逆向开发者聚会,大家聊了一个关于职业规划的问题,有些感受。

最近在干什么

最近主要在开发关于女性抗衰老方向的APP,没什么特别的,就是一些业务代码,越发感受到一个项目框架的设计对项目的影响力。这个项目是从原来的APP移植过来的,所以大部分的代码都是相同的,但是部分需求差异性比较大,最初的项目是我自己刚毕业的时候搭建的,设计的时候没什么深层次的考虑,虽然也在近两年的开发中不断调整,但是已经有种积重难返的感觉了,所以再思考怎么将项目模块化。
生活方法最大的变化应该是三个月前搬到滨江住,房子发了,房租也贵了,买不起房子······但是跟两个同学住一起还是很开心,平时吃吃饭喝喝酒,好像回到了大学。
前两周参加了一个开发者聚会,见到了传说中的狗神和AloneMonkey,还有几个大公司的开发者,谈了一下职业规划的问题,大家有的准备转产品,有的还是想搞技术,也说了工作中的疑惑,还是引发了不少思考。附上狗神的关于创业的文章,他在聚会上提出一个观点:长期进行一项你认为好的投资,比如学英语之类,以后可能会有大帮助,比如他现在就因为英语好而可以短期转岗。
我的失败与伟大 —— 纪念历时18个月的初次创业

关于技术

聚会上比谈的比较多的一个问题是:学习技术的广度和深度如何平衡?
我在学习过程中也遇到这个问题,并且走了不少弯路,比如现在流行全栈工程师,那就需要学习前端、后台和APP知识。所有在大学的时候也是东看看西看看,学会了各种软件的安装与卸载,着实浪费了不少时间,到最后才发现,数据结构和算法,数据库,计算机网络等基础知识才是最重要的。
大家也各抒己见,以自己的经历为例,谈了下自己的看法。
A君(资深逆向工程师)认为学习技术应先精后广,在学习过程中不断追问,加深对知识的理解,逐渐对一门技术精通,而在这个过程中,会遇到很多困难,会学习很多其他知识,自然知识的广度也会拓展,而且真正掌握一门技术之后再学习其他知识也是事半功倍的。我比较赞同这种,盲目贪多求全往往是丢了西瓜捡了芝麻。
B君(手机淘宝架构师)则认为学习技术先广后精。想精深一门技术难度大,而知识更新地很快,往往深入研究之后再研究其他的,精力会跟不上技术的迭代。平时只需要了解这个知识,然后到具体业务瓶颈,再进行深入研究。
C君(某公司主程)的想法是实用主义。他在工作中只关心这个技术带来的价值,简言之:能不能挣钱。他举了个例子,他们公司之前做的im模块是外包的,然后经常出问题,由于是静态库的形式接入的,每次出问题都要找原来开发的公司修复,一次5k rmb,他学习了逆向技术,搞定了这个问题,给公司节省了数百万的资金;还有一个例子就是之前项目打包每次都是手动,尤其是安卓,发包需要多渠道打包,既没有技术含量,又很繁琐,于是他写了个脚本,解决了这个问题,得到了大家的赞赏。
基本主流的就这三种看法。
关于未来怎么发展,狗神阐述了他的看法,他是要做一个问题的解决者。
何谓「问题解决者」?
他举例说明:他之前在部队工作,之后进行创业,并没有什么让大企业认可的简历。然而他还是被阿里录用了,原因在于当时刚好缺少一个懂逆向的资深开发,他满足需求,能解决他们业务中的逆向问题;最近阿里需要拓展国际业务,需要抽调既英文好,沟通能力佳,又技术好的人,人事找到了他,虽然到公司不足一年是不允许转岗的,但是缺乏人手,他刚好符合需求。
同时他还举了一个例子,说有个小伙子之前没学过逆向,买了他的书,学习非常刻苦,一年之内技术大进。然后他创业的时候需要搞个微信机器人,做自动回复功能,他就找了那个小伙子,小伙子一天做出来这个功能,后来陌陌需要逆向开发的人,狗神就把小伙子推荐到那里了,之后又推荐到盘古团队。小伙子的经历也说明了,需要掌握两门不同的技术,然后能实际解决别人的问题,才是有价值的。
然后狗神觉得自己的技术也达到了一定的程度,面临两个选择,一是继续搞技术,iOS应用层的逆向已经是如入无人之境了,之后就要研究内核相关了;另一个选择是做产品。他选择了做不同的事情,做产品,所以最近经常看一些名人推荐的书籍,努力提高自己。
说了这么多,重要的是,不要停止学习,不要停止思考。
KISS

关于生活

生活上还是很空白,每天上班,吃饭,码代码,面基。简单,甚至有些无缺了。想想年初的目标,好像都快忘了呢,买的书也没看完,在结合大神们的学习经历,真是羞愧,年龄差不多,人和人的差距就是这么大。以前没周末都跟家里打电话,最近也不怎么打了,国庆节马上到了,回家一次吧。学习上,准备制定个近期的学习目标。

近期目标

  1. 阅读一个开源库代码
  2. 复习学习一下数据结构和算法
  3. 学习一下Python
    以上学习最好记笔记或者写博客,向上吧,少年!