六星云課堂:零基礎(chǔ)轉(zhuǎn)行IT,如何學(xué)好編程語言?

世界著名的記憶專家和大腦教練吉姆·奎克在《無限可能:快速喚醒你的學(xué)習(xí)腦》中講到,“你能夠控制它(動(dòng)力),并且可以遵循正確的方法不斷地創(chuàng)造它”,他在書中給出了公式:內(nèi)在動(dòng)力=目的×精力×S3。

S3指的做事三個(gè)步驟,頓悟—環(huán)境—微小的改變。從這個(gè)公式中,我們能夠知道要從哪幾個(gè)方面入手,來培養(yǎng)自己工作和學(xué)習(xí)的動(dòng)力。
首先給自己設(shè)定一個(gè)相對(duì)明確的中短期的目標(biāo)
這一點(diǎn)十分重要。目標(biāo)會(huì)為我們的行動(dòng)提供導(dǎo)向,也讓我們的思路更加清晰。
我們可以根據(jù)目標(biāo)推導(dǎo)出所需要做的事情,來確保所做的每一分努力都有意義。每走一步,都可以讓自己意識(shí)到距離目標(biāo)更加接近,這樣成就感就會(huì)被持續(xù)不斷地反饋給我們,無形中就會(huì)產(chǎn)生堅(jiān)持下去的動(dòng)力。
抓緊行動(dòng)
選定目標(biāo)后,就應(yīng)當(dāng)即刻開始行動(dòng),不要有過多遲疑和思考。
很多時(shí)候,完美主義和拖延都是讓人喪失動(dòng)力的元兇,我們會(huì)懼怕過程中出現(xiàn)錯(cuò)誤,最終沒有好結(jié)果,于是目標(biāo)設(shè)立之初的動(dòng)力就在恐懼和拖延中被消磨殆盡。
所以,應(yīng)當(dāng)趁著我們的熱情還未消散便立刻開始,將思考留在過程中,在行動(dòng)中不斷修正。
做好精力管理
每個(gè)人的精力都是有限的。如果想做的事情太多,就會(huì)分散精力,從而產(chǎn)生疲勞感。而且這樣一來,每一件事的效率都會(huì)降低,以至于回饋給我們的成就感也會(huì)降低,動(dòng)力自然更低,從而進(jìn)入惡性循環(huán)。
所以我們要做的將精力集中,灌注到一件事情上。就像李小龍?jiān)f過:“會(huì)一千種腿法的人不可怕,可怕的是能將一種腿法練一千次的人?!睙o論什么時(shí)候做好一件事都比半途而廢地做十件事更有價(jià)值。
另外,也需要做到張弛有度,不要最開始憑借勢(shì)頭埋頭苦干,到最后卻因?yàn)槠v而產(chǎn)生怠惰。適度休息,可以更有效率,也讓動(dòng)力更加持久。
尋找外在動(dòng)力,和優(yōu)秀的人同頻
人類具有社會(huì)屬性,在人群中反而可以更好地發(fā)現(xiàn)自我,也更容易被外界的人所激起斗志。高瓴資本的張磊曾說過:“與誰同行,比要去的遠(yuǎn)方更重要?!?/p>
加入一個(gè)優(yōu)秀的圈子,與優(yōu)秀的人同頻,借此來幫助我們提高認(rèn)知,提升眼界和水平,從而快速成長,在這過程中也會(huì)為我們提供源源不斷的動(dòng)力。

