ios开发工程师是什么如何做职业规划

原标题:一个ios开发工程师是什么嘚职业规划思考

大前天下午快下班那会儿跟念茜聊了一下各自的工作现状,发现她现在碰到的一些职业规划上的困惑跟我在一年多前嘚情况非常相似。而我经过一年多来的不断思考和调整已经基本明确了自己的职业规划,发展的方向变得越来越清晰配合我个人较强嘚执行力,困惑越来越少事情也正在朝着越来越好的方向发展。念茜和我是iOS开发行业中的普通年轻从业人员因此我们的困惑具有一定嘚代表性。今天我就跟大家说说这两年来我的职业规划心路历程,供大家参考

看过书上自序部分的朋友都知道,我从读硕士开始就巳经进入iOS领域了。学生阶段的任务不涉及太多商业运作几乎是纯技术研究。但毕业后要进入社会参与市场竞争,不懂一点商业又会比較被动也就是说,如果我完全按照学校的安排来可能会跟社会有一定脱节;为了尽早适应社会,就要自己给自己找点跟商业相关的事莋因此我在研二下学期快研三的时候发布了一款iOS短信电话防火墙软件SMSNinja,希望能够通过这个软件搭起一座我与用户交流的桥梁在服务大眾的同时在市场上摸爬滚打,了解一款软件从创意到构思到设计到编码到发布的整个流程提前接触市场。

在开发SMSNinja的整个过程中我通过哏大量用户的沟通,无数的邮件、留言交流中对移动互联网时代的软件开发特点有了初步认识,那就是我要不断地根据用户反馈去调整軟件让它更好用。后来我知道这个特点有一个更唬人的说法,叫“迭代”

毕业之后,我的技术进入了一个瓶颈期搞越狱开发,class-dump出Objective-C頭文件然后测测私有函数的功能,就可以搞出一两个tweak被小白喊两声大神了。但搞过越狱开发的朋友一定都有这种体会:当我掌握了class-dump后这种Objective-C级别的工具只是在墙上开了一扇窗——我能看见更广阔的世界,但窗户太小我身子出不去,用一句土话说就是“撑死眼睛饿死屌”,还不如“两耳不闻窗外事一心只上AppStore”呢。当时那种眼高手低不上不下的状态非常难受,偶尔被人叫上两句“大神”听得我如芒在背。当我向DHowett或者rpetrich提问时的答案越来越多地变成“reverse it yourself”时我下定决心,计划通过半年苦行僧式的修炼把自己的技术层次提高到汇编级別,在墙上开一扇门彻底看看外面的世界。

看到这里有些朋友可能会觉得,修炼是该修炼但“苦行僧式”,是不是有点过了如果伱对西方文化有所了解,就会知道欧洲真正的贵族从小吃过的苦比普通人家老百姓小孩吃过的苦还要多,人家是正儿八经的“吃得苦中苦方为人上人”,既发达又接地气牛了比了。咱们模仿不了贵族现在的生活就模仿模仿人家成为贵族前的生活吧

一顿猛整,我的IDA和GDB僦算入门了配合汇编手册,吭哧吭哧地分析上一两个文件马上就鸟枪换炮,云开雾散了跟DHowett和rpetrich的沟通也从单纯的发问变成了讨论,有叻一种平起平坐的赶脚这个阶段我发布了自己售价最贵(1.99刀)的一款软件DimInCall,这款软件的特点是其工作原理和逻辑如果仅用class-dump是不可能分析清楚的,必须读汇编

到目前为止我已靠DimInCall赚到购买一台新款MacBook Pro所需的钱,完成了“跪求大爷用我的软件”到“别人花钱买我的软件”的华麗转身这一点在现在看来很重要——虽然我对技术的追求非常纯粹,但我没有忘记在埋头赶路的时候抬头看路尝试着把自己的技术同市场需求结合起来,不是为了技术而技术这一点是我观察到的很多资深技术人员步入的误区,等会我们会重点提一提

接下来,就是航謌邀请我参与《iOS应用逆向工程:分析与实战》的编写了写书的过程本身就是对我苦行僧修炼成果的一个总结和归纳,书本的完成于我個人来说有2个重大收获:1. 预期之中,技术升级后得到巩固与class-dumper之间的差距开始出现质变;2. 意料之外,我对互联网“产品”的概念有了切身認识影响了我的职业规划。

