閱讀代碼是一項重要的能力。
你覺得技術比你弱的人拿的工資比你高,他有一項很重要的能力就是閱讀代碼。
開源代碼在變量命名上,注釋上一定做得比較好了,你所看不懂的地方只有2種可能。
1,編程技巧。這種比較容易弄懂,如果你對編程語言熟悉的話,一步一步展開來就知道作者想表達的意思了。(這個就像小時候學語文的語法,“把”字句改成“被”字句,意思沒變,寫法變了)
2,算法。這個就算你一步一步展開都不一定能看懂,這個要有一定的數學知識,比如向量積,線性回歸,微分方程,卷積等。如果是很專業的產品,還要涉及到物理,化學,電氣,概率論等等。(這個就像閱讀文言文,沒學過就看不懂,還可能會理解錯誤)
所以看不懂代碼就只有提升自己的知識水平,沒有捷徑可走。但你可以針對性的去訓練上述2條中的弱項,語言是基礎,算法是核心。
記得我第一份工作是做單片機產品維護,平時工作就是在現有的產品上改改功能代碼,增加新功能。那個時候沒做過什么產品,雖然也會C語言,但是看別人代碼就像看天書一樣,主要是技術不到家,還遇到過一些讓人吐血的代碼,可能是公司得罪了那個工程師,代碼里沒一個注釋,而且變量名全是k,kk,tt這種不好理解的,簡直讓我想把那個工程師罰站馬路中間半個小時,感覺還不如自己重寫快一點,后面慢慢的積累了一些經驗才發現自己當時看代碼的方式和思維不對。一個源碼,如果你用通過代碼去理解產品功能那你一定會看到心肌梗塞都吃不透,正確的應該是先把產品功能吃透,然后把功能分模塊進行分析,如果是我,我會怎么用代碼去實現它?最好自己寫代碼做一遍,在寫的過程中你一定會碰到棘手的技術點不知道該怎么去實現它,這個時候最好自己努力思考一下,最后不管你有沒想出來,你再去看別人的代碼是如何實現的,這樣你就能一步步吃透別人的代碼,至少程序架構的核心部分知道怎么處理了,剩下的細節實現其實已經無關緊要了,這是一個循環漸進的過程,也是提升自己水平很好的方法,過程越痛苦你的提升就越大。