做上位機開發,需要懂電氣和硬件相關知識嗎?上位機其實就是軟件,從職責上來說,只需要懂軟件開發相關知識就可以了。但是,在現實工作當中,如果一個上位機軟件工程師對電氣和硬件一竅不通,有很大概率會被同事瞧不起,遇到脾氣不好的,很有可能還會挨罵!
我其實最開始也不是做上位機軟件開發的,最開始我做的是游戲開發和企業軟件開發,后來轉上位機開發之后,就遇到了問題,那就是對電氣和硬件一竅不通。可是,那時的我認為,軟件開發就是軟件開發,根本不需要懂電氣和硬件相關知識,只要給我一個SDK和API文檔,不管是任何硬件我都是能對接的。
我這么想其實本身沒有毛病,但是,實際工作中,如果作為一名上位機開發工程師,不懂電氣和硬件知識,那么跟同事之間產生矛盾,那是肯定的!
舉兩個比較經典的例子吧,那是我剛剛開始做上位機開發工程師的時候遇到的事情,以及我另外一個同事遇到的事情。
有一次,我們公司一個項目需要用到掃碼槍,同事就問我選擇什么樣子的掃碼槍,于是我跟同事說:“串口的就行!”。
我的這位同事是搞PLC的,也負責公司設備的一些電氣設計和硬件選型,從電氣角度,他問了我一個問題:“那是選RS485的還是RS232的?”
此時,我對于RS485和RS232的概念還比較模糊,但是,從編程的角度來說,我覺得不管是RS485還是RS232對于一個程序員來說,并沒有什么太大的區別。
于是,我跟同事說:“這個你決定!”
結果,同事不高興了,然后回我說:“什么叫我決定,這個不應該是你來決定的嗎?”
這句話屬實把我搞懵了,我跟同事解釋半天,想要給他灌輸一個概念,那就是從軟件角度這個掃碼槍我只管接收掃碼槍傳過來的信號,而且,在代碼里面串口通訊接口都是通用的,并不區分RS485還是RS232。
當然了,我這么說難免會給他帶來一種“甩鍋”的想法,最后,我查了相關資料以后還是跟他說:“RS485和RS232只是電氣協議,我不太懂,跟我軟件關系不大!具體選型你自己選,我根據文檔對接就行!”
同事聽我這么說,然后就說:“RS485和RS232這么基礎的協議你都不懂?你搞什么哦!”
被他這么一問,我當時就有點心虛了,但是又覺得真跟我沒關系,所以只能強硬得回了一句:“我做軟件開發的,需要知道嗎?”
同事為了不跟我浪費口舌,只能悻悻走開,但是他顯然覺得我不應該把這個事情交給他去決定!
這只是電氣協議和軟件協議之間的碰撞,軟件和硬件之間的碰撞,更多的還是配合問題。
有一次,我們公司某個設備需要用到一個電子秤,這時候硬件部門的同事就找到了我們公司負責開發上位機軟件的同事小高,讓他去根據要求選擇合適的電子秤。
小高接到了這個任務后立馬拒絕,理由也很簡單,那就是他作為軟件工程師,主要負責的是寫軟件,硬件選型這個事情不應該由他負責,而且,他對于電子秤的一些比較專業的參數也不懂,怕出錯!
后來,硬件部門的同事就和軟件部門的小高吵了起來,兩個人爭執到了面紅耳赤,最后,還是硬件部門的同事妥協。
但是,硬件部門的同事雖然妥協了,可還是撂下一句話:“我選好電子秤,你敢保證你就一定能對接?”
小高此時那股勁上來了,斬釘截鐵地說:“只要你給我通訊文檔,我就一定能接!”,后來,兩個人因此就杠上了。
后來,小高在這個事情上吃了很大的虧,雖然硬件部門的同事選的電子秤有完整的SDK和API文檔,但是,硬件部門選的這個電子秤的SDK和API封裝得其實并不好,想要實現公司的需求,還得知道電子秤的底層是怎么運行的,所以,小高在這個電子秤上浪費了很多時間。
總結
通過這兩件事情,我想說的是,雖然作為一名程序員,我們接觸最多的雖然是代碼,但是,代碼其實也是為業務提供服務的,原則上說,不會電氣和硬件相關知識,并不會影響敲代碼,但是,會影響溝通。
就像我跟同事討論串口相關的問題,同事不懂代碼,我不懂電氣,致使我們倆之間誰都沒有說服對方,這種事情一旦發生的多了,最終會影響同事之間的關系,久而久之,會互相排斥對方,導致不喜歡溝通或者拒絕溝通。
我覺得,最和諧的方式,就是雙方都懂一些對方的相關知識,并不需要專業,只需要知道就行的那種。
比如我的同事小高和硬件部門的同事,其實,最佳的配合方法是硬件部門的同事對電子秤進行選型以后,先將API文檔給小高看一下,看看對接難度,如果對接難度較大的話,有其他可選替代產品,則換一下就可以了!
說白了,作為上位機開發工程師,懂一些電氣和硬件相關知識,能夠避免溝通產生障礙,也能盡量避免和其他同事產生代溝。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.