我回顾我学习Android和iOS的经历,发现那些很有价值的知识很多是我模仿习得的。
怎么模仿?开两个项目。比如模仿Jack的朋友圈实现,我看两行他的代码,然后在我的项目写他的代码。不懂再回去看,懂的话就按照自己的想法写,一次性写多点。
用这种方法,很深刻地记得学会了自己写Android的下拉刷新瀑布流,iOS的手写UI,等等。
Android的下拉刷新那次让我第一次不用xml直接对view进行控制,而且懂得了手势。是一次提高。有时抄着抄着原作者的代码就恍然大悟了。有些东西是自己看不出来的,无论怎么思考。因为看的时候忽略了不少东西,看不到重要的东西,而打着代码,用手操作着,这样让人更加投入,让人时不时去想为什么,注意到了更多细节,所以最后理解那个东西。像我前一篇的视觉差效果。一开始我是不知道横着放或竖着放背景图片会移动的,后来仿写着代码注意到了不少东西,注意到了不少东西,学会了毛玻璃效果的一个制作方法。
iOS以前我是用xib很多的,手写代码试过几次都放弃了,模仿朋友圈的项目,我简直就像抄一样。大部分的除了名字有时有差别完,其它都一样。但是我还是注意到了不少手写代码重要的东西。像列表cell,如果高度随着内容变化的话,你要画它之前先计算它的高度。传给tableview。怎么计算高度咧?一个方法是用固定的宽度来算高度。这些在抄着代码的时候就会注意到了。
在模仿的时候,也往往更投入一些。我看代码,容易看着看着就想睡觉。一是因为脑子累,二是因为整个身体都是安静的,容易进入休息状态。我一个朋友看代码的时候,会记一些笔记。知乎上有人说解issue 去看代码,熟悉项目。这些都挺好,总之要参与起来,不能只是看。当然可能有些人光是看、思考就能持续很久。
模仿的时候,和自己创造的时候,是不一样的,模仿要容易些,因为是模仿,大不了我写一样的代码,照抄即可。创造的过程要难不少。往往模仿他人的App要容易一些,看着人家的布局,容易计算frame。模仿因为稍微容易一些,所以可以持久一些。不会因为太难而退却。但是模仿习得的知识有时比创造更多。
模仿,让试错更少,让人更快掌握正确知识。学习编程,可以边做项目边查 Google。这样的话,会试错很多,这个探索一下,那个探索一下,很多时候并不是很适合的方法,尤其是初学的时候。而且很多时候的试错是没有意义的。有时候掌握正确的知识,知道它为什么正确就够了。很多时候,试错的时候是乱试错,比如html的格式,排版不对了,这个修改一下,那个改一下,改对了,下次又遇到一样的问题。模仿的时候,因为正确的答案就在别人的代码里,可以去参考一下。正确的答案触手可得。所以很快地掌握正确的知识。比如html的格式,我找一些html的格式的项目来,一行一行地照抄人家的代码,然后边吵边想,可能比我自己捣鼓乱搞学得更快更好。
模仿起来!