對于想要成為物聯(lián)網(wǎng)工程師,面對碎片化極為嚴(yán)重的物聯(lián)網(wǎng),我們首先要掌握哪些方面?且想要從事物聯(lián)網(wǎng)開發(fā),是否要必須嵌入式知識基礎(chǔ)?物聯(lián)網(wǎng)是新一代信息技術(shù)的重要組成部分,傳統(tǒng)的嵌入式系統(tǒng)與互聯(lián)網(wǎng)的發(fā)展衍生出了物聯(lián)網(wǎng),物聯(lián)網(wǎng)應(yīng)用開發(fā)是典型的嵌入式開發(fā),因此嵌入式是物聯(lián)網(wǎng)開發(fā)的基礎(chǔ)。
不過,對于初級入門者,或許會存在一定的誤解,其可能認(rèn)為掌握了嵌入式開發(fā)的技術(shù)就等于已經(jīng)懂了物聯(lián)網(wǎng),但事實并未如此。
物聯(lián)網(wǎng)技術(shù)不是單獨(dú)的一個技術(shù),它是多種技術(shù)的融合。物聯(lián)網(wǎng)涉及感知、控制、網(wǎng)絡(luò)通信、微電子、軟件、嵌入式系統(tǒng)、微機(jī)電等技術(shù)領(lǐng)域,因此物聯(lián)網(wǎng)涵蓋的關(guān)鍵技術(shù)也非常多,大致劃分為感知關(guān)鍵技術(shù)、網(wǎng)絡(luò)通信關(guān)鍵技術(shù)、應(yīng)用關(guān)鍵技術(shù)、共性技術(shù)和支撐技術(shù)。
所以,對于開發(fā)者而言,首先要對物聯(lián)網(wǎng)有整體的認(rèn)識,圍繞著未來的發(fā)展方向來找準(zhǔn)自己的方向,學(xué)習(xí)精通其中的一個或幾個關(guān)鍵技術(shù),理論和實踐項目配合,才能在未來的工作中有好的發(fā)展。
二、物聯(lián)網(wǎng)的實戰(zhàn)技能
當(dāng)然以上僅是進(jìn)入物聯(lián)的步,至于如何進(jìn)階?在此,答主以自身從Linux開發(fā)工程師轉(zhuǎn)變成物聯(lián)網(wǎng)軟件架構(gòu)師為例,分享多年的成長心得:
1、首先要跟上時代的趨勢,不能坐以待斃,要主動去發(fā)現(xiàn)機(jī)會并不斷地嘗試。同時,對新的商業(yè)模式和新技術(shù)保持開放的心態(tài),要學(xué)會接納并分析其是否能成長為新的趨勢;
2、從Linux底層驅(qū)動開發(fā)到上層云計算,Java應(yīng)用開發(fā)的轉(zhuǎn)換是需要時間和技術(shù)積累;
3、技術(shù)棧需要重新建立。思考問題的方式也要隨之轉(zhuǎn)變,從面對硬件和機(jī)器語言轉(zhuǎn)換為面向客戶需求、面向用戶體驗。這種轉(zhuǎn)變過程從心理上要做準(zhǔn)備。
4、多參加技術(shù)交流,保持學(xué)習(xí)的態(tài)度,通過獨(dú)立實現(xiàn)一個規(guī)模比較小的網(wǎng)站系統(tǒng)、小程序等項目開始,發(fā)展成為全棧,繼而提升為軟件架構(gòu)師。
此外,由于物聯(lián)網(wǎng)范疇之廣,決定了其上手的路途充滿荊棘?;诖?答主從物聯(lián)網(wǎng)BU的軟件架構(gòu)師角度出發(fā),表示需要具備以下實戰(zhàn)技能:
1、深入掌握2-3門編程語言,如Java、C或Python;
2、對操作系統(tǒng)要有深入的了解,包括進(jìn)程、線程、存儲、內(nèi)存管理、鎖機(jī)制等知識點(diǎn);
3、對Linux操作系統(tǒng)需要有深入了解,譬如從shell到內(nèi)核的運(yùn)行機(jī)制等;
4、有終端設(shè)備驅(qū)動開發(fā)經(jīng)驗和匯編經(jīng)驗;
5、對軟件算法的理解越深越好;
6、在網(wǎng)絡(luò)層面,要對TCP/IP、HTTP和組網(wǎng)等技術(shù)有一定的了解;
7、數(shù)據(jù)庫MySQL、NoSQL等持久化技術(shù);
8、云計算IaaS、PAAS、SaaS 和Devops技術(shù);
9、持久熱愛互聯(lián)網(wǎng)技術(shù),并堅信技術(shù)的力量。