前言:這里不講技術(shù),不喝雞湯,這里有的只是一位一線iOS程序猿的所見、所聞、所觸、所感。
主人公:小白(作者) 年齡: 1歲半
準(zhǔn)確地講,本人作為iOS程序猿,已經(jīng)在這條路上默默的走了一年半。還記得去年三月份從我姐送了我一部iPhone6開始,我便一發(fā)不可收拾,隨即入手了一臺(tái)MacBook Air。相對(duì)于大學(xué)期間的迷茫,我暫時(shí)收起了困惑的心,固執(zhí)而又充滿好奇的開始學(xué)習(xí)iOS開發(fā)。

為什么要學(xué)習(xí)iOS?
背景
本人在韓留學(xué)四年,學(xué)了四年的信息通信專業(yè),畢業(yè)論文還是關(guān)于天線方面的,但是,講真,我對(duì)硬件以及信號(hào)處理方面真的不擅長也不感冒。軟件就不一樣了,是那么的真實(shí),那么的容易上手,所以最后拋棄了四年的所學(xué),對(duì)我有用的僅僅是大學(xué)基礎(chǔ)課程里的C語言基礎(chǔ)與應(yīng)用,概率與統(tǒng)計(jì)以及高等數(shù)學(xué)等理工科的入門級(jí)課程了。原因
至于選擇iOS開發(fā)作為以后的學(xué)習(xí)與工作的對(duì)象,初衷很簡單:看著逼格高大上!
小結(jié):說了這么多廢話,無非想表達(dá)的就是:很多時(shí)候選擇去做一件事情的初衷都很簡單,只是走著走著,各種因素夾雜進(jìn)來之后,就變得復(fù)雜而又不那么單純了。

怎么學(xué)習(xí)iOS開發(fā)?
必要條件
學(xué)習(xí)的過程枯燥又乏味,知識(shí)點(diǎn)的堆疊,看的我很多次想放棄,不過如果真的放棄了,那今天的標(biāo)題應(yīng)該就是《iOS開發(fā),從入門到放棄》了吧。但是這二十多年也不是白過的,學(xué)習(xí)成績不算突出,體格方面更顯消瘦,唯獨(dú)“堅(jiān)持”二字被我很好的執(zhí)行,這也算是一種偏執(zhí)吧,對(duì)我來說,即使是真理,我也會(huì)親自去實(shí)踐,我只相信親身的體驗(yàn)以及最終的結(jié)果,沒有什么事情可以中途打斷我。-
怎么學(xué)?
- 如果真的是0基礎(chǔ),我還是建議去培訓(xùn)機(jī)構(gòu)進(jìn)行入門訓(xùn)練,大部分的培訓(xùn)機(jī)構(gòu)還是以基礎(chǔ)為主,至于他們宣傳的高薪就業(yè)之類的話,聽聽罷了;
有些許基礎(chǔ)的就可以在網(wǎng)上找相關(guān)的視頻或者電子書進(jìn)行學(xué)習(xí)與實(shí)踐,不停的敲代碼,記在腦子里再說。知識(shí)的拓展是建立在對(duì)它的透徹了解的基礎(chǔ)上的。不停的實(shí)踐就會(huì)總結(jié)出規(guī)律,反復(fù)的操作就會(huì)有更深刻的理解。
學(xué)習(xí)完基礎(chǔ)之后,UI以及三方框架的應(yīng)用方面,就得找一些小項(xiàng)目進(jìn)行練手了。github或者cocoaChina有很多高仿的項(xiàng)目,可以一邊學(xué)習(xí)一邊照著擼代碼了。項(xiàng)目的選擇方面就是要從小開始,針對(duì)每一個(gè)UI控件的運(yùn)用,等到所有控件都熟練掌握之后,再開始仿寫一些完整的項(xiàng)目,從簡到難,一步一步深入。
小結(jié):具體的學(xué)習(xí)方法,網(wǎng)上有很多,優(yōu)秀的教程也很多,我在這里就不再贅述,很多知識(shí),翻越了那堵墻,都會(huì)有的。對(duì)我來說,最重要的就是--堅(jiān)持。

