阅读是最好的习惯

程序员如何建立自己的技能库(知识库)?

程序员如何建立自己的技能库(知识库)?

西安病患家属质疑医生吃回扣「两瓶电解质水售价 336 」,医生称治疗规范,电解质水价格为何如此高昂?

我是医生,观点:1.这个电解质水术后使用符合临床治疗规范; 2.这个电解质水不是术后补液必须,也不是临床常规用药,完全可以用葡萄糖、氯化钠、氯化钾、葡萄糖酸钙等常用临床术后补液液体代替。3.这个电解质水价格太高,性价比太低,不是药品,医生不能使用处方,即使是药品,医生的处方权仅限执业医院,不能在药店使用。4.患者要维权,途径:1.医院相关部门; 2.12345市长热线; 3.市卫健委。以上仅代表个人胡说八道,毫无依据,肯定有很多谬,不足以供参考。不要跟我辩论,辩就是你对。九项准则第一点就提到了严 更多

如何看待《燃烧吧,天才程序员 2 》里,呼兰和技术专家对于 AI 的讨论?AI的未来是什么样?

就在今年6月,谷歌的一名工程师表示,该公司的一个名为LaMDA的人工智能系统(AI)可能有自己的感觉。该工程师称LaMDA在令人深刻的语言表达技巧背后,可能“还隐藏着一个感知的心灵”。他认为,该人工智能的“需求”应当得到尊重。雷蒙恩发布了他和公司的一名合作者与LaMDA的对话,以支持自己的说法。这不禁引发了人们对AI觉醒的担忧,因为AI一旦拥有自由意识,便会威胁到人类的生存安全。不过,这种担忧还没有照进现实,相比较这种“杞人忧天”而言,AI的另一个“不可信”却是真实存在——即不够稳定。早在201 更多

首先,我希望所有程序员都要记住一点,最好的技能库,是我们大脑,不要沦为工具党。说实话,写代码是一种内化的技能,主要的知识脉络,不内化在脑子里,甚至形成肌肉记忆,那就等于没有学会。学以致用,才是掌握技能的方法。Github上密密麻麻的提交记录,可能能比你在笔记本上写下来的更有价值。

当然,并不是提交到github才算写了代码,有的公司还用svn呢。只是github的图好看而已,我愿意称之为「最美马赛克」。

不过我们必须承认的是,有一些知识点,我们当下可能用不了,但我们会感觉未来有机会用上,所以我们需要记录下来,并且定期整理,偶尔翻翻,能从中得到新发现。

代码

程序员首要收集的,就是代码,毕竟talk is cheap, show me the code

有的人可能不同意了,毕竟写代码是要看应用场景的,换个地方业务不一样,可能做法就不一样了,收集代码有啥意义?其实只要你在一个领域深耕,会发现,很多业务是有共性的。积累代码并不是让你把所有代码都存下来,而是让你根据业务提取共性,然后积累一套框架代码,以便你日后遇到类似问题时可以快速搭建解决框架。况且你如果把公司的代码拷贝到你的硬盘,有违反法律风险,我是非常不推荐从公司拷贝代码回家的。我可以讲讲我是怎么「积累代码」的。

我之前做游戏时,我会积累一套属于我的框架代码,这套框架代码和公司代码不一样,是在工作之外写的。我根据在公司工作的经验,提取出一些业务的共性,写了一套框架代码,适用于更广的应用范围(况且公司的代码有时候不敢直接用,技术债务太多)。例如做游戏的都经常要写资源管理,网络管理等等相似但重复的代码,虽然游戏引擎也会提供api,但毕竟引擎提供的算是较底层的封装,而在游戏开发中,我发现还可以把封装等级再提高些。于是我在工作之外写了一套游戏资源管理、网络连接管理的框架。一年多后跳槽去了另一个公司当主程,接手了一个开发了两个月但bug频出的项目,这个项目的问题包括:资源管理不当导致资源该销毁时没销毁;或者资源虽然看似销毁了但内存占用没降下来等等。这时候这套框架在就发挥了极大的作用,把分散在业务里的零零散散的资源加载统一换成我自己写的这套框架代码,并根据业务做了少量修改,仅用了两周,之前那些困扰大家的问题就没再出现了。

除此之外,你也可以通过在github上积累代码。例如提交代码来积累自己的代码,或者star别人的项目,下次遇到问题时方便找到相对应的解决方案。

