玉蝶之夢(mèng)
從小白到軟件開(kāi)發(fā)工程師:找個(gè)培訓(xùn)機(jī)構(gòu)進(jìn)行系統(tǒng)的學(xué)習(xí)。想要在軟件開(kāi)發(fā)行業(yè)有所作為,還需要以下兩點(diǎn)。一是有足夠的熱情,軟件行業(yè)是一個(gè)朝陽(yáng)行業(yè),也是一個(gè)瞬息萬(wàn)變的行業(yè),我們隨時(shí)都的保持著工作熱情,吸收新的知識(shí),拓寬人脈,我們才有更寬的思維,這樣才能有更多的靈感,才能開(kāi)發(fā)新的應(yīng)用,也就是我們軟件開(kāi)發(fā)行業(yè)中常說(shuō)的有創(chuàng)新思維,其實(shí)人的創(chuàng)新來(lái)源于自己的知識(shí)儲(chǔ)備,而知識(shí)儲(chǔ)備來(lái)源于我們的學(xué)習(xí)熱情,只有在工作和學(xué)習(xí)中擁有足夠的熱情我們才能發(fā)展的更好。另外對(duì)于軟件開(kāi)發(fā)工程師想要有發(fā)展,還的有一些基礎(chǔ),當(dāng)然此處所說(shuō)的基礎(chǔ)并不是最基本的語(yǔ)法基礎(chǔ),而是操作系統(tǒng)以及硬件方面的基礎(chǔ),或者是目前最熱門(mén)的云計(jì)算和大數(shù)據(jù)、移動(dòng)操作系統(tǒng)等方面的基礎(chǔ)。當(dāng)然最好也有一定的英語(yǔ)基礎(chǔ),總之基礎(chǔ)越多,對(duì)我們發(fā)展越有利。知識(shí)豐富后,再通過(guò)不斷的練習(xí),不斷的反復(fù)實(shí)踐,在軟件開(kāi)發(fā)行業(yè),想要有發(fā)展,還是很容易。畢竟軟件開(kāi)發(fā)行業(yè)是非常缺人的,而且工資待遇都不低。軟件開(kāi)發(fā)工程師是從事軟件開(kāi)發(fā)相關(guān)工作的人員的統(tǒng)稱(chēng)。軟件開(kāi)發(fā)工程師的技術(shù)要求是比較全面的,除了最基礎(chǔ)的編程語(yǔ)言(C語(yǔ)言/C++/JAVA等)、數(shù)據(jù)庫(kù)技術(shù)(SQL/ORACLE/DB2等)、.NET平臺(tái)技術(shù)、C#、C/SB/S程序開(kāi)發(fā),還有諸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING、J2EE、WEBSERVICE、STRUTS等前沿技術(shù)。
kokomi0827
一、Objective-C
C語(yǔ)言是iOS開(kāi)發(fā)的語(yǔ)言基礎(chǔ),而Objective-C是iOS開(kāi)發(fā)的標(biāo)準(zhǔn)語(yǔ)言,也是為眾多iphone開(kāi)發(fā)工程師所公認(rèn)的標(biāo)準(zhǔn),所以必須要掌握。內(nèi)容包括以下這些:
(1)Objective-C語(yǔ)言基礎(chǔ);
(2)library,framework的制作;
(3)Runtime編程;
(4)LLVM原理和調(diào)優(yōu)。
二、操作系統(tǒng)
操作系統(tǒng)使計(jì)算機(jī)系統(tǒng)所有資源最大限度地發(fā)揮作用,提供各種形式的用戶(hù)界面,使用戶(hù)有一個(gè)好的工作環(huán)境,為其它軟件的開(kāi)發(fā)提供必要的服務(wù)和相應(yīng)的接口。所以,必須對(duì)ISO操作系統(tǒng)很熟悉才行。包括以下方面的內(nèi)容:
(1)iOS內(nèi)存管理和調(diào)優(yōu);
(2)iOS的文件系統(tǒng)和沙盒機(jī)制;
(3)iOS多線(xiàn)程編程(Thread,GCD,NSOperation);
(4)iOS網(wǎng)絡(luò)和服務(wù)器編程(,);
(5)iOS系統(tǒng)的各種安全機(jī)制。
三、網(wǎng)絡(luò)編程
網(wǎng)絡(luò)編程是學(xué)習(xí)iOS開(kāi)發(fā)必須掌握的編程技巧,涉及到Htpps、Socket編程等;在這一部分處理的規(guī)范程度,直接影響到蘋(píng)果AppStore的審核。
(1)iOS網(wǎng)絡(luò)發(fā)送機(jī)制調(diào)整和優(yōu)化();
(2)Socket編程;
(3)網(wǎng)絡(luò)傳輸中的各種保障;
(4)對(duì)傳輸協(xié)議的調(diào)整優(yōu)化。
四、數(shù)據(jù)庫(kù)&持久化方案
數(shù)據(jù)庫(kù)持久化就是把數(shù)據(jù)保存到可永久保存的存儲(chǔ)設(shè)備中,持久化的主要應(yīng)用是將內(nèi)存中的數(shù)據(jù)存儲(chǔ)在關(guān)系型的數(shù)據(jù)庫(kù)中。
(1)常規(guī)持久化方案(Keychain,Sqlite,CoreData);
(2)數(shù)據(jù)庫(kù)的使用和設(shè)計(jì)(Sqlite);
(3)數(shù)據(jù)結(jié)構(gòu)優(yōu)化,Sql調(diào)優(yōu)。
五、圖形圖像編程
iOS開(kāi)發(fā)過(guò)程中,大部分的APP都是采用多視圖設(shè)計(jì)來(lái)完成的。所以要熟悉一些圖像的繪制:
(1)UIKit,和CoreText的繪制;
(2),Quartz2D,MediaPlayer,;
(3)OpenGLES,GLKit,SpriteKit,SceneKit,Metal。
六、數(shù)據(jù)結(jié)構(gòu)&算法
懂得基本的算法:
(1)基本的算法和數(shù)據(jù)結(jié)構(gòu)(排序搜索算法,數(shù)組,隊(duì)列);
(2)較復(fù)雜數(shù)據(jù)結(jié)構(gòu)的靈活應(yīng)用(二叉樹(shù),圖等);
(3)復(fù)雜的專(zhuān)項(xiàng)算法(圖像識(shí)別算法,拓?fù)涠ㄎ坏龋?/p>
七、業(yè)務(wù)能力
作為一名優(yōu)秀或者說(shuō)是及格的iOS程序員,必須要有一定的將功能需求轉(zhuǎn)化并實(shí)現(xiàn)的業(yè)務(wù)能力:
(1)一般性業(yè)務(wù)功能需求分析及實(shí)現(xiàn);
(2)重要業(yè)務(wù)模塊的需求分析及實(shí)現(xiàn);
(3)中小規(guī)模產(chǎn)品的架構(gòu),系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn);
(4)大規(guī)模產(chǎn)品或產(chǎn)品線(xiàn)的架構(gòu),系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn);
(5)平臺(tái)級(jí)產(chǎn)品的架構(gòu),系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)。
八、安全方案
另外,還需要提供對(duì)數(shù)據(jù)安全方面有利的方案:
(1)本地?cái)?shù)據(jù)存儲(chǔ)安全(Keychain);
(2)授權(quán)和身份驗(yàn)證;
(3)傳輸安全(對(duì)稱(chēng),非對(duì)稱(chēng),SSL);
(4)App代碼安全。
九、專(zhuān)業(yè)素質(zhì)
作為一名iOS工程師,需要具備一定專(zhuān)業(yè)素質(zhì),包括:
(1)團(tuán)隊(duì)協(xié)作能力。軟件開(kāi)發(fā)要求開(kāi)發(fā)參與者間有一定默契度,從事自己工作之余為其他同伴創(chuàng)造條件;
(2)溝通能力。能清晰的把你對(duì)項(xiàng)目的理解、開(kāi)發(fā)中的問(wèn)題等轉(zhuǎn)達(dá)給同事和用戶(hù);
(3)強(qiáng)烈的好奇心和學(xué)習(xí)精神。IOS軟件開(kāi)發(fā)的變化和創(chuàng)新幾乎是每時(shí)每刻的,優(yōu)秀的程序員要適應(yīng)和主動(dòng)迎合行業(yè)變化的大環(huán)境;
(4)冷靜、細(xì)心。及時(shí)發(fā)現(xiàn)問(wèn)題和判斷對(duì)策。
優(yōu)質(zhì)工程師考試問(wèn)答知識(shí)庫(kù)