學(xué)習(xí)與開發(fā)中的點(diǎn)滴記錄
- 關(guān)于第一份工作
費(fèi)盡心思學(xué)了小半年,總算功夫不負(fù)有心人,找到了第一份工作,關(guān)于電商的應(yīng)用開發(fā)。
剛?cè)肼毜臅r(shí)候,面對(duì)實(shí)實(shí)在在的項(xiàng)目,心里真的發(fā)虛,只能指望同時(shí)入職的那位看著胸有成竹的老兄,但世事難料,那位仁兄就干了一星期就跑路了......結(jié)果老板也不再招人,只留我一人在崗位上堅(jiān)守。
要說那會(huì)兒會(huì)什么,真的都只是基礎(chǔ),幸好我所做的工作主要就是老項(xiàng)目的維護(hù)與升級(jí)。那個(gè)時(shí)候,沒日沒夜的研究老項(xiàng)目代碼,學(xué)習(xí)各種實(shí)操經(jīng)驗(yàn),可以說,那個(gè)時(shí)候的我,進(jìn)步非常快,用了兩個(gè)月的時(shí)間,就已經(jīng)搞定電商應(yīng)用,不管是商品的展示,還是支付寶購買,添加購物車,卡務(wù)中心的會(huì)員卡綁卡解卡充值業(yè)務(wù),都得心應(yīng)手。
之后,由于業(yè)務(wù)需要,又做了諸如手機(jī)與POS機(jī)對(duì)接的應(yīng)用,主要運(yùn)用的就是藍(lán)牙功能,以及OC與JS進(jìn)行交互的混合app的開發(fā)。也就是從那個(gè)時(shí)候開始,我拓寬了開發(fā)的視野,關(guān)于混合開發(fā),關(guān)于react native, 關(guān)于Cordova都做了相關(guān)的了解與學(xué)習(xí)。
講真,那會(huì)兒真的對(duì)混合開發(fā)很癡迷,以至于那會(huì)除了工作我已經(jīng)不再對(duì)OC進(jìn)行深入的學(xué)習(xí)了,而是開始研究JS,研究Html,而且還在公司大肆宣揚(yáng)混合開發(fā)的各種優(yōu)勢,諸如一人搞定前端之類的言論。
結(jié)果一語成讖,年終的時(shí)候,我被離職了。
現(xiàn)在想來,初入職場的我,不知道水的深淺,簡單的想法有時(shí)卻會(huì)引火燒身。
- 關(guān)于第二份工作
這份工作來自于前同事內(nèi)推,而這份工作主要是給經(jīng)紀(jì)機(jī)構(gòu)推薦草根藝人,而藝人們也可以通過我們公司的平臺(tái)進(jìn)行才藝視頻的展示,從而獲取演藝預(yù)約。
這個(gè)項(xiàng)目是跟我前同事合作開發(fā)的,當(dāng)時(shí)考慮到合作開發(fā),天天復(fù)制粘貼合并代碼的方式只持續(xù)了兩星期,我就厭倦了,于是我選中了碼云作為代碼的托管平臺(tái),那里的個(gè)人私有倉庫不僅免費(fèi),而且操作流程簡單,很適合我這種新手,于是我將項(xiàng)目放在了上面,然后客戶端使用SourceTree進(jìn)行操作。
這個(gè)項(xiàng)目很自由,對(duì)我來說,我的同事一心只為項(xiàng)目的功能,并不過多插手我對(duì)于項(xiàng)目的各種嘗試,所以我所能做的事情很多。那個(gè)時(shí)候JSPatch剛出來不久,我便將它配置在項(xiàng)目里,為此特意進(jìn)行了JS的相關(guān)強(qiáng)化,所幸其作者提供了原生代碼與JS代碼的轉(zhuǎn)換器,將代碼整體轉(zhuǎn)換之后再稍加修改就可以使用。而這個(gè)技術(shù)在當(dāng)時(shí)也恰好修復(fù)了上線項(xiàng)目的一處BUG,令項(xiàng)目順利運(yùn)行,不至于點(diǎn)擊用戶頭像就崩潰。
對(duì)于視頻的錄制壓縮上傳以及特效的處理都在當(dāng)時(shí)做了相應(yīng)的學(xué)習(xí),GPUImage也進(jìn)行了深入的學(xué)習(xí)與運(yùn)用。而今年年初的計(jì)劃也是對(duì)視頻處理方面進(jìn)行更深入的應(yīng)用,可惜事與愿違,后來的一些事情(以后再細(xì)說)讓我匆匆離開了這家公司。
小結(jié):上班的時(shí)候,與同事之談項(xiàng)目的具體事宜,下班的時(shí)候,只聊工作以外的內(nèi)容,而且要謹(jǐn)言慎行,不然無形中開罪了某某都會(huì)給自己帶來不必要的麻煩??偟膩碚f這半年的經(jīng)驗(yàn),讓我在協(xié)同開發(fā)、線上熱修復(fù)以及視頻處理方面有了更深入的學(xué)習(xí)與實(shí)踐。當(dāng)然,由于app傾向于娛樂,主流的UI框架的使用都更加?jì)故?,各種布局都了然于胸,印象筆記里收集的資料也更加全面與實(shí)用。
- 關(guān)于現(xiàn)在
這個(gè)就留到以后再說了,現(xiàn)在也只是入職了三個(gè)月而已,主要做的內(nèi)容又回到了當(dāng)初的電商類團(tuán)購主題,工作方面已經(jīng)算的上是得心應(yīng)手。工作之余就是學(xué)習(xí)Swift3.0,以及設(shè)計(jì)一些sideProject的原型,然后寫寫文章,記記筆記。
生活仿佛又回到了原點(diǎn),唯一可喜的就是這份工作就在我家附近,生活壓力驟降,在外漂泊多年的我,最后還是回到了最初的起點(diǎn)。
總結(jié):一年多的開發(fā)經(jīng)歷,不管是為人處世還是技術(shù)方面,都有很大的成長。開發(fā)方面似乎也到了瓶頸,單純的項(xiàng)目實(shí)現(xiàn)已經(jīng)沒有問題,但是深入包括到線程處理,以及響應(yīng)式編程,去模型化的運(yùn)用就很淺薄乃至無知,項(xiàng)目里很難用到這些技術(shù),只能通過字面的意思去學(xué)習(xí)理解。Swift的學(xué)習(xí)也進(jìn)入到了最后階段, 接下來更多的就是應(yīng)用了,以前寫的項(xiàng)目可能都會(huì)再用新語言重構(gòu)一遍。
總的來說,現(xiàn)階段的工作很適合我,沒有加班,有充足的時(shí)間與精力去寫文章,總結(jié)過往的得失。
- 關(guān)于我
妥妥的技術(shù)宅男,單身汪,但追求時(shí)尚動(dòng)感新元素。
每天白天上班,空閑時(shí)間看看股市行情(Ps:大學(xué)期間的愛好),特別關(guān)注實(shí)時(shí)資訊、科技新聞。下班回家用Keep堅(jiān)持鍛煉1小時(shí),然后洗澡吃飯打豆豆(不要問我豆豆是誰,可以理解為擼代碼)。
目前的生活節(jié)奏就是以上。
后記: 經(jīng)常有經(jīng)理或者老板問我做某某項(xiàng)目,在某某方面上有技術(shù)難點(diǎn)嗎?以前我可能會(huì)草率的回答有,但是經(jīng)歷了這么多之后,我只想說,沒有。所有技術(shù)上的問題都不是問題,總會(huì)根據(jù)各種資料去查找出解決方案,但是產(chǎn)品真正的難點(diǎn)在于思路在于流程。
現(xiàn)在的我大多數(shù)時(shí)間都不是在擼代碼,而是在思考,主要是邏輯的實(shí)現(xiàn)與思路的完善。
這就是現(xiàn)階段身為一名iOS開發(fā)者的自白書,時(shí)間在繼續(xù),我的旅程顯然才剛剛開始。