非程序員的編程學(xué)習(xí)指南:寫(xiě)好碼,也需要“德智體美”全面發(fā)展
本文轉(zhuǎn)載自公眾號(hào)“讀芯術(shù)”(ID:AI_Discovery)
不只是程序員需要死磕代碼,如今,越來(lái)越多不同行業(yè)的人出于不同需求開(kāi)始嘗試著接觸編程。一開(kāi)始你可能會(huì)覺(jué)得這太難了,確實(shí),學(xué)好編程并不容易,尤其是對(duì)于非程序員來(lái)講,但堅(jiān)持下去總會(huì)看到曙光。
做好下面幾件事,能讓你的學(xué)習(xí)效果更上一層樓。
1.它對(duì)身體要求很高
很多人并沒(méi)有意識(shí)到編程是項(xiàng)“體力活”,他們狹隘地認(rèn)為“運(yùn)動(dòng)”才是真正需要強(qiáng)健體魄的活動(dòng)。
事實(shí)上,雖然你確實(shí)不需要強(qiáng)壯的肌肉來(lái)進(jìn)行編程,但坐在辦公桌前對(duì)你的身體健康也有同樣的要求。你缺乏鍛煉和運(yùn)動(dòng),不去曬太陽(yáng),你的身體就會(huì)缺少維持健康所需的所有維生素和營(yíng)養(yǎng)。
我的建議是,與其整天坐在辦公桌前,更好的選擇是把你的編碼“機(jī)制”分成不同的階段——每隔50分鐘休息10分鐘,在你的房間里四處走走,這樣的話,你一天可能會(huì)走將近10000步,也可以利用午餐時(shí)間出去曬曬太陽(yáng)。
2.它還會(huì)對(duì)你的心理健康產(chǎn)生巨大的影響
編程有時(shí)會(huì)讓你感到非常沮喪,可能是因?yàn)槟悴焕斫獯a或文檔,不理解一個(gè)月前寫(xiě)的代碼,或者你根本不知道錯(cuò)誤在哪里以及如何去修復(fù)它。你很擔(dān)心且恐慌,不知道該如何繼續(xù)工作。
這時(shí)不妨休息一下。即使你交付工作的截止日期是明天,在工作區(qū)或公園里走走也能幫助你放松思想,使你更好地理解正在查看的代碼。壓力之下,我們經(jīng)常會(huì)感到恐慌,忍不住擔(dān)心如果我們沒(méi)有完成工作會(huì)怎么樣。這會(huì)限制我們清晰思考的能力,而短暫的休息通常會(huì)讓我們?cè)俅胃咝У毓ぷ鳌?/p>
3.進(jìn)入“區(qū)域”非常重要
什么是“區(qū)域”? 進(jìn)入“區(qū)域”就像是沉浸式體驗(yàn),你會(huì)感到快樂(lè),感到有力量,有目標(biāo),并且完全沉浸在正在做的事情中,會(huì)完全忘記你周?chē)l(fā)生的一切。當(dāng)結(jié)束時(shí),你會(huì)發(fā)現(xiàn)已經(jīng)是凌晨4點(diǎn)了。
進(jìn)入“區(qū)域”與定期休息同樣重要。這是一個(gè)需要絕對(duì)專注的時(shí)間,你會(huì)驚訝地發(fā)現(xiàn),只要坐下來(lái),每隔一段時(shí)間就把所有來(lái)自工作場(chǎng)所的干擾屏蔽掉,你就能完成許多工作。
你會(huì)完全專注于手頭的任務(wù)——查看電子郵件、瀏覽社交媒體、吃點(diǎn)東西、在床上懶懶散散的誘惑都消失了。在不知不覺(jué)中,你已經(jīng)完成了計(jì)劃要做的工作,甚至超出預(yù)期。
嘗試為自己創(chuàng)造一個(gè)建設(shè)性的、舒適的工作空間。一張凌亂的桌子不會(huì)讓你感到舒適。放點(diǎn)音樂(lè),關(guān)上門(mén),停止上網(wǎng),你就可以開(kāi)始幾個(gè)小時(shí)的高效工作了。
4.制定計(jì)劃和編寫(xiě)代碼同樣重要!
許多程序員在開(kāi)始他們的項(xiàng)目之前會(huì)忘掉設(shè)計(jì)原型和制定計(jì)劃的重要性,導(dǎo)致最后他們?cè)陧?xiàng)目中添加了許多不必要的特性,或者他們開(kāi)始意識(shí)到本可以用更整潔、更簡(jiǎn)明的方式編寫(xiě)代碼。
由于某些部分需要先完成,因此可能還必須重新編寫(xiě)部分代碼,否則代碼順序就會(huì)變得很凌亂,就無(wú)法理解編寫(xiě)好的代碼了。
在你著手編寫(xiě)代碼之前,請(qǐng)花一周左右的時(shí)間列出項(xiàng)目的所有主要特性,以及如何編寫(xiě)它們。如果你正在做應(yīng)用程序開(kāi)發(fā),你還可以考慮應(yīng)用程序的外觀是什么樣子,你會(huì)使用什么形狀來(lái)塑造它、以及你會(huì)使用什么過(guò)渡從一個(gè)屏幕轉(zhuǎn)到另一個(gè)屏幕。
在正式開(kāi)始之前花費(fèi)一周時(shí)間來(lái)理解的你項(xiàng)目,在剛開(kāi)始看起來(lái)可能是在浪費(fèi)時(shí)間,但是相信我,從長(zhǎng)遠(yuǎn)來(lái)看,它將為你節(jié)省幾個(gè)月的時(shí)間。
5.不要害怕尋求幫助
大多數(shù)程序員都是自學(xué)成才的,但即使是那些靠自己就能夠有效學(xué)習(xí)的人,也會(huì)遇到無(wú)法解決的問(wèn)題。有時(shí),可以通過(guò)在線搜索錯(cuò)誤或在StackOverflow之類的平臺(tái)上搜索錯(cuò)誤來(lái)解決我們的問(wèn)題,但是大多數(shù)此類搜索都要求我們知道確切的關(guān)鍵字才能找到所需的答案。
另外,有許多錯(cuò)誤過(guò)于籠統(tǒng),可能會(huì)包含許多不是你所面臨的問(wèn)題。對(duì)于初級(jí)開(kāi)發(fā)人員來(lái)說(shuō),排除此類通用錯(cuò)誤是非常困難的,在這種情況下,最好由高級(jí)開(kāi)發(fā)人員進(jìn)行指導(dǎo),他們可以指出你編寫(xiě)的代碼的確切問(wèn)題,并為你提供幫助。詢問(wèn)學(xué)校的畢業(yè)班學(xué)生或者老師會(huì)是一個(gè)不錯(cuò)的選擇!
6.就像維護(hù)代碼一樣編寫(xiě)代碼
實(shí)話講,大多數(shù)人的代碼編寫(xiě)習(xí)慣都非常差(對(duì)那些有自律能力、能夠定期重構(gòu)代碼的人表示稱贊!)。當(dāng)遇到看似無(wú)法解決的問(wèn)題時(shí),我們傾向于將注意力轉(zhuǎn)移到項(xiàng)目中更容易的部分,但這只會(huì)使我們的代碼變得非?;靵y和分散,再加上沒(méi)有制定計(jì)劃,我們的代碼會(huì)變得異常混亂、過(guò)于冗長(zhǎng)且完全不可讀。
對(duì)于維護(hù)你的代碼的人來(lái)說(shuō),這是個(gè)壞消息,你應(yīng)該時(shí)刻記住盡全力保持代碼可讀性的原因。
記得要使用描述性變量(同時(shí),不要使它們太冗長(zhǎng)),對(duì)重復(fù)的內(nèi)容使用函數(shù),必要時(shí)將代碼分割成單獨(dú)的文件,并做適當(dāng)?shù)淖⑨?無(wú)需解釋任何內(nèi)容,但冗長(zhǎng)的代碼會(huì)讓人感到混亂),并確保你的代碼遵循邏輯和結(jié)構(gòu)。
7.它可以很有趣
編程是很困難的,你會(huì)花費(fèi)數(shù)不清的時(shí)間在屏幕前處理一個(gè)接一個(gè)的項(xiàng)目。有時(shí)你必須犧牲掉自己的社交生活,但是在一天結(jié)束的時(shí)候,你會(huì)感到非常有趣。
編程充滿了驚喜,它是情緒的過(guò)山車(chē)。有時(shí)你會(huì)感到非常沮喪,以至于想要放棄;有時(shí)你會(huì)覺(jué)得費(fèi)時(shí)很長(zhǎng),耽擱了事情;但有時(shí),你會(huì)感到得心應(yīng)手。你清楚地知道自己想做什么,以及如何去做。
只要你愿意投入時(shí)間和精力,你就能成為一名優(yōu)秀的開(kāi)發(fā)人員。許多人嘗試編寫(xiě)代碼,但大部分早早就泄氣了,你需要多次嘗試才能掌握它。
不要害怕失敗,不要讓混亂的語(yǔ)法阻礙你,只要你堅(jiān)持不懈,永不放棄,任何事情都可以實(shí)現(xiàn)。