程序員獲取編程靈感的十種方式
有時(shí)我會(huì)陷入讀著編程書但編不了程的陷阱。我不能總是找到一個(gè)可工作的有趣項(xiàng)目,即使我知道有大量的機(jī)會(huì)。如果你有相同的問題,這里的一些提示可能會(huì)有所幫助。
1.與其他程序員聊天
這是***的靈感來源,因?yàn)?,他們?huì)有一些你想不到的點(diǎn)子。即使是一些程序員朋友、一個(gè)編程小組或甚至是一個(gè)會(huì)議都行。將所有這些想法混合起來肯定會(huì)給你一個(gè)新的視角。
2.和非程序員一起聊天
首先,在那些讓你覺得快樂或挑戰(zhàn)思維的人身邊,會(huì)讓人健康,無論他們是否會(huì)寫代碼。第二,他們可以從用戶的角度給你靈感。什么會(huì)讓他們對(duì)計(jì)算機(jī)感到失望?你能想出解決方案嗎?
3.有一個(gè)專用的工作區(qū)
如果不可能有一個(gè)專門的空間,那么至少確保工作時(shí)能夠安靜,以便于你可以專注于計(jì)算機(jī),而不受干擾。讓這個(gè)地方成為你的“革命根據(jù)地”。確保椅子舒適,可以支撐背部。手邊備好水。不要一整天坐著不動(dòng)——保持健康。
4.有良好的開發(fā)環(huán)境
上一個(gè)方法提示的軟件版本。我不在乎你使用哪個(gè)編輯器(雖然我推薦vim),但確保你使用一個(gè)可以給你一些力量和靈活性的編輯器??偸鞘褂迷创a控制——尤其我建議你學(xué)習(xí)git,因?yàn)樗鼤?huì)教你概念。始終備份工作。所有這一切將防止你在你不使用它們時(shí)可能會(huì)遭遇的極度灰心喪氣,從而失去工作。
5.秉持開放的態(tài)度
閱讀你尊敬的程序員的Twitter Feed和博客。(如果你想的話,可以看看我的twitter feed——大多是程序員。)RSS閱讀器,例如Ruby Inside或者老式的Planets,都可以是很好的新聞來源,因?yàn)樗鼈儠?huì)添加突出的新程序員,而不必你去搜索。選擇一些你通常不會(huì)閱讀的主題的博客,并訂閱它們。
是的,這可以讓你陷入閱讀代碼而不寫代碼的陷阱,但進(jìn)入更大的編碼生態(tài)系統(tǒng)對(duì)你是有益的,是激發(fā)思緒的源頭。
6.閱讀優(yōu)秀的代碼
想想你喜歡的一些軟件,然后看看軟件的源代碼。有什么問題?你如何從中學(xué)習(xí),或者更好的是,你可以怎么改善這個(gè)軟件?有很多好代碼的源,但GitHub必然是***的之一。GitHub博客上的GitHub Rebase系列列出了一些值得注意的新項(xiàng)目,如果你想要了解更多細(xì)節(jié)的話。
7.學(xué)習(xí)一門新的語言
這是一個(gè)經(jīng)常被提到的經(jīng)典建議。我建議學(xué)習(xí)一些以下類別中提到的東西:
-
中級(jí):C,C ++
-
面向?qū)ο螅篟uby,Python,Java,C#
-
Functional:Scheme,Haskell,Erlang
-
Shell:Bash,Zsh,awk,sed
-
基于Set:SQL
你所知道的語言越多,你就越需要用任意的語言來思考問題。你能以更多的方式思考,你就越容易找到有趣的方法來解決問題,因此找到一個(gè)激動(dòng)人心的項(xiàng)目。(當(dāng)然,不要局限于這個(gè)列表。)
8.學(xué)習(xí)好的技巧
而不是一種特定的語言,從書中學(xué)習(xí)好的通用技術(shù),如《The Pragmatic Programmer》,《Structure and Interpretation of Computer Programs》,和《The Little Schemer》。(***兩本特別關(guān)于Scheme,但非常好,很值得一讀。)
9.找一個(gè)娛樂項(xiàng)目
有一個(gè)娛樂項(xiàng)目是很令人愉快的,當(dāng)你在其他項(xiàng)目上受到挫折時(shí),你就可以轉(zhuǎn)而去搞搞娛樂項(xiàng)目。不管是什么樣的娛樂項(xiàng)目,只要你有即可。不要感到被迫分享它或使它成為某種成功——它只是幫助你解決問題的玩意兒。
10.寫一個(gè)游戲
很多人認(rèn)為編寫游戲是在浪費(fèi)時(shí)間,因?yàn)楹苌儆歇?dú)立游戲在商業(yè)上是可行的,但如果你是玩家,那么還是寫一個(gè)吧。它是治療性的,有很多深刻的概念會(huì)在你在工作的時(shí)候自然而然地浮現(xiàn)在你腦中。我就寫了一些小游戲,幾乎所有都沒有發(fā)布過;它們是試驗(yàn),也是寶貴的經(jīng)驗(yàn)財(cái)富。如果你不知道怎么起頭,那么試試Roguelike。
11.采取暴力方法
我知道,題目說是10個(gè)方法,但是這一條是在你真的有了靈感之后的獎(jiǎng)勵(lì)提示。看看你的編程書籍,RSS訂閱,twitter,Stack Overflow或任何其他編程信息的源。找到兩個(gè)不相關(guān)的主題,甚至你只覺得略有趣味。現(xiàn)在找到方法來連接兩者。即使有點(diǎn)模糊。
例如,就隨機(jī)的,我選擇了解析器和…無障礙環(huán)境。你可以了解它們,然后編寫一個(gè)HTML解析器,并特別關(guān)注無障礙因素。截至今天,我沒有看到太多關(guān)于這個(gè)主題的代碼,所以這可能是一件好事。(這里有一個(gè)開源的無障礙測試器,我找到的一個(gè)例子,但一個(gè)是不夠的。)
譯文鏈接:http://www.codeceo.com/article/10-inspiration-as-a-programmer.html
英文原文:10 Ways to Get Inspiration as a Programmer
























