程序員為什么值得寫博客
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的簡陋嚇到了,而你又需要拾起它,我想是時候重新開始了。
(轉載保留: 程序員為什么值得寫博客)