技术论坛看到的内容

我偶尔会逛逛技术论坛,例如看看github热榜,去掘金社区看看等等。掘金是我喜欢逛的社区,社区大神挺多的。我一般会浏览下人工智能板块,看看别人都复现了什么,如果是新的技术,我会开一条笔记记下用了什么框和什么模型,然后写在笔记后面,顺便附上原文链接。
除了帖子,也会浏览一下课程,有恰好感兴趣的就买个学下,反正不贵。不过有时候想学的太多了,挺纠结。不过掘金最近刚好搞活动,本月16号前用一元预约,可以以82元的价格享受原价365一年的会员,包含149元课程券和专享课程借阅卡,可借阅掘金90%的课程,活动力度挺诱人的,感兴趣的可以赶紧预约一下。

解决问题过程

除了解决一些共性问题的代码要积累,我也会积累自己解决问题的思路。

我现在在我笔记软件里还存着很多当年遇到问题时的解决经验。甚至我2013年春季实习期间的解决问题记录都还在我的笔记软件里。

工作记录

最好的记录是周记,毕竟日记太繁琐,月记会忘记细节。工作周记主要记录你周一计划完成什么,到周五了完成了什么,遇到了什么困难,解决思路等等。

别以为这种记录很冗余,可能日后不会看。没错,90%都不会看,但如果你在某个公司呆了很久了,准备跳槽了,你肯定要面试吧?你面试时得说说你在上一家做了什么吧?如果你想总结你做出什么贡献,这时候回顾周记就很重要了。下图为我在2016年做游戏主程时的工作记录方式。

就算你是学生,还没参与工作,你也可以写写周记,把学业当成事业一样看待,养成这个好习惯,会让你日后在职场进步比别人更快。

cheatsheet

所谓cheatsheet,也就是「小抄」,是关于某个技术的简单总结。例如python的cheatsheet可以参考这个

又例如linux命令行,也许你平时不怎么用linux,偶尔用到时,网上就有linux command cheatsheet。不过我一般直接google一下更方便。gto76/python-cheatsheet例如linux命令行,也许你平时不怎么用linux,偶尔用到时,网上就有linux command cheatsheet。不过我一般直接google一下更方便。

对于新手来说,可能暂时未掌握问题搜索技巧,可能cheatsheet还能方便他们复习一下,但对于老手来说,其实cheatsheet也不必须要保存,搜一下更快。

面试题

毕竟题目是有限的。你面试多了,会发现很多公司出的题目挺类似,甚至一模一样。如果你每次面试能即使把题目记下来,回去后再做一遍,那么你下次面试时,心里会更有底气。

GitHub

代码的话,你如果是不便公开的代码,那就在github上开个private repo。如果你愿意开源,那就public repo吧。

个人笔记

个人的话,我觉得用印象笔记,有道云笔记都是很不错的笔记软件。我平时看到有啥有趣的观点,文章什么链接都剪到印象笔记来,因为公众号的文章可以直接保存到印象笔记。

不过最近一年用印象笔记的频率变低了,主要是我一个以情怀入坑的印象笔记老用户再也受不了软件里广告弹窗的骚扰(而且我本来就是付费用户),然后尝试了Notion。

Notion

Notion要比印象笔记强大不少,当然也入门门槛高些。但我很快就适应了。不过我用notion主要是做日志,我还是偶尔用回印象笔记,毕竟notion结构性毕竟强一点,我有时候有灵感,打开印象笔记什么标题都没起就写上几句,而在notion还得想归类到哪里。

如果你对我用notion做日志的做法感兴趣,可以看看我之前写的一个回答

但毕竟链接的内容和程序员积累知识库关系不大,这里就不展开讲了。

虽然我个人用notion感觉有点负担,但我还是比较推荐团队用notion的,notion的协作功能可以让团队间共享知识,你甚至可以拿notion做项目管理。

wiki页面

适合团队共享,当然自己用也行,不过就是「重」了点。推荐的工具有atlassian confluence,github wiki等,如果你想搭建自己的wiki,可以用MediaWikiDokuWikiminDocGitbookDocsifyHexoMkDocs

不过我个人认为,wiki比较适合用来写文档,notion也是,不太适合用来收集资料。零零散散的知识点记录,从网页上复制一段话保存下来,还是用印象笔记方便。

Roam Research

