關於程序員的學習方法小敘

    開門見山的說,程序員是一個活到老學到老的行業,不學習就要被時代的車輪碾死在路上,那麼如何有效的學習,快速掌握一項技能是程序員必備的一項額外技能。

    最近一直在學習,從剛畢業時候做安卓開發,到轉小程序,到轉react,也經歷了大大小小的波折,也很感激願意幫助、分享、指導我的大佬,作爲我們前進的指路明燈。經過了漫長的學習折磨過程,我也總結了自己的一些思路方法,這裏分享出來,僅代表個人的思路,可能也並不適合所有人,完全是拋磚引玉,打開大家的思路而已。

一、當公司需要你快速上手一個你不熟悉的技術的項目的時候:

1.1 不要鑽研原理,瞭解了該技術的基本概念及基本操作,保證你能讀懂用該技術寫的代碼。

1.2 直接在github或者其他項目開源平臺上找一些類似的項目,download下來直接看人家的功能是怎麼實現的,因爲別人的項目可能用的是比較新的控件和實現方式,有的時候視頻上講的是比較傳統過時的思路。自己新建一個項目,仿照這個項目直接實現一遍,這樣對用這個技術實現的項目你會有一個大致的思路瞭解,對上手你公司的項目會有很大的信心提升。

1.3 當出現你實在無法理解的問題後,立即詢問周邊大佬或者你懂這項技術的朋友或者加這個技術的討論羣(加羣效果最小,很少有人理你),要學會不恥下問

1.4 當項目結束後有空閒時間了,或者每天下班後,將白天敲的代碼中不懂原理的部分,專門去查詢一些資料來了解補充,做到心中有數

1.5 其實總結起來就是一個核心思想:反向拆解思想 

       你知道最終效果是要實現一個玩具變形金剛。對小白來講,要自己造一個變形金剛,甚至連如何開始都不知道,完全沒有思路,當別人給你講一個螺絲的功能時候,你的腦子裏根本沒有基本的概念,很抽象,對於這個螺絲能實現什麼還是不是很清楚。而當我們把一個成品變形金剛拿給你,你把他一個個零件拆下來的時候,你就會直觀的感受到:啊!原來這個螺絲是放在手臂上控制手臂彎曲的,這時候再回過頭來整理思路,你就會發現一個個零件的作用在你腦海裏清晰了許多。

二、當公司不需要你那麼快上手,或者是你私下想學習一門新技術的時候:

2.1 文字不如圖片,圖片不如視頻。說實話對於小白來講,不看視頻光看文字有時候甚至不知道這一串代碼要寫在哪個文件夾下的哪個文件裏,很氣。看一整套視頻是提升最快的途徑,可以看B站之類的免費公開學習視頻,也可以交錢去專業培訓機構上網課,配合技術文章來總結技術的深層原理

2.2 好記性不如爛筆頭永遠是真理。看一百遍視頻不如看完跟着敲一遍,你會發現明明覺得很簡單的地方照着視頻敲下來就是不對。看一遍視頻不敲,當你真正用的時候你會發現,實現這個功能需要磕磕絆絆的半個小時;當你看了視頻後跟着敲一遍,當你真正用的時候,實現同樣的功能可能幾分鐘就搞定了。

2.3 折磨纔是成長。不要隨便遇到一個問題就去問大佬,其一大佬也很忙總問他人家也會煩;其二不要養成依賴慣性,遇到問題就想找大佬幫忙,這其實變相來講是一種惰性,“總會有人來幫我的嘛”這種想法很危險,遇到問題就退縮,你何時能成長爲獨當一面的公司頂樑柱?這裏我建議除非遇到那種極其詭異完全沒有思路的問題(因爲有些問題可能不只是代碼問題,配置問題、三方庫代碼BUG等坑也是很常見),常規代碼問題建議折磨週期爲一天,如果你這一天從早到晚都沒有研究出解決方案,那麼第二天再去問大佬

2.4 耐心是核心,一口喫成胖子是扯淡。 這裏有人會說這不是和上面說的1.1自相矛盾麼?其實並不矛盾哈,一切都是基於實際情況公司要求,對公司來講效率第一,多數公司其實誰管你知不知道實現原理,你只要給我實現出來,大家有錢賺纔是真話。而你自己想真正掌握一門技術,那就必須靜下心來,一步一步走,就像學wapp開發,你連html、css、js都費勁巴拉,直接去學raect\vue\angular或者直接搞react native\flutter那纔是無稽之談

2.5 目標明確有計劃的學習纔是正途。 像前端工程師現在真的是難,要掌握的技術實在太多,如果是小白剛入門聽到那麼多名詞直接暈球了,一定要做好規劃,知道自己學的這門技術是用來做什麼,解決什麼問題的。例如想學習移動端多平臺解決方案,目前主流的有Flutter和react native,我應該選擇哪一個,他們對比各有什麼優勢,不要學Flutter學了一半又覺得rn更好。那麼開發流程,如果要學Flutter我要先學習哪些前置技能,按照這樣的流程來。

三、通用

1. 可以多寫博客,不是爲了給別人看的,單純的爲了學習總結+整理思路+備忘,通過寫博客來加深對知識的印象,以後再敲代碼的時候忘記了怎麼寫也可以回頭來翻一翻,甚至也可以作爲面試時的加分項

2. 代碼規範與代碼管理很有必要。不要覺得自己看的懂就不寫註釋,有些一長串的邏輯過段時間你自己也會想不起來是幹嘛的;也不要隨意命名

,什麼data1,data2的,就算特殊情況寫了也要寫註釋指明是幹嘛的,要不會給別人造成很大困擾;不要以爲獨立開發項目就用不到管理工具,哪天代碼丟了你哭都哭不出來,再說版本回溯不好用嗎?



作爲拋磚引玉,我就想到哪裏說到哪裏了,各位同學如果有更好的方式歡迎一起討論!這裏也不定期更新。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章