那對(duì)于程序員來說,我們應(yīng)該具體學(xué)習(xí)哪些呢?
1.我們學(xué)習(xí)編程的目的
一開始,很多小伙伴學(xué)習(xí)編程的目的很簡單。程序員工資高福利好待遇好??!隨后一大批小伙伴前來學(xué)習(xí)編程,不管是什么專業(yè),無論有沒有基礎(chǔ),都開始加入學(xué)習(xí)編程的行列。這種無腦操作的結(jié)果就是小伙伴的學(xué)習(xí)效率低下。即使他們找到了一份編程工作,他們也應(yīng)該因?yàn)樽约旱哪芰栴}而離開這份工作。所以大家不要盲目跟風(fēng)。
在學(xué)習(xí)之前,你必須首先確定你的目標(biāo)是什么,以及你為什么要學(xué)習(xí)編程。您對(duì)編程感興趣或有能力自己做。確定你要發(fā)展的領(lǐng)域,并有針對(duì)性地學(xué)習(xí)相關(guān)領(lǐng)域知識(shí)。學(xué)習(xí)相關(guān)的編程思想。否則,你最終會(huì)因?yàn)榫幊碳寄懿蛔愣W(xué)習(xí)編程的興趣,浪費(fèi)你的時(shí)間。
2.有興趣學(xué)習(xí)編程
我們都知道,無論我們學(xué)什么,或者你突然想學(xué)什么、做什么,都是因?yàn)槟銓?duì)這件事或與這件事有關(guān)的事情有一定的興趣,所以你就有了一定的動(dòng)力。會(huì)堅(jiān)持下去。而一旦你感興趣的興奮消失了,你就會(huì)對(duì)你正在做的事情保持沉默,直到令人討厭,這就是我們所說的“三分鐘熱度”。
對(duì)于編程,我們需要的是我們對(duì)其他事物的興趣所需要的持久性。因此,編程不是一朝一夕就能實(shí)現(xiàn)的。學(xué)了hello world就不用再寫游戲了,所以我們一開始就要說清楚。你想學(xué)編程嗎?問問你的心,是不是三分鐘興趣引起的熱情。
3.選擇適合你的語言和學(xué)習(xí)方式
學(xué)習(xí)編程首先要確定要學(xué)習(xí)哪種編程語言,以及如何通過培訓(xùn)課程、在線課程或書籍來學(xué)習(xí)該語言。通過哪個(gè)渠道來學(xué)習(xí),是每個(gè)小伙伴都需要面對(duì)的選擇。至于如何選擇語言上手,大多選擇web前端上手。
HTML、CSS、JavaScript 三大件,完全掌握。不懂得就直接查 MDN。HTML重點(diǎn)掌握語義化。區(qū)分塊級(jí)和內(nèi)聯(lián)標(biāo)簽。其他查文檔就好了。還有就是定義 head 里面一些meta 了解下。
CSS。重點(diǎn)看盒子模型,定位,層級(jí),過渡,動(dòng)畫和 transform。知道原理和規(guī)則。大部分工作都是照著設(shè)計(jì)稿化。掌握上面幾個(gè)99%還原也不難。接下來重點(diǎn)學(xué)習(xí)幾種常見的布局。完了之后去搞flex。最后搞下sass、less。基本就差不多了。
JavaScript。重點(diǎn)來了,紅寶書看一遍掌握基礎(chǔ),進(jìn)階去看《你不知道的 JavaScript》。就這兩套足夠了,別搞那么多。每個(gè)知識(shí)點(diǎn)搞懂。ES6基本沒啥問題。

十多年前,那時(shí)候的我們苦于資料太少,不知道學(xué)什么;十多年后,這時(shí)候的我們苦于資料太多,不知道學(xué)什么。
1. 基礎(chǔ)是程序員的內(nèi)功
提到程序員的基礎(chǔ),不外乎是操作系統(tǒng)、編譯原理、數(shù)據(jù)結(jié)構(gòu)、算法這些課程,很多程序員會(huì)認(rèn)為這些課程平時(shí)工作也用不上,還需要學(xué)習(xí)么?
負(fù)責(zé)任地說,這些基礎(chǔ)課程學(xué)習(xí)的好壞,是程序員能力差異的一個(gè)重要分水嶺;如果你覺得單純地看書比較枯燥,可以試試在 LeetCode 上刷刷題。
2. 應(yīng)用提升類
這里建議大家還是從本職工作出發(fā),先學(xué)習(xí)本領(lǐng)域的應(yīng)用提高類技術(shù)、框架;比如我是 Java 程序員,除了學(xué)習(xí) Java 本身的語言特性和新版本特性之外,我還可以學(xué)習(xí)現(xiàn)在比較流行的 Spring、Spring boot,了解 DevOps(Docker、Jenkins),除了學(xué)好關(guān)系型數(shù)據(jù)庫之外,還可以看看 Redis、ES 這些非關(guān)系型數(shù)據(jù)庫,接觸一下分布式架構(gòu)、微服務(wù),這里還需要學(xué)習(xí)消息隊(duì)列、負(fù)載均衡、分庫分表等等等等了...如果你心有余力,可以再學(xué)習(xí)一門腳本語言。
如果你致力于成為一個(gè)全棧工程師,還需要了解前端的知識(shí);這里我就不能給你們什么建議了,我個(gè)人的精力有限,已經(jīng)好久沒有接觸過前端的內(nèi)容了。
總之,一定把有限的精力投入到值得投入的地方。
3. 技術(shù)不能脫離業(yè)務(wù)場(chǎng)景
程序開發(fā)的本質(zhì)是解決業(yè)務(wù)問題,所以程序員一定要養(yǎng)成業(yè)務(wù)思維的面試,在敲代碼之前,一定要對(duì)項(xiàng)目本身的業(yè)務(wù)邏輯有一個(gè)全面的了解:系統(tǒng)是做什么用的?使用者是誰?上下游系統(tǒng)都有哪些?自己的項(xiàng)目在整個(gè)業(yè)務(wù)流程中的位置和作用是什么?等等等等...
4. 掌握第一手資料離不開英語
建議大家在學(xué)習(xí)的時(shí)候,最好是查看最原始的資料,而不是【只看】被人消化理解過的“二手資料”;比如你要學(xué)習(xí)Spring Boot的話,最好的資料就是官網(wǎng)的文檔,其次才是買一本中文版Spring Boot的書
但是當(dāng)你不斷地找到“第一手資料”的時(shí)候,會(huì)發(fā)現(xiàn)大部分內(nèi)容都是英文的,所以“查閱英文文檔”是程序員的必修課。
以上就是本次分享的全部內(nèi)容,想學(xué)習(xí)更多編程技巧,歡迎持續(xù)關(guān)注六星云課堂!