淡写流年 發表於 2021-3-8 10:06:00

聊聊IT技术人的知识体系

<p>我在我的2020年终总结中提到技术人需要建立自己的知识体系,那么怎么建立自己的知识体系呢?技术人的知识体系又是什么样的呢?今天,和你一一分享。</p>
<h1>1 关于我的12字方针</h1>
<p>我在我的《2020年终回顾》一文中提到了一个12字方针,以应对IT技术人的中年危机,它是“<strong>抓主线、建体系、有侧重、多复盘</strong>”。</p>
<p style="text-align: center"><img src="https://img2020.cnblogs.com/blog/381412/202103/381412-20210307220444043-496467449.png" alt="" loading="lazy" style="width: 65%; border: 1px solid rgba(221, 221, 221, 1); border-radius: 3px; box-shadow: 0 4px 8px rgba(3, 27, 78, 0.12)"></p>
<p>其中,“建体系”三个字最为重要。</p>
<p>那么,是建什么体系呢?</p>
<p>答曰:建立我们IT技术人的知识体系。</p>
<p>接下来,我们就来聊聊如何建立我们自己的知识体系。</p>
<h1>2 刻意构筑 点-线-面</h1>
<p>我们可以借助&nbsp;<strong>点-线-面</strong>&nbsp;的方法论来构筑知识体系,即我们在工作中用到的往往是一个知识面的某条主线的某个点,只有当你用了多个点之后才会将它们升维到某条主线,最终多条主线再次升维形成一个知识面。</p>
<p>这里我们以Redis为例来说说如何构筑Redis的点-线-面。</p>
<p style="text-align: center"><img src="https://img2020.cnblogs.com/blog/381412/202103/381412-20210307220601110-1841619038.jpg" alt="" loading="lazy" style="width: 40%; border: 1px solid rgba(221, 221, 221, 1); border-radius: 3px; box-shadow: 0 4px 8px rgba(3, 27, 78, 0.12)"></p>
<p>Redis应该是我们做后端开发的技术人大概率都会用到的一个中间件,不管你用到了哪种程度,只要你是做后端开发,那么你的知识体系中必然有它的位置。</p>
<p>这里我们借助某位老师总结的一个Redis的知识结构图来聊聊,如下图所示:</p>
<p style="text-align: center"><img src="https://img2020.cnblogs.com/blog/381412/202103/381412-20210307220648183-2000882883.jpg" alt="" loading="lazy" style="width: 65%; border: 1px solid rgba(221, 221, 221, 1); border-radius: 3px; box-shadow: 0 4px 8px rgba(3, 27, 78, 0.12)"></p>
<p>我们可以从上图中看到,该老师将Redis这个知识面分为了两大维度 和 三大主线,两大维度分别是 应用维度 和 系统维度,三大主线分别是 高性能主线、高可靠主线 和 高可扩展主线。</p>
<p>作为一个对自己有追求 又&nbsp;渴望成长 的IT技术人来说,往往都是在工作中在了解和实践Redis的一个又一个零散的知识点,却很少将它们整理和归纳,使这些点能够串联起一条主线脉络在心中。比如,我们常常使用Redis做缓存,用了很多相关的get/set接口,也用了k/v、string、set等数据结构,有的还使用到了新增的SET接口实现了分布式锁去应对秒杀抢购的业务场景,但却很少将它们归纳分类提升维度,进而构筑知识体系,因此在面试中的回答往往不够完整(这也是我的经历,错失一些offer的感悟)。</p>
<p>如果我们都能有这样的整理和归纳,对每个知识面都有像上图一样的脉络在心中,是不是也会增加我们的自信程度,减少不必要的中年焦虑?</p>
<p><strong>画外音:骚年,平日里多多归纳总结,刻意练习,必有收获。技术如此,业务知识也如此,心中有一条公司整体业务的主线 以及 自己项目团队所负责的业务线的详细脉络,就是一个合格的IT技术人,因为技术是为业务服务的,没有交付业务价值的技术也是不合格的。</strong></p>
<p>那么,跳出Redis这个知识面,我们后端技术人的知识体系的全貌又是怎么样的?这里我整理了一棵树,它列出重要的知识面 和 主线,仅供参考。</p>
<p style="text-align: center"><img src="https://img2020.cnblogs.com/blog/381412/202103/381412-20210307220802572-778712281.jpg" alt="" loading="lazy" style="width: 80%; border: 1px solid rgba(221, 221, 221, 1); border-radius: 3px; box-shadow: 0 4px 8px rgba(3, 27, 78, 0.12)"></p>
<p>当然,这还只是一棵较为粗糙的树,我会持续对它进行完善,因为我的技术认知和业务认知也在不断地更新,乐观接受新认知,勇于放弃旧认知,只要自己不断地在进步,就是值得高兴的事。</p>
<p>此外,金三银四已经到来,Edison也在整理一棵开发面试的知识体系,目前整理到了v0.5版本,关注EdisonTalk公众号的童鞋可以在后台回复“面试知识树”获取。这个pdf的全貌如下图所示:</p>
<p style="text-align: center"><img src="https://img2020.cnblogs.com/blog/381412/202103/381412-20210307220822174-1250541566.png" alt="" loading="lazy" style="width: 65%; border: 1px solid rgba(221, 221, 221, 1); border-radius: 3px; box-shadow: 0 4px 8px rgba(3, 27, 78, 0.12)"></p>
<p>在EdisonTalk交流群里(欢迎加群交流),很多童鞋都表达了自己的焦虑,认为自己多年所学的知识可能会在今后的日子越来越得不到市场。我承认,在国内的互联网和IT大环境市场下,面向职位和工资编程,.NET在互联网大厂的平均使用份额的确不高,但是也需要承认.NET在数字化转型、工业制造、3D游戏(Unity)、BIM设计、医疗信息化等行业领域还是占有一席之地(护城河)。此外,作为一个程序员,掌握两门及以上的开发语言也不是什么坏事儿,如果我们将自己的知识体系进行一个抽象和升维,你会发现.NET技术栈在你的知识体系中只是其中的一个面,其他的很多面其实都是后端开发通用的技术能力,你不必担心这些通用的技术能力在其他企业用不上。</p>
<p><strong>画外音:讲到这里,细心的读者应该可以发现,抽象归纳和顶层设计的能力对于程序员来说,是个需要逐步练习的技能,可以帮助我们看到全局,而只有看到全局,你才能做到胸有全局脉络,又能聚焦局部重点。</strong></p>
<h1><strong>3 其他想说的<br></strong></h1>
<h2><strong>关于硬技能和软技能</strong></h2>
<p>在职场中,硬技能是我们安身立命的基础,它是硬核的,即我们所掌握的开发语言、框架、中间件 和 项目经验。软技能是我们扩展边界的条件,它是加分项,可以在我们达到开发角色边界的时候帮助我们跨上一个新台阶,比如Team Leader或Project Manager等。</p>
<p style="text-align: center"><img src="https://img2020.cnblogs.com/blog/381412/202103/381412-20210307220949069-424627408.png" alt="" loading="lazy" style="width: 65%; border: 1px solid rgba(221, 221, 221, 1); border-radius: 3px; box-shadow: 0 4px 8px rgba(3, 27, 78, 0.12)"></p>
<h2><strong>技术人职场打怪升级路线</strong></h2>
<p>在职场中,我们首先是做事,通过硬核技能写好代码做好服务,等到一定时机,我们有机会管事(比如Team Leader),再管人(比如Manager),最后管心(比如Director或CIO/CTO)。</p>
<p style="text-align: center"><img src="https://img2020.cnblogs.com/blog/381412/202103/381412-20210307221005494-1050285681.jpg" alt="" loading="lazy" style="width: 65%; border: 1px solid rgba(221, 221, 221, 1); border-radius: 3px; box-shadow: 0 4px 8px rgba(3, 27, 78, 0.12)"></p>
<p>为什么技术人越成长晋升,关注点都会慢慢聚焦到人和人心上面?</p>
<p>因为<strong>人心比系统复杂</strong>,架构师处理的是多个系统之间的连接关系,而管理者处理的其实是多个人心之间的连接关系。</p>
<h2><strong>我的一点成长经验</strong></h2>
<p>我在职场中也没有做到什么高级管理者的位置,但我现在逐步养成了拔高自己的视角去看待一些问题,我也有了一些自己的成长经验,我觉得以下几点对初入职场和初中级开发工程师都是有用的(如果你也认可)。</p>
<p style="text-align: center"><img src="https://img2020.cnblogs.com/blog/381412/202103/381412-20210307221019263-1167006029.png" alt="" loading="lazy" style="width: 65%; border: 1px solid rgba(221, 221, 221, 1); border-radius: 3px; box-shadow: 0 4px 8px rgba(3, 27, 78, 0.12)"></p>
<p>第一点,<strong>积极主动做事</strong>。职场中积极主动做事的人,运气都不会太差,机会一定都是会留给积极做事有准备的人。</p>
<p>第二点,<strong>努力扩展边界</strong>。任何成长阶段都有自己的边界,而渴望成长的人总是希望在几年或多年的时间里上一个新台阶。</p>
<p>第三点,<strong>及时总结复盘</strong>。当你努力踏上一个新的台阶时,你总是不习惯或者不适应的,你会踩很多很多的坑,这时你需要及时对踩过的坑进行总结复盘,避免下次再犯。</p>
<p>这三点其实是有一个顺序关系的,你只有积极主动做事,才会在大概率的情况下得到拓展边界(踏上新的成长台阶)的机会,而当你踏上新台阶时,一定会碰到各种各样的问题(因为要处理问题的复杂度提升了)进而踩很多坑,这时你就需要及时总结复盘,避免多次犯同样的错误。如此,这就是一轮成长的闭环,而技术人的职场进阶路线就是一个又一个这样的闭环。</p>
<h1>4 小结</h1>
<p>本文介绍了IT技术人的知识体系的概念,如何通过 点-线-面 理论来构建自己的知识体系,最后给出了一个后端技术人知识体系的示例,你可以根据自己的需求进行完善。</p>
<p>那么,你有没有开始计划去整理你的知识体系呢?欢迎留言,一起交流!</p>
<p>&nbsp;</p>
<p style="text-align: center"><img src="https://images.cnblogs.com/cnblogs_com/edisonchou/1647700/o_200902144330EdisonTalk-Footer.jpg" alt="" style="width: 65%; border: 1px solid rgba(221, 221, 221, 1); border-radius: 3px; box-shadow: 0 4px 8px rgba(3, 27, 78, 0.12)"></p>
<div id="Copyright">
<p>作者:周旭龙</p>
<p>出处:https://edisonchou.cnblogs.com</p>
<p>本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。</p>

</div>

</div>
<div id="MySignature" role="contentinfo">
    <div align="center"><img border="0" src="http://service.t.sina.com.cn/widget/qmd/2068032061/d643d182/10.png"></div><br><br>
来源:https://www.cnblogs.com/edisontalk/p/talk_about_knowledge_architecture_for_tech_expert.html
頁: [1]
查看完整版本: 聊聊IT技术人的知识体系