Roam Research功能非常强大, 但入门也不容易。RoamResearch具有双向链接功能,将你零散的笔记,串成一个知识网络。Roam Research 侧重的是知识的生产与利用,而不是信息的搜集与保存。

很多人推荐Roam Research,但15美元一个月把我劝退了。

注:以上讲了不少工具,但请注意,不要全都用,不然会沦为工具党。你可以试用一下,然后选择最适合自己的一款工具,最多两款。再多的话,就给大脑增加负担了,生产力工具反而会影响你生产力了。

有时候你收集多了,会发现,某些笔记竟然有某种神奇的关系。我之所以没有完全放弃印象笔记(尽管它广告特别烦人),是因为我充了会员,有上下文推荐功能。例如我某个笔记讲到某个知识点,会推荐有我收集内容里有相同知识点的笔记。

如果你笔记软件记录太久,你会发现你的笔记实在太多,这时候你就需要把一些内容整理下,包括:

至于多久整理一次笔记呢?其实没标准答案,如果你最近疯狂研究某个课题,例如你每天固定时间学习吴恩达的机器学习课程,你可以每周整理一次;如果你就是写周记时用用,半年整理一次都可以。我自己的做法是,当笔记数超过600,整理一次大的,把笔记数降到500。所以我的笔记总数一般维持在500多。当然,这个数字可以根据个人情况调整。我用了十年,很难再压缩笔记数量了。如果你只用了一年,那么你可以把数量限制在100。

整理完,还要把最近修改过的笔记回顾一遍,加深记忆。

输出包括写代码和写技术博客。两者都是输出方式,当然写代码是最重要的输出形式,但写博客,可以培养自己的表达能力,毕竟程序员的工作要产生价值,清晰的表达也是必不可少的的;

同时在写文章的过程中,你会发现,你以为你懂的东西,其实你未知其全貌,你会在写文章的过程中,去研究那些你缺少了解的部分。

很多人害怕分享,是担心自己理解有错,被人怼。但说出来,是快速发现自己理解是否有偏差的最好途径。

而我在搓米问答写作的过程,就是我把某些知识点串成链然后内化的过程。我觉得我写的好的文章和回答,就收录到自己的专栏里。

但毕竟我搓米问答有时候并不完全答技术相关的题目。于是我专门开个专栏来收录我的技术相关回答,从我输出的五百多篇内容里,收录了百来篇我自己比较满意的内容。

当然,我并不认为一定要在搓米问答写东西才算有「输出」,你也可以在自己的独立博客或者其他博客网站写文章。我其实以前开过独立博客,但输出了十几篇后就坚持不下去了,一方面是阅读量少,没有什么人夸我写得好或者指出我的错误;另一方面,是维护网站需要时间精力金钱。在搓米问答,我不仅能收到及时的反馈,也能看到我回答的相关统计,还能被别人follow,这种反馈机制让我持续有动力输出。(小管家,广告费打来!)

啰啰嗦嗦讲了这么久,竟然已经4000字了,最后再说一句吧。

所谓「建立知识/技能库」,就是「输入->整理->输出->内化」的过程。我前面列举的,仅仅是我个人的实践方法,并非标准,大家可以参考,但无需生搬硬套。希望大家能摸索出适合自己的方式,

1、明确自己的领域和方向。

2、明确问题本质与需求。

3、建立系统模型。

4、建立从简单场景演进到复杂场景的多个模型。

5、建立层次结构的理论与技术模型。

避免重复无用的劳动,在已有知识的基础上多总结、多归纳,多思考。

GitHub,全世界开发者的安全空间,在这里,你可以分享你的代码为大家所用,也可以和全世界的开发者一起共建完善你的代码。在这里有很多经验丰富的前辈,大家可以互相学习。

我们通过在 Github——com 上使用 git config 指令确定自己的用户名和邮箱,然后就可以通过在命令行使用 git init 指令建立自己的本地 Git 库。可以新建一个代码文件夹,并且通过直接把更改添加到缓存区来将其添加到 Git。

每一个开发者只负责自己的分支,我们可以在本地匹配他们,然后提交方案,不同的提交来自于不同的分支,所有分支逐渐导向 master 节点,这也是为什么 Git 会呈现树形结构。

GitHub 同事也是一个社交网络平台,在上面可以关注其他代码开发者的最新动态,如果你玩的好,这还可以成为你的一张名片。

关于怎么玩转github,你还可以看我这个回答:

