【廣告】
所以,我們不難得出兩點結論:
1.現(xiàn)有的軟測工程師大多為培訓出身;
2.也存在五分之一非培訓出身的軟測工程師,排除本身就有基礎的大學專業(yè)學習和從開發(fā)轉行的,有不到十分之一的自學成才的軟測工程師。
那么這樣看來,報班培訓還是蠻靠譜的。但是,必須要說清楚的是,報培訓班固然靠譜,但并不是報什么培訓班都靠譜。
這也好理解,郭德綱說過:“人分三六九等,肉分五花三層”,餓的時候吃東西是靠譜的,但不是吃什么都是靠譜的。同理,培訓班也是分檔次的,有好的,有次的,也有那個差不多中不溜的.....
“你們是如何測試軟件的?”
理想情況下,驗證代碼質量應該是單元測試、人工測試以及自動化測試的結合。
危險信號:“我們都寫不出 bug,哈哈?!?→ 那些人正是會寫出 bug 的人。
“你們使用什么樣的版本控制系統(tǒng)?”
版本控制系統(tǒng)對于協(xié)作極其有用,在職業(yè)環(huán)境下沒有理由不使用。
危險信號 #1:“額,版本控制系統(tǒng)?” → 快跑,跑得越遠越好。
永遠記得使用版本控制。
危險信號 #2:“<插入不的或者定制的 VCS>” → 這表明他們很有可能沒有跟上時代并且很久沒有升級自己的基礎設施了。
好的行業(yè)代碼
好的行業(yè)代碼有以下屬性,依序是:可讀性,因為代碼用來讀和維護的頻次要高于寫。代碼的意圖必須清晰,讓其他開發(fā)者在多年后依然理解。防御性,就是要遵循防御性編碼的實踐。防御性編碼本身就是一個課題,不過其要義是:你必須確保自己所寫的類和方法的不恰當使用不會導致你的代碼搞得軟件都崩潰。優(yōu)化,位列清單的后未知,因為大多數(shù)時候你并不需要真正去擔心這個。這并不意味著你應該編寫糟糕代碼,在存在線性解決方案的情況下以O(n3)的效率去做某個東西。但開發(fā)者通??释麌L試并且會在不需要的情況下過度優(yōu)化,卻犧牲了代碼的可讀性和防御性。你永遠都應該能夠證明犧牲了這些屬性的特定優(yōu)化是值得的?,F(xiàn)在你了解了如何去編寫良好的行業(yè)代碼了。好的行業(yè)代碼好的行業(yè)代碼有以下屬性,依序是:可讀性,因為代碼用來讀和維護的頻次要高于寫。
編碼的工作你不會干太多的
說出來也許有點令人吃驚,但是大多數(shù)時候你都不用寫新代碼,而是相反,要做:調試讀已有代碼開會或者寫電子郵件研究該怎么做以便不用寫代碼因此編碼以外的技能對你的職業(yè)一樣關鍵。
調試和閱讀代碼調試遠不僅僅是用打印語句。一切使用廣泛的語言和技術棧都有各種強大的工具。學會使用它們,因為這些會讓調試輕而易舉,節(jié)省你無數(shù)的時間。理解代碼庫。大多數(shù)技術棧都有某種代碼圖譜生成工具來幫助你理解代碼庫的結構。企業(yè)級的 IDE 通常都內置了那種功能。你還可以利用 ReSharper、grep 或者 Sourcegraph 之類的工具來探索代碼。理解產(chǎn)品。你會對居然有這么多開發(fā)者在試圖“修復”軟件前不知道軟件應該是怎么工作的感到驚訝。先看看文檔再說吧。筆記:開會一定要記筆記,要致力于改進現(xiàn)有文檔并且建立個人的知識庫。