程式設計師為什麼值得寫部落格

Phodal發表於2015-01-13

Hire Great Writers

彷彿這是寫給自己看的,不過這在其中也有著相當有趣的意義 。雖然自己算是一個能寫的人,或許這算是一種不算才華的才華,寫博文的意義通常不會在於去描述自己怎樣,怎樣。通常在某些時候對自己來說,可以回顧自己學習的過程,呈現其中的一些思路,並其學習的過程分享出來。

原文的意義在於說明,一個優秀的寫手,其優點並不僅僅在於寫作,文法清晰代表思路明晰。優秀的寫手都懂得如何與人溝通,他們使事情變得易於理解,他們善於換位思考,懂得抓重點、砍枝節,這些都是合格的應聘者身上應具備的特點。 想想自己算是後面說的那一部分,至於前面那部分——一個優秀的寫手,就有待商榷。寫的人越來越想,閱讀的人越來越多的這個資訊冗餘的年代,會寫就代表會思考??(轉載保留: 程式設計師為什麼值得寫部落格)

為什麼要寫博文

寫一篇博文意味著要花一定的時間,有時候可能是一個小時,有時候可能會更多,於是人們開始去copy。在這個Ctrl+C越來越盛行的年代,我們還是輸了,於是乎在我們的國度裡,我們的計算機書算是輸給國外的精英了。我們也有優秀的程式設計師,有優秀的工程師,只是在其中能與大眾溝通的又有多少。我們的終端使用者可從來不會管你用的是什麼技術,他只懂得什麼是體驗,什麼是速度等等。至於你說的東西,他不知道,也不會在乎。

這也就是為什麼大師可以成為大師的原因,而菜鳥卻還是菜鳥,大師在心裡寫博文的時候學會了總結,比如,定義演算法的集合,將各演算法封裝,使它們能夠交換。利用Strategy模式,演算法和利用這些演算法的客戶程式可以分別獨立進行修改而不互相影響。這個就是你需要的方法,於是大師就和你說了,“你需要Strategy模式”。這就是你要的答案,GoF分享了他的東西給了你,我們就有了一本《Head First設計模式》或者是《設計模式解析》。

我們開始走上了成為大師的西天取經,為什麼是西天呢,這個領域一直是西方比東方分享得多。《西遊記》就這樣成為了《西遊記》,寫下這個過程的到處是吳承恩,還是師徒五人?師徒五人從一個地痞無賴直至成仙成佛。(PS:一直覺得自己寫的東西,比較像不是散文的散文,中心似乎一直很明確,只是看懂的彷彿不到。)簡單點來說,就是他們寫下了自己的那些點點滴滴,我們就知道怎麼去“西天”(我的意思不是那個意思,我想你懂的。)

這個過程就是一個個為什麼你會看到那麼多本優秀的計算機書的原因,大師分享了他們的心得告訴我們如何去成為大師,不過我還不是。只是如果你要成為大師,就要去分享你的過程。至於為什麼?簡單的說幾點:

  • 技藝的掌握在於重複。技術和遊玩的相同之處在於技術玩得越多,也就越熟悉,當你試著去寫一篇博文的時候,你也回顧了過程。遊玩的回味可以再次歡樂,博文的書寫可以再次熟悉。
  • 你的過程正是別人所需要的。不要以為你手上的那點點關於編碼的小知識不是別人所需要的,有時候人們就需要像《七週七語言 理解多種程式設計範型》這種書。
  • 你的作品有可能因此重構。至於你對於重構是害怕還是享受,我就不得而知的,但是你寫出來的時候,也許你會有更好的思路湧現出來。不好的一點是你還需要對這篇文章進行重構,不是麼?
  • 別人的評價。別人的評價有時候是打擊,不過我想更多的時候是一種建議,比如Linus在剛寫Linux的第一個版本的時候,他也遇到了這樣的問題。至於單核心好還是微核心好,這個問題有點類似於先有雞還是先有蛋,不過我想後者可能科學家會給出答案。至於前者,不同的領域可能是不同的,Python好還是C好?相同的領域也可能是不同的,Ruby強大,還是Python強大?
  • 最後一點就是,你想成為大師,不是麼?如果你還甘願......,我就不說了。

成為筆桿子

Copy與盜版

當我開始越來越頻繁寫部落格的時候,同學開始複製,於是有一天他的排名對於我來說,已經遙不可及了,於是遠遠地排在了CSDN的前面。一步步的前進著,開始懂得怎樣去試著推銷自己的部落格,這時候漸漸有趣了。又去鼓勵另外一個同學去寫部落格,就如他所說的,“就算是你,寫一篇部落格也要一個小時”吧,或者對於我的打字速度來說,不算什麼,半個小時可以達到三千,五筆加上機械鍵盤好的手感。

我們總會說別人寫的說怎麼怎麼的爛,但是如果一本書上不是Copy過來的,那麼他就是不錯的,在版權的地位比代課老師還低的天朝。我想你就可以罵這本書爛,因為他是複製的,因為到了最後你沒有找到出處。換到博文來說,你搜尋到的結果一個個都是一樣的,你找不到原版的文章,去問作者一些問題。

一開始的時候我試著去反抗那些複製,你花一個小時寫的東西,可能在釋出的瞬間就被抓取過去了。有趣的是,漸漸我發現這有利於我們去傳播我們的思想。換句話說,這是一個資訊時代,你寫的東西有可能在一瞬間到了Obama的眼前。至於優缺點嘛,補充一句可以藉此SEO。

