面試問題:軟體工程與傳統工程有什麼不同? - hillelogram

banq發表於2019-08-19

我現在需要面試12位工程師,當然我已經瞭解了傳統工程和軟體工程的差異,學習了很多知識,但是當我真正進行面試時,遇到障礙,現在暫停面試了,軟體與傳統工程有什麼不同?

1. 工程不是單一的。我們通常將軟體與建築橋樑進行比較,但這只是土木工程與電氣,化學和工業工程師所做的完全不同。有一些相似之處,但也有很多種。

2. 工程領域也不是單一的。我和3位化學工程師談過,他們作為工程師的工作非常不同。有些人像我們想象的那樣苛刻和“嚴謹”。有些人“把它全部扔進鍋裡看看會發生什麼。” 這都是工程!

3. 特別是在製作新東西,使現有的東西變得更好,維護,將經過驗證的技術付諸實踐之間存在很多差異......兩個軟體人員可以做很多不同的事情。這與傳統工程相同。

4. 我們的軟體民眾有一些​​完全正確的概念。我們可以在大多數領域中以比人們更快的速度迭代軟體。我從傳統工程師那裡聽到的最快的是每日迭代。我們可以更快地推動修復。這有很大的不同。

5. 另一個事實:限制對我們來說不是一個問題。幾乎每個傳統工程都有一套他們必須預算的限制:功率,熱量,體積,質量,流量......我們的約束(大多數)不是問題。而且我們不必擔心幾何或物理空間。

6. 我們認為軟體有很多特別之處,但對所有工程都是通用的。需求一直在變化。人們一直有實施問題。人們關注的是兩個設計:他們試圖做什麼,以及他們實際做了什麼。

7. 另一個誤解是:“傳統工程師正在做現有工作,所有軟體都是新的,不可預測的。” 一位面試者對此表示不滿。他認為他在軟體領域工作比他的傳統·工程工作更可預測,更具有可知性。其實,所有工程師都在不斷遇到新問題。

8.  我最喜歡的例子來自化學工程師。你可能會在你的產品中使用化學反應,但是當你試圖將它擴大2倍時,新科學就會接管。而當你將它擴充套件2倍以上時,它會再次發生。一切都必須是每次都重新思考並重新嘗試。

9. 第三個誤解:“軟體規則變化比其他領域快得多。” 在某些情況下,這是真的,在其他情況下並非如此。在某些情況下,軟體更穩定:不會出現代工廠告訴你:“這個月我們生產的產量是一半,雜質是雙倍”

10. 質量方面,我們都知道,相比容忍有缺陷的渦輪機,我們更能容忍有Bug的軟體。部分原因在於,傳統在設計和要求方面投入了大量資金:你可能會提升計劃,產品才能更好。

11. 但軟體在很多方面也做得更好。特別是,我們在流程上看起來好多了。我們更願意建立能夠提高工程設計能力的工具,部分原因是我們使用相同的技能來製作工具和產品。最好的例子是版本控制。

12. 幾乎所有與我交談的人都非常嫉妒版本控制。他們希望他們在傳統工程中擁有它。與拉取請求和自動化測試相同。雖然傳統制造出更好的產品,但由於工具不良和流程不佳,每單位時間的效率要低得多。

13. 由於這個原因,我與之交談的大多數人在軟體方面工作得比在傳統方面更開心。更好的工作環境,更好的工作流程,更少的慣性和腐蝕。但大多數人也錯過了專門的需求和設計時間,最重要的是 - 質量的社會重要性。

14. 幾乎我所談過的每個人都非常清楚:軟體工程是“真正的”工程。它可能有不同的約束,可能不太成熟,但它仍然是“工程”。

補充:
1. 我10年已經學會了成為一名建築師,並且作為開發人員工作15年。我很驚訝,上面沒有提到我認為的最大區別:法律。建築行業即使是最微小的事情也有法規。想象一下法律就是在一個函式中有的“if”語句,如果你犯錯就會入獄。

2. 需要注意的事項 - BIM:建築資訊管理,建築師工程師在建築開發商和業主的建設中正在努力讓IT流程深入參與建築開發,施工和生命週期。

3. 要學習軟體工程的第一件事是認識到它不是真正的工程。

4. 這就是為什麼我和專業人士進行交談的原因,以便他們可以談論他們的第一手經歷。據他們說,軟體工程是工程。

5. 我們喜歡將自己視為工程師,但大多數其他工程領域都有比軟體更嚴格的規則和預測結果。您發現每天都會發生破壞軟體的bug錯誤,但是不用承擔太多責任。

6. 土木工程中也存在技術債務,因為誤解(例如加速腐蝕),維護或開發物理場地會變得非常困難 。

7. 我喜歡軟體工程師一詞,因為我實際上擁有工程學位。但是在軟體開發方面沒有太多的工程設計......它充其量只是一種黑暗的藝術。

8. 我學習電腦科學,編碼軟體15年,製作電子音樂15年 - 可以清楚地說是零差異:)最接近的是,當你在環境中執行音樂專案時,它會產生“感覺”;)

9. 我曾擔任商業潛水員,後來由於醫療原因擔任網路管理員......最困難的是習慣上班和做一份坐著的工作。從戶外工作變成辦公室工作是我生活中最大的錯誤之一......

10. 傳統的工程師通常會受到更大的尊重......通常不會被視為建造機器人(碼農?).....

11. 我有土木,機械和電子工程師資格,並且有趣的軟體。它們都涉及相同的基本過程:識別問題,分析周圍的約束,然後在給定範圍內開發解決方案。這些學科只涉及不同的工具

12. 當我看到軟體之外的工程錯誤修正時,我總是著迷。一個很好的例子是鋼橋電纜,用塑膠包裹,充滿乾燥氮氣,以防止進一步腐蝕!軟體工程師會想出什麼?


 

相關文章