一個(gè)程序員的學(xué)習(xí)方法和編程習(xí)慣

作者:極客小俊?
把邏輯思維轉(zhuǎn)變?yōu)榇a的技術(shù)博主

前言
養(yǎng)成一個(gè)學(xué)習(xí)習(xí)慣和編程習(xí)慣真的太重要了,一個(gè)好習(xí)慣的養(yǎng)成真的對(duì)后面的學(xué)習(xí)有很大幫助
下面是一些我覺得還不錯(cuò)的編程好習(xí)慣,希望對(duì)大家有所幫助!
提問是一種藝術(shù)

我們平時(shí)任何時(shí)候都離不開提問特別是初學(xué)的時(shí)候,但是真正知道如何正確的提問的人很少。問別人問題前不要來一句“在嗎”,你說你問了在嗎我是回復(fù)好還是不回復(fù)好呢 ?
提問的方式
我曾經(jīng)也遇到過很多讓我無語或者頭疼的問題,也遇到讓我很歡喜想要去耐心解答的問題,總的來說,會(huì)提問的人還是太少了。
為此我也查閱了網(wǎng)上的一些相關(guān)資料,下面給大家分享一下我對(duì)如何提問的看法。
下面我總結(jié)了一些經(jīng)常被問到的一些問題,我暫且將它們分為:稍微正常 和 不那么好 這兩類的提問!
稍微正常點(diǎn)的問題
如下:
| ------------------------------|
| 1.我應(yīng)該如何學(xué)習(xí)什么? |
| 2.什么某某技術(shù)該如何入門?? |
| 3.某一段代碼bug問題如何解決?|
| 4.這是啥英文內(nèi)容你能給我解釋一下嗎? |
| 5.如何找到一個(gè)讓自己滿意的工作?? ?|
| 6.面試簡(jiǎn)歷簡(jiǎn)介該如何寫?? |
| 7.初學(xué)者學(xué)習(xí)什么什么語言工具技術(shù)有哪些書籍推薦呢? |
以上的提問個(gè)人覺得還算正常的問題,但提問方式有待改善!
不那么好的提問
如下
| ------------------------------------------------------------ |
| 1.什么軟件可以發(fā)一下、我能在哪找到 什么什么程序 或? 什么什么 資源? |
| 2.某某什么環(huán)境變量怎么配置啊? ?|
| 3.隨便截個(gè)bug圖,然后扔下一句話:“這是什么題” ?? ? |
以上這些問題其實(shí)一般被提問者內(nèi)心:難道不會(huì) Google?百度??最不濟(jì)應(yīng)該也會(huì)百度吧! 其實(shí)我自己也是從這個(gè)時(shí)候過來的,至少我認(rèn)為要先使用百度、Google、stackoverflow 之后再提出問題,這個(gè)時(shí)候你提出的問題質(zhì)量就會(huì)提高很多! ?
提問存在很明顯的問題就是:沒有把自己的問題描述清楚! ?在此強(qiáng)調(diào)問題的描述極為重要! 尤其是技術(shù)類型的問題
你可能是剛?cè)腴T,需要?jiǎng)e人幫助你回答一些疑問,但提問之前一定自己要先做下功課, 這樣最后得到的結(jié)果會(huì)大有收獲!
所以想讓大家意識(shí)到會(huì)提問真的很重要!
正確的提問方式
下面說一下我覺得比較好的提問方式:
最重要的就是遇到問題之前首先 Google!很多時(shí)候你花半個(gè)小時(shí)到處問問題,你 Google 、百度一下可能 10 分鐘就解決了。
有問題直接問,不要給別人來句“在嗎”或者“有時(shí)間嗎”這類話(我覺得我還算脾氣很好的,每天都會(huì)遇到這類人,每天都不耐煩的回答,但直接說明自己的問題或者請(qǐng)求不是更好嗎?)。
問別人問題之前自己先做一些功課,不要一上來就問一下很 Low 的問題,讓別人對(duì)你的印象不好
問問題的時(shí)候盡量添加一些上下文信息,比如說:你為什么問這些問題,這些問題出現(xiàn)在什么情況下等等。
你可以先說明一下自己對(duì)于這些問題的看法,你準(zhǔn)備如何解決,你做過哪些嘗試,你期待對(duì)方給你什么樣的回答。
縮小你的問題的范圍,越是范圍小而清晰的問題越容易回答, 這真的很重要很重要!
關(guān)于健康
我覺得這一方面也是最重要的, 我想很多人和我一樣會(huì)無意識(shí)間忽略它,等到真的身體不舒服了,你才開始意識(shí)到健康生活的重要性。
除非萬不得已,不要熬夜了。熬夜的危害就不用多說了,禿頭加內(nèi)分泌失調(diào),你懂得!
看電腦45分鐘之后,起來走5分鐘,看看遠(yuǎn)方放松一下。不要覺得這5分鐘浪費(fèi)時(shí)間,相反,這5分鐘可能為你帶來更大的效率提升。
可以考慮買一個(gè)電腦架子,保護(hù)好自己脊椎的同時(shí),辦公體驗(yàn)也會(huì)提升很多。
可以下載一個(gè)護(hù)眼寶,感覺可以護(hù)眼模式挺棒的,非常適合我們這種需要經(jīng)常盯著電腦的人使用
善于總結(jié)