天朝一直都有天朝特色,無論從哪些方面來說,計算機也是如此,中國特色的免費。至於付費,我想這就是為什麼我不會考慮去做收費軟體的原因了。 程式設計師害了程式設計師,自己害了自己有什麼好說的。於是轉戰到了openSUSE,都挺好的fcitx的五筆很給力,bug也沒有原來多,還有WPS For Linux下的此文,因為網路原因。

Copy對於讀者來說,看到的都是千篇一律的東西,只會寫的人失去興趣。盜版對於使用者來說,看到的都是免費的東西,只會讓開發商失去動力。使用者便看到了越來越多的廣告,讀者便只看一個門戶的新聞。

如何去寫博文

標題——必須重要,類名

對於寫博文的人來說,重點的是如何清楚的去表達他們的想法,標題算是其中之一,這個也就是為什麼標題黨成為了標題黨,而《設計模式》成為了經典。剛開始學程式設計的時候,更吸引你注意力的可能是《72小時學會Javascript》,而不是《Javascript 權威指南》,興許讓你買前者的原因是因為你能看懂前者,而後者不僅看不懂,而且價格更貴。只是一年以後,《72 小時學會Javascript》被你扔到了垃圾箱,而《Javascript 權威指南》卻放在了原來放那本書的位置上。你定義的類難道僅僅應該是class class1麼?

小標題——地圖,method

小標題有點類似於sitemap.xml,只是他就是站點地圖,一點就到了相應的地方。他應該直接瞭解的說這是開始選單,標題欄,選單欄,而不應該是簡簡單單的第一章,如果你真是那樣寫的話,你寫的函式想必是

def fun1
end

如果你寫的是get_data那麼,我想你的函式名應該和你的文章一樣,告訴人們,你要的是get_data。所以不要吝嗇你滑鼠的一下,它可以承受上百萬字的點選。如果因為那樣壞了,你可以告訴我,我可以幫你免費換一個歐姆龍的微動,前提是你的滑鼠可以換。如果是HTML那麼應該是h2 h3,markdown也就是用得比較多的github上的README.md的##或者是###

內容——函式體

這裡可不是讓你用一個讓人難以理解的Magic Number,你寫得越複雜,別人看的時間就越久,通俗易懂,就是一個很好的開始。你可以把一個個複雜的方法分解出來,或者提煉函式,或者重新命名。當你相信你看不懂你的文章,正如你看不懂你寫的hello,world我想你是時候去重構你的函式了。

複雜的部分,就用段落來解決,一個函式如同一個段落只應該表達一個思想,太長了就如同這篇文章一樣沒有多少人會認真去看。你需要給你寫的一個精美的程式碼加一個註釋,所以你也需要給你複雜的地方加上個(PS)。

引言——README

我想都會去看的,無論是在破解軟體的時候,還是github上面的專案。簡單的說說,這篇文章是幹什麼的,這個程式是幹什麼的。大家都會,不是麼?

沒有什麼好寫的?

說說你是怎麼開始程式設計吧,然後寫在你的部落格上,你會發現你會愛不釋手的。

小提醒

  • 程式碼,程式碼有時候會更清晰的表達你思路,太長的程式碼可能會影響閱讀,通常不超過一屏就不算太長
  • 圖表,耐心的畫個UML圖,或者程式框圖也是不錯的,很清晰的表達你的思想。
  • 美觀,要知道C上是有indent,如果我看到別人讓我幫他看的程式碼是一坨。。。WPS也有段落,如果你沒有學好WORD,找本《72小時精通Office》吧,順便找PPT、EXLS也學了。
  • 格式,記得好好用好手上的工具,如果你用的是CSDN用的editor,試著一個個探索,CODE應該要有CODE的格式,LIST應該要有LIST的格式

最後,耐心

在CSDN上的博文的話,可以按長尾理論來分析,這裡說的通常是指——你的東西是原創的,寫博文有些時間。SEO上,以谷歌為例,谷歌對其抓取是比較及時的,同時谷歌會排除掉部分專業的複製網站——就是拉到重複的搜尋結果裡。文章剛發表的時候的流量有可能會很低 ,但是有些文章時間一長就顯示出來了,比如我寫的東西中的《Android上使用GCC》算是一個很好的示例。一開始的時候我們寫的東西訪問量不會很大,特別是我們剛起步的時候,這時候就要一步步慢慢來。只要你寫的東西是別人需要的話,那麼就會一步步慢慢來。如果你寫的剛好是熱門的話題、技術的話,那就是好萊塢大篇《速度與激情1》《指環王2》《黑客帝國3》《納尼亞傳奇4》。。。直到《哈利波特7上》,《哈利波特7下》。於是作為迪斯尼的你,又推出了下一部分電影……

總結

現在的我們更多的技術是直接來源於Google、百度、CSDN或者其他,搜尋得來的,我們並不去考慮別人在其中花費的時間和經歷,有時候我們要試著去想我們是不是也應該分享給別人。這算是自己開始寫部落格的原因,受益於開源社群,我們自然而然的也要回顧給這個社群,只有分享才會使未來更美好。

我們都希望看到有一篇博文夠清楚的對我們當前所遇到的那個問題進行好好的解析,問題是也許你解決過的那個問題正是別人所需要的,但是你並沒有將它分享出來,彷彿是一個迴圈一樣

for(;;){

}

於是我們又回到了一個起點,人都是自私的。我們都希望自己能更快的學習好一項技術,一門語言,別人也需要你手上的那項技術,那個語言。都你開始意識到別人需要你手上的東西的時候,你算懂得換位思考了。

寫篇分享,寫篇心得就是一個好的開始,或許我們已經被高中的語文所嚇怕了。但是,是時候從新開始。如果你被C的指標嚇壞了,被C++的模板嚇到了,被Javascript的簡陋嚇到了,而你又需要拾起它,我想是時候重新開始了。

相關文章