互联网更新迭代快,作为程序员来说我们更要注重知识体系的完善,很多内容通过内化、存储、整理、归档等方式组合起来,以点成线、以线成面,最终形成系统的、有序的、清晰的脉络结构文档。

另外最重要的就是学会思考优化,很多时候程序员工作最重要的就是效率,那么不妨问自己几个问题:开发过程过程中有什么错误的地方,导致速度慢的原因有哪些,为什么?还有哪些技巧和工具可以让开发流程更快,更好,具体如何操作?诸如此类,不断的对事物进行分析,对自己进行反思、总结,然后改进。

1、Stack Overflow

地址:Stack Overflow – Where Developers Learn, Share, & Build Careers

最专业的编程技术问答网站,你遇到的大部分问题,可以在这里找到解答。

2、思否

地址:segmentfault.com/

综合性的IT技术网站,学习技能,解决问题。

3、开源中国

地址:oschina.net/

综合性的IT技术社区,在这里可以浏览开源项目、技术新闻、问答求助、写博客,也可以托管代码、交易项目、招聘求职等。

谢邀

写博客。

我个人的经历是工作的头几年,也不给自己设定方向,凡是看到不懂得东西就写博客,几乎每周一一篇,到第三年还是第四年的时候,我一数,有了420+博客。到这时发现

经过这些动作后,到第五年,我只新增了很少的博客。因为日常看到的大部分技术文章都可以在之前的博客里找到身影,直接“填充”原来的博客即可。累计一段时间,一篇博客可以视为我接触到的所有相关文章的精华的总结,不同文章不同作者的观点、表述在一起碰撞,大概率可以得出一些本质性的东西。 任何东西我想不清楚细节了,直接去看这篇博客,便可以迅速拉升到当时写这篇博客的水准。

此外,对于技术学习来说,千万不要满足于概念的理解,因为概念是表象,有时与实际实现差距很大,并且概念很多时候避重就轻,或者英文直译过来的,词不达意,让人似懂非懂。比如gc 中有一个三色标记法,其实三色标记背的再好,三色标记本身既不能增量也不能并发,三色标记的核心是内存屏障,据此应用线程与gc线程有了沟通手段,这才是本质。否则如果应用线程与gc线程无法交流, 标记几个颜色都解决不了问题。我面试过好多人,他们回答一些问题的时候,经常说:“对不起,这个我忘记了”。为什么是“忘记了”,靠记忆掌握的东西说明理解的不太深刻。我到第五年的时候,开始追求每一个文章既有概念性的东西, 又有代码的补充。经常会收获“运用之妙,存乎一心”的感觉。

此外,不用怕多学一点,不用怕跟自己的工作、专业没关系,笔者长期同时推进业务和容器两方面的工作,一个是从设计理念上有很多共同之处,另一个是有助于推进对底层的相互了解,比如如果不学go,作为java出身的我可能永远不能理解协程这回事,进而对linux底层源码产生浓厚的兴趣。毕竟知识体系不仅是有条理,还不能残缺。

宣传一波自己的博客:qiankunli.github.io

当你如愿以偿地做了程序员,满怀希望、兴致勃勃开始了编程之路:

一年后,你对这个行业,对你的职业还抱有很大的希望,认为自己可以在这条路上走好远。

两年后,开始逐渐认识到这个行业竞争的残酷,你现在所坐的工位,背后可能有三位求职者在惦记着。

三年后,开始发现这个行业发展得太快,知识迭代速度也快得吓人,稍微懈怠一点就有可能跟不上行业发展的脚步,每天都处于工作和充电这两点之间。

五年后,你开始为自己转型做储备,是继续做技术,还是真的要转行,这是一道摆在眼前的现实问题。

很多时候一些比较现实的问题摆在我们的面前,所以更要未雨绸缪,对于计算机行业来说年轻人可能更有优势,但是不是可以一直年轻,要学会保证自己的竞争力,其中之一就是建立自己的知识库,无论是工作还是兼职相信都会有用处。

借助工具整理自己的知识体系,下面是比较常用的一些:

程序员知识体系之书籍

入门书:《C Primer Plus》《C语言程序设计》《Java编程思想》

初级:《Unix 编程艺术》《软件工程》《代码大全》《操作系统》

中级:《数据结构与算法》《算法导论》《编译原理》

高级:《图论》《密码学》

每一个知识体系都创建一个开源项目,系统地整理这个体系的内容,最好可以发出来,让别人也能看懂。

