你應該要嘗試的 WDL(Writing-Drive Learn,寫作驅動學習)

神Q超人
Sep 15 · 10 min read
Image for post
Image for post
Photo by Glenn Carstens-Peters on Unsplash

Hi!大家好,我是神 Q 超人!這篇文章一樣先不談技術,想要和大家說說我已經持續快三年的習慣(其實我滿訝異自己能夠維持一個習慣那麼長的時間),那就是打技術文章這件事情。

先說結論,我認為編寫技術文章加速了我學習的速度和深度,也開拓了我與許多人的連結,包含各位正在看的 StarBugs 😃。

這篇文章會分成以下三個部分,說明寫技術文章的幾個階段:

  1. 為什麼要寫技術文章
  2. 寫技術文章的優點和幫助
  3. 不寫技術文章的可能原因

我會試著不讓文章的長度大暴走 😂,希望可以藉由自己的經驗幫助到大家囉!

為什麼要寫技術文章

這個問題非常有趣,大家可以試著回想一下,從以前開始讀書,就會透過書寫來加深記憶力,或是把常用到的東西用自己的方式筆記下來,讓以後可以更容易且快速的翻閱和理解。

上方那理所當然的事實,在程式上卻有點變化,我們不會想說要把程式碼給筆記下來,因為程式碼本身就是一種撰寫。寫過的程式碼會被保存起來,所以寫程式本身就是一種紀錄方式,當我們忘記某些用法時,就會去找曾經做過的類似功能,遇到沒經驗的問題,就會到 stack overflow 中尋找答案來複製貼上

到最後寫程式這件事情,就會讓你產生你有在思考或你已經會了的錯覺

你學會的只是寫程式,而不是程式。

很多時候新手都會在實戰中學習程式,不論是工作或是 Side Project,我們都用最短的距離去學會某些程式語言,然後用程式達成目的以及我們的目標。透過實戰來累積開發經驗是很棒的一件事情,但是當你在開發的時候,有曾經想過為什麼要這樣子寫程式嗎?

聽起來可能很奇怪,但是知道為什麼寫下程式碼其實是很重要的事情。因此我們需要去思考、閱讀然後了解程式碼,就像小時候讀課本學習單字以及文法一樣,但偏偏能夠好好閱讀程式碼的機會卻很少。

而寫下技術文章,就是其中一種方法,一種好好理解程式碼的方法。

當然還有其他方式,像是 Code Review 或…呃…對,像是 Code Review 等等,能夠讓自己或和別人一起再一次閱讀寫過的程式碼,並且討論用意也是很棒的選擇!但是邊緣人如我,沒有朋友可以陪我 Code Review 或討論怎麼辦 😭?

試著寫些技術文章吧!或是說當成自己的小筆記,安排一些時間記錄自己學到了什麼,在紀錄的過程中,你會把程式碼一一列在文章裡,並且試著解釋這段程式碼發生了什麼事情。

寫文章就像是和自己對話,你會告訴自己程式碼所做的一切,以及思考為什麼這麼做和意義是什麼。

寫技術文章可以讓你更加了解自己和本身擁有的知識。

寫技術文章的優點和幫助

就像上一段最後說的,寫下技術文章或是一些筆記,是能讓自己更了解程式碼的機會,所以其實打文章不為別的,最主要的原因就是幫助自己,不再只是寫程式,還能夠了解程式。接下來就說說打技術文章能夠帶來什麼幫助吧!

發現自己的不足,內化知識

察覺到自身的不足在只打程式的時候特別難注意到,因為工作上的需求大部分都可以透過 Google 得到答案,這時候就會覺得自己已經有做過或是會了,然後就把它放在角落,等需要再拿出來使用。

對你已經會用了,但你了解它嗎?不知道大家是否曾經有過類似的經驗,就是想試著和其他人解釋一段程式碼,但是卻怎樣都無法擠出一些好的說明。這就是問題所在,因為你根本就不知道你自己做了什麼。

打技術文章或筆記放大了這一點的存在。因為你必須要在文章裡解釋它,所以當看到不懂的程式碼,就會讓自己思考「這一段的意思是什麼?」、「為什麼要這麼寫?」、「我要怎麼解釋會比較好?」,你會透過詢問自己,一直到把它在 Google 查到的許多文章中遊走,最後找到你能夠理解的說明,並用屬於自己的文字再闡述一遍。

這就是一個將知識內化的過程。

