首頁 頭條 三件事讓你成為效率高的程式設計師

三件事讓你成為效率高的程式設計師

Nov 27, 2017 am 09:07 AM
成為 效率 高的

這篇文章是一位很有經驗的資深程式設計師所發表的一篇關於程式設計開發的感悟,他會用他自身程式設計師的經驗告訴我們開發效率很高的程式設計師要做到哪幾件事。

我們許多人開始程式設計的時候都有特定的目的。例如,我開始程式設計的時候,是讓我能在睡覺和在學校的時候自動玩那個文字版的MUD遊戲。我那時候是個寫腳本的13歲小孩,甚至不知道什麼是程式設計。我可能有一個想法,然後就寫程式碼並測試 - 全部靠我自己。

當我們為其他人開發軟體時就變得很困難,因為我們常常缺乏相同類型的動機和興奮感,而它們驅使我們追求自己的願望。我們沒有自己的想法,而是花幾個小時在會議中嘗試了解這些想法,然後我們大部分時間都在修改別人的程式碼 - 或提交自己的程式碼。這導致一定程度的隔閡,進而降低了生產率。

要成為10倍效率的開發人員,你必須學會在這種環境中脫穎而出,甚至創立自己的公司來領導這項工作。

任何人都可以成為10倍效率的開發人員,至少在每一天的某個時刻。我相信所有開發人員都應該專注於提高生產力和團隊合作的三件事。

三件事

要成為10倍效率的開發人員,你需要幾年的工作經驗,無論使用哪種程式語言和工具集。你必須善於解決問題和編寫程式碼;這是必須的。

重要的是你要明白,如何寫程式並不能讓你成為10倍效率的開發人員,10倍效率的工程師,10倍效率的程式設計師,或其他任何你想要的名字。

你知道5W:「誰(Who),什麼(What),在哪裡(Where),為什麼(Why),什麼時候(When)」。雖然這些都適用於軟體開發,我想專注於那三個定義了10倍效率的開發人員的特點。這三項把普通開發人員與10倍效率的開發人員區分開來:

是什麼(What)

為什麼(Why)

什麼時候(When)

知道要做什麼

在企業界,開發人員經常從事他們不太感興趣和不理解的專案。對於大多數開發人員來說,這不是一個大問題,只要他們收到了很好的指令,也得到了明確的輸出定義。

問題是開發人員通常沒有得到足夠的指令。相反,我們使用一種叫做 “敏捷開發” 的東西。我們收到一個記事帖,上面有幾個字,並指望我們知道到底需要做什麼。

軟體開發就是溝通。開發人員需要知道我們在做什麼,我們試著解決什麼問題,以及到底需要什麼樣的結果。我們知道的越多,就可以更快的完成。最重要的是,知道工作的目的和什麼會使工作成功是很關鍵的。

水平差的開發者會在一個專案的錯誤方向上花幾個小時而不問任何問題。他們就是我所說的 負10倍效率的開發人員,因為他們一事無成,浪費了所有同事的時間。幾乎每個人都遇到過這些開發人員,與他們一起工作會讓人感到沮喪。你一定要小心,不要養成他們的習慣!

有些開發人員即使沒有很多細節也能很好地工作。他們有大量的創造力,並提出正確的問題。這些獨角獸可能是10倍效率的開發人員。他們知道如何解決問題,並經常提升整個團隊的水平。

最重要的是,10倍效率的開發人員真的很擅長快速地確定需要完成什麼和問什麼問題。

理解為什麼

也許軟體開發的最大障礙就是要理解為什麼。如果你不明白你要解決的問題,那就很難解決了。

為什麼我在睡覺和上學的時候把幾個終端腳本放在一起玩MUD遊戲?當然是我想在比賽中達到最高等級。我清楚地知道為什麼,我盡我所能實現目標。

同樣的方法也適用於任何軟體開發專案。了解他們所在的垂直行業和他們試圖解決的問題將會使開發人員更有效率。了解為什麼和理解垂直行業也有助於防止不必要的工作,騰出時間專注於那些會使產品或功能對使用者更有價值的事情。

問題是知道為什麼還不夠。作為一個真正的10倍效率的開發人員,你必須對這個問題有熱情,並從裡到外地了解它。我相信,大多數10倍效率的開發人員本質上也是產品人,具有良好的產品願景。

知道什麼時候做什麼

時間對於軟體開發專案非常重要。確定專案任務的處理順序看似容易,但卻非常關鍵。你的工作可以幫助公司取得一個新客戶或或清理掉舊的技術債?

作為開發團隊,我們必須不斷地選擇我們要做什麼和什麼時候做。

所有軟體開發工作項目都屬於以下三類:

我們必須做的事情

我們需要做的事情

我們想要做的事情

我們必須為客戶完成新功能。我們需要修復軟體中的 bug。我們想減少些技術債或開發一些酷炫的新產品功能。這些都需要平衡取捨。

我們應該同時進行所有三個維度的工作項目。我們不能把所有的時間都花在技術債上,但也許我們應該花一小部分時間在這上面。

