物聯網工程專業畢業生是否可以從事程序員崗位?
首先給出結論:完全可以。
接下來說一下理由。我們先看一下某高校的物聯網工程專業的核心課程設置,如下圖:
這些主干課程分為這樣幾類:
1、 計算機原理類課程:微機原理與接口技術、計算機網絡、數字/模擬電子技術、電路分析。與計算機科學與技術專業的計算機原理類課程基本一致;
2、 軟件開發語言類課程:C語言程序設計、Java程序設計、Python語言程序設計。與計算機科學與技術專業的語言類課程基本一致;
3、 軟件開發基礎類課程:數據結構與算法、信息安全導論。這一類課程,相對于計算機科學與技術專業,有些差距。至少缺少操作系統原理、數據庫系統原理與技術等核心課程
4、 領域軟件設計開發類課程:基于Web的編程、物聯網移動應用開發。對于后一個課程,要說明一下,通用的移動應用開發與物聯網移動應用開發本從技術棧的角度無二致,個人猜測這樣命名更多是為了凸顯專業性。也即:覆蓋了當前主流的web應用開發、移動應用開發兩大領域。
通過學習上述的1~4類課程,可以說,與計算機科學與技術專業的學生的知識結構差別已非常小,已經具備了做程序員的能力。建議個人至少需要補充下操作系統、數據庫系統這兩個課程(不排除此專業學校是有這兩門選修課的),要知道這兩門課程對于做程序員極為重要。
進一步分析,對于這個專業的課程,還有這樣幾個類別:
1、 單片機及嵌入式系統類課程:單片機與嵌入式系統、ARM處理器與設計、微處理器與機器人
2、 物聯網通信協議類課程:無線傳感器網絡
這兩類課有什么用處呢?它們與前述的軟件開發語言類課程、軟件開發基礎類課程結合,將使學生具備單片機/嵌入式軟件開發的能力。
所謂單片機/嵌入式軟件,是指運行在資源受限的計算類設備上的軟件。這樣說有點繞,舉例說明:對于溫濕度傳感器、智能門鎖、攝像頭等等設備,都是需要軟件支撐的。這一類軟件的開發,由于受設備的CPU/MCU、內存、存儲能力差的限制,與常見的跑在服務器上的軟件在設計及開發上是有一些差別的。
也就是說,對于物聯網工程專業的學生,其實更具備單片機/嵌入式軟件研發的優勢。當然,個人可以根據個人的興趣,在擇業時選擇是從事大型軟件(服務器上的)還是單片機/嵌入式軟件研發工作。
大家若有什么問題,可以在評論區進一步追問。謝謝!