在這個過程裡,你先是認知到了自己的不足,然後尋找答案並且吸收,最後再將學習到的知識輸出。所以打文章不只是打文章而已,它是一個思考的過程,就像現在我也不斷的在思考該怎麼正確地寫下我想表達的 😂。

全世界的工程師都在幫你 Code Review

因為你將文章發表到網路上,而不是自己在筆記本抄抄寫寫,所以會有許多人能夠看見你的文章,當你對自己理解的知識感到疑惑,希望有人可以討論,將文章發表到社群也是很棒的選擇,我一直相信程式之路一個人走絕對很辛苦,你會不曉得自己的程式碼到底好不好、想法正不正確,這些疑慮都在只有自己的時候,沒有辦法得出答案

但當你把文章發布出去的瞬間,你就不是一個人了。

代表你想法的文章會被其他人看見,他們在閱讀完後也會留下他們的想法讓你參考,你可以在網路上和所有工程師一起討論你正在學習的技術,並且了解其他人如何思考同一件事情。這時候你的學習之路就不是一個人了,而是與所有看過你文章的人一起前進,如果你能夠靠自己的思考與理解打出一篇好文章,那你一定能再透過其他人的建議將文章變得更好 🙌。

與他人的連結

我覺得這一點算是附贈的,但是對我而言真的因為寫文章而認識了許多人。如同前言說的 StarBugs 的團員、社群的大大們,只要見面通常都可以聊上幾句,然後加個聯絡資訊,之後遇到問題也能請教或聊天喇賽。但關於被認出來這件事也可能是我的筆名太ㄎㄧㄤ了,辨識度夠高,或許大家也可以選擇取個特別的暱稱 😂?

除了見面可以用「我有在寫文章」開頭當作裝熟外,打文章也讓我得到一些特別的機會,例如被邀請當講者,分享一些對方有興趣的主題等等。說不定還會有一兩個案子找上門哦!

但最後還是要說,這些都是附贈的。只是因為對我來說這些遭遇太奇妙才決定把它列出來,在這段我主要想表達的是,打文章最大的收益者絕對是自己,而其他的一切都是看你如何用文章呈現你的熱情,以及紀錄學習的過程和思考方式而得到的效益。

建議各位不要把那些效益當成主要的目標,想著文章必須要做到一定的程度才會有人看到,而遲遲不踏出第一步,蹲的越久,腳只會麻掉而已。技術文章是慢慢累積起來的東西,它會跟著你一起成長,不論一篇文章內有多少都無所謂,因為你是為了自己、為了學習程式而寫,其他的一切就當作浮雲吧 ☁。

不寫技術文章的可能原因

最後來聊聊為什麼不寫技術文章吧!其實寫文章就像做 Side Project 一樣,雖然明白的知道可以學習到很多東西,但是總有些理由會讓你遲遲不踏出第一步,以下是我詢問幾個朋友和陌生人(咦?)歸納出的幾個原因,阿我也會針對那些理由提出我的看法。

不知道要寫什麼

這是一個很常見的問題,但這個問題的盲點在於,大家都會覺得技術文章就是要打自己知道的知識,如果自己什麼都不會,就沒什麼好打的。

大錯特錯!

如果你現在還這麼想,就代表你沒有好好看文章上方的內容,打文章是一個內化知識的過程,即使你在開始之前什麼都還不會,你也會透過查資料、閱讀、打範例、學習、內化、輸出,這一連串的過程中,在打完一篇文章的同時學習到一項新的技能,打文章能讓你在學習的時候不只是看和使用而已!也包含了 input 和 output!

怕寫的內容太淺了

如果你現在還有這個想法,那也代表你沒有了解我上方所說的。打文章是為你自己的學習而打,完全不需要去在乎其他人的眼光。今天你自己打了一篇文章,那學習到的知識就是那篇文章裡的內容,就算淺淺的又怎樣?能不能透過撰寫文章的過程學習到自己想要的知識,才是最重要的

根本就不會有人因為你寫的文章內容太淺了,而和你說「欸!我覺得你應該要刪掉這篇文章,畢竟變數宣告那麼簡單,不需要特別打一篇文章說明。」

如果有請這麼回覆它:「我發技術文章有吃到你家的米是不是?」

除此之外,也想告訴大家打文章的心態一定要正確,也許你會遇到有人說「欸你打那麼多幹嘛?又沒有什麼用。」、「你那些文章根本沒人會看吧?」、「有時間打文章不如多做工作啦!」(我都遇過哦 😆)

但是如果你很清楚你的目的是為了學習,那上面那些話都不會是讓你停止學習的理由。我相信只要你別失去初心,那一件事情的對與錯,就不會是來自於其他人的同意或是反對。

