如何“用以致学”
先说我的看法,学校里面的学生,建议“学以致用”,职场中的人士,建议“用以致学”。原因很简单,学生,要理解原理,方便以后使用知识的时候,即使不会,能够根据理论推导出来,另外,学生其实是有职业啦,我说句话,“职业学习者”。
既然学生的职业是学习,因此,就要“求甚解”,知其然,还要知其所以然,我的理解,这是职业道德,做不到的,不叫好学生。嗯,我承认,我在做学生的时候,不是好学生,呵呵,我的建筑专业学得有点烂。嘿嘿。
因此,从学生角度,研究源码逻辑是可以的。因为你要去理解底层很多细节,记住,下回调用的时候,自然会用,实在不会用,抄总会吧,把人家的代码抄过来,变一变,就可以满足自己的需求。
但是,研究源码是很费时间的,比如读两本书,应该说,这两本书是有差别的,至少,它们的目标客户群不一样,后者,更多面向学生,就是针对学生的需求来设计的,而前者,应该说,一个是很标准的商用程序员,嗯,商用作者,他的书,有很强的目的性,主要针对在职程序员,因此,书的风格体现短平快,抽象度比较好,更多体现在“用”,而不是“分析”。这是我的看法。
其实,这里面已经体现职业人士学习需求和学生是不一样的,职业程序员,有个中心思想,就是快速使用,因为公司里做事,没有太多时间给你学习,大家都在忙着赚钱,一个需求过来,程序员首先评估自己的知识体系,自己积攒的工程库能否支撑,有的,打勾,没有的,就要去找,还要赶快找,因为项目有时间的。
所以,职业程序员学习,有点不求甚解的,很多时候,同样学个东西,职业程序员学习,没有学生来得扎实。原因很简单,我们研究一个库,通常要研究它的“特性”,什么叫做特性呢?我的理解,就是程序api没有讲清楚的事情。一个函数,什么参数,返回什么,这个往往一目了然,但是,它内部的实现,是空间优先,还是时间优先,有没有某种潜在隐患,是不是线程安全,等等,一个程序员,不理解这些“特性”,可以说没有掌握这个库,写出程序来,bug一大堆,肯定会有问题。
所以我说,学习使用别人的库,很多时候,比重写还累,自己写,自己拿解决方案,很多时候符合自己的习惯,其实不难的,但是,真要掌握一个库,要从源代码中“逆推”别人的思想,其实非常难,更何况,很多源代码,尤其是开源的啊,变量命名很简化,注释不规范,其实我说句话,这堆代码,只能用,不能学,但是,别人学不会你的特性,又没法用好,因此,最后还是不能用,因此,叫做垃圾。
ok,这里说一点我的看法,职业程序员怎么选书,有时间的话,找点源码分析看,可以,但通常,对于解决目前的工作,没有多大用途,更多的是用来**内功,因为真要一个项目火烧眉毛了,你再去看源码分析,晚了,时间也不够了。
项目中应对问题,一般建议开快餐式书籍,或者google,能解决问题是最好,搞不懂的,先做出来看,自己做测试程序来测,先解决问题。
当然,这里面也能看出一个程序员能不能做久,一些程序言,当时用快餐的方法解决了,但留下了问题,下来,项目不那么紧急的时候,就会去自己再仔细K一遍源码或者有深度的书籍,再多测试一下,尽量掌握透,而绝大多数人,项目一完,喝酒去咯,呵呵,大家说是不是这样?
大家说,哪个程序员可以做得很久?
大家老是说我们中国缺程序设计大师,很浮躁,但是,我想说一句,就在这些细节上,大家不妨问问自己,看自己是怎么做的?
因此,对于学习,我的建议,如果你是学生,按照学生的`方法,深入挖掘,但不妨碍你看点快餐式书籍啊。但当你以后到了职场,要学会“用以致学”,这样才能赚到薪水,有钱吃饭。不过,如果你要做个好的程序员,想成长为牛人的话,那么,注意啊,重点来了,你要学会吃苦。
什么叫做吃苦?
项目完成了,大家出去聚餐,唱卡拉OK,你可不可以看看手表,22:00了,站起来和大家说声抱歉,我要回去看书了。大家出去旅游,你说你们去玩,我在家里看书。有个电视很好看,你和家人讲,你们慢慢看,你坐在电脑前,看书,做实验。到2:00睡觉。每天晚上,19:00回到家,吃晚饭,把该做的家务做了,然后坐到电脑前去学习?
公交车上,随手拿出手机,开始看书。这些都不是最重要的,最重要的,上述习惯,你保持10年看看。有一点需要提醒的是,“能力越强者,头抬得越高,不用看别人脸色”这句话是错的。真正你看了很多书,能解决很多问题之后,头会越来越低的,而且,一定会看别人的脸色。
原因很简单,看书,你看得越多,我这里摆句话,你会觉得你不懂的东西越多,你会越来越发现,这个世界需要合作,每个人都有你不知道的东东,你需要借助他们的力量。 头抬得太高,别人还会和你合作吗?人力有时而穷,我们学习,不是说什么事情都要自己来,那会累死的。学会合作,你的事业更容易成功。
版权声明:此文自动收集于网络,若有来源错误或者侵犯您的合法权益,您可通过邮箱与我们取得联系,我们将及时进行处理。
本文地址:https://www.gunzhua.com/jiuye/zhiyeguihua/115383.html