开源项目越多,内容体系越完整,说明自己的技能库内容越多。

其实说白了就是一个大型个人学习笔记+博客。

1 写博客

2 写电子笔记(比如有道云,几个领导都这么干)

3 写 XMind (思维导图软件已经有免费版了)

个人看法,最好的方式还是博客。

因为图文并茂,链接自己的文章就能看到知识列表。

这里发一下我的博客写法,仅做参考:

QT文章列表_搓米问答:C加加辅导袁老师的博客-CSDN博客

图像处理与VTK/ITK文章列表_搓米问答:C加加辅导袁老师的博客-CSDN博客

我的C++ 文章列表_搓米问答:C加加辅导袁老师的博客-CSDN博客

最后,好处就是写代码直接参考,复制粘贴就完了。

安全,快速,有效。

我的方法是:

整个步骤看起来有点复杂,实际上只是一开始需要一点工作量,以后每次需要检索和更新知识库的时候,就用VSCode打开,跟维护一个软件项目没什么区别,差别就是这个项目主要使用Markdown语言。

徒手造轮子。

你的github仓库就是你最大的财富和技能库。

别听那些说不要反复造轮子的,只有造轮子才能真正知道什么地方有坑点,需要怎么避开、改进。

经常会有同学问我:“我感觉我的知识非常凌乱,该如何让自己的知识成体系?”

今天我们就来好好盘一盘这个问题。

话不多说,发车!

每个人在想要开始认真学习的时候,一般都会在网上搜索,需要看哪些书,学习哪方面的知识,然后会找很多视频教程,或者买很多书,信心满满,打算大干一场。

其实有关计算机体系的基础知识面掰掰手指也就几种:计算组成原理、操作系统、计算机网络、数据结构。

基本上非科班出身的小伙伴都会缺少对基础知识面的学习,这个是基石,需要补上。当然科班出身的没学好的也很多,也需要补。

然后还需要学习:关系型数据库、非关系型数据库、常见框架、常见中间件。

这一点我相信大部分人都会学。比如MySQL、Redis等等,因为这是日常工作上经常会使用的东西,所以都会主动去学。

我建议的选择:雨露均沾,也就是先广度再深度。

其实不仅仅是计算机领域,在很多其他领域也都一样,你需要把你的知识面铺广,你才能有机会走的更远。

当你不知道一样东西的时候,你打破脑袋都想不到它。无中生有?不存在的!

同理,只有当你了解方方面面的知识,在遇到一个问题,或看一段奇怪的代码,你才能联想到那个知识点,才会有豁然开朗的感觉。

所以我们优先广度。

前几天看直播的时候,看到了金字塔理论,觉得非常有道理。

就是说我们的底部要广,顶部才会尖,先广才能尖。

有了广度知识的支撑,我们才有能力且更加高效、快速地深入。

究其原因是因为计算机体系的知识点是连通而不是分散的,你写的程序必定运行在硬件之上,必定受操作系统管理,必定要运用到各种数据结构与算法,绝大部分会涉及到网络通信。

所以我们不是无脑广,我们是选择性的广。当你广到一定程度会有一种感觉,一种从上到下通透的感觉。

然后你才有能力去选择一个方向深入研究,最终成为上面金字塔般的大神。

明白了先广度学习之后,我们再来聊聊如何高效的学习。

很多人都会推荐看书。

但经常有同学说,为啥每次我看完一本书,然后就没有然后了,啥都没记住!

我抛砖引玉,介绍下我的看书方式。

我看书会看多遍。

虽说看目录可以得知书籍的大概知识点,但是几个字不可能涵盖一章的所有知识,所以我会快速的过一遍,知晓这本书讲述了哪些重要的知识,到哪个深度,一些重要的点我会先把书页折起来,电子版我会记录书页。

看完第一遍后,如果对我而言是毕竟陌生的知识点,我肯定会读第二遍。但一些毕竟熟悉的知识点我会判断是否值得继续看第二遍。

如果选择看第二遍,我就会开始仔细的读,同时会记录笔记。

我不喜欢把笔记记录在书上,因为这样之后复习还得翻一遍书,效率很低。

我喜欢在在线文档上划分出各个知识点,然后会将不同书籍对同一个知识点的不一样的理解记录在一起,这很有意思,因为每个作者理解的角度都会有所不同,可以让你从更多的角度去理解这个知识点。

