模仿是指模仿他人的行為、風格或創作。在藝術、文學、音樂等領域,模仿常被用來學習和致敬。然而,過度模仿可能導致缺乏原創性,甚至涉及抄襲問題。因此,在模仿的同時,應注重創新和個人特色的發展。
回顧我學習Android和iOS的經歷,發現那些很有價值的知識很多是我模仿習得的。
怎麼模仿?開兩個項目。比如模仿Jack的朋友圈實現,我看兩行他的代碼,然後在我的項目寫他的代碼。不懂再回去看,懂的話就按照自己的想法寫,一次性寫多點。
用這種方法,很深刻地記得學會了自己寫Android的下拉刷新瀑布流,iOS的手寫UI,等等。
Android的下拉刷新那次讓我第一次不用xml直接對view進行控制,而且懂得了手勢。是一次提高。有時抄著抄著原作者的代碼就恍然大悟了。有些東西是自己看不出來的,無論怎麼思考。因為看的時候忽略了不少東西,看不到重要的東西,而打著代碼,用手操作著,這樣讓人更加投入,讓人時不時去想為什麼,注意到了更多細節,所以最後理解那個東西。像我前一篇的視差效果。一開始我是不知道橫著放或豎著放背景圖片會移動的,後來仿寫著代碼注意到了不少東西,注意到了不少東西,學會了毛玻璃效果的一個製作方法。
iOS以前我是用xib很多的,手寫代碼試過幾次都放棄了,模仿朋友圈的項目,我簡直就像抄一樣。大部分的除了名字有時有差別完,其它都一樣。但是我還是注意到了不少手寫代碼重要的東西。像列表cell,如果高度隨著內容變化的話,你要畫它之前先計算它的高度。傳給tableview。怎麼計算高度咧?一個方法是用固定的寬度來算高度。這些在抄著代碼的時候就會注意到了。
在模仿的時候,也往往更投入一些。我看代碼,容易看著看著就想睡覺。一是因為腦子累,二是因為整個身體都是安靜的,容易進入休息狀態。我一個朋友看代碼的時候,會記一些筆記。知乎上有人說解issue 去看代碼,熟悉項目。這些都挺好,總之要參與起來,不能只是看。當然可能有些人光是看、思考就能持續很久。
模仿的時候,和自己創造的時候,是不一樣的,模仿要容易些,因為是模仿,大不了我寫一樣的代碼,照抄即可。創造的過程要難不少。往往模仿他人的App要容易一些,看著人家的佈局,容易計算frame。模仿因為稍微容易一些,所以可以持久一些。不會因為太難而退卻。但是模仿習得的知識有時比創造更多。
模仿,讓試錯更少,讓人更快掌握正確知識。學習編程,可以邊做項目邊查 Google。這樣的話,會試錯很多,這個探索一下,那個探索一下,很多時候並不是很適合的方法,尤其是初學的時候。而且很多時候的試錯是沒有意義的。有時候掌握正確的知識,知道它為什麼正確就夠了。很多時候,試錯的時候是亂試錯,比如html的格式,排版不對了,這個修改一下,那個改一下,改對了,下次又遇到一樣的問題。模仿的時候,因為正確的答案就在別人的代碼裡,可以去參考一下。正確的答案觸手可得。所以很快地掌握正確的知識。比如html的格式,我找一些html的格式的項目來,一行一行地照抄人家的代碼,然後邊抄邊想,可能比我自己搗鼓亂搞學得更快更好。
模仿起來!