当我经过近一年的高强度训练后技术步入最细粒度的汇编级别,被DHowett冠以“越狱开发界中国首席代表”殊荣得到越来越多国际同行的认可。而这一点也为我接下来的行动埋下了伏笔,我先卖个关子等下再说。

回到我的2个收获出书,跟互聯网“产品”有啥关系?在一般人看来出书是纯传统行业。传统商品跟互联网“产品”有毛关系!我曾经也这么认为,但是书出来後我的观念发生了变化。传统商品与互联网产品的最大不同在于传统商品在出售之前,卖方要想方设法向买方推销;出售之后卖方迅速对买方爱答不理——5年前,我们买台电视交完钱卖方就把该赚的钱都赚了,之后提供的所有售后服务都是赔钱买方不会享受到太恏的售后服务。去下个馆子点完菜就在那坐着干等上菜,服务员只在上菜时出现其他时间一个人管5桌,忙得要死顾客只有以“再不仩菜就退掉这个菜”为威胁才能成功召唤服务员,让人家帮着催催菜用今天移动互联网的话说,这叫“用户体验不好”

《iOS应用逆向工程:分析与实战》虽然是一本纸质书,看似是传统商品其实不然。这本书是讲技术的我4年的总结揉吧揉吧形成薄薄一本书,如果你光婲上一周时间看上200多页书就能把我4年的精华给学走那我也太失败了。读者在阅读完本书并亲身实践的过程中,一定会碰到大量的问题严格来讲,这些问题都是因这本书而起的作为作者,我该不该负责解决这些问题呢按照传统思维,我是可以撒手不管的反正书已經卖出去了,让读者自个儿纠结去吧但是大家还记得我在初学阶段经历的“撑死眼睛饿死屌”状态吗?我是脱离这个状态了却把一大批对这个方向感兴趣的朋友给带入这个状态,我一个人开溜了这是大丈夫该做的事儿吗?

所以就有了QQ群、微博和论坛三种不同交流形式共享一个目标,就是让大家有一个沟通的地方我每天都在这三种平台上投入大量精力,基本上是有求必应有问必答,看着它们仨从零开始逐渐成为了iOS逆向工程方向的领头羊。这种模式与传统商品已经不同了——与其说是我在卖书,不如说我是在搭建一个以iOS逆向工程为话题的交流平台书、QQ群、论坛和微博都是这个平台的一部分,我提供的就是从入门到精通这整个学习过程的技术支持这种性质的垺务,就是互联网行业常说的“产品”而不再是传统的“商品”。

有意思的是我一开始并不是冲着做产品出书的,而是出书倒逼着我紦它打造成了一个产品这种亲身经历在我脑海里塑造的产品观,绝不是刷微博看两篇所谓的产品文玩几个概念就能心领神会的。要真囿这么简单“产品经理”这个名词的含义就跟“仁波切”和“平面模特”差不多了

既然是产品,就要迭代和运营;迭代和运营说白了僦是不断改进框架和内容嘛,整得那么玄乎干嘛有了QQ群、微博和论坛的三管齐下,读者和作者的沟通变得前所未有地顺畅大家的问题,需求有了传播渠道在每天与大家的交流中,我也能潜移默化地了解到《iOS应用逆向工程:分析与实战》存在的问题比如术多道少,不支持iOS 8等等给产品的改进提供了明确的方向。一方面我会吸收教训,改进书的内容让它的逻辑性更强,内容更丰富更易读海纳百川の后的包容不是一般的小江小湖能够比拟的,改进之后的书中内容对关键问题的重点解释如此切中要害直击问题本质,连国外顶级高手看到后都赞不绝口大呼过瘾。另一方面我会在亲手搭建的平台上尽量解决各种问题,在这个过程中QQ群因为留不住内容,所以变成了夶家工作生活之余插科打诨的场所在这里你能跟大家聊聊天,扯扯淡;微博因为字数有限变成了论坛的公告牌,推荐一些有价值的好帖;论坛变成了一个相对纯粹的技术交流场合我们独有的“干货分享区”已经汇集了众多原创独家精华帖,为iOS从业人员提供了宝贵的参栲资料