并且在复习的时候,我可以针对某个知识点快速找到所有相关的知识,这不香吗?

好了,没有第三遍,因为精华都被记录在笔记上了,复习的时候只要针对笔记看就行了,舒服舒服。

所以记录笔记很关键。

第二种高效学习方法是报一个培训班,它能帮助你过滤掉许多你不需要的知识,另外老师的经验能让你更快更好的理解掌握那些知识,让你少走很多弯路。这里我推荐零声教育,课程体系直接对标腾讯T9职级,个人目前觉得是对c/c++后台开发体系总结完善程度最为详细的学习路线

总结下来核心技术点为八个点:

由于内容太多,只是简单的标题介绍,更详细的技术路线可以点击下面链接

零声教育 第11代 Linux C/C++后端服务器架构开发 成长体系课程

学习地址:c/c++ linux服务器开发/后台架构师

一、编程语言

二、数据结构与算法

?视频:5种红黑树的场景,从Linux内核谈到Nginx源码,听完醍醐灌顶

三、数据库

?视频:redis的rehash,布隆过滤器,redis持久化一节课搞定

四、网络原理

视频:《tcpip详解卷一》:150行代码拉开协议栈实现的篇章

五、操作系统

?视频:c/c++程序员必知的内存泄漏解决方案与原理实现

六、网络编程

视频:支撑亿级io的底层基石 epoll实战揭秘

七、分布式架构

八、云原生

如果是想在c/c++后台开发方向得到有效的快速提升,他们的课程体系是大家绕不过的具有参考意义的提升路线。从学习路线中可以对c/c++后台开发方向的技术栈体系有一个清晰的认识。不管学习与否,对于这样一个完善详细的提升技术路线,是值得大家去获取参考的。

需要更多C/C++ Linux服务器架构师学习资料加qun812855908获取(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等),免费分享

无论是看书还是报班学习,紧接着都需要输出,因为向别人说出来是不一样的。

你在说出来的时候会发现自己的理解漏洞,会去查资料补上它。

你在说出来的时候会注意到细节,你会纠结用词,是用“一定”还是“大部分”?这有很大的差别,所以你会扣细节。

你输出的知识点会被别人看到,别人可能会质疑你,要与你击剑,这又会迫使你加深对这个知识点的理解。

当你有了广度并且有了输出,渐渐地你的知识体系就建立起来了,然后就可以往深度发展了。

不过要切记,塔尖不是一日而起的,唯有坚持。

有时间就谢谢博客,比如,安利下 zhoulujun.cn

虽然没有啥流量,还要浪费服务器的钱。

但是,积累十年下来。可以翻翻之前的经历也不错……

不要想着能把所有知识记录到脑子里面,人类有个BUG就是学了一个东西,如果你不去使用它那么这玩意一周你就忘得差不多了。

善用使用【git/svn】来管理写你的知识库笔记,用【Markdown】来编写你的知识库笔记而不是用office之类的文本。虽然office很好但是他没法再没有office和wps的电脑访问你的笔记,以及不能再网页上快速流量你的笔记。

知识库记录永远记录你当前工作相关内容。从工作内容开始然后在慢慢向周边不理解的地方做扩展并且用Markdown做下整理和记录,最终上传到自己的git上面去。如果涉及到工作敏感那么就把项目改成private。

知识库也不是一天能够建成的。当时我不了解SSL和SSL证书光靠网上找资料+整理都花了6天,其实真正的时间不止6天。下图只是一部分。

如果想要建立自己的知识库,先搞清楚,自己的起点在哪?其实起点还算好确定,比如,工作中碰到的“难点”“模糊点”都是很好的“起点”有这里开始,想办法搞清楚这里为什么不了解,不知道。弄清楚后后面自然而然的会有新的疑问出来。到时只需要按照自己感兴趣的内容慢慢扩展就行了。永远把知识库当做写给自己的一本XX入门手册即可。

先找到你最初学习的起点,然后根据起点不断对自己发出套娃式的疑问,然后逐渐一个个的去梳理和解决,这便是你的知识目录。

例如下面是我对我自己的一个套娃式的提问过程?

基础部分:

什么是程序?

程序有什么用?

什么是JAVA?

JAVA有什么用?

JAVA程序的特点?

JAVA的基础知识有哪些?

JAVA的基础类型有哪些,每个基础类型的作用是什么?