都有人寫過了啊

你會因為朋友去領了振興券而自己不去領嗎?有錢大家花,有福大家爽,好主題大家一起寫啊!

每個人都有自己獨特的思考方式,以及描述事情的技巧,一雙好鞋子絕對不可能適用於世界上的每一個人,文章也是。舉例來說,當你在查資料的時候一定會遇到打開了文章,卻發現你完全看不懂裡面的內容,但這不是文章寫得不好,只是不適合你。

就像一件綠色的底子帶白色方格的衣料,有些人看起來像棋盤、有些人覺得是綠豆糕或是稿紙,每個人思考同一事情的切入點不一定會相同,所以就算是同一個主題,只要分別透過十個人寫出來,也會有十種不同的風格(和 React 的專案一樣),所以你的文章一定也可以成為世界上某個人的 Mr.Right

怕誤人子弟

這個就比較嚴重了,我現在在打文章的壓力幾乎也都是來自於這一點,但這是很正常的事情,如果不小心對某項技術理解錯誤,然後又發布在大家都看得到的網路上,那會有多少人因為看了自己的文章而吸收了錯誤的資訊?

會有這個考量其實就代表你是個很棒的人,因為你想要把正確的知識傳達給其他人,所以才會擔心。對於這點,我建議大家打完文章後,可以請朋友幫你檢查看看,確認內容是否正確,如果有問題的話就可以趕快改一改,儘早修正自己的觀念和文章的內容。

那沒有朋友怎麼辦?放心!只要把你的文章分享到 Facebook 之類的社群平台,全世界的工程師都在幫你 Code Review,很快地就會得到大量的回饋!不論是好是壞的留言都可以成為你進步的動力。

不過我不會希望你是怕被罵,而不去做這件事情,因為這樣你等於放棄了學習更多的機會。嚴重的話可能就會一直擁抱錯誤的知識開發,反而造成惡性循環。

花太多時間

我常聽到有些人會覺得寫技術文章太花時間了,但這不就是你學習花費的時間嗎?也有另外一種說法是,我懂這個技術啊!但是要描述出來就又是另外一回事了,這個我非常認同,但是如果你不試著說說你會的技術是什麼東西,那你在面試的時候該如何對面試官解釋?

個人覺得寫文章所花費的時間是相當有價值的,因為你所做的一切都是在思考,你尋求完成這篇文章的內容,你會渴望去學習到對應的知識量,並且將那些知識從你的頭腦重現到文章裡。

順帶一提,其實更新文章的頻率也不需要太高,可能一兩個禮拜甚至是一個月一次都可以,只要能夠安排個固定時間讓自己學習就好,盡量別為了寫文章造成自己的壓力,這樣子很快就放棄了 😂。

那以上是我整理出來比較多個大家提到的理由,如果各位還有其他猶豫的點,願意的話再麻煩留言告訴我,我很樂意和大家聊聊 😃。

結論

雖然本篇的內容感覺把寫文章這件事情神話,但也想告訴大家,寫文章並不是唯一一個學習的方法,像是文章裡也有說到,每個人思考的方式都不同,學習的方式也有可能會不同。

就像開發模式也有 TDD、DDD 或 BDD 一樣,WDL 也只是一種透過撰寫技術文章來讓讓自己沈浸在學習裡的方法,並且為每一次的學習都留下紀錄,還能夠時常回去閱讀自己稚嫩(?)的模樣,對於愛講幹話又愛寫作分享的我,真的很推薦給大家!身邊已經有好幾個人被我推坑而開始寫文章了 😂。

如果你也決定開始了,歡迎在下方留言告訴我你的 Blog,我通通訂閱訂起來!

Starbugs Weekly 星巴哥技術專欄

一群技術人想寫出一些好文章,所建立的技術專欄。每週二會發佈技術週刊,分享科技新知,歡迎大家訂閱…

神Q超人

Written by

82 年次,單純相信努力不會騙人

Starbugs Weekly 星巴哥技術專欄

一群技術人想寫出一些好文章,所建立的技術專欄。每週二會發佈技術週刊,分享科技新知,歡迎大家訂閱 https://weekly.starbugs.dev/。

神Q超人

Written by

82 年次,單純相信努力不會騙人

Starbugs Weekly 星巴哥技術專欄

一群技術人想寫出一些好文章,所建立的技術專欄。每週二會發佈技術週刊,分享科技新知,歡迎大家訂閱 https://weekly.starbugs.dev/。

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store