進入軟件開發(fā)這個行業(yè)已經(jīng)有近一年時間了鲁驶,感覺有必要整理一下鉴裹,讓自己清楚自己要走的路,以此勉勵自己钥弯。
大方向抉擇
我所學專業(yè)是通信工程径荔,偏硬件,單片機脆霎、信號與系統(tǒng)总处、嵌入式、模電數(shù)電绪穆。辨泳。虱岂。畢業(yè)了玖院,很想找一個與專業(yè)對口的行業(yè)菠红。將自己的簡歷掛在智聯(lián)上,有幾家公司聯(lián)系了我难菌,可是考慮到發(fā)展前景問題试溯,都選擇放棄了。記得第一次面試的公司是某內(nèi)公司郊酒,當時懵懵的遇绞,問她招做硬件的嗎;她說我們這邊有的燎窘,讓我過去面試看看摹闽。去了之后是“先揚后抑”,對你一陣夸贊褐健,之后就開始游說付鹿,“雖說你的學習能力很強,但是你的技術還是不到位蚜迅,我們這邊可以對你進行包裝一下.......”舵匾,當時被她說的一陣一陣的,有點下定決心的意思了谁不。還好自己比較明智坐梯,沒有簽合同。后來聽說它特別坑人刹帕。
之后對自己的發(fā)展前景有了很好的認識:硬件對我來說確實很對口吵血,但是門檻比較高,需要好的學歷偷溺,即使進入普通公司也只是焊點電路板践瓷,排排線。軟件對我而言門檻就相對較低了亡蓉,當時也是需求量最高的職業(yè)晕翠,但我沒有什么就像某內(nèi)公司所說的我沒有什么技術。
不過一個偶然的機會砍濒,我收到某軟件公司的電話淋肾,只是簡單的電話面試,我就收到了offer爸邢,網(wǎng)上查了一下該公司的評價樊卓,還可以,公司挺大的杠河,感覺不會太坑碌尔,正好當時輔導員也催著我叫三方協(xié)議浇辜,我就簽了這家公司。
就這樣我就走上了軟件這個行業(yè)唾戚。
小方向比較糾結
去公司報到的路上柳洋,沒想到遇到同去報到的同伴,她們的技術相對來說比我好叹坦,而且畢業(yè)學校比我也好熊镣,這兩方面一點優(yōu)勢沒有,我的心開始虛了募书。后來很榮幸被分到了一個比較人性化的部門绪囱。
公司企業(yè)培訓完就是部門培訓。培訓期我們可以根據(jù)自己意愿進行針對性的學習莹捡,當時對軟件開發(fā)一點概念沒有鬼吵。聽同事說,學iOS開發(fā)比較難篮赢,學習Android的人比較多齿椅,我就跟著選了Android。我們的培訓也沒什么荷逞,每天的任務就是敲培訓教材里500行代碼媒咳,學習到了后期我發(fā)自己跟不上,Java代碼都不能完全理解(Android是基于Java)种远,我和組長商量一下還是選擇了Java涩澡。不過后來大領導出差回來了,聽說我只會C坠敷,單獨找到我希望我轉iOS妙同,領導開口我也沒什么好說的,那就干唄膝迎。不過我也有擔心的粥帚,我的課程落后很多,擔心公司會辭退我限次。不過領導一句話打消了我的疑慮芒涡,“只要你態(tài)度端正,我們很人性的”卖漫。
從這一刻開始我就踏上iOS這條不歸路费尽。
完全靠自己
投身iOS,唯一的好處就是沒有500行代碼的要求羊始。
一號坑:設備問題旱幼,大公司設備都是要申請的,像蘋果設備這個只有進入項目組才會有的突委,我們只能用黑蘋果柏卤,關鍵是黑蘋果還得自己裝冬三。這個坑大了,搗騰了半星期才把黑蘋果裝起來缘缚,但是系統(tǒng)只能裝Xcode5勾笆,系統(tǒng)版本太低。又花了半星期才把系統(tǒng)升上去(不是網(wǎng)絡升忙灼,換鏡像)匠襟《巯溃總算填了這個坑该园。
二號坑:沒人教,公司對網(wǎng)絡限制比較嚴帅韧,我們只能自己買書里初,自己看,對著書上敲代碼忽舟。一開始在StoryBoard上拖控件双妨,后來看了視頻才知道一個完整代碼怎么寫。后來靠一些控件屬性整理才將整個界面搭起來叮阅。
填完這些坑領導就把我拉到項目組了刁品,項目組里我就是天天打醬油,還好組長每天給分我一兩個缺陷讓我改浩姥,我就這樣熟悉了代碼挑随。
但是后期想學點東西只有抽空自己學,每天晚上自覺加班勒叠,看著視頻敲點代碼兜挨。后期優(yōu)化代碼還是得看點書。
學習心得——這才是重點
其實前期我看寫iOS方面的書眯分,可是看了發(fā)現(xiàn)一點用也沒有拌汇,都是些Objective—C的基礎,不能深入人心弊决,看完就忘了噪舀,不如看些寫界面的書。后來才開始看書飘诗。
第一階段:寫界面只是提高興趣与倡。不要認為界面是iOS的核心,界面搭建只是為我們創(chuàng)造點成就感疚察。但是寫界面還是需要點對象的思想的蒸走。關于對象思想,我也是后來在寫代碼中領會的貌嫡,因為只學過C比驻,只懂得面向過程編程该溯。這個思想轉變需要一定的過程,其實這中間有種只可意會不可言傳的意味别惦。代碼寫多了自然就領會了。界面后期會變的復雜話掸掸,這就需要你回去看一下OC基礎了氯庆。
第二階段:這個時候OC就派上大用場了。什么數(shù)據(jù)類型扰付,什么forin循環(huán)堤撵,以及控件的代理等就在這個時候領會。但是你會發(fā)現(xiàn)有些數(shù)據(jù)怎么也顯示不上去羽莺,但是你的程序也沒有報錯实昨。這就要更深入了解OC了。
第三階段:ARC機制盐固,對象管理荒给,內(nèi)存管理就不得不去了解了,這個時候學習也能結合實際解決問題刁卜。
第四階段:你會發(fā)現(xiàn)你的代碼很不美觀志电,你就需要了解一下Block,了解對象如何封裝蛔趴,什么類方法挑辆,什么實例方法自然而然就領會了。
第五階段:結合項目夺脾,對一些問題解決之拨。這樣才可以豐富你的經(jīng)驗。
我認為OC是學無止境的咧叭,總有一些新需求讓你去學些新東西蚀乔。
總結
以上是我學習iOS這么久以來最想說的,其中的意味只有經(jīng)歷過才能領會菲茬。后期我將我平時項目中遇到的問題以及解決方案放出來吉挣。重在總結。