程式設計師職業測試

  程式設計師英文Programmer是從事程式開發、維護的專業人員。一般將程式設計師分為程式設計人員和程式編碼人員,但兩者的界限並不非常清楚,特別是在中國。而且程式設計師是個很費腦的工作,那你是程式設計師裡面的保守派還是自由派,來測試一下吧,下面是小編為你整理相關的內容,希望大家喜歡!

  程式設計師小測試之你是保守派還是自由派

  一共有十個問題,每個問題都有 A 和 B 兩個選項,請選擇你的答案。

  問題一:Bug 還沒修復,軟體能不能上線?

  A軟體釋出前,應該編寫完整測試,充分除錯,儘量修復所有bug。

  B不管多努力,bug 總是無法避免的,如果性質不是很嚴重,可以先上線,根據反饋再除錯和修補。

  問題二:容易出錯的特性,是否應該用在程式中?

  A很多語言的高階特性都是很容易出錯和危險的,應該禁止用在程式碼裡。沒有這些特性我們一樣可以進行開發,程式碼也會因此變得更安全。

  B聰明的程式設計師有學習動力,知道怎麼可以解決問題。為了避免出錯,就立下一堆規矩,完全不可取。

  問題三:新的語言或語法是否應該有所限制?

  A公司裡可以使用的語言數量應該受到限制,這樣萬一系統在半夜或是聖誕夜掛掉的時候,值班的人就不需要去臨時抱佛腳學習新語法了。另外,也應該禁止改變語言原始定義的語法,比如嚴格限制操作符過載和超程式設計。

  B程式設計師的學習能力是驚人的,沒必要"保護"程式設計師遠離新語法,只要有需要,他們自然能學會。

  問題四:靜態檢查是否必要?

  A編譯器的安全檢查很重要,不能進行靜態檢查的程式碼通常是不可接受的。

  B程式碼應該短小精悍,靜態檢查工具可能會讓程式碼變得又臭又長。

  問題五:資料是否一定要有格式定義?

  A資料必須遵循事先定義好的格式。比如,關係型資料庫必須滿足第三正規化或UML,XML都必須有DTD,NoSQL資料庫必須有單獨的格式定義標明所有允許的鍵,以及相應的值型別。

  B嚴格的資料定義只會妨礙靈活性,延緩開發程序。更好的策略是寫一些註釋,或者只定義一部分,甚至先略過它。因為在大量使用者案例出現之前,沒人知道資料可能會是什麼樣,程式碼先行才是正確的做法。

  問題六:公共介面是否應該靜態化?

  A公共介面必須嚴格建模。資料絕不可以是無型別的,所有的輸入輸出實體都必須完整顯式地定義為可以靜態檢查的模型。

  B公共介面應該儘量簡單,向前向後都相容。建模時太過縝密的話,其實只是在猜測介面會怎麼演化。

  問題七:是否可以留有方便修改的後門?

  A生產系統裡絕不允許存在危險或有風險的後門。想要通過偵錯程式、SSH、或任何介面,連線到工作中的生產系統,去修改執行時的程式碼或資料,應該是不可能的。

  B系統的靈活性,有時能決定客戶或合同是歸你還是歸對手。至於生產系統的安全隱患,可以通過日誌、監控、稽核等手段來緩解。事實證明,很多有最高許可權後門和Shell 介面的大型系統,都做到了在控制風險的同時具備執行靈活性。

  問題八:急需的但有安全隱患的系統,是否可以上線?

  A假如一個元件的安全性存在任何疑慮,那它就不能釋出上線,團隊怎麼哀求都沒用。

  B企業要保持競爭力,唯有不斷有意識地去承擔風險。就算不去冒險,其他系統急需這個系統,線上可能還是會出問題,既然如此那還不如冒險一試。

  問題九:程式碼執行較慢,是否要去解決?

  A快比慢好。沒人喜歡慢的程式碼,所以程式碼的效能一定要好。從一開始,就要有效能意識,那些比較慢的語言和庫都應該避免使用。

  B不要過早優化,程式碼先跑起來再說。正確性比效能重要,而原型的快速迭代又比正確性更重要。只有當客戶將效能列為首要問題時,再進行優化。

  問題十:你最認可的語言是哪一個?

  AC++、Java、C#、D、Go、Clojure、Ada、Ocaml、Eiffel、Clojure、Erlang、Pascal、Haskell、SML。

  BC、Objective-C、JavaScript、Visual Basic、Lua、Scheme、Python、Common Lisp、Smalltalk/Squeak、Perl、Ruby、PHP,Bash。

  測試結果顯示你是保守派還是自由派

  如果你的答案有超過一半的 A,你就屬於保守派程式設計師。你非常重視軟體安全和可靠性,厭惡風險,提倡嚴格管理,認為有效的規章制度是軟體質量的保證。

  如果你的答案有超過一半的 B,你就屬於自由派程式設計師。你重視軟體開發的靈活性,提倡給予程式設計師足夠的自由,只要新功能順利上線,可以接受一定的風險和瑕疵。

  保守派或自由派,都沒問題,都是可取的。問題是一支和諧的團隊最好是由單一人群組成,要麼全是自由派,要麼全是保守派,免得雙方不停地發生理念上的衝突。