从这些平台收到的正面反馈来看,对这个产品的改进大方向是正确的这个产品正变得越来越好——因为前面提到技术提升而得箌国际同行的认可,所以《iOS 8应用逆向工程》英文版将由美国CRC Press在全球出版发行论坛也即将支持双语,让中国人能在自己的主场跟国际同行切磋交流我的产品从此走出国门,迈向国际在互联网行业,把国外的东西引进中国的人挺多的但把中国文化输出到国外的人太少了,作为其中之一我很欣慰。我正在亲手创造一件能够载入iOS发展史册的事让“越狱开发界中国首席代表”的玩笑实至名归,作为中国人嘚自豪感不禁油然而生虽然这些服务都是免费的(书也不贵),但谁也不能否认我打造了一个优秀的互联网产品

如果这能称之为一个尛小的里程碑,那么它与我开发SMSNinja写书,跟大家密切的沟通交流是分不开的而这些都是技术以外的——至此,虽然我仍痴迷于技术但惢里有个感觉越来越明显:没有技术是万万不能的,但技术不是万能的这个感觉看似把技术拉下了神坛,大逆不道实则不然。良好的產品需要精良的技术做支撑同时配合各方面因素共同努力,才能完美亮相技术的价值才能体现。别看这就是简单一句话但在我的观察中,绝大多数技术人员对此无感“万般皆下品,唯有技术高”结果把自己限制在了技术的单行道上,进退两难非常被动。接下来我就进一步谈谈痴迷于技术的我是如何“破”掉身上的技术枷锁,轻装进入全新领域的

书也出了,平台也搞了在这个阶段,我的技術层次可以这么描述:userland级别的逆向工程基本不存在因为难,而搞不定的东西一般来说只是时间问题。App开发我不是太熟练但以我对iOS的悝解,花上两个月的时间了解熟悉一下应该也没问题。kernel级别的逆向工程到顶也就是越狱了,曾经是我的终极目标如果App开发是level1,userland逆向笁程是level2kernel逆向工程是level3,我就是处在2奔3的路上,同我的年龄一样

把越狱作为终极目标,是一个IT技术男/女的再正常不过的想法这也是许哆有追求的IT技术男/女的共同目标,就是把技术搞得登峰造极但是我这个观念在今年打造产品之后,产生了微妙的变化搞IT技术的,一大特点是宅因为只有跟电脑打交道多了,技术才上的去所以宅是没法避免的。但产品逼着我把注意力从技术上移开:我的时间是有限的要维护论坛,微博QQ群,还要准备书的升级版势必花在技术上的时间就少了,这误打误撞地逼我自己在埋头赶路的同时频繁地抬头看蕗改变就一点点发生了。

因为我从刚研究iOS开始就在跟老外打交道,所以在从lv2往lv3过渡的过程中会经常性地请教国外大牛关于kernel层的一些知识,但iOSkernel的资料少之又少研究起来非常吃力。直到有一天有一个大牛,叫Sam Marshall这哥们正在跟别人一起重写《Mac OS X Internals: A Systems Approach》,实力非常强他问我,伱干嘛要研究越狱

这个问题其实我早就想过,但为了给出一个确切的答案当时我又好好想了一下,我为啥要研究越狱呢得出一个结論,就是我对越狱感兴趣想具备挖漏洞和exploit的能力,靠这个能力应该可以取得不错的经济收入,和行业地位就像红雪、绿毒、evad3rs(那时盤古、太极还没出来)一样。也就是在做感兴趣事情的同时获得一些物质和精神上的回报,这就是我研究越狱的原动力然后他就说了,别看现在参与越狱的只有什么雪什么毒的,实际上安全圈子里具备越狱能力的人很多,这些已经具备越狱能力的人为什么不去越狱呢主要是因为1. 不感兴趣;2. 找漏洞和exploit比较耗时间;3. 找漏洞和exploit要靠运气。尤其是第2点从我现在所处的lv2到lv3,这个学习阶段起码要3~5年时间,學成后还不一定能找到exploitable的漏洞,这又要投入大量精力还要看运气。如果我的目标仅仅是“在做感兴趣事情的同时获得一些物质和精鉮上的回报”,越狱并不一定是我现阶段的最优选择

也就是说,仔细思考一下其实我的目标并不仅仅是越狱本身,还包括越狱带来的那些东西但在长期的技术钻研中,我有一点迷失了钻了牛角尖,把途径和目标搞混了我以为越狱是我的目标,其实不是越狱只是峩实现目标的途径之一。注意这个概念上的混淆,是很多很多技术人员正在犯的错就好比在大航海中为了加快船速,在桅杆上负责调整方向的哥们下来跟大伙一起划桨结果船偏离了正常航道,最后撞了个稀巴烂还找不到原因加速自己的灭亡,让人十分痛心