學(xué)習(xí)完任何一門知識(shí)后,你可能當(dāng)時(shí)看視頻感覺老師講的挺容易懂的。但是,過幾天后你發(fā)現(xiàn)你忘的一干二凈,別人問你一個(gè)類似的問題,你一點(diǎn)思路都沒有。所以,我推薦你學(xué)完一門知識(shí)后不光要及時(shí)復(fù)習(xí),還要做好總結(jié),讓知識(shí)形成一個(gè)體系。另外,你可以假想自己要給別人講這個(gè)知識(shí)點(diǎn),你能不能把這個(gè)知識(shí)點(diǎn)講清楚呢?如果不能,說明你對(duì)這個(gè)知識(shí)點(diǎn)還沒有徹底了解。這也就是人們經(jīng)常說的費(fèi)曼學(xué)習(xí)法則!
總結(jié)的方式如下:
有道云筆記、OneNote…這類專門用來記錄筆記的軟件上
思維導(dǎo)圖、markdown文檔
通過寫博客輸出, 可以考慮自己搭建一個(gè)博客(hexo+GithubPages非常簡(jiǎn)單),你也可以在簡(jiǎn)書、掘金…等等技術(shù)交流社區(qū)寫博客.
關(guān)于寫博客
寫博客有哪些好處:
對(duì)知識(shí)有更加深的認(rèn)識(shí),讓自己的知識(shí)體系更加完整
督促自己學(xué)習(xí)…總的來說,寫博客是一件利己利彼的事情。你可能會(huì)從中收獲到很多東西,你寫的東西也可能對(duì)別人也有很大的幫助。但是,寫博客還是比較耗費(fèi)自己時(shí)間的,你需要和工作做好權(quán)衡。
提升自己
多用 Github
沒事多去Github轉(zhuǎn)轉(zhuǎn),如果有能力可以參與到一些開源項(xiàng)目中。多看看別人開源的優(yōu)秀項(xiàng)目,看看別人的代碼和設(shè)計(jì)思路,看的多了,你的編程思想也會(huì)慢慢得到提升。除了這些優(yōu)秀的開源項(xiàng)目之外,Github上面還有很多不錯(cuò)的開源文檔、開源資料什么的,我覺得對(duì)我們平時(shí)學(xué)習(xí)都挺有幫助。
關(guān)于實(shí)踐項(xiàng)目經(jīng)驗(yàn)
多去實(shí)踐,將學(xué)到的東西運(yùn)用到實(shí)際項(xiàng)目中去。很多人都找我抱怨過沒有實(shí)際項(xiàng)目讓自己去做,怎么能有項(xiàng)目經(jīng)驗(yàn)?zāi)兀?/span>
如果實(shí)在沒有實(shí)際項(xiàng)目讓你去做,我覺得你可以通過下面幾種方式:
在網(wǎng)上找一個(gè)符合自己能力與找工作需求的實(shí)戰(zhàn)項(xiàng)目視頻或者博客跟著別人一起做。做的過程中,你要有自己的思考,不要淺嘗輒止,對(duì)于很多知識(shí)點(diǎn),別人的講解可能只是滿足項(xiàng)目就夠了,你自己想多點(diǎn)知識(shí)的話,對(duì)于重要的知識(shí)點(diǎn)就要自己學(xué)會(huì)去往深入學(xué)習(xí)
Github或者碼云上面有很多實(shí)戰(zhàn)類別項(xiàng)目,你可以選擇一個(gè)來研究,為了讓自己對(duì)這個(gè)項(xiàng)目更加理解,在理解原有代碼的基礎(chǔ)上,你可以對(duì)原有項(xiàng)目進(jìn)行改進(jìn)或者增加功能, 俗稱二次開發(fā)
自己動(dòng)手去做一個(gè)自己想完成的東西,遇到不會(huì)的東西就臨時(shí)去學(xué),現(xiàn)學(xué)現(xiàn)賣, 我就是如此起家的!
有門路,有人脈的條件下 多接私單!
注意代碼規(guī)范
從學(xué)習(xí)編程的第一天起就要養(yǎng)成不錯(cuò)的編碼習(xí)慣,包、類、方法/函數(shù)、變量的命名這些是最基本的, 注釋也是必須寫的方便別人也方便你自己! 懂的人都懂!
溝通能力
程序員也離不開溝通。你可能需要與客戶交流需求,還要和同事交流項(xiàng)目問題,還有可能定期需要向領(lǐng)導(dǎo)匯報(bào)項(xiàng)目進(jìn)展情況。
所以,我覺得不錯(cuò)的溝通能力也是一個(gè)優(yōu)秀的程序員應(yīng)該有的基本素質(zhì)。
大家的支持就是我堅(jiān)持下去的動(dòng)力!