JAVA和C++在数据基础类型的区别?

JAVA的语法有哪些?

JAVA的句式有哪些?

什么是面向对象编程?

什么是面向过程编程?

面向对象编程和面向过程编程的区别在哪里?

为什么要使用面向对象编程?

扩展部分:

JDK是什么?

SDK是什么?

虚拟机是什么?

设计模式是什么?

常用的设计模式有哪些?

WEB是什么?

WEB编程涉及哪些方面?

为什么浏览器可以根据浏览的网络地址找到网站?它背后的工作原理是什么?

HTTP是什么?

HTTPS是什么?

HTTP和HTTPS的区别?为什么要用HTTPS而不建议用HTTP?

网络协议是什么?

常用的网络协议有哪几种?

什么是代理?

什么是转发?

Socket是什么?

多线程是什么?

线程和进程的区别?

什么时候需要用多线程?

什么是多线程锁?

多线程锁对程序的作用是什么?

什么叫死锁?

如何避免死锁?

线程池是什么?

为什么需要线程池?

内存是什么?

内存和多线程的联系?

缓存是什么?

IO是什么?

IO和内存的关系?

常用的IO有哪些?

什么是数据库?

数据库的作用是什么?

为什么需要数据库?

常用的数据库有哪些?这些数据库的适用场景在哪里(MYSQL、REDIS、MONGODB、ORACLE、LEVEL DB 、RocketDB…)?

什么是事务?

为什么需要事务?

什么是框架?

框架的作用是什么?

常用的框架有哪些?这些框架分别的作用是什么?它们是如何工作或者是是如何实现的?

Spring是什么?

为什么要使用Spring?

什么是依赖注入?

怎么实现依赖注入?

什么是控制反转?

怎么实现控制反转?

什么是AOP?

为什么要使用AOP?

Spring MVC是什么?

Spring WebFlux是什么?

SpringMVC和Spring WebFlux的区别在哪里?

…等等海量

时间原因,我就先不按照自己的思维去梳理了。学会套娃式的给自己提问题,提一个问题,如果问题存在理解不清楚的时候,就要提出下一个问题去把不清楚的部分尝试去解决,解决不了就周而复始套娃。这便是属于自己的一条知识线路,别人也很难照搬。不仅仅是程序,就连英语、语文、或者其他知识都可以用这种套娃式的方式取建立属于自己的知识目录。

当然是上 Github

建个仓库造轮子、写 Demo 甚至写博客;

在 Star Lists 中收集整理别人的项目;

有能力的还能给别人的仓库提交 PR ;

这一切都是记录。

程序员的我被大数据光明正大偷袭.

西安病患家属质疑医生吃回扣「两瓶电解质水售价 336 」,医生称治疗规范,电解质水价格为何如此高昂?

我是医生,观点:1.这个电解质水术后使用符合临床治疗规范; 2.这个电解质水不是术后补液必须,也不是临床常规用药,完全可以用葡萄糖、氯化钠、氯化钾、葡萄糖酸钙等常用临床术后补液液体代替。3.这个电解质水价格太高,性价比太低,不是药品,医生不能使用处方,即使是药品,医生的处方权仅限执业医院,不能在药店使用。4.患者要维权,途径:1.医院相关部门; 2.12345市长热线; 3.市卫健委。以上仅代表个人胡说八道,毫无依据,肯定有很多谬,不足以供参考。不要跟我辩论,辩就是你对。九项准则第一点就提到了严 更多

如何看待《燃烧吧,天才程序员 2 》里,呼兰和技术专家对于 AI 的讨论?AI的未来是什么样?

就在今年6月,谷歌的一名工程师表示,该公司的一个名为LaMDA的人工智能系统(AI)可能有自己的感觉。该工程师称LaMDA在令人深刻的语言表达技巧背后,可能“还隐藏着一个感知的心灵”。他认为,该人工智能的“需求”应当得到尊重。雷蒙恩发布了他和公司的一名合作者与LaMDA的对话,以支持自己的说法。这不禁引发了人们对AI觉醒的担忧,因为AI一旦拥有自由意识,便会威胁到人类的生存安全。不过,这种担忧还没有照进现实,相比较这种“杞人忧天”而言,AI的另一个“不可信”却是真实存在——即不够稳定。早在201 更多

赞(0) 打赏
未经允许不得转载:微精选 » 程序员如何建立自己的技能库(知识库)?
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