程序員職業(yè)測試
程序員(英文Programmer)是從事程序開發(fā)、維護(hù)的專業(yè)人員。一般將程序員分為程序設(shè)計人員和程序編碼人員,但兩者的界限并不非常清楚,特別是在中國。而且程序員是個很費腦的工作,那你是程序員里面的保守派還是自由派,來測試一下吧,下面是學(xué)習(xí)啦小編為你整理相關(guān)的內(nèi)容,希望大家喜歡!
程序員小測試之你是保守派還是自由派
一共有十個問題,每個問題都有 A 和 B 兩個選項,請選擇你的答案。
問題一:Bug 還沒修復(fù),軟件能不能上線?
(A)軟件發(fā)布前,應(yīng)該編寫完整測試,充分調(diào)試,盡量修復(fù)所有bug。
(B)不管多努力,bug 總是無法避免的,如果性質(zhì)不是很嚴(yán)重,可以先上線,根據(jù)反饋再調(diào)試和修補。
問題二:容易出錯的特性,是否應(yīng)該用在程序中?
(A)很多語言的高級特性都是很容易出錯和危險的,應(yīng)該禁止用在代碼里。沒有這些特性我們一樣可以進(jìn)行開發(fā),代碼也會因此變得更安全。
(B)聰明的程序員有學(xué)習(xí)動力,知道怎么可以解決問題。為了避免出錯,就立下一堆規(guī)矩,完全不可取。
問題三:新的語言或語法是否應(yīng)該有所限制?
(A)公司里可以使用的語言數(shù)量應(yīng)該受到限制,這樣萬一系統(tǒng)在半夜或是圣誕夜掛掉的時候,值班的人就不需要去臨時抱佛腳學(xué)習(xí)新語法了。另外,也應(yīng)該禁止改變語言原始定義的語法,比如嚴(yán)格限制操作符重載和元編程。
(B)程序員的學(xué)習(xí)能力是驚人的,沒必要"保護(hù)"程序員遠(yuǎn)離新語法,只要有需要,他們自然能學(xué)會。
問題四:靜態(tài)檢查是否必要?
(A)編譯器的安全檢查很重要,不能進(jìn)行靜態(tài)檢查的代碼通常是不可接受的。
(B)代碼應(yīng)該短小精悍,靜態(tài)檢查工具可能會讓代碼變得又臭又長。
問題五:數(shù)據(jù)是否一定要有格式定義?
(A)數(shù)據(jù)必須遵循事先定義好的格式。比如,關(guān)系型數(shù)據(jù)庫必須滿足第三范式或UML,XML都必須有DTD,NoSQL數(shù)據(jù)庫必須有單獨的格式定義(標(biāo)明所有允許的鍵,以及相應(yīng)的值類型)。
(B)嚴(yán)格的數(shù)據(jù)定義只會妨礙靈活性,延緩開發(fā)進(jìn)程。更好的策略是寫一些注釋,或者只定義一部分,甚至先略過它。因為在大量用戶案例出現(xiàn)之前,沒人知道數(shù)據(jù)可能會是什么樣,代碼先行才是正確的做法。
問題六:公共接口是否應(yīng)該靜態(tài)化?
(A)公共接口必須嚴(yán)格建模。數(shù)據(jù)絕不可以是無類型的,所有的輸入輸出實體都必須完整顯式地定義為可以靜態(tài)檢查的模型。
(B)公共接口應(yīng)該盡量簡單,向前向后都兼容。建模時太過縝密的話,其實只是在猜測接口會怎么演化。
問題七:是否可以留有方便修改的后門?
(A)生產(chǎn)系統(tǒng)里絕不允許存在危險或有風(fēng)險的后門。想要通過調(diào)試器、SSH、或任何接口,連接到工作中的生產(chǎn)系統(tǒng),去修改運行時的代碼或數(shù)據(jù),應(yīng)該是不可能的。
(B)系統(tǒng)的靈活性,有時能決定客戶或合同是歸你還是歸對手。至于生產(chǎn)系統(tǒng)的安全隱患,可以通過日志、監(jiān)控、審核等手段來緩解。事實證明,很多有最高權(quán)限后門和Shell 接口的大型系統(tǒng),都做到了在控制風(fēng)險的同時具備運行靈活性。
問題八:急需的但有安全隱患的系統(tǒng),是否可以上線?
(A)假如一個組件的安全性存在任何疑慮,那它就不能發(fā)布上線,團隊怎么哀求都沒用。
(B)企業(yè)要保持競爭力,唯有不斷有意識地去承擔(dān)風(fēng)險。就算不去冒險,其他系統(tǒng)急需這個系統(tǒng),線上可能還是會出問題,既然如此那還不如冒險一試。
問題九:代碼運行較慢,是否要去解決?
(A)快比慢好。沒人喜歡慢的代碼,所以代碼的性能一定要好。從一開始,就要有性能意識,那些比較慢的語言和庫都應(yīng)該避免使用。
(B)不要過早優(yōu)化,代碼先跑起來再說。正確性比性能重要,而原型的快速迭代又比正確性更重要。只有當(dāng)客戶將性能列為首要問題時,再進(jìn)行優(yōu)化。
問題十:你最認(rèn)可的語言是哪一個?
(A)C++、Java、C#、D、Go、Clojure、Ada、Ocaml、Eiffel、Clojure、Erlang、Pascal、Haskell、SML。
(B)C、Objective-C、JavaScript、Visual Basic、Lua、Scheme、Python、Common Lisp、Smalltalk/Squeak、Perl、Ruby、PHP,Bash。
測試結(jié)果顯示你是保守派還是自由派
如果你的答案有超過一半的 A,你就屬于保守派程序員。你非常重視軟件安全和可靠性,厭惡風(fēng)險,提倡嚴(yán)格管理,認(rèn)為有效的規(guī)章制度是軟件質(zhì)量的保證。
如果你的答案有超過一半的 B,你就屬于自由派程序員。你重視軟件開發(fā)的靈活性,提倡給予程序員足夠的自由,只要新功能順利上線,可以接受一定的風(fēng)險和瑕疵。
保守派或自由派,都沒問題,都是可取的。問題是一支和諧的團隊最好是由單一人群組成,要么全是自由派,要么全是保守派,免得雙方不停地發(fā)生理念上的沖突。