1. 程式人生 > >為什麼軟體工程師應該養成寫作的習慣?

為什麼軟體工程師應該養成寫作的習慣?

在學校裡,有“文科生”和“理科生”的區分,學習內容不同,思維方式也有差異。我是一名理科生,大學裡我的專業是電腦科學,畢業後我的工作是軟體工程師。在這個過程中,我發現文理科之間的鴻溝始終無法彌合。我見到的很多工程師害怕寫文章,而文科生看到程式碼就頭疼。

我認為,程式設計師應該養成寫作的習慣。因為寫文章會鍛鍊許多對於程式設計十分有益的技能。

寫文章和寫程式碼最核心的共同之處在於它們都需要清晰思考的能力。頂尖的軟體工程師往往也是優秀的寫作者,他們的文章和程式碼一樣富有邏輯性,行文流暢、優雅。

文章和程式碼有很多相似之處:二者都是從一個空白的頁面開始,把一個想法最終變成完整的產品,推向特定的受眾;寫文章和寫程式碼都需要你把一系列有邏輯的語句封裝進一個個模組中,這些模組可以是函式也可以是文章的段落;好程式碼與好文章一樣都需要言簡意賅,不然就會浪費 CPU 資源或人的精力。

當某個產品快要完工時,軟體工程師會像作品快要發表的作家一樣焦慮不安。和寫文章一樣,軟體永遠不會有徹底完成的時候,工程師需要花更多時間優化程式碼、開發新功能或者重做某個部分,因為他們擔心釋出的作品沒有展現出自己最好的一面。

軟體工程師應該寫作因為現在開發協作變得越來越重要。開源專案可以得到來自世界各地人民的參與。開發和運營一個產品常常需要大量工程師(Google Maps 有 1100 個全職員工!)。不論是 GitHub 評論、程式碼註釋,還是技術文件都需要清晰準確的文字。良好的寫作能力方便了人們之間的交流,使得專案更好地執行下去。

可能你覺得有些專案不太需要交流協作,但是寫一些關於軟體的內容通常對於學習和更進一步的討論有著促進作用。現在,我們不再需要通過 RFC 文件或技術手冊中學習了,因為網上有其他工程師寫的教程。此外,我們還能夠從 Hacker News 評論、推特和各種部落格中學到很多內容。

提到部落格,再來說兩句。好的寫作需要時間。我們一開始寫出來的文字可能不怎麼樣,這時就需要再花點時間,多修改幾遍,潤色一下。如果你覺得自己太忙了沒時間寫部落格,不知道寫什麼或者擔心你的觀點被公開記錄日後留下把柄,你應該花上點時間讀一讀 Steve Yegge 的《你應該寫部落格》(You Should Write Blogs)這篇文章。即便其中的觀點不能說服你,我相信在閱讀之後你也會有所收穫。

軟體工程師需要寫作,因為他們可能會享受寫作的過程。很多軟體工程師都期待自己開發的軟體能夠“產生影響”,給人們的生活帶來改變。實際上,通過寫文章,你也能夠對人們“產生影響”,譬如說關於管理的博文可以幫助他人激勵自己的團隊,教授程式設計的內容可能會引起一個學生學習電腦科學的興趣,關於職業規劃的文章則可以幫助畢業生找到新的職業方向。

即使沒人讀你的文章,寫作的過程也是有益無害。它幫助你理清思路,明確對於某個問題的看法,加強或削弱你的某種觀點。把凌亂的想法匯聚成精簡的文字非常有價值。

總之,寫作有利於提高軟體開發的水平,同時更方便開發過程中的協作,即使對一個理科生來說,也是一件非常值得做的事。

相關推薦

為什麼軟體工程師應該養成寫作習慣

在學校裡,有“文科生”和“理科生”的區分,學習內容不同,思維方式也有差異。我是一名理科生,大學裡我的專業是電腦科學,畢業後我的工作是軟體工程師。在這個過程中,我發現文理科之間的鴻溝始終無法彌合。我見到的很多工程師害怕寫文章,而文科生看到程式碼就頭疼。 我認為,程式設計師應該養成寫作的習慣。因為寫文章會鍛

程式設計師/軟體工程師應該會寫作

軟體工程師應該會寫作 在小學裡,有“數學孩子”和“英語孩子”。根據你在每個科目實力印象,被分類為另一類孩子。 我是一個數學孩子。所以我主修電腦科學,決定成為一名軟體工程師。一路上,“數學孩子”/“英語孩子”的指定從未消退。如果有什麼的話,它會更強烈。今天我遇到的工程

作為軟體工程師應該具備哪些基本素質

  1:團隊精神和協作能力     把它作為基本素質,並不是不重要,恰恰相反,這是程式設計師應該具備的最基本的,也是最重要的安身立命之本。把高水平程式設計師說成獨行俠的都是在囈語,任何個人的力量都是有限的,即便如linus這樣的天才,也需要通過組成強大的團隊來創造奇蹟,那些

JAVA軟體工程師應該具備的基本素質(技能)

      需具備六大基本 ①良好的編碼能力。 ②自覺的規範意識和團隊精神。 ③認識和運用資料庫的能力。 ④較強的英語閱讀和寫作能力。 ⑤具有軟體工程的概念和求知慾和進取心。      一直都在為之努力。 以上可以把它當成奮鬥的目標。人,一單有了引導的旗幟,就會

軟體工程師應該關注的web攻擊手段

1.SQL注入------常見的安全性問題。    解決方案:前端頁面需要校驗使用者的輸入資料(限制使用者輸入的型別、範圍、格式、長度),不能只靠後端去校驗使用者資料。一來可以提高後端處理的效率,二來可以提高後端資料的安全。                  後端不要動態sql語句,使用儲存過程查詢語句。

