前言:你所作的事情,也许暂时看不到成果。但不要灰心,你不是没有成长,而是在扎根。
程序员圈常常流行的一句话:“不要重复造轮子”。在计算机领域,咱们将封装好的组件、库,叫作轮子。由于它能够拿来直接用,直接塞进咱们的项目中,就能实现对应的功能。前端
有些同窗会问,人家都已经作好了,你再来从新弄一遍,有什么意义?这不是在浪费时间吗。java
却不知,造轮子是一种学习方式,能快速进步,造得好,是本身超强能力的表现,同时能增长本身的知名度,有些人靠造轮子成了知乎大V,有些人靠造轮子写了书,有些靠造轮子被大公司挖人。git
站在公司角度,是否是要造轮子有不少缘由。站在我的技术角度,强烈建议你们造轮子,它能给你想不到东西。程序员
这篇文章,站在技术角度来分析,轮子是什么,造轮子能给咱们带来什么,咱们要如何造轮子,但愿能帮到你们,记得帮我点赞哦。github
目录:web
如今咱们都知道,轮子应该是圆的,最省力。而当咱们的祖先,不知道什么形状都省力的状况下,就能够会发明出三角轮、四边轮、五边轮、圆形轮等等。每种轮子形状都不同,这叫发明轮子。面试
而当你们都知道圆形的轮子是最好的形状之后,再发明其它形状的轮子就没什么意义了。而此时,如何改进现有的圆形轮子,才是最重要的。segmentfault
上图中,一样是圆形轮子,但从石头轮到木头轮,再到空心木轮,再到气轮的演变过程,使圆形轮子愈来愈省力。设计模式
因此,这就是发明轮子和造轮子的区别,发明轮子是彻底不考虑前人的基础,从零开始。而造轮子,实际上是改进轮子的过程,在前人的基础上,能愈来愈好。微信
流行在程序圈的名句:“不要重复造轮子”,其它它的英文原原文是““Stop Trying to Reinvent the Wheel”。”真正的意义是,不要重复发明轮子。
因此,这也就是咱们造轮子指明了方向,咱们须要了解以前轮子的原理和利弊,加以改进,使它更好。而不是彻底从零开始,本身从新弄。
我刚开始学习自定义控件时,本身根本不知道如何下手,就到github上搜别人写好的很漂亮的控件。怎么搜,咱们等下会讲。
一次性找不少,一个个下载源码来看,找那些符合当前本身水平的控件,分析它的实现原理,找到哪些知识我不会,就去学这方面的知识。等这些都学会了,本身再跟着实现一遍,甚至还能发现它的一些bug,并能给它修复。
当你学了一个、两个、三个组件之后,就会发现,不少自定义控件所用到的知识都差很少,到如今,虽然我已经出了两本自定义控件的书了,但我仍常常到github上找找漂亮的自定义控件效果源码来看。总会发现些不会的知识亟待补充。
github的一个个开源组件,为咱们提供了丰富的学习资源,并且别人的代码能上传上去,获取一些star,偏偏说明了人家代码写好的,在分析人家代码实现原理的过程当中,不知不觉的就理解了他的代码架构方式,当你读了几个组件源码,你会发现,高手之因此是高手,代码可读性真的很高,有些人的代码读起来很享受,而有些人的代码读起来很想死。
而正是在分析别人代码的过程当中,咱们的架构水平和各类规范,也不知不觉地养成了,比咱们本身沉浸在本身的温馨圈里,自认为本身很牛逼,毫无对比,更能清楚认识本身的水平。
向别人学习,不只是一种态度,更是一种提高本身的方式。
以前写过一篇文章《启舰:有哪些让程序员受益终生的建议》,知乎上快破千赞了,强烈建议你们看看,写程序这么多年,所有经验所得。
其中提到,对于社招同窗而言,须要外练名气,内聚实力。而造轮子就是外练名气的一种方式。在《启舰:有哪些让程序员受益终生的建议》这篇文章火了之后,不少同窗问我,有关造轮子的各类问题,因此,我决定专门开篇讲一讲轮子的相关内容,就是如今的这篇文章了。
名气有什么用?那能够说是至关有用了,以前我写过一篇文章《启舰:对计算机专业来讲学历真的重要吗?》,详细论述了,学历对于计算机专业的重要性。
但,若是你在行业内有必定的知名度,什么学历很差、什么工做年限不够、其它的各类影响都再也不是影响了,你就等着被猎头挖吧;在招聘时,若是面试官也知道你,那绝对是必过的存在。
轮子我没造过,但我是写书、写博客的受益者,在我面试VIVO时,表现的并很差,由于我创业一年,Android知识历来没复习过,不少知识都遗忘了,还没来得及复习,就让我去面试了。
他们原觉得,我是一个特别厉害的人物,安排三个技术专家同时面,结果,一问三不知。不过,最后,仍是给了我OFFER。由于他们公认个人能力是足够的,只是时间过了过久,有所遗忘,拾起来就行了。相反,若是没有这个行业影响力,那此次铁定是挂了。
Android领域的一个专家,任玉刚,在Github上提交了动态加载框架。是动态加载框架的先驱,后面不少框架都借鉴了它的原理和代码逻辑。
https://github.com/singwhatiw...
github上的star量达到了5.8k,若是你也能弄出来这么个组件,就等着别人来邀请出书、作讲座、挖人吧。
造轮子像学习同样,是有个渐进的过程的。不要想着,本身弄出来一个组件,就指定火,好大喜功,一步登天,那是不可能的。
VIVO有个名言,凡事都有因果,咱们只管埋头种因,到收获的季节天然喜迎丰收!
咱们老看到,人家谁谁谁,怎么怎么样,多么多么厉害。其实,人家的努力和付出,你是看不到的。你们都是人,不是神。你全部看到的都是假相,他们背后的努力,你是看不到的。
先到github,根据你喜欢的组件的关键字去找对应的组件,好比你搜索“自定义控件”,就会出来各类语言的包含自定义控件的组件列表,当你选中java语言时,就会筛选出,java语言下的全部自定义控件的组件列表。
一个个去看他们的效果,若是效果喜欢,就再下载下来源码读一读。看看人家是怎么实现的,怎么作的,用到哪些技术,不会的去学。
第一阶段,主要是以学习为主,先看人家是怎么作出来的,学习相关技术防出来一个。就这样,在你防个半年之后,会发现,在这个领域,你的知识已成系统,这时候,就能够尝试本身去写一个控件了。
当你发现有些知识不会的时候,看看下面我搜集的资料,很快学会便可。
我精心整理了计算机各个方向的从入门、进阶、实战的视频课程和电子书,都是技术学习路上必备的经验,跟着视频学习是进步最快的,并且全部课程都有源码,直接跟着去学!!!
只要关注微信公众号【启舰杂谈】后回复你所需方向的关键字便可,好比『Android』、『java』、『ReactNative』、『H5』、『javaweb』、『面试』、『机器学习』、『web前端』、『设计模式』等关键字获取对应资料。(全部资料免费送,转发宣传靠你们自愿)
视频内容很是多,总共2184G、一千六百多册电子书,九百多套视频教程,涉及43个方向。我整理了很长时间,有些资料是靠买的,但愿你们能最快的提高本身。帮我点个赞吧。
《全网2184G计算机各方向视频教程/电子书汇总(持续更新中)》
在本身的知识造成体系之后,在看博客或文章时,常常会看到人家介绍一些组件,这时,就想若是本身实现,要如何实现。本身先尝试实现出来,把bug都解决。
而后,再去看人家的源码,在对比的过程当中,就会发现,思路是否是同样,他实现的比你好仍是比你的差,他里面涉及的一些知识,是否是有问题等等。
经过不段的磨练,这方面的知识基本上就达到活学活用了,能够进入下一步了。
在本身能实现一些简单控件的时候,这时候就须要找一些复杂的组件来拆解了,看人家的代码架构。学习架构的知识和实现原理,为本身实现复杂控件打下基础。
好比,我前段时间研究Lottie框架,Lottie是一个动画框架,经过将AE作出来的动画直接应用于代码中。
在了解了Lottie的原理后,发现Lottie在字体解析与绘制时存在bug,就改它的源码,修复bug,增长功能等等,以使这个框架能顺利应用到项目中。
这就是达到必定水平后的驾驭能力,当你对一个领域熟练之后,对于高端框架,彻底可以帮它修复bug,拓展功能,更进一步地,你能够改变它的核心逻辑,以达到更进一步改进框架的能力。
当你在使用一个框架、组件时,发现它用着不爽,或者有本身的想法时,就能够尝试本身去改进一个出来。固然,最好的改进方式,仍是先对市面的全部类似组件原理彻底了解以后,在他们的基础上加以改进,效果会更好。
我虽然,将这个步骤放在最后,但造轮子倒是随时均可以的,你们没必要担忧本身写的组件不够好,被人批评。等你真正写完,放到github上,你可能会发现,根本没人看……批评都不会有。
这跟写博客是同样的,刚开始的时候,博客质量不高,根本也是没人看,但只要坚持优化写法,总会有炉火纯青的那一天。
不少人,喜欢什么都准备好了才开始。去年,我写书的时候,有个朋友想作公众号,一直在想着准备素材、调研方向、看各类教程,以他的说法,他要所有准备好了,熟门熟路了才会开始。
而我则不一样,我在开始任何一件事前,只会思考定方向,作哪方面的内容,一旦方向定了,我从不会考虑准备的好很差,就是开始作。遇到不会的,想办法解决就是。如今个人书已经写好了,粉丝也已经三万了,他还在准备当中。
咱们无论作什么事都须要打基石,开始打基石最好的时间即是如今,若是如今不开始,也许日后也不会再开始了。
工做中,若是时间容许,简单的组件,能够尝试本身写,复杂的组件,建议使用现成的。毕竟公司不是慈善机构,不可能由于一个组件让你写个二十来天,更况且,网上有现成的,拿来用便可。你本身排期,排个二十来天,本身也没办法钟解释吧。
这篇文章就到这里,但愿你们都能有所收货。记得帮我点赞哦。
关注公众号【启舰杂谈】回复『Android』、『java』、『ReactNative』、『H5』、『javaweb』、『面试』、『机器学习』、『web前端』、『设计模式』、『考研』、『产品经理』、『运营』等关键字获取对应资料,共2184G,涉及43个开发方向,入门/进阶/实战都有,一千多册电子书和九百多套视频教程。公众号【启舰杂谈】,做者启舰,出过书、创过业,呆过阿里、如今VIVO,啥都会点的安卓开发。
启舰:452G计算机考研初试/复试资料汇总(初试辅导视频+各大高校复试资料,全免费!!!)
启舰:最新!2016-2019计算机历年校招真题、面经、复习资料总结(11G/2284份文件)