開發人員愛開發
本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
作為軟體開發人員的我們很幸運。我們喜歡我們乾的工作,並且很多時候,當我們實際構建軟體時,我們又非常開心。不幸的是,這樣的情況並不普遍,因為許多軟體開發專案要求開發人員除了編寫程式碼之外,還要做很多其他的事情,例如開無聊的會議,建立文件或其他工件等等。在解決問題,學習知識和探索奧祕的同時,還要面對這些無聊的事情,可不是一件令人愉悅的事情。因此我們只能把注意力投入到編寫軟體中去。
專業的軟體開發從根本上不同於大多數人的想法。它與使用軟體或網路或其他任何東西無關。構建軟體是一項非常有創意的活動。
我問過幾乎所有我教過的學生一個問題,編寫軟體更偏向藝術還是科學。大多數開發人員表示,儘管兩方面的因素都有,但軟體開發更具藝術性。這意味著,作為一個好的軟體開發人員,你需要更富有創意和具備抽象技能,而不是一個明確的過程就行。當然,即使是編寫最簡單的程式也需要大量的訓練,這是一個通過投資時間精力而可以成長的領域。開發人員喜歡構建以前從未構建過的東西,喜歡解決問題,還樂意於提供改善人們生活的工具。
不要把我們想象成是那種孤僻陰沉的書呆子或沉溺於矽膠電路的極客形象。現代軟體開發人員來自社會的各個階層,他們有著各種各樣的背景。
編寫軟體或許是最具吸引力和挑戰性的行業。軟體開發需要多種多樣的技能,為了成功編寫軟體我們必須擅長所有這些技能。設計軟體需要視覺化創意——畢竟,我們是用我們的想象來了解問題並對解決方案進行建模的。編寫軟體需要堅韌不拔的品質——我們必須跟蹤大量的細節,並使用各種各樣的技術來管理程式的巨大複雜性,哪怕是一個相對簡單的程式。除錯程式碼則需要具備卓越的分析能力——完全不同於設計軟體所需的技能,但開發人員必須兩者都擅長。因此,我們傾向於在構建軟體的過程中同時使用我們左右兩邊的大腦,這樣有助於製作出令人高度滿意的使用者體驗,同時這也是一個非常具有挑戰性的經歷。
我問了很多非軟體開發人員關於他們眼中編寫軟體的過程,聽到了很多不同的答案,但沒有一個回答接近正確答案。我相信其他領域也是如此。專業的表演不僅僅是裝扮。偉大的演員會代入他們的角色,就像變成了另一個人。這是一個偉大的技能,但是沒多少人擁有,他們所做的事情並非他們的職業描述的那樣。他們不是扮演他人,而是成為了他人。
我認識一些已經進入餐飲行業的人,他們喜歡與朋友分享食物的過程。但是,每天準備五百頓飯和與朋友坐下來享受美味晚餐是截然不同的。廚師是這麼多職業中最難的工作之一。廚師的工作強度很大,這也是為什麼很多人最終退出這個職業的原因。很多人認為他們必須對他們各自的領域做出妥協,因為生活就是如此——工作和興趣不能兩全。也許對許多人而言這是事實,但是軟體開發人員可以在每天構建軟體的工作中找到滿足感。
當然,這需要付出巨大的努力,因為真正進入一個專業並不容易。我知道的大部分開發人員是在工作時或通過大量的自學才汲取到那些他們必須瞭解的知識。就其本身而論,這個行業的技能組合和知識量有很大的差異。現在還沒有一套明確的標準,所以當每個人對於如何做事都有自己的想法時,團隊工作開展起來會很困難。
編寫軟體是一個小組活動。大多數軟體開發專案中的程式設計師彼此之間並不是孤立的。但是現在大多數為業務而構建的程式碼其團隊合作並不緊密。當然,開發人員的並不以社交技能見長,但是隨著我們意識到隊友之間溝通的迫切需求,很多事情正在發生變化。
如何評估設計?
這是我經常在我的高階軟體設計課中問開發人員的一個問題。我傾向於得到空白的反應,不是因為他們不知道如何評估一個設計,而是他們很少適用一個通用的衡量法則。這對團隊來說可能是一個挑戰,使得我們在構建軟體時溝通和協作變得困難起來。所以我花了很多時間定義術語,以便能夠評估軟體設計中的良性。
開發人員喜歡我的課程,是因為他們意識到談論和思考這些事情的價值。我有幸能有機會與許多高階軟體開發人員合作,在合作過程中,我努力找出他們成功的原因是什麼,然後與我合作的其他開發人員分享。好像我們每個人都有一塊拼圖,當我們把這些拼圖放在一起的時候,我們就得到了一幅優美的畫卷。大讚!
譯文連結:http://www.codeceo.com/article/developers-love-development.html
英文原文:Developers Love Development
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- PHP開發人員使用工具(個人愛好)PHP
- 找 Laravel + VUE 開發人員LaravelVue
- 十款讓Web 前端開發人員愛不釋手的工具!Web前端
- 面向開發人員的最佳開源工具開源工具
- 開發人員網站導航網站
- Rust for C#/.NET 開發人員RustC#
- Web 開發人員備忘單Web
- Windows開發者人員模式功能Windows模式
- C++如何開啟“開發人員命令提示”C++
- Wiki憑什麼持續得到開發人員和團隊的喜愛
- PHP開發人員技術提升心得PHP
- Java開發人員必備Linux命令JavaLinux
- 開發人員選擇 PHP 的原因PHP
- 我是 Laravel 開發員,不是 PHP 開發員LaravelPHP
- 開發人員測試 Devin AI 後的發現devAI
- .NET開發人員如何開始使用ML.NET
- 開發人員提升自己的四種方式
- Stack Overflow:2020 年開發人員調查
- 路人開發對測試人員的看法
- 開發人員建立圖示工具:AssetsGen for MacMac
- 什麼是Web開發?如何成為一個Python Web開發人員?WebPython
- 測試人員與開發人員的比例究竟多少是合理的?
- GitOps 如何改善開發人員和運維人員的日常工作?Git運維
- 6種適用於開發人員的Linux發行版本!Linux
- [開發故事]關於測試人員的職業發展
- 如何成為更好的軟體開發人員
- 開發人員使用遺留程式碼庫指南
- 開發人員應該害怕低程式碼嗎?
- 開發人員的生產力管理框架:SPACE框架
- 開發人員發現Chrome瀏覽器漏洞獲谷歌重獎Chrome瀏覽器谷歌
- 給 Web 開發人員的以太坊入坑指南Web
- 給Web開發人員的以太坊入坑指南Web
- 一個SAP開發人員的雙截棍之路
- 為什麼開發人員喜歡低程式碼?
- Python開發人員常犯的幾個重大錯誤Python
- 一個SAP開發人員的養蠶流水帳
- Rust 與 C++:現代開發人員的困境RustC++
- Harness:2020年開發人員滿意度調查
- 為什麼 Python 開發人員應該使用 PipenvPython