寫不出代碼應(yīng)該怎么辦?
當(dāng)你看著電腦一直發(fā)呆,而屏幕的代碼已經(jīng)停了很久時。一股想摔鍵盤的沖動醞釀在胸中。于是你嘗試了抽煙、喝咖啡等各種辦法。可過了好久,你還是無法產(chǎn)出任何代碼。
“我寫不出代碼了!”
所有重新發(fā)現(xiàn)編程趣味的努力都徒勞無功,這是你的最后一點(diǎn)能量都用來驅(qū)逐大腦中正在攻城略地的話。
眾所周知,即使是最優(yōu)秀的程序員也會遇到無法解決的軟件工程問題。但之所以會有這樣的問題,并不意味著你缺乏技能或知識。編程不是一項(xiàng)容易的工作,我們可以通過采取非正統(tǒng)的方法來保持你想要的生產(chǎn)力水平,并確保提交高質(zhì)量的代碼。
沒有憤怒和悲傷。因?yàn)槲乙呀?jīng)嘗試過所有方向,只是都走不通而已。失去希望,于是開始想辭職不干。或者會想到轉(zhuǎn)行,起碼做點(diǎn)別的不至于如此燒腦,讓大把時間莫名其妙的消失不見。從懷疑編碼,到懷疑生活和人生,只是個簡單的過程。
在寫代碼的過程中,就是這樣的一種無力感,會突然占據(jù)你的身體和意識。代碼停滯在那里久久動彈不得,你該如何避免這種沒有成效的狀態(tài)?
挖掘問題的本質(zhì)和生產(chǎn)力
這點(diǎn)主要是針對新人說的,當(dāng)然很多新人其實(shí)并不明白所謂的重新定義生產(chǎn)力這個說法。所謂生產(chǎn)力的定義,就是你在編程時以一種健康的方式保持生產(chǎn)力,不至于筋疲力竭。主要包括:測試不同的解決方案,直到感覺重復(fù)、在線尋找開源解決方案、咨詢更有經(jīng)驗(yàn)的程序員等。如果這些方法都行不通,那就可以直接放手了。
1.試驗(yàn)不同的方案,直到重復(fù)
當(dāng)然,在你遇到困難時,并不建議在第一時間就詢問其他開發(fā)人員。你應(yīng)該嘗試使用你現(xiàn)有的知識和思維來制定每一個可能的解決方案。但確實(shí),常見的是太多的程序員是從詢問他人開始的,自己甚至都不曾靜下心來分析問題本身。
這樣的后果是,自己既沒有深入弄清楚這個問題,也有點(diǎn)浪費(fèi)別人的時間。因?yàn)楫?dāng)你下次遇到類似的問題時,很可能也是沒有頭緒。所以,先投身于工作,然后再尋求幫助。
2.查找開源代碼
當(dāng)你投入于工作依然沒有頭緒和效果時,就應(yīng)該嘗試開源代碼。許多編程人員構(gòu)建軟件,是出于創(chuàng)造解決方案并在線發(fā)布以供大家使用的樂趣。有些人發(fā)布的代碼曾被它們的程序員使用于商業(yè)項(xiàng)目。GitHub是尋找開源代碼的兩個主要地方之一。另一個是StackOverflow。
這些網(wǎng)站的解決方案是采用可重用代碼的形式,方便你在項(xiàng)目中實(shí)現(xiàn)。當(dāng)然使用其他人開發(fā)的代碼總是有風(fēng)險的。它可能會以你意想不到的方式改變程序的行為。備份原始代碼,這是常識。
3.請教更有經(jīng)驗(yàn)的程序員
不恥下問是件好事,但最尷尬的情形是向他人求助時,你自己都不清楚你在問什么。在詢問任何人之前,你得準(zhǔn)備好一些你無法通過網(wǎng)絡(luò)信息搜索解答的問題。明確的問題,才能有明確的解決方案。如果是你自己都描述得云里霧里的問題——那么你只會得到一個云里霧里的回答。
假如你身邊沒有其他開發(fā)者可以詢問時,你還可以在StackOverflow或MSDN社交論壇上詢問,或查找特別針對于你所用技術(shù)的Slack頻道。
4. 瀟灑放手,改行擇業(yè)
當(dāng)你實(shí)在為了工作焦頭爛額但沒有絲毫頭緒時,你就應(yīng)該放松自己。這不是偷懶,因?yàn)楫?dāng)你最輕松時,往往正是解決辦法靈機(jī)一現(xiàn)的時候。此時你的大腦工作在“發(fā)散思維”的模式下,而不是在“集中注意力”的模式下。
我們可以做些什么以便于幫助大腦在發(fā)散思維的模式下工作呢?其實(shí),放輕松就好了。比如:散步、清理辦公室或住所、與朋友約會等等。
其實(shí)對于程序員而言,一定要在編程和生活之間保持一種健康的平衡。無論你是因?yàn)殄X、興趣或是改變世界的夢想而選擇編程,但它永遠(yuǎn)都不應(yīng)該是你唯一癡迷的東西。當(dāng)你實(shí)在寫不出代碼時,可以選擇先放放。說不定潛意識會帶給你新的驚喜。