自己使用C獨(dú)立求解問題是從數(shù)學(xué)建模中的一個(gè)過河的游戲開始的,一開始我并沒有想過要使用編程來解決這個(gè)問題,但是隨著問題逐步拆解分析,我忽然覺得計(jì)算機(jī)也可以做這個(gè)事情,數(shù)學(xué)模型離不開數(shù)據(jù)的訓(xùn)練,問題一旦抽象為具體的數(shù)學(xué)模型,就很容易通過計(jì)算機(jī)編程來解決,這可是計(jì)算機(jī)最為擅長的事情。也正是這個(gè)事情,讓我自己真正認(rèn)識(shí)到C語言的實(shí)際作用。不過那時(shí)候也只懂得基本的變量、運(yùn)算符、表達(dá)式、控制語句、函數(shù)。基礎(chǔ)庫而已,這僅僅只是C語言的皮毛而已。此時(shí),我還無法想象windows程序那操作簡易的窗體界面究竟是怎么實(shí)現(xiàn)的,特別每次調(diào)試C程序出現(xiàn)的黑屏白字界面。
關(guān)于這種帶有界面的程序認(rèn)知,是Delphi首先教給我的,可能業(yè)界很多人首先接觸到的是Visualstudio,我僅僅只是個(gè)外行。也許現(xiàn)在的年輕程序員并不懂得什么是Delphi,Delphi如曇花一現(xiàn),曾經(jīng)風(fēng)靡一時(shí),最終急匆匆地退下歷史舞臺(tái),我記得最后一個(gè)版本應(yīng)該是Delphi8。運(yùn)籌學(xué)課上,老師使用他自己編寫的軟件求解動(dòng)態(tài)規(guī)劃的問題,而這些軟件就是用Delphi做的,這引起了我的興趣,下載安裝Delphi之后,便立馬建立第一個(gè)項(xiàng)目,向?qū)J(rèn)會(huì)自動(dòng)創(chuàng)建一個(gè)窗體,這讓我非常開心。不過,在我享受Delphi帶給我很多便利的同時(shí),也必然讓我失去了對技術(shù)細(xì)節(jié)的掌握,而這一點(diǎn)認(rèn)識(shí)深深地影響著我后面全部學(xué)習(xí)過程。與那些從微軟MFC開發(fā)起步的同學(xué)完全不一樣,我還浮于技術(shù)華麗的外表,享受著一點(diǎn)進(jìn)步的短暫興奮中。Delphi使用的可視化的Pascal語言,是一種面向?qū)ο缶幊陶Z言,對那時(shí)候的我來說,與c語言的最大不同之處在于,它封裝了很多技術(shù)細(xì)節(jié),涉及更多語法層面的東西,要求編程人員更加關(guān)注各種庫以及API調(diào)用等問題。
C語言的第二次深入學(xué)習(xí)是從單片機(jī)開始的,我始終不會(huì)忘記第一次點(diǎn)亮LED燈時(shí)的那種興奮勁兒,它讓我整夜都無法入睡單片機(jī)的C語法在原標(biāo)準(zhǔn)之上進(jìn)行了簡單的擴(kuò)充,比如位定義volatile關(guān)鍵字等,因?yàn)閱纹瑱C(jī)重點(diǎn)在于控制,因此對于端口操作的位運(yùn)算比較多,這也讓我進(jìn)一步理解了位運(yùn)算的現(xiàn)實(shí)意義。那時(shí)候不懂什么是上拉電阻、推挽式輸出、漏極開漏輸出、高低電平、寄存器等等、現(xiàn)在想來也挺可笑的,總之,在不斷的自學(xué)中,懂得了定時(shí)器、看門狗、數(shù)碼管、蜂鳴器、紅外遙控、直流電機(jī)、步進(jìn)電機(jī)、AD轉(zhuǎn)換、DS1302,DB1602、24C08、AM2302、LCD等常用器件的基本操作,懂得了UART、IIC、SPI、1-wire常用協(xié)議,懂得了如何根據(jù)數(shù)據(jù)手冊上的時(shí)序圖編寫相應(yīng)的驅(qū)動(dòng)程序,也學(xué)習(xí)了匯編程序設(shè)計(jì),雖然單片機(jī)開發(fā)環(huán)境提供了啟動(dòng)文件的匯編代碼,但是為了搞明白我還是專門學(xué)習(xí)一下匯編語言,這也讓我對寄存器,內(nèi)存以及CPU的運(yùn)行流程有了更為深入的認(rèn)識(shí)。
C語言的第三次深入學(xué)習(xí)是因?yàn)镹RF906這款芯片,這是法國Nordic公司生產(chǎn)的一款數(shù)字接口無線射頻芯片,自帶鏈路層協(xié)議實(shí)現(xiàn),用于無線數(shù)據(jù)通信,視距1-2公里,具體的通信距離要看功放電路的具體設(shè)計(jì)了。由于項(xiàng)目涉及無線數(shù)控、電機(jī)驅(qū)動(dòng)、LCD顯示、繼電器、串口通信等等,繼續(xù)采用之前的編碼習(xí)慣,代碼變得臃腫和混亂起來,為了更好的組織程序,大量使用了函數(shù)、指針、結(jié)構(gòu)體和接口處理,上位機(jī)程序采用Delphi編寫,涉及多個(gè)模塊,無線數(shù)傳是物聯(lián)網(wǎng)的一項(xiàng)基礎(chǔ)技術(shù),萬物互聯(lián)有了通信的媒介之外,還要有網(wǎng)絡(luò),當(dāng)時(shí)比較熱門的是Zigbee組網(wǎng)技術(shù),TI公司專門針對Zigbee協(xié)議提供一系列的軟硬件套件,藍(lán)牙、WIFI技術(shù)剛開始嶄露頭角,并不像今天這樣大量普及的程度。但是Zigbee因?yàn)楣拇蟮膯栴}沒有得到非常好的應(yīng)用普及。
二、ARM和μCOS
進(jìn)入ARM的世界是漫長的,ARM從來不做簡單的事情,對于初學(xué)者來說,功能的豐富強(qiáng)大也意味著操作的更加復(fù)雜,第一關(guān)時(shí)鐘配置就卡住了,ARM的時(shí)鐘樹在提供豐富的時(shí)鐘頻率的同時(shí)也帶來了繁瑣的時(shí)鐘配置。第三方芯片生產(chǎn)商提供了友好的固件庫,簡化了開發(fā)人員的配置操作,由于基礎(chǔ)功底太差,以自己那時(shí)的能力根本看不懂ST公司為STM32F10x系列提供的龐大固件庫”笨人就用笨辦法,死看代碼,俗話說先混個(gè)面熟,跳轉(zhuǎn)一個(gè)接著一個(gè),歷經(jīng)幾個(gè)月的迷茫,總算是有點(diǎn)眉目,漸漸熟悉了PLL分頻器、PWM、DMA、AHB、CAN、USB、JTAG等模塊配置使用,同時(shí),由于固件庫的巧妙的設(shè)計(jì)、靈活的編碼、規(guī)范的風(fēng)格,我的C編程功底也有了非常大進(jìn)步。
當(dāng)然,隨著硬件功能的豐富,相應(yīng)的程序設(shè)計(jì)也就變得更為復(fù)雜,也正是因?yàn)檫@個(gè)原因,需要移植成熟穩(wěn)定的操作系統(tǒng),不會(huì)采用編寫裸機(jī)程序的方式,操作系統(tǒng)就是將大量通用的重復(fù)性設(shè)計(jì)和代碼進(jìn)行高度抽象總結(jié),將底層工作機(jī)制透明化處理,操作系統(tǒng)作為一款標(biāo)準(zhǔn)化通用平臺(tái)。大大減輕了開發(fā)人員的工作量,這樣一來能夠讓開發(fā)人員更加關(guān)注于上層應(yīng)用,這樣一來,就需要學(xué)習(xí)嵌入式操作系統(tǒng)μCOS作為一款微型實(shí)時(shí)系統(tǒng)學(xué)習(xí)門檻低一些,主要提供:任務(wù)調(diào)度、事件管理、任務(wù)通信、內(nèi)存管理,雖然這都是最為基礎(chǔ)的知識(shí)點(diǎn),但是對于初學(xué)者來說能夠熟練掌握就已經(jīng)非常不錯(cuò)了,從裸機(jī)到基于操作系統(tǒng),是認(rèn)知的一次較大轉(zhuǎn)變,學(xué)會(huì)使用μcos是基本的要求,要能夠深入理解其設(shè)計(jì)思路和運(yùn)行機(jī)制還需要一段過程。理論終歸是理論,理論轉(zhuǎn)化為具體應(yīng)用場景下的工程設(shè)計(jì)和實(shí)現(xiàn),還需要做很多的工作,因此對于初學(xué)者來說,μCOS給你的并不是一堆代碼,還有大量的工程設(shè)計(jì)思想、行業(yè)慣例以及常用處理閱讀μCOS代碼,你會(huì)為作者嚴(yán)謹(jǐn)優(yōu)秀的編碼風(fēng)格和習(xí)慣所折服,你會(huì)為作者巧妙的設(shè)計(jì)和靈活的處理所折服。此外,順便提一點(diǎn),μCOS作者的故事也更令人心動(dòng)不已。
ARM第二個(gè)階段學(xué)習(xí)始于三星S3C2440這款芯片,這也是一款較為成功流行的芯片,與之前的ARM單片機(jī)(Cortex-M)不同,這款芯片屬于ARMCortex-A系列,屬于深度嵌入式應(yīng)用芯片,增加了協(xié)處理器和內(nèi)存管理單元,結(jié)構(gòu)要復(fù)雜一些,由于RAM和ROM的外置,電路板的設(shè)計(jì)也更為復(fù)雜,一般核心板都是多層設(shè)計(jì),同時(shí),RAM和ROM控制器是必須要獨(dú)立提供,既然是高端點(diǎn)的芯片,那么S3C2440就不是用于簡單的控制系統(tǒng),而是手機(jī)平板電腦、醫(yī)療設(shè)備、工控設(shè)備、儀器儀表等等,由于大量的普及使用以及硬件的提升,對于類似這樣的應(yīng)用場景,在軟件設(shè)計(jì)中又被剝離出了一個(gè)標(biāo)準(zhǔn)化的東西,BSP板級支持包或者Bootloader,現(xiàn)在比較常用的是UBoot,代碼全部公開。應(yīng)用的廣泛,開發(fā)者還要掌握文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議、圖形界面等組件包的移植使用,嵌入式應(yīng)用特點(diǎn)就是這樣,根據(jù)具體的應(yīng)用場景軟硬件可裁剪,需要什么就加入什么。但是,隨著這幾年嵌入式硬件性能的不斷提升和linux的大量普及使用,一些組件也作為基礎(chǔ)部件被嵌入到軟件平臺(tái)中去,編程功底就是在實(shí)際應(yīng)用中不斷建立起來的,幾年前不理解寄存器、寄存器變量、位圖運(yùn)算、函數(shù)實(shí)質(zhì)指針,編譯,匯編,鏈接,重定位、加載器、動(dòng)態(tài)庫、組件、堆、棧、線程、進(jìn)程、鏈表、隊(duì)列等等好多機(jī)制,但是當(dāng)你經(jīng)歷了大量豐富的實(shí)踐之后,你會(huì)突然明白一切原來都是這個(gè)樣子,一切并沒有原先想象的那么高深莫測。
三、IIS+ASP+Access
面向?qū)ο缶幊桃彩侨绱耍彩枪こ處熃?jīng)歷長年大量的編程實(shí)踐工作中總結(jié)出來的,在成為一種成熟穩(wěn)定的標(biāo)準(zhǔn)之后,交由編程工具進(jìn)行了處理,對于初學(xué)者來說,面對一大堆概念名詞,無法理解這些高度抽象的語法糖,最好的方法還是:不斷寫代碼。第一次認(rèn)識(shí)VisualStudio是因?yàn)樽鼍W(wǎng)站,那時(shí)候ASP還沒有沒落,動(dòng)易網(wǎng)絡(luò)公司還是赫赫有名,桌面程序還是業(yè)界主流,今天web應(yīng)用開發(fā)能如此大熱,根本原因在于智能手機(jī)和移動(dòng)互聯(lián)網(wǎng)的大量普及,對于小型網(wǎng)站,基本采用“IIS+ASP+Access”的基礎(chǔ)架構(gòu),當(dāng)時(shí)對于BS風(fēng)格的程序還不是很了解,具體的編程工作也只是在現(xiàn)有開源項(xiàng)目上進(jìn)行小的改動(dòng)。
四、C#、.NET、Oracle
C#是一款面向?qū)ο缶幊陶Z言,擁有著大量語法糖,比如引用。集合,泛類、委托,λ表達(dá)式·封箱拆箱,LINQ等高級語法特性,此外編譯器也為項(xiàng)目開發(fā)提供了注釋,標(biāo)記特性,單純?yōu)榱藢W(xué)習(xí)而學(xué)習(xí),是永遠(yuǎn)無法理解這些語法糖,還是需要實(shí)際項(xiàng)目的推動(dòng),一方面,使用原先的編碼技術(shù)實(shí)現(xiàn)項(xiàng)目的基本需求;另一方面,通過反復(fù)的迭代摻入新的語法特性,提高自己的編碼技術(shù),像單例模式、工廠模式、觀察者模式、策略模式、適配器模式、依賴注入、控制反轉(zhuǎn)、AOP等面向?qū)ο缶幊淘O(shè)計(jì)模式,也是需要在大量的項(xiàng)目實(shí)踐中不斷總結(jié)出來的,因此,在日常的編碼中要經(jīng)常性的進(jìn)行重復(fù)迭代,不斷總結(jié)思考,只有這樣才能提高編程功底。.NET平臺(tái)提供了類似Java JVM一樣的虛擬機(jī)機(jī)制CLR,橫在了操作系統(tǒng)和上層應(yīng)用之間,C#編譯后的項(xiàng)目并不是二進(jìn)制的機(jī)器指令,而是IL中間語言代碼,程序運(yùn)行時(shí)由CLR提供實(shí)時(shí)的翻譯,并轉(zhuǎn)換為可執(zhí)行的機(jī)器指令。.NET提供了托管內(nèi)存機(jī)制,增強(qiáng)了系統(tǒng)和程序的安全性,提高了程序異常調(diào)試能力,對數(shù)據(jù)庫的操作也是項(xiàng)目開發(fā)一項(xiàng)必備僅能。.NET平臺(tái)提供了ADO.NET機(jī)制,將數(shù)據(jù)庫訪問機(jī)制進(jìn)行了標(biāo)準(zhǔn)化,這就像設(shè)計(jì)模式中的適配器模式,數(shù)據(jù)庫操作的技術(shù)細(xì)節(jié)被隱藏了,各大數(shù)據(jù)庫廠商針對ADO.NET提供自己的數(shù)據(jù)庫驅(qū)動(dòng),便能實(shí)現(xiàn)數(shù)據(jù)庫與應(yīng)用程序的自由對接。由于項(xiàng)目使用的是Oracle數(shù)據(jù)庫,除了標(biāo)準(zhǔn)化的SQL語句外,Oracle也有自己專有的SQL語句,為高級開發(fā)人員提供特殊功能,在真正做項(xiàng)目的時(shí)候才體會(huì)到自己的知識(shí)是那么的貧瘠,學(xué)習(xí)的時(shí)間是那么的緊缺。
五、GIS
了解GIS技術(shù)也是項(xiàng)目的需要。智能手機(jī)和移動(dòng)互聯(lián)網(wǎng)出現(xiàn)極大的推動(dòng)了電子地理信息可視化技術(shù)的發(fā)展,谷歌地圖、百度地圖、騰訊地圖、高德地圖等等,目前普遍使用的還是二維電子地圖,但是三維電子地圖、全息投影和WebGL等技術(shù)還在加快地發(fā)展中。對于GIS并沒有去深入學(xué)習(xí)地理科學(xué)方面的知識(shí),只是簡單的了解一些地圖的制圖技術(shù),重點(diǎn)精力放在于GIS組件上,搞清組件的基本工作機(jī)制,組件之間的繼承依賴關(guān)系,以及組件的調(diào)用接口和使用方法等。總之,GIS是包含眾多行業(yè)在內(nèi)的一項(xiàng)綜合性工程技術(shù),GIS軟件的開發(fā)需要各專業(yè)人員協(xié)同配合。
六、WPF和MVVM
本來并沒想著去學(xué)習(xí)WPF這項(xiàng)技術(shù),但是時(shí)代要求走到了這隨著軟件技術(shù)的不斷發(fā)展和成熟,人們對軟件的要求也越來越高,除了要完成基礎(chǔ)業(yè)務(wù)功能外,軟件界面的美觀也成為一項(xiàng)關(guān)鍵性指標(biāo)。WPF改變了以往桌面程序的圖形系統(tǒng),參照WEB程序開發(fā)的模式,將界面設(shè)計(jì)從程序設(shè)計(jì)中剝離了出來,提出了一種全新的MVVM設(shè)計(jì)模式。當(dāng)然,WPF強(qiáng)大圖形系統(tǒng)支持和美觀的界面也必然吃掉了一部分硬件的性能,不過相對于硬件性能提升來說,這點(diǎn)損失還是利大于弊,對于用戶來說只感受到了巨大的利好,此時(shí)的我還并不是非常清楚Web程序界面的設(shè)計(jì)方法,畢竟之前做的很多工作都是Web后端,對于HTML,CSS,JS還是大概知道個(gè)模樣,WPF界面設(shè)計(jì)使用的是XAML語言,和HTML原理類似,也是從XML基礎(chǔ)上發(fā)展起來的一種標(biāo)記語言。WPF程序分離式設(shè)計(jì)開發(fā)、界面和數(shù)據(jù)的雙向綁定,最終經(jīng)過編譯器的拼裝組合實(shí)現(xiàn),對于這一點(diǎn)的理解花費(fèi)了我好長的時(shí)間,高級語法特性的難點(diǎn)就在于它隱藏了太多的技術(shù)實(shí)現(xiàn)細(xì)節(jié),讓開發(fā)人員失去了對底層工作機(jī)制的了解。此外,高級語法特性帶來的是工程建設(shè)思路革新,代碼特性只是其中的一個(gè)手段,有了MVVM這種設(shè)計(jì)框架的革新,增強(qiáng)了項(xiàng)目的協(xié)同配合,提高了項(xiàng)目的迭代效率,縮短了項(xiàng)目的開發(fā)時(shí)間,方便了項(xiàng)目的升級維護(hù),延長了軟件的生命周期,大大提升了軟件在市場中的競爭力。
七、虛擬化
最初我對虛擬化的理解就是虛擬機(jī),也許就和VMware公司最先開發(fā)虛擬機(jī)時(shí)想的一樣,當(dāng)時(shí)并沒有想到虛擬化帶來云計(jì)算。云服務(wù),虛擬機(jī)也可以簡單地理解為仿真機(jī),就是模擬一臺(tái)硬件計(jì)算機(jī),用戶可以近似像使用一臺(tái)計(jì)算機(jī)那樣操作它,開機(jī),關(guān)機(jī)、增加硬盤、安裝系統(tǒng)、安裝程序等,但是虛擬機(jī)并沒有簡單地停留在這個(gè)層面,它在服務(wù)器集群中的應(yīng)用才將其優(yōu)勢發(fā)揮地淋漓盡致,而在這方面應(yīng)用建設(shè)的領(lǐng)頭羊就是VMware公司,其余還包括Citrix,紅帽公司等等。VMwarevSphere就是該公司為服務(wù)器集群開發(fā)的一套完整的高可用集群解決方案,承擔(dān)起了云計(jì)算平臺(tái)的整個(gè)基礎(chǔ)設(shè)施建設(shè)。因?yàn)閷?shí)際項(xiàng)目建設(shè)的需要,我結(jié)識(shí)了VMware,了解了該公司為企業(yè)信息化建設(shè)提供的各類解決方案,并為之震驚,起初我們只是為了提高網(wǎng)站的高可用性和安全性,在網(wǎng)上找了許多論文和資料后,偶然得知了VMwarevSphere這套解決方案。逐漸掌握了VMwarevSphere軟件的部署和使用后,才有膽量下定決心使用這套工具,當(dāng)時(shí)最新版本VMWare vSphere5.5。
八、HTML+CSS+JS
服務(wù)器集群這個(gè)底層基礎(chǔ)設(shè)施建好之后,這才有精力考慮上層應(yīng)用的建設(shè)。項(xiàng)目建設(shè)實(shí)際需要推動(dòng)了個(gè)人在新技術(shù)領(lǐng)域的探索,由于采用了開源的網(wǎng)站后臺(tái)管理系統(tǒng),因此開發(fā)重點(diǎn)就放在前端,也就是通常所說的HTML+CSS+JS。對于初學(xué)者來說,HTML本身并不是很難,難就難在如何使用良好的編碼習(xí)慣進(jìn)行各種組件的設(shè)計(jì),對于CSS盒模型的理解是個(gè)長期實(shí)踐的過程,經(jīng)歷了場場界面出現(xiàn)的詭異現(xiàn)象之后,才算是對CSS有了切身的認(rèn)識(shí)JS內(nèi)存模型、原型鏈、閉包、作用域也是在大量編程實(shí)踐之后才能有一番清晰地認(rèn)識(shí)。在接連不斷的驚訝和贊嘆中,我認(rèn)識(shí)了Bootstrap、jquery、,AmazeUI、Requires、CofferJS、AngularJS、Backbone、ExtJS、easyUI這些“輪子”,以及Grunt、Webpack、Bower、karma、jazmine等腳手架。雖然沒有技術(shù)大拿發(fā)明輪子的本事,但是能夠使用好大牛們的輪子,完成自己的項(xiàng)目才是最重要的。只要你有著強(qiáng)烈的好奇心和求知欲,你總是可以對這些事物有著一定程度的認(rèn)識(shí),至少再次遇見它們時(shí)就像與“朋友”的重逢,畢竟親切了一些。
九、 Apache+PHP+MySQL
在做ASP的時(shí)候?qū)τ赑HP就有耳聞,但是此時(shí)ASP早已被淘汰,取而代之的是ASP.NET,之所以將目光轉(zhuǎn)向PHP,是因?yàn)镻HP活了起來,大量的成熟框架和項(xiàng)目采用PHP編寫,很可惜微軟從ASP過渡到ASP.NET的過程中,被其他語言搶占了市場,盡管ASP.NET提供了很多優(yōu)秀的語法特性,但是市場的反應(yīng)并不總是那么迅速,不僅是因?yàn)閷W(xué)習(xí)需要一個(gè)過程,而且整個(gè)項(xiàng)目團(tuán)隊(duì)重新形成能力需要更加漫長的過程,這個(gè)過程需要大量的資本投入的。就像WPF那樣優(yōu)秀的技術(shù)一樣,并沒有得到很好的市場青睞,對于商業(yè)活動(dòng)來說,投資收益率始終是一個(gè)根本問題。因?yàn)殚_源的項(xiàng)目采用了成熟豐富的 Symfony框架,讓我對于PHP框架有了第一直觀印象。在隨后的自建項(xiàng)目中,采用輕量級國產(chǎn)框架Thinkphp以及自己編寫的MVC框架。
十、網(wǎng)絡(luò)技術(shù)
既然是做互聯(lián)網(wǎng)應(yīng)用,不學(xué)習(xí)網(wǎng)絡(luò)技術(shù)怎么行,為了系統(tǒng)的學(xué)習(xí)網(wǎng)絡(luò)技術(shù),報(bào)考了網(wǎng)絡(luò)工程師資格認(rèn)證考試,一方面是為了督促自己的學(xué)習(xí),另一方面也是檢驗(yàn)自己的學(xué)習(xí)效果。剛好結(jié)合項(xiàng)目的需要,對網(wǎng)絡(luò)布線、IPSEC VPN搭建、交換機(jī)和路由器的配置有了一定程度掌握,根據(jù)項(xiàng)目需要設(shè)計(jì)了 Web radius認(rèn)證審計(jì)方案,用以提高網(wǎng)絡(luò)安全管理能力。此外,通過使用思科Packet仿真工具,對數(shù)據(jù)報(bào)文進(jìn)行分析,總結(jié)編寫了幾篇關(guān)于對ARP、OSPF、TCP分析的文章。
十一、HTTP
隨著web程序開發(fā)的逐漸深入,我覺得有必要深入學(xué)習(xí)一下HTTP,這對提高web程序的安全性有很大助益。HTTP協(xié)議的重點(diǎn)在于報(bào)文的頭部,為協(xié)議內(nèi)部機(jī)制的實(shí)現(xiàn),而報(bào)文的主體則是用戶數(shù)據(jù),不需要過多關(guān)注。《HTTP圖解》是一本非常不錯(cuò)的書,配合的圖文對有些工作流程機(jī)制解釋的比較直觀易懂。學(xué)完之后對HTTP的管線化通信機(jī)制也有了一定的了解,并通過 wireshark抓包工具進(jìn)行了驗(yàn)證性的分析。
十二、 Unity3D和 Webgl
Unity3D出現(xiàn)大大降低了三維游戲的開發(fā)難度,就像工具最初被造出來的時(shí)候,它的用途還是非常小的,但是在使用者的大量實(shí)踐中,工具的用途被推向了更廣的天地。Unity3D作為一款三維游戲開發(fā)引擎,并不僅局限于游戲開發(fā),像現(xiàn)在比較火的虛擬現(xiàn)實(shí)軟件,就是采用 Unity3D進(jìn)行開發(fā)的。當(dāng)然,我也是因?yàn)轫?xiàng)目需要才學(xué)習(xí) Unity3D的開發(fā)。計(jì)算機(jī)圖形學(xué)是基礎(chǔ),雖然整個(gè)圖形效果的實(shí)現(xiàn)被 Unity3D完全封裝了起來,但是計(jì)算機(jī)圖形學(xué)的一些基礎(chǔ)知識(shí)還是要有的。 Webgl技術(shù)是瀏覽器端提供的種三維渲染機(jī)制,也是隨著這幾年Web應(yīng)用的流行才逐漸被推行出來的一種技術(shù)標(biāo)準(zhǔn),已經(jīng)被各大瀏覽器廠商納入進(jìn)去, Unity3D針對BS風(fēng)格的程序也推出了一套瀏覽器端的asm.js三維引擎組件。目前有著很好的應(yīng)用前景,作為數(shù)據(jù)可視化的支持技術(shù)受到行業(yè)青睞,像百度的 chart、谷歌地球等都建立在 Webgl技術(shù)之上。
十三、物聯(lián)網(wǎng)
隨著移動(dòng)互聯(lián)網(wǎng)的普及,物聯(lián)網(wǎng)似乎又迎來了自己的春天仿佛現(xiàn)在的我們比過去任何時(shí)候要更加接近物聯(lián)網(wǎng),物聯(lián)網(wǎng)、智能時(shí)代是目前最炙手可熱的寵兒。從嵌入式開始,輾轉(zhuǎn)多個(gè)行業(yè),最終又回到了嵌入式。這幾年來,我不斷尋找著出路,在技術(shù)上過著顛沛流離生活,卻始終沒有一個(gè)好的歸宿。朋友多次勸誡我,要找準(zhǔn)一個(gè)方向深深地扎下根去。可是現(xiàn)實(shí)中的種種情況和變故,讓人難以有清醒的頭腦、清晰的認(rèn)識(shí)、足夠的精力,以及可以努力一輩子方向,在中國這片人才富饒的疆土上,市場的競爭愈演愈烈,全世界互聯(lián)網(wǎng)焦點(diǎn)都在我們這里,大牛們層出不窮,發(fā)明的輪子數(shù)不勝數(shù),Hadoop、Hive、 Spark等大數(shù)據(jù)開源項(xiàng)目如雨后春筍,各類開發(fā)組件、自動(dòng)化工具、生態(tài)系統(tǒng)層出不窮微服務(wù)架構(gòu)、自動(dòng)編排、 Devops 等一系列新的技術(shù)標(biāo)準(zhǔn)、框架,被戲稱為“代碼搬運(yùn)工”的碼農(nóng)更是多如牛毛,我有時(shí)在想,這種激烈的競爭導(dǎo)致的就是,人們本可以在10年時(shí)間里賺的錢,都在1年內(nèi)賺完了,市場的價(jià)格機(jī)制并不總能如此快速地匹配實(shí)際的供需情況,很多矛盾在時(shí)間維度上就被極度壓縮,最終導(dǎo)致整個(gè)市場不可持續(xù)、不穩(wěn)定,看似外表繁華實(shí)際上是一種“虛胖”大多數(shù)程序員并沒有人們想象中那么好,一方面是由于他們自身技術(shù)實(shí)力的原因,另一方面是由于外部激烈競爭環(huán)境的原因。
人生的重大轉(zhuǎn)折總是因?yàn)橐恍?biāo)志性的事情。智能化建立在大數(shù)據(jù)基礎(chǔ)之上,原始數(shù)據(jù)的獲取必定要借助于物聯(lián)網(wǎng),這次下定決心再次投身于物聯(lián)網(wǎng),也算是為自己未來事業(yè)的發(fā)展定下一個(gè)總基調(diào),雖然不知道物聯(lián)網(wǎng)時(shí)代的全面來臨是什么時(shí)候,也不知道物聯(lián)網(wǎng)時(shí)代能夠持續(xù)多久,但是有方向總比沒有方向強(qiáng)吧。幾年沒摸的技術(shù)都有些手生了,先清理一下灰塵、除除銹蝕,再說吧。
-
編程
+關(guān)注
關(guān)注
88文章
3686瀏覽量
95046 -
程序員
+關(guān)注
關(guān)注
4文章
954瀏覽量
30330
發(fā)布評論請先 登錄
如何成為一名合格的KaihongOS北向應(yīng)用開發(fā)工程師
阿里云升級通義靈碼AI程序員,全面上線
TMS320C55x DSP CPU程序員參考補(bǔ)充

UCD3138A64/UCD3138128程序員手冊

機(jī)械革命發(fā)布CODE AI程序員本
Linux驅(qū)動(dòng)程序程序員指南

AI編程工具會(huì)不會(huì)搶程序員飯碗
第五屆長沙·中國1024程序員節(jié)開幕
90后程序員的職業(yè)成長漫談

京東上萬程序員都AI用它!

程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎(jiǎng)

程序員節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

助力程序員告別困擾已久的夢魘-Bug

評論