開發人員也必須知道何時在其程式碼中建立複雜的體系結構。我寧願保持程式碼盡可能簡單,直到不添加架構就會死的時候我才會添加架構。

開發者也必須知道什麼時候避免追逐時髦的東西。他們傾向於使用新的工具和技術,但是這些東西可能只會減慢一個項目,而不是更快地完成它。

10倍效率的開發人員擅長於優先排序,並了解何時將時間投入到架構中,而不是使用一坨意大利麵條般的程式碼來實現某種工作。請記住,你的用戶並不關心你的軟體是如何運作的,也不管該架構有多花俏。他們只想它能解決問題。 10倍效率的開發人員理解這一點。

掌握是什麼(What),為什麼(Why),什麼時候(When)成為10倍效率的開發人員

現在讓我們來談談成為10倍效率的開發人員的重要技能:掌握是什麼(What),為什麼(Why),什麼時候(When)。

從為什麼(Why)開始

成為10倍效率的開發人員的第一步是對你要解決的軟體和問題變得充滿熱情。你需要從裡到外完全理解它。這首先是要對你工作的公司及其使命充滿熱情。

不要因為別人告訴你要寫一個按鈕(button),然後你就只寫一個按鈕。努力在更高層次去理解為什麼(Why)。如果你持續關注為什麼,你對你的團隊和公司會有更大的價值。

做一個好的開發者和優秀的問題解決者,而不是最好的程式設計師

我會把自己描述成一個駭客開發者。我是那種能很快把一些醜陋的程式碼拼湊起來並解決幾乎任何問題的人。我的程式碼很少是美麗的,但它能解決問題。這才是最重要的。

你不必寫完美的程式碼與單元測試來成為一個10倍效率的開發人員。你需要知道什麼時候要做和什麼時候不做這些事情。

一個10倍效率的開發人員擅長解決特定的問題,並透過程式碼滿足業務需求。你能做的最聰明的事情就是在你把專案交給其他人(他們更善於最後敲定一些架構和其他一些細節)之前就知道它能走多遠。

什麼時候(When)在你的內心,或不在

知道什麼時候要建立一個複雜的架構,而不是拼湊一些東西,需要經驗和你蜘蛛人般的感官。你要嘛有這種感覺,要嘛你根本不知道。

我曾與一些最聰明的開發者共事過,他們總是很糟糕的優先考慮模式和架構,而不是功能和排期。他們總是過度實現或一遍遍重構,爭取 “完美的程式碼”,而不是 “可交付的程式碼”。

10倍效率的開發人員必須利用他們的經驗和本能來知道什麼時候要專注於架構和完美,什麼時候就是把事情搞定。

 知道該做什麼(What to Do)和該問什麼(What to Ask)

許多軟體開發歸結於溝通技巧。可惜的是,在我們要工作的項目上許多註解和要求都不是很詳細。一個10倍效率的開發人員知道如何閱讀這些,應用他們知道的業務裡的 “為什麼”,並提出相關的問題。

最好的開發者知道在尋求幫助之前要在某件事情上花多少時間。他們也知道要問什麼問題,以闡明需求來推進專案。

結論

我已經寫了超過15年的程式碼。可以說我是一個10倍效率的開發人員,至少我可以。我知道我擅長什麼,當我做我擅長的事情時,我可以很快地完成大量的工作。

如果你想做一個新產品的原型,我就是你要找的人。如果你需要尋求Angular,React或其他一些 前端的幫助,我絕對不是你要找的傢伙。在這些任務上我將會是個負10倍效率的開發人員。

10倍效率的開發人員不是一個神話。他們確實存在。他們很可能是開發經理、架構師、首席開發人員或公司創辦人。如果他們不是的話,他們應該轉變。我後來成為了公司的創辦人,到目前為止都兩次了。

當然,沒有人能在每一天的每個時候都是10倍效率的開發人員。我們沒有精力或專注力每天以這樣的速度工作。我們不是機器人。

如果你理解軟體開發的“是什麼(What),為什麼(Why),什麼時候(When)”,你就可以是一個更有效率和更好的團隊成員–甚至是一個每天幾個小時內的10倍效率的開發人員。這會有很大的不同。

以上就是他的分享,希望對大家有幫助。

相關推薦:

總結有關小程式開發的經驗

成長中的程式設計師需要做的七件事

淺談php程式設計師的未來

#
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1657
14
CakePHP 教程
1415
52
Laravel 教程
1309
25
PHP教程
1257
29
C# 教程
1229
24
如何在 Windows 11 中為應用程式或進程開啟或關閉效率模式 如何在 Windows 11 中為應用程式或進程開啟或關閉效率模式 Apr 14, 2023 pm 09:46 PM

Windows 11 22H2中的新工作管理員對進階使用者來說是個福音。現在,它透過附加資料提供更好的 UI 體驗,以密切關注您正在運行的流程、任務、服務和硬體元件。如果您一直在使用新的任務管理器,那麼您可能已經注意到新的效率模式。它是什麼?它是否有助於提高 Windows 11 系統的效能?讓我們來了解一下! Windows 11 中的效率模式是什麼?效率模式是任務管理器中的一