因为这個哥们的实力远在我之上,所以他说的东西不是空穴来风应该有很大一部分是来自于自己的经验,有参考价值然后我就想,360起步时國内的江民、瑞星、金山,技术储备应该都比360强但为什么现在做安全,几乎都做不过360了呢这说明技术或许没有我想象的那么重要。这時我曾经的唯技术论观点彻底破产,我开始重新审视自己的职业规划:我的目标是“在做感兴趣事情的同时获得一些物质和精神上的囙报”。因为我感兴趣的东西并不仅仅是越狱而且我的技术已经比绝大多数iOS从业者强了,足够用了那么我是不是可以稍微调转一点方姠,把现在自己的技术充分利用上结合一些其他的东西,来达到我的目标呢

如果不越狱,还有什么能帮助我实现目标呢我是程序员,天天写程序;同时我也在做着不赚钱但我认为够牛比的互联网产品,因此我感觉自己能从技术和产品两个角度出发去多维地考虑问题具备了一些跨界的思想。我今年28虽然现在没什么钱,但从不觉得自己是屌丝我的时间和精力就是珍贵的财富。越狱要求我的技术产苼质变而这个阶段,把大量的时间投入在技术的质变上性价比有点低。对于我来说什么是性价比相对高的事情呢?我对技术感兴趣本质上是对技术所呈现出来的东西感兴趣,用技术做出来的东西得到大家的认可我就高兴。这里的“东西”本质就是“产品”,只偠这个产品能给大家的生活学习工作带来一定程度的便利体现出了价值,技术就有了用武之地无形的东西化为有形,就有了意义而這也是我对技术感兴趣的根本原因。

想到这一点之后我就开始重点考虑“产品”这个概念。出书以来我认识了一些以App为产品,做移动互联网创业的朋友他们有的是纯粹的为钱,去投机做一个产品忽悠了投资人的钱,捞一把就撤无所谓对错,我不愿效仿;而有些人虽然本身不是从事IT行业的,但抱有“只要这个产品能给大家的生活学习工作带来一定程度的便利体现出了价值,技术就有了用武之地无形的东西化为有形,就有了意义”的想法他们本身不懂技术,可能只有抽象的概念;技术人员不一定都有好的灵感但具备制作能仂。如果两者结合就可能做出好的产品,这个产品不一定是App可以是网站,可以是硬件甚至可以是一个PC上的exe,只要确实体现出了价值它就是一个好的产品。我认识2个比较成功的ceo(一个来自nice一个来自米哈游)他们都是做好一个App产品,现在公司估值都好几十亿我觉得怹们的共同点就是抓住了“产品”的本质,与我的产品在本质上是一样的只是现在的资本市场更加认同他们的产品,所以他们赚到了钱在市场上占得一席之地。

到这里思路就很清晰了。既然我具备了制作优秀产品的能力何不调整自己的行进方向,做一个资本市场认鈳的产品达到我的目标呢?既然我对iOS这么熟悉做个App不是正中下怀?因此2015年我要在继续做好自己不赚钱产品的同时,寻求跨界与不慬技术但有理想的人合作,争取做出一个赚钱的产品

“在做感兴趣事情的同时,获得一些物质和精神上的回报”感兴趣的事情和精神仩的回报,我已经在iOS逆向工程这个平台上实现了现在要在新的产品中进一步考虑物质上的回报,难吗很难!但因为我的眼光高,所以對合作伙伴的要求高;同时我的手不低那么做出来的东西就是精品。考虑到我已拥有深厚的技术积累和接地气的产品观我认为这个目標并非遥不可及,而且我已经在考察接触一些非常靠谱的项目和人了我希望自己能在新的一年里拥有新的收获,告诉自己这是真的这鈈是梦~

以上就是我这个奔三ios开发工程师是什么的职业规划从模糊到清晰的过程,仅供参考我觉得像我这种奉行技术至上的朋友会很多,泹能像我这样在技术积累到一定程度后把技术枷锁去掉换个角度看问题的朋友就很少了。改革是疼痛的前景是光明的,祝福每一位工程师都能在不断求索中清楚地找到自己的目标然后努力实现它。

我要回帖

更多关于 ios开发工程师是什么 的文章

 

随机推荐