所谓"知识体系",指的是把大量的不一样的零散的知识点,经过内化,存储,整理,等方式组合起来,以点成线,以线成面,造成系统的,有序的,清晰的脉络结构.前端
咱们在解决问题和处理事情时,会使用本身的知识体系作出选择,不管是潜意识仍是显性意识.每一次的抉择和行为都将迭代咱们的知识体系,让其更加明确清晰,找到本身不足的地方,优化能够改进的地方,明确接下来的方向,提高本身的全局总体思惟,强化当下的正在使用的技能等.java
知识体系不是一蹴而就的,而是贯穿咱们的生活经历和对事物的思考慢慢积累起来的,中间须要海量的知识支撑,不断改变,不断适应.git
知识是无穷无尽的,没有必要什么都学,也不可能什么都能学会.程序员
每一个人都有一致的时间属性,同时又有不一样的天赋和努力程度,人生万象,不一样的人有不一样的场景和结果.github
因此,找到适合本身的知识,构架彻底只属于本身的体系,才是在这场游戏中的最优选,你没有重来一次的机会,即便浪费了,也只能不断往前.编程
这注定是一个无可替代的过程,别人的知识体系你拿了也没有用,反而害处大于益处,咱们只能参考,没法复制,别人也没法帮忙构建,一切听从于你本身的心里和身体.后端
我的的知识体系咱们有一辈子的时间来慢慢完善,它主导人生的每一次选择和际遇.网络
可是它仍是太笼统,太庞大了,主要的做用更偏向于内化,而咱们须要的是当下的外向,也就是如今的生活和工做.架构
若是说吃和睡分别占据了人的各类三分之一,那么工做就占据了剩下的三分之一,它也是重要的经济来源和物质基础.工具
在互联网的发展中,技术迭代的速度远超人们的想象,面对不断变化的技术,在这个"终身学习"的时代,程序员须要积极应对.
据不彻底统计,大多数程序员同窗都有着本身的博客之类的,写着一些技术笔记或者生活日志,更多的是用github
分享着本身的代码.
这些都只是程序员知识体系中的一小环,聚焦领域和带有职业属性的一个架构的才能构建一个完整的体系,下面一一描述.
总的来讲,知识体系的构建主要有五个步骤,每一个大的步骤,都包含不少小的步骤.
人生是有方向性的,就像时间不能逆流,体系的构建也是有顺序的,正确的按步骤执行,可以帮助咱们快速搭建本身的知识体系.
不管是我的知识体系,仍是程序员的知识体系,区别只是模块不一样,总量大小的问题.
程序员体系属于我的体系的一个脉络分支,这意味着,咱们能够复用我的体系的构建方法,只是重点是互联网的节点而已.
没有输入,何来体系,输入是知识积累最为重要的方式.
知识体系最初是由不少的知识点组成,那么,这些知识点来源于什么地方?
做为一个程序员,请好好思考,你的知识点主要来源自哪些渠道?
通常的信息来源于网络文章,书籍,视频教程,线下交流等方式.
对于程序员来讲,视频教程是极为推荐的信息来源之一,它有着书同样完整的内容体系,也有实际操做的可视化演示,一般还附带着讲师的我的经验和优秀习惯,可以及时的跟上技术的步伐,实时的沟通和调整,而书籍一般要落后半年,甚至一两年.
可是书籍的阅读仍然是不可或缺的,若是说视频教程更偏向于实际操做,那么书籍就适合深层次的思考,越是经典的知识越是适合书籍承载和传递.固然,不少程序员都经历过<<21天学会XXX>><<XX从入门到精通>>
,最终有没有放弃我不知道,一笑置之,不予置评.如何选择一本好书,也是一个门大学问.
和搜索引擎打交道最多的,程序员当属其中之一,一些碎片化的文章有助于咱们解决某个特定的问题,了解某些小的知识点,这种输入比较零散,胜在量多,领域普遍,容易扩展思惟的边界,碰撞出创意的火花,刚好不会让咱们一直局限在某个地方,有的时候应当专一,有的时候也应当扩散.
线下的交流没必要多说了,所行之处,到处皆是,工做中和同事的沟通,生活中和朋友的交流,技术细节也好,观点见解也好,属于人与人之间的信息交换.
简而言之,就是在诸如慕课,网易云课堂,极客时间等平台选择好的课程,在书城或者图书网站选择好书,多读书,在推酷,知乎,掘金等信息平台,多多阅读新闻资讯等,而后多多参加活动,演讲,多与人交流.打造属于你本身的信息渠道,多阅读,多学习,多交流.
通常的实践输入为代码练习和项目开发.
每一个大神都是从小白过来的,小白学习编程最初的姿式就是敲代码,一遍,两遍,三遍,直到把纸上的知识内化为本身的体会.
任何事物,都会有一个认知的阶段,也会有一个实践的阶段,以一个普通的例子来讲,要学会炒一道菜,看一百遍菜谱也不会有什么进展,一字不漏的背完也不会有什么进步,惟有一次又一次的尝试,才能亲身体会,才能逐步学习,才能终有所成.
编程也是同样,学习一个知识点就是反复的去练习,反复的去使用,从实践中去理解它的意义所在.
代码片断的反复练习就如同备菜,番茄切片,鸡蛋拌匀,两个操做重复一千遍,也成不了一碗番茄鸡蛋,项目开发就是知识点的融合和使用.
一个完整的项目有助于从结果导向促使咱们构建一个完整的知识体系,学习是为了什么?是为了用吖,工做为了什么,就是为了完成项目.
入职以前,什么都得学,什么都要会一点,由于你不知道什么样的内容会命中Hr,入职以后,一切都清晰明了,专一于眼前的事物便可.
回忆一下你看过的书籍目录,每次选书的时候是否是窥一页而知大概?
想象一颗大树的枝叶结构纹理,一张小小的蜘蛛网,又或者是浩瀚无限的星空.
这些都是脉络的表现形式,点与点之间互相串联,线条与线条之间又延伸不一样的方向.
不妨来作一个小实验,不带思考的随口说出任何形式的几个关键词,如书籍,地理,老虎,小猫,水果,开发,学习,下雨...等
它们来源于你的知识点,有的能够归为同一类,有的不存在什么强的关联,有的带有层级关系.
咱们须要经过适当的梳理,让它们成为一张网,一颗树,一本书,一片星空.
如前端开发,通常的职业规划是要么深刻前端领域,精通某些行业技术,纵向扩展,要么学习一些后端内容,往全栈工程师方向发展,有助于从总体产品提高开发过程的沟通效率和产品质量,还能够选择先学习设计,学习产品,学习测试,以技术的关联度横向扩展.
可是若你非要研究航空母舰,天文地理之类的也没人拦着你,出于兴趣还好说,如果选错方向,极可能会与现有的知识体系脱节.
换言之,就是把知识点分门别类,同时制定好方向和目标,始终保持知识圈定在一点的范围里,结合实际的状况纵向或者横向发展.
推荐使用思惟导图工具,诸如xMind,MindManager
等软件,稍稍学习一下导图相关知识,使用它梳理脉络,用的多了,天然就明白了.
布置一个小任务,用导图列出你的职业发展方向如高级开发,全栈开发,架构师等或者接下来你将要学习的领域和具体内容,如java
,ui
设计,区块链等
大脑的容量有限,咱们必须使用工具把知识给存储下来,按照以前整理的脉络结构.
整理的知识为两种,一种是公共的或则别人的知识,一个是内化为本身内容的知识.
常见的如网上的经验教程,理论知识,代码片断,均可以复制粘贴待笔记里面.
书中的实用知识,核心内容,也能够选择性的摘抄出来,图片,视频等富文本也能够一一保存.
读书笔记,开发过程的操做步骤,均可以实时记录下来,本身的心得,经验和体会.
主要推荐笔记类软件,如印象笔记,为知笔记等,最好能多端同步,易于检索,呈现结构体系.
优化这个词字面上的意思你们都懂,看起来很简单,可是如何优化,优化什么才是重点.
对于程序员来讲,最为重要的是开发效率提高,其次是开发质量提高,最后是其余软技能提高.
不妨多问本身几个问题:
开发过程过程当中有什么错误的地方,致使速度慢的缘由有哪些,为何?
还有哪些技巧和工具可让开发流程更快,更好,具体如何操做?
诸如此类,不断的对事物进行分析,对本身进行反思,总结,而后改进.
其余的就很少说了,程序员最多见的实践方式就是写博客,录教程,开发产品.
在大量输入中咱们提到书籍,教程和练习代码等方式,属于吸取的角度.
可是,知识体系极为重要的一环就是输出,输出是快速将知识内化为本身知识体系的方式之一.
有一点不得不提到,在应试教育中,学生几乎不多体验一下老师的视角,哪怕只是几分钟.
他们把时间花费在教室里,培训班,做业上,历来只是听讲,而不是演讲,历来只是写题,而不是出题.
终生学习意味着终生的社会大学,互联网学生,不能只是一味的输入和执行,而是应该输出.
写博客,既是写给本身,也同时写给观众,如何让他们更好的理解和内容自己同样重要.内容要经受得住读者的考验就得纠正本身的错误,确保内容传达的准确和简易性,读者也会从不一样角度给与建议,一次阅读或者一个赞就是一个正反馈.
录教程,更加要具有专业性,会用和会教彻底是两回事,若是你想要讲述一个道理或者描述一个操做,一般须要系统化的,引述更多的论点,补充更多的细节,以合适的表现形式才能达到预期的效果,在教的过程,前提是你得会,其次是你得讲的明白,这是一个极其考验知识深度的事情,你随时面临各类各样的问题.
咱们在工做中开发产品是别人的产品,充其量算是其中的一个小小的螺丝钉,没有主动权也无心加入太多的想法.
可是自有产品彻底依据你我的主观意愿而构思,依据你拥有的技术而构建,一个产品就是一个小的技术体系,在实现的过程当中,不会什么就去学,学完就去作,最终你会参与到许许多多你从未接触的环节,固然,有些地方能够考虑外包或者合伙,或者其余替代,重要大部分都有了解或者参与便可.