一個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逆向工程是level2,kernel逆向工程是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開發工程師的職業規劃從
模糊到清晰的過程,僅供參考。我覺得像我這種奉行技術至上的朋友會很多,但能像我這樣在技術積累到一定程度后把技術枷鎖去掉,換個角度看問題的朋友就很少
了。改革是疼痛的,前景是光明的,祝福每一位工程師都能在不斷求索中清楚地找到自己的目標,然后努力實現它。
P.S.
為下一個優秀的互聯網產品作準備,我正在尋找業內優秀人才組隊抱團,如果你是一名有理想的優秀后端工程師、前端開發者、UI設計師、產品企劃人等等行業精
英(尤其是優秀后端工程師),想做一些感興趣的事情,同時獲得一些物質和精神上的回報,都可以來信聊聊,snakeninny#qq.com,咱們先交個
朋友,哈哈~
來自:http://bbs.iosre.com/forum.php?mod=viewthread&tid=684
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!