做上位機開發(fā),需要懂電氣和硬件相關(guān)知識嗎?上位機其實就是軟件,從職責上來說,只需要懂軟件開發(fā)相關(guān)知識就可以了。但是,在現(xiàn)實工作當中,如果一個上位機軟件工程師對電氣和硬件一竅不通,有很大概率會被同事瞧不起,遇到脾氣不好的,很有可能還會挨罵!

我其實最開始也不是做上位機軟件開發(fā)的,最開始我做的是游戲開發(fā)和企業(yè)軟件開發(fā),后來轉(zhuǎn)上位機開發(fā)之后,就遇到了問題,那就是對電氣和硬件一竅不通??墒牵菚r的我認為,軟件開發(fā)就是軟件開發(fā),根本不需要懂電氣和硬件相關(guān)知識,只要給我一個SDK和API文檔,不管是任何硬件我都是能對接的。
我這么想其實本身沒有毛病,但是,實際工作中,如果作為一名上位機開發(fā)工程師,不懂電氣和硬件知識,那么跟同事之間產(chǎn)生矛盾,那是肯定的!
舉兩個比較經(jīng)典的例子吧,那是我剛剛開始做上位機開發(fā)工程師的時候遇到的事情,以及我另外一個同事遇到的事情。
有一次,我們公司一個項目需要用到掃碼槍,同事就問我選擇什么樣子的掃碼槍,于是我跟同事說:“串口的就行!”。
我的這位同事是搞PLC的,也負責公司設(shè)備的一些電氣設(shè)計和硬件選型,從電氣角度,他問了我一個問題:“那是選RS485的還是RS232的?”
此時,我對于RS485和RS232的概念還比較模糊,但是,從編程的角度來說,我覺得不管是RS485還是RS232對于一個程序員來說,并沒有什么太大的區(qū)別。
于是,我跟同事說:“這個你決定!”
結(jié)果,同事不高興了,然后回我說:“什么叫我決定,這個不應(yīng)該是你來決定的嗎?”
這句話屬實把我搞懵了,我跟同事解釋半天,想要給他灌輸一個概念,那就是從軟件角度這個掃碼槍我只管接收掃碼槍傳過來的信號,而且,在代碼里面串口通訊接口都是通用的,并不區(qū)分RS485還是RS232。
當然了,我這么說難免會給他帶來一種“甩鍋”的想法,最后,我查了相關(guān)資料以后還是跟他說:“RS485和RS232只是電氣協(xié)議,我不太懂,跟我軟件關(guān)系不大!具體選型你自己選,我根據(jù)文檔對接就行!”
同事聽我這么說,然后就說:“RS485和RS232這么基礎(chǔ)的協(xié)議你都不懂?你搞什么哦!”
被他這么一問,我當時就有點心虛了,但是又覺得真跟我沒關(guān)系,所以只能強硬得回了一句:“我做軟件開發(fā)的,需要知道嗎?”
同事為了不跟我浪費口舌,只能悻悻走開,但是他顯然覺得我不應(yīng)該把這個事情交給他去決定!
這只是電氣協(xié)議和軟件協(xié)議之間的碰撞,軟件和硬件之間的碰撞,更多的還是配合問題。
有一次,我們公司某個設(shè)備需要用到一個電子秤,這時候硬件部門的同事就找到了我們公司負責開發(fā)上位機軟件的同事小高,讓他去根據(jù)要求選擇合適的電子秤。
小高接到了這個任務(wù)后立馬拒絕,理由也很簡單,那就是他作為軟件工程師,主要負責的是寫軟件,硬件選型這個事情不應(yīng)該由他負責,而且,他對于電子秤的一些比較專業(yè)的參數(shù)也不懂,怕出錯!
后來,硬件部門的同事就和軟件部門的小高吵了起來,兩個人爭執(zhí)到了面紅耳赤,最后,還是硬件部門的同事妥協(xié)。
但是,硬件部門的同事雖然妥協(xié)了,可還是撂下一句話:“我選好電子秤,你敢保證你就一定能對接?”
小高此時那股勁上來了,斬釘截鐵地說:“只要你給我通訊文檔,我就一定能接!”,后來,兩個人因此就杠上了。
后來,小高在這個事情上吃了很大的虧,雖然硬件部門的同事選的電子秤有完整的SDK和API文檔,但是,硬件部門選的這個電子秤的SDK和API封裝得其實并不好,想要實現(xiàn)公司的需求,還得知道電子秤的底層是怎么運行的,所以,小高在這個電子秤上浪費了很多時間。
總結(jié)
通過這兩件事情,我想說的是,雖然作為一名程序員,我們接觸最多的雖然是代碼,但是,代碼其實也是為業(yè)務(wù)提供服務(wù)的,原則上說,不會電氣和硬件相關(guān)知識,并不會影響敲代碼,但是,會影響溝通。
就像我跟同事討論串口相關(guān)的問題,同事不懂代碼,我不懂電氣,致使我們倆之間誰都沒有說服對方,這種事情一旦發(fā)生的多了,最終會影響同事之間的關(guān)系,久而久之,會互相排斥對方,導(dǎo)致不喜歡溝通或者拒絕溝通。
我覺得,最和諧的方式,就是雙方都懂一些對方的相關(guān)知識,并不需要專業(yè),只需要知道就行的那種。
比如我的同事小高和硬件部門的同事,其實,最佳的配合方法是硬件部門的同事對電子秤進行選型以后,先將API文檔給小高看一下,看看對接難度,如果對接難度較大的話,有其他可選替代產(chǎn)品,則換一下就可以了!
說白了,作為上位機開發(fā)工程師,懂一些電氣和硬件相關(guān)知識,能夠避免溝通產(chǎn)生障礙,也能盡量避免和其他同事產(chǎn)生代溝。
熱門跟貼