分工和学习的关系怎么平衡?
清醒疯子首先,一个人包打天下是不现实的,效率太低。所以,我们需要分工合作。
然后,既然是分工合作,前提自然是别人已经干好的事情,我们不重复去做,而是在别人的基础上锦上添花,让事情变得更好。
但是,要不要更彻底地分工呢?别人已经干好的事情,不但自己不干,甚至不去做《使用指南》以外的任何深入学习呢?
比如,当我们拿到一个第三方类库的时候,是只做好输入、看好输出,黑盒使用呢?还是也花时间去阅读对方开源出来的代码,好好了解类库代码(至少是自己用的那部分)?
比如,我们是直接拿搅拌机打肉,坏了就换一个?还是学习一下搅拌机的知识,坏了就自己临时修一下?
还是说一切看自己需求的深度?如果输出能满足我,就直接使用别人的输出;如果输出不能满足我,就找下一个;如果没找到能满足我的,才往深了解,自己改,为自己定制输出?
如果重复创造旧轮子是错的,那么对于非轮子生产者,重复学习怎么创造旧轮子是不是也错呢?只有我们被细分得不能再细的从来没有人实现满足过的工作才值得深入学习吗?
如果我们不断远离基础,又怎么解决"如果基础错误,在错误之上的任何深入学习都是错的"这个问题?
问题问到这里,自己倒是有个想法:有欲望,找现成的满足方法,如果一个方法不够好就换找另一个。如果在一定的时间内都没找到能满足的,就从找到的挑一个出来,修改定制来满足自己欲望。 也就是说,先排时间,在一定时间内不断地找能满足欲望的方法,超过给定时间,挑其中一个进行定制。
写的不少,仍旧有条理方面的问题,仍旧看的出来有思而不学的痕迹,希望你根据问题给自己找本书看看
熟练使用的前提下,对功能结构进行扩展,从而阅读源代码。时间久了,就有能力自己造一套自己的齿轮了。至于工作中分工,感觉界限不是太清晰,每个节点自己至少都要了解,这样对于出现问题之后的有效沟通有帮助,还有就是题主的问题,我看了半天仍然觉得不知道在说什么。
项目开发过程中,对于第三方的类库来说,只要能够正常使用并完成项目功能就好。
但接下来的业余时间,你若感兴趣就可以去研究下第三方类库到底是怎么实现的。
但是大部分的人,用过了,就过了。
有个名词叫做 全栈...
或者,像我听的一个Podcast说的,没有一直不变的正确方向,只能不停地微调深入,再微调再深入:)
你误读了一个问题,这也算是程序员界误读最多的问题之一了。从来没有人反对重复造轮子,一直以来都是反对重复发明轮子。事实上造轮子是非常好的一种学习的方式。
比如正则表达式,很多人都是学了就忘,用到再学,相反你去写一个正则表达式引擎去,99%的概率,正则表达式从此深入骨髓,想忘都忘不了。
再比如基于引用计数的智能指针,其实ARC本质就是这玩意,如果在strong还是weak的问题上纠结,那就自己去写一个看看,你想再纠结都困难了。