兩小時就能超過人類! DeepMind最新AI速通26款雅達利遊戲 兩小時就能超過人類! DeepMind最新AI速通26款雅達利遊戲 Jul 03, 2023 pm 08:57 PM

DeepMind的AI智能體,又來捲自己了!注意看,這個名叫BBF的傢伙,只用2個小時,就掌握了26款雅達利遊戲,效率和人類相當,超越了自己一眾前輩。要知道,AI智能體透過強化學習解決問題的效果一直都不錯,但最大的問題就在於這種方式效率很低,需要很長時間摸索。圖片而BBF帶來的突破正是在效率方面。怪不得它的全名可以叫Bigger、Better、Faster。而且它還能只在單卡上完成訓練,算力要求也降低許多。 BBF由GoogleDeepMind和蒙特婁大學共同提出,目前資料和程式碼都已開源。最高可取得人類

PyCharm遠端開發實用指南:提高開發效率 PyCharm遠端開發實用指南:提高開發效率 Feb 23, 2024 pm 01:30 PM

PyCharm是一款功能強大的Python整合開發環境(IDE),廣泛用於Python開發者進行程式碼編寫、除錯和專案管理。在實際的開發過程中,大多數開發者都會面臨不同的問題,例如如何提升開發效率、如何與團隊成員進行協作開發等。本文將介紹PyCharm遠端開發的實用指南,幫助開發者更好地利用PyCharm進行遠端開發,並提高工作效率。 1.準備工作在進行PyCh

Java開發技巧大揭密:優化資料庫事務處理效率 Java開發技巧大揭密:優化資料庫事務處理效率 Nov 20, 2023 pm 03:13 PM

隨著網路的快速發展,資料庫的重要性日益凸顯。身為Java開發者,我們經常涉及資料庫操作,資料庫事務處理的效率直接關係到整個系統的效能和穩定性。本文將介紹一些Java開發中常用的最佳化資料庫事務處理效率的技巧,幫助開發者提升系統的效能和回應速度。在批次插入/更新操作通常情況下,一次插入或更新單一記錄到資料庫的效率遠低於批次操作。因此,在進行批量插入/更

如何在 Microsoft Edge 中開啟節能模式? 如何在 Microsoft Edge 中開啟節能模式? Apr 20, 2023 pm 08:22 PM

Edge等基於Chromium的瀏覽器會佔用很多資源,但您可以在MicrosoftEdge中啟用效率模式以提高效能。 MicrosoftEdge網頁瀏覽器自其不起眼的開始以來已經走過了漫長的道路。最近,微軟為瀏覽器添加了一種新的效率模式,旨在提高瀏覽器在PC上的整體效能。效率模式有助於延長電池壽命並減少系統資源使用。例如,使用Chromium建構的瀏覽器(如GoogleChrome和MicrosoftEdge)因佔用RAM和CPU週期而臭名昭著。因此,為了

私有化部署 Stable Diffusion 玩 AI 繪圖 私有化部署 Stable Diffusion 玩 AI 繪圖 Mar 12, 2024 pm 05:49 PM

StableDiffusion是一個開源的深度學習模型,其主要功能是透過文字描述來產生高品質的圖像,並支援圖生成、模型合併、以及模型訓練等功能。此模型的操作介面可以在下圖中看到。如何生圖下面介紹一下小鹿喝水的生圖過程,生成圖的時候分為提示詞和負面提示詞,輸入提示詞的時候要明確描述,盡量具體描述你想要的場景、對象、風格和顏色。例如,不僅僅說“小鹿喝水”,而是說“一條小溪,旁邊是茂密的樹,小溪旁有小鹿在喝水”,負面提示詞是反方向的例如:無建築物、無人物、無橋樑、無圍欄,而過於模糊的描述可能導致結果不

子網路遮罩:作用與網路通訊效率的影響 子網路遮罩:作用與網路通訊效率的影響 Dec 26, 2023 pm 04:28 PM

子網路遮罩的角色及其對網路通訊效率的影響引言:隨著網路的普及,網路通訊成為現代社會不可或缺的一部分。同時,網路通訊的效率也成為了人們關注的焦點之一。在建置和管理網路的過程中,子網路遮罩是一項重要且基礎的配置選項,它在網路通訊中起著關鍵的作用。本文將介紹子網路遮罩的作用,以及它對網路通訊效率的影響。一、子網路遮罩的定義及作用子網路遮罩(subnetmask)

學會利用sessionstorage,提高前端開發效率 學會利用sessionstorage,提高前端開發效率 Jan 13, 2024 am 11:56 AM

掌握sessionStorage的作用,提升前端開發效率,需要具體程式碼範例隨著網路的快速發展,前端開發領域也日新月異。在進行前端開發時,我們經常需要處理大量的數據,並將其儲存在瀏覽器中以便後續使用。而sessionStorage就是一個非常重要的前端開發工具,可以提供我們臨時的本機儲存解決方案,提高開發效率。本文將介紹sessionStorage的作用,