三年Java軟體工程師應該掌握的技能

關於專案經驗 關於專業技能 1、基本語法 static、final、transient等關鍵字的作用 foreach迴圈的原理等等 static: 1.靜態變數 2.靜態方法 3.靜態程式碼塊 final:

初級軟體開發工程師養成良好的編碼習慣

        編寫程式是一項系統而繁瑣的工作,它不僅需要程式設計人員基礎紮實,更需要有良好的程式設計習慣和風格。良好的程式設計習慣和風格不僅可以使程式程式碼更易於讀懂和修改,更重要的是,它可以使程式的結構更加合理,有助於提高程式的執行效率,能提高設計軟體的質量。下面是我總

測試技術大牛談成長經歷:一個好的軟體測試工程師應該做到這些!

我們在變化中成長。假設你拒盡了變化,你就拒盡了新的美麗和新的機遇。 初始軟體測試   “這是一個杯子,主要用來喝水的,它的質量應該如何考量?”   這是在進入上家公司面試時,測試主管問我的題目,相關的回答已經有點模糊,但從這個問題可以大概瞭解到,測試主管在考察我的測試思維。   首先

記錄一下應該養成的好習慣

1.分類清晰(如:業務類,資料庫管理類database_manager,sql類) 2.引入時儘量一個一個的引入(如from database_manager import get_user_info ),最好不要一次性引入所有(如:from sql import *) 3.將需要經常改變的字串,封裝為常

成為一個優秀的軟體開發工程師應該具備的能力

很多人都希望成為一個優秀的軟體開發工程師,那麼,成為一個優秀的軟體開發工程師應該具備哪些能力呢? 下面是我個人的見解,有不同想法的歡迎提出討論。 在學習之初,我們往往強調的是開發技術,對於軟體開發者而言,這是最初級也是最簡單的要求。 我們想要把我們學到的知識運用到工

程式設計一開始就應該養成的好習慣

       有些程式設計規範,學程式設計第一天就應該瞭解,這些習慣比你多學兩章知識來的更為實際,他們甚至可能會直接影響你的程式設計生涯,所以,不要一開始覺得這些習慣都不重要,有很多同學認為等到技術成熟的時候再考慮它們,殊不知,壞習慣一旦養成需要花費多大的經歷才能更正。一開始

中學生應該養成的良好習慣

1.獨立思考的能力 2.責任意識  3.面對困難的勇氣 4.善於總結  5.要具有理解他人的美德        中學生應該養成良好的學習習慣        世界上最可怕的力量是習慣,世界上最寶貴的財富也是習慣。一個班級, 一個企業,一個國家,一個民族是如此,對於人的一生,更是如此。生而為人,每個人都需要踏踏實

Python 編程,應該養成哪些好的習慣

.so bytearray bsp all sys cti nbsp sub 應該 Python 編程,應該養成哪些好的習慣? https://www.zhihu.com/question/28966220 無緩沖輸出 python -u sys.stdout.flush

多年軟體測試大牛分享成長經歷,一個好的軟體測試工程師應該做到這些!

我們在變化中成長。假設你拒絕了變化,那麼,你就拒盡了新的美麗和新的機遇。 初始軟體測試 “這是一個杯子,主要用來喝水的,它的質量應該如何考量?” 這是在進入上家公司面試時,測試主管問我的題目,相關的回答已經有點模糊,但從這個問題可以大概瞭解到,測試主管在考察我的測試思維。 其次,如何去準確獲取、表現這些需

通信設備硬件工程師應該具備的基本能力和知識

arc net des 完成 tag sce rep 復位 pad 對於硬件工程師來說,技術要求究竟是要到什麽程度呢?當然,從從小受到的教育中我們知道對於知識要理解透徹,越深入越好,對於任何一個知識點,通過基本公式,用數學工具推導到最後來驗證高級定律和公式。我想對於這一點,

軟體工程師成長之悟

  最近或許有夥伴發現,寫技術實現及細節的變少了,更多是經歷以及思想、規範。莫非是道則道,非常道,你道我也道?然,並不是:)。   當入行四五年時,個人經歷中,從14年開始實習工作到15年轉正,各電信專案現場跑,開發、測試、產品部署及支援運維。16年銀行實時系統開發、測試、運維、部署,最後推進了MapRed

測試工程師應該具備的責任心

引言:責任心對於測試來說是不言而喻的,沒有好的責任心,如何保障產品的質量,如何把好產品最後一道關卡。         質量保障要先行         測試工程師必須要有責任感,對於自己所做的一切進行負責,對自己、對產品負責

嵌入式軟體工程師【面經:第一部分-C語言基礎】

1、關鍵字static的作用是什麼? 這個簡單的問題很少有人能回答完全。在C語言中,關鍵字static有三個明顯的作用: 1). 在函式體,一個被宣告為靜態的變數在這一函式被呼叫過程中維持其值不變。 2). 在模組內(但在函式體外),一個被宣告為靜態的變數可以被模組內所用函式訪問,但不能被模組外

嵌入式軟體工程師【面經:第二部分-指標】

指標簡單型別分析: int p; //這是一個普通的整型變數 int *p; //首先從P 處開始,先與*結合,所以說明P 是一個指標,然後再與int 結合,說明指標所指向的內容的型別為int 型.所以P 是一個返回整型資料的指標 int p[3]; //首先從P 處開始,先與[]結

“Keras之父”親傳,一個軟體工程師的成長自查清單

創造了Keras的 Francois Chollet近期在部落格上分享了他個人的提醒清單,老司機帶我們少走彎路。 在開發過程中 程式碼不僅僅是為了被執行的,也是一種團隊內共同交流的方式。我們可以使用程式碼來向別人描述問題的解決方案。程式碼的可讀性包括清晰的分段,易懂的變數名,以及描述