代碼之外:寫作是倒逼成長的最佳方式

語言: CN / TW / HK

theme: scrolls-light

持續創作,加速成長!這是我參與「掘金日新計劃 · 10 月更文挑戰」的第 29 天,點擊查看活動詳情

還在埋頭寫代碼?快別了吧

作為一名初入職場的程序員,很長一段時間都是在重複這樣一個過程:

組長分配一個任務 --> 你埋頭寫代碼 --> 收到 Bug 反饋 --> 你埋頭改代碼 ...

快別這樣了,寫代碼真的只是唯一能做的嗎?

  • 需求背後的邏輯你懂了嗎?

  • 為啥要這樣做呢,還有其他方法可以做嗎?

  • 這一條需求背後是關於哪些業務的?可以分別向上和向下追問嗎?

真實的是,成為程序員與寫代碼其實沒有必然的聯繫。正所謂技多不壓身,除了基本的編程開發能力,做程序員還需要一些其他技能:

  • 技術學習能力

  • 業務分析能力

  • 問題排查能力

  • 項目管理能力

  • 協調溝通能力

何謂技術學習能力?如果你的技術學習能力好,不論新技術如何層出不窮,你都能第一時間掌握,做到對症下藥。

何謂業務分析能力?業務是活的,如果能知道什麼業務能賺錢,簡直就是大殺器。

何謂問題排查能力?對,改 Bug...

何謂項目管理能力?推進項目,管理人,這個能力也很重要,領導能力不可欠缺。

何謂協調溝通能力?與上級溝通,與同事溝通,對還有今天要説的,書面溝通能力。

那些鍛鍊寫作的方式

寫作並一定是作者的專職,其實日常中有太多的方式可以鍛鍊,對於程序員來説,可以有哪些方式呢?

寫博客

51CTO、CSDN、博客園、掘金、InfoQ 都是很好的博客平台,或者你可以自己搭建自己的博客平台,更加可控。麻煩一點可能是需要自己搭建服務器和圖牀。

寫書

“合抱之木,生於毫末;九層之台,起於累土,千里之行,始於足下。”

一篇篇博客可能就是一本書的其中一點內容。就算不出版,也可以有寫書的目標,寫書更能鍛鍊寫作的能力,很多博客寫得好的,反而出書效果沒那麼好了。

寫技術文檔、技術白皮書

程序員最痛苦的工作寫技術文檔,但最需要的可能也是技術文檔。自己寫不太想寫,自己想看的又是技術文檔。

如何把文檔寫的準確易懂也是可以需要學習的。

回覆問題

回覆 Stack Overflow 、沸點、知乎、51CTO、CSDN 、思否上他人提出的問題

寫電子郵件

與人溝通,回覆郵件,反饋問題,彙報工作

寫註釋

甚至小到寫一段註釋

寫作是倒逼成長的最佳方式

寫博客也是一種向內求索的過程,自己是否真的掌握了?自己能解釋的更好嗎?

高質量的輸出倒逼輸入和思考,寫作是倒逼成長的最佳方式。

通過寫作能帶來更多的輸入和思考。只有學習不同的技術,看不同的書,引發思考,形成自己的觀點,然後輸出檢驗自己是否真的掌握。

然後形成這種雙向循環:

  • 輸入 --> 輸出;

  • 輸出 --> 輸入。

保持良好的態度:寫代碼=寫作

程序員的工作大多以代碼為主,經常專注於如何實現複雜的運算。而寫作,首先需要將想要表達的核心內容下定義,並用修飾性的語言對其進行解釋。

程序員和作家有什麼區別,作家是寫作時腦袋呈現一個個人物和故事,而程序員寫代碼腦子裏更多的邏輯和數據。

以前在學習寫作和文章賞析的時候,學過很多寫作手法:託物言志(託物喻人)、欲揚先抑、倒敍法、穿針引線法、插敍法等等。但程序員寫作並不需要,如何描述問題,解決問題,怎麼簡單怎麼來。

寫文章良好的表達能力確實能對編程架構設計有非常大的幫助。但實際情況是,大部分程序員都沒有時間熟練掌握寫作。

大部分人強調開發能力,但很少有人願意寫文檔。

但殘酷的事實是:無論從事什麼行業,寫作都是最基本的技能。

先梳理再動筆

和寫代碼一樣,編程高手往往不會直接敲代碼,而是先畫好設計圖再寫代碼。

所以,寫作也是如此。一旦有了自己的想法,先不用急着馬上記錄,而要在腦海裏梳理好流程,再用筆記記下最簡單的結構,之後再整理成文字。

寫文章時,要把自己的慣用表達或專業術語換成大家耳熟能詳的詞語,文章要通俗易懂,表達準確。

像我對簡單的技術類博客,首先讓自己的代碼跑通,然後根據項目結構依次解釋這樣寫代碼的原因,依次形成一篇文章或教程。代碼實現的過程即是梳理的過程。

那麼如何培養寫作習慣呢?

如果不擅長面對面溝通,那麼書面溝通呢。書面溝通能力就是寫作,如何培養這一種能力呢?

有時候需要花一生的時間去學習如何有效地寫作,這件事沒有捷徑,你也買不來,因此如何寫作正是我們需要提高的原因。

傑出的程序員跟勉強過得去的程序員之間的差別,不在於他們掌握了多少種編程語言,也不在於他們誰更擅長 Python 或 Java。真正的關鍵是,他們能不能把他們的想法表達清楚,傑出的程序員通過説服別人來達成協作。通過清晰的註釋和技術文檔,他們讓其他程序員能夠讀懂他們的代碼,這也意味着其他程序員能夠重用他們的代碼,而不必重新去寫。要不然,他們所寫的代碼的價值就大打折扣了。 -- Joel·Spolsky

從小到大,如果學習知識是從看課本,聽老師講開始的,那麼當我們看完聽完,是否有一種與他人分享的想法?

仍記得小時候學完一個知識,迫不及待跟小夥伴、爸媽分享今天學習了什麼。

其實,現在我們也可以一樣。

當我們看完一本書的一個章節,就可以寫出來,一開始也不一樣會寫的很好,開始寫就對了;

當我們聽完一個視頻,也可以總結視頻的重點和自己的盲點,畢竟等哪一天忘記了,重頭再來看視頻就很複雜,看一下自己的博客還是很輕易高效的;

當我們解決了一個真實問題,也可以把如何解決的這個問題也可以記錄下來,幫助其他人,説不定別人搜到這個問題的時候也會感謝你的解決方案。

等等,方式很多。

把寫博客這個過程每週練習幾次,博客不用太長,堅持每週寫幾個,一定能越寫越好。

所以,總結起來,培養寫作的習慣需要:保持分享的習慣。

總結

熟悉編程是一個需要長期堅持的過程,寫作也是如此。説出想説的話很容易,但讓對方理解並理解對方的想法則不那麼簡單。

多寫代碼可以提高編程能力,同樣,經常練習寫作也可以提升文字表達能力。

如果你還沒開始寫作,請立刻開始; 如果你覺得自己的寫作水平欠佳,那麼請堅持練習。