技术管理
文章平均质量分 89
办公模板库 素材蛙
命数如织 当为磐石
展开
-
程序员如何高效准备简历和面试06:使用STAR法则表现自己
相信前面的内容让你在简历修改和面试技巧方面都提高了认知,那么在我们把简历内容、投递和面试行为都升级了之后,还有什么可以加分的呢?带着这个问题,我们来着重来聊聊一个神秘的法则:STAR。有些同学可能听说过这个名词,甚至被提示过“要按照star法则”修改简历,但是大多数人不明所以,依旧我行我素:简历该怎么写还怎么写,面试交流想到哪说到哪。其实,为了达到更好的沟通效果,或者让简历和面试看起来更专业流畅,建议你遵守一些行业内的“套路”。原创 2022-10-13 10:23:44 · 2656 阅读 · 0 评论 -
程序员如何高效准备简历和面试05:如何提高面试成功率?
在算法面试的时候,面试官主要考察的是:你有没有解题思路和代码变现的能力,只要思路对、代码表达正确且整洁,就算你没有在规定的时间内写完,也基本会通关。最后是学会观察面试官,他的每一个表情和动作都是有用信息,另外,面试的时候你应该和面试官对视,有眼神交流,不要低着头,翻白眼思考之类的,你可以看对方的眼睛和鼻梁,千万不要盯着对方的发际线。最后一点,如果有面试官总是打断你的回答,并且连续发问,在你的回答是有效的情况下,很有可能是他在进行压力面试,观察你的抗压能力,这个时候你应该保持冷静,争取做到对答如流。原创 2022-10-13 10:22:13 · 393 阅读 · 0 评论 -
程序员如何高效准备简历和面试04:技术简历应该怎么写、怎么投?
我举一个反面例子:我曾经面试过一个这样的求职者,他在简历中提到学习过某个比较知名平台的产品经理课程,作为面试官我会觉得这是个好事情,说明他平时还有学习的习惯,所以我就这个话题想稍微展开一下,我问他学习了什么,有没有运用到知识,结果不知道为什么这位求职者突然紧张起来,说话声音都开始打颤,完全说不出个所以然来,这让我很失望,也没有心情再深挖他的能力。如果你平时没有公司级的项目来做,也可以写一些自己的项目,开源的普通的都可以,方便来丰富你的简历,对于学生来说,实验室的项目或者参赛经历可以做为备选。原创 2022-10-13 10:17:55 · 650 阅读 · 0 评论 -
程序员如何高效准备简历和面试03:诊断:简历为什么被忽视?
多准备一些和能力相关的东西。另外,应届生群体好像有个不成文的规矩,说老师交代过,简历就准备一页,两页的简历容易被筛掉。HR看简历的习惯,除了在电脑前刷简历,看见感兴趣的简历他是要打印出来的,这么深色的背景你想想打印出来是什么样子,像一块黑色的幕布;有人求职互联网还用左边这种格子框样式的传统简历模版,虽然黑白分明,但是很像我10年前用的模版,给hr的印象是不太有专业互联网求职者的样子。左边2个图非常典型,工作经历就只有一两行,我懂你们的意思,详细的都归到项目经历去说,但是这样的简历给hr的印象非常不好。原创 2022-10-12 11:00:57 · 404 阅读 · 0 评论 -
程序员如何高效准备简历和面试02:如何挑选命中率高的好工作?
学计算机的不一定做程序员、学外语的也不一定当翻译、学师范的也不一定当老师,有的人工作几年之后也可以跨行业跨岗位工作,所以在你选定求职道路或者说找职业使命之前,可以做一些专业测试来了解自己,比如霍兰德、DISC、MBTI、PDP、九型等等,在百度都可以找到,这些测试可以从潜在性格层面帮助你选适合的方向。大家都知道BAT是好公司,也知道清华北大是好大学,但不是每个高考生都能考上,报志愿的时候我们还要避免撞车,找工作也是同样的道理,希望你能理解到这一层,我的方法是教你挑选适合自己的工作,这样命中率才会高。原创 2022-10-12 10:59:53 · 337 阅读 · 0 评论 -
程序员如何高效准备简历和面试01:技术岗薪资对比+供需分析
你好,欢迎解锁求职指导课程。我是你的职场导师吴文娟。先做个自我介绍,我是2013年接触互联网工作的,当时是在一家千人规模的游戏公司,2015年我加入到拉勾,到现在已经工作10年,积累了800多位互联网公司的HR人脉,算是个职场老人了。在拉勾的这几年,我在工作之余做过很多候选人的求职指导咨询,右边的照片是2018年我和同事们在清华给应届生做指导,场面非常火爆,同期走访的其他几所北京高校也是如此。原创 2022-10-12 10:57:52 · 427 阅读 · 0 评论 -
程序员的数学课23 站在生活的十字路口,如何用数学抉择?
我在专栏的《05 | 求极值:如何找到复杂业务的最优解?》和《07 | 线性回归:如何在离散点中寻找数据规律?》中反复提到过一个解决问题的通用框架,那就是形式化定义和最优化求解。当你遇到一个问题时,不妨试着用一个带参数的函数,来形式化定义这个问题;接着,通过各种各样求极值的办法,求解这个函数的最优值。通过这两个步骤,你遇到的问题就能迎刃而解。对于这两个步骤而言,第二步最优化求解就是求函数极大值/极小值的问题,如果你还会了梯度下降法,你就能找到绝大多数的函数的极值。而问题的关键就是第一步,如何。原创 2022-10-03 10:27:15 · 815 阅读 · 0 评论 -
程序员的数学课22 面试中那些坑了无数人的算法题
前面的课时,我们学习了“代数与统计”“算法与数据结构”,至今这门课程的主体知识已告一段落,下面我们进入彩蛋环节,我会向你介绍两个应用到数学的场景,第一个是求职面试,第二个是做人生规划。这一讲,我们先聊一聊求职面试时常见的数学题。毕业后,相信你一定参加过不少的面试吧。在求职面试的时候,即使目标工作岗位很少需要直接使用数学知识,也依然有不少面试官非常注重候选人的数学水平,而这并不是没有依据的。因为绝大多数的岗位,都需要候选人具有逻辑推理能力和解决问题的能力。而这些能力在数学上都能有所体现。原创 2022-10-03 10:25:00 · 578 阅读 · 0 评论 -
程序员的数学课21 神经网络与深度学习:计算机是如何理解图像、文本和语音的?
在上一讲的最后,我们提到过“浅层模型”和“深层模型”。其实,人工智能的早期并没有“浅层模型”的概念,浅层模型是深度学习出现之后,与之对应而形成的概念。在浅层模型向深层模型转变的过程中,,并在此基础上诞生了深度学习。这一讲,我们就来学习一下神经网络和深度学习。原创 2022-10-03 10:23:04 · 661 阅读 · 0 评论 -
程序员的数学课20 决策树:如何对 NP 难复杂问题进行启发式求解?
这一讲,我们学习决策树模型。决策树模型既可以解决分类问题,也可以解决回归问题,经典的决策树算法有 ID3、C4.5,以及 CART 算法。当今主流的人工智能模型都是基于决策树的模型,例如更复杂的梯度提升决策树、随机森林等等。这些模型有着更加复杂、深厚的数学机理,但本质上还是决策树的思想。原创 2022-10-02 09:15:01 · 1480 阅读 · 0 评论 -
程序员的数学课19 逻辑回归:如何让计算机做出二值化决策?
在上一讲,学习完 AI 的基本框架后,我们现在就开始围绕当前人工智能领域最常用的模型,来分别学习一下它们背后的原理。这一讲,我们从最常见的逻辑回归模型说起,逻辑回归是人工智能领域中入门级的基础模型,它在很多领域都有应用,例如用户的信贷模型、疾病识别等。逻辑回归是一种分类模型,可以对一个输入 x,识别并预测出一个二值化的类别标签 y。例如,要预测照片中人物的性别,可以采用逻辑回归建立模型。给模型输入一个描述照片的特征向量 x,经过模型的计算,可以得到输出值 y 为“男”或“女”。原创 2022-10-02 09:13:38 · 931 阅读 · 0 评论 -
程序员的数学课17 动态规划:如何利用最优子结构解决问题?
动态规划是运筹学问题,运筹学又是数学的一个分支,与“运筹帷幄、决胜千里”的含义很接近;同时,动态规划也是计算机技术的问题,对于程序员而言,能灵活运用动态规划解决复杂问题是一项进阶的能力。这一讲,我们就从数学的视角学习动态规划,并通过代码完成动态规划问题的开发。原创 2022-10-02 08:45:28 · 269 阅读 · 0 评论 -
程序员的数学课18 AI 入门:利用 3 个公式搭建最简 AI 框架
你知道,你的网购 app 是如何成为你肚中蛔虫,向你“智能推荐”你的心仪之物的吗?地图 app 又是如何“智能预测”,你家门口的每日交通状况的吗?如今 AI 变得无所不知,但原因并不是它真的能“窥探”万物,仅仅是因为它学会了从“数据”中学习,寻得了万物的规律。你与“淘友们”的浏览、购买数据,让它了解了你这个类群消费者的偏好;你与“出行者们”的日复一日的交通记录,让它轻松掌握所有人的出行规律。所以 AI 的本质就是“从大数据中学习”,那么想要了解 AI,是不是真的需要先用千万级的数据练手呢?不是的。原创 2022-10-02 09:12:30 · 1285 阅读 · 0 评论 -
程序员的数学课17 动态规划:如何利用最优子结构解决问题?
动态规划是运筹学问题,运筹学又是数学的一个分支,与“运筹帷幄、决胜千里”的含义很接近;同时,动态规划也是计算机技术的问题,对于程序员而言,能灵活运用动态规划解决复杂问题是一项进阶的能力。这一讲,我们就从数学的视角学习动态规划,并通过代码完成动态规划问题的开发。原创 2022-10-01 21:49:46 · 933 阅读 · 0 评论 -
程序员的数学课16 二分法:如何利用指数爆炸优化程序?
正式讲课之前,我先问你这样一个问题,请你尽可能快速回答。一张 1 毫米厚度的纸,对折几次后,可以达到地球到月球的距离(39 万公里)?我在写这篇稿子的时候,问了身边的几个朋友。最小的回答是 1 万次,最大的则是 100 万次。请问在你的直觉下,你的答案又是多少呢?我猜想无论如何都是上万次吧,毕竟我们离月球有 39 万公里呢。折纸的过程就是 1 变 2,2 变 4,4 变 8,这样一个翻一倍的过程。聪明的你,会发现其实这就是一个关于指数函数和对数函数的问题。那么,这与我们的编程有什么关系吗?原创 2022-10-01 21:48:28 · 1037 阅读 · 0 评论 -
程序员的数学课15 递归:如何计算汉诺塔问题的移动步数?
递归是重要的程序开发思想,比如程序源代码缩进、树形数据结构、XML 语法、快速排序法等都有递归的影子。那么,递归思维的本质到底是什么呢?递归的理念看似隐讳,实则非常清晰明了。为了让你由浅入深地理解它,这一讲我会先从“汉诺塔问题”入手,带你找出“递归思维”,然后将其应用在两个经典问题中,让你感受递归的作用及其缺点。最后,你便会发现递归与上一讲所学的循环有相似之处,我便会在这两者的对比辨析中,带你探讨它们的本质差异。原创 2022-10-01 21:47:06 · 3105 阅读 · 0 评论 -
程序员的数学课14 程序的循环:如何利用数学归纳法进行程序开发?
我们在上一讲提到程序有这三大基本结构,而在这其中,循环是处理复杂运算最有效的一种结构。可以用短短几行代码,执行成千上万次的运算。从计算机编程的视角来看,循环结构又有三种实现方法,分别是 for 循环、while 循环和 do while 循环;而从数学视角来看,循环结构很像是。所以这一讲,我们就从数学的视角来重新看待循环结构。原创 2022-10-01 21:45:37 · 710 阅读 · 0 评论 -
程序员的数学课13 复杂度:如何利用数学推导对程序进行优化?
这一讲开始,我们进入到这个专栏“模块三 数据结构与算法”的学习,在这个模块,我们会重点学习数学与算法、代码之间的关系。在一个程序开发的过程中,常常需要我们去关注程序的复杂度。这一讲,我们就先从复杂度出发,来看看数学的思想是如何应用在程序复杂度优化的。原创 2022-10-01 21:44:03 · 671 阅读 · 0 评论 -
程序员的数学课12 统计学方法:如何证明灰度实验效果不是偶然得到的?
你好,欢迎来到第 12 课时—— 统计学方法:如何证明灰度实验效果不是偶然得到的?当你做完 AB 实验,拿着实验结果来论证 v2.0 的系统比 v1.0 的系统效果更好的时候,极有可能有人站出来这样质疑“你的实验结果可信度如何?它是偶然得到的,还是一个必然结果?”面对这样的质疑,就需要一些统计学的知识了。这一讲,我们就来利用统计学的知识,来论证某个灰度实验的结果的可靠性。原创 2022-10-01 21:42:46 · 656 阅读 · 0 评论 -
程序员的数学课11 灰度实验:如何设计灰度实验并计算实验的收益?
在之前的课时,我们对问题进行了形式化定义,并利用一个很牛的算法进行了最优化求解,之后我们便打造了一个全新的策略优化解决方案。而接下来,你需要面对的问题,就是证明这个新的解决方案是有效的,是优于之前的解决方案的,而这个证明方法就是做 AB 实验。所以,这一讲我们就来说说 AB 实验的那些事。原创 2022-10-01 21:41:35 · 751 阅读 · 0 评论 -
程序员的数学课10 信息熵:事件的不确定性如何计算?
你好,欢迎来到第 10 课时——信息熵:事件的不确定性如何计算?从加乘法则开始,我们基于事情的不确定性出发,尝试计算事情发生的可能性。然而,。我说的这句话是什么意思呢?下面我举个例子来说明。假设有两场足球赛,也就是两个事件。第一场足球赛,对阵的双方是老挝队和巴西队,标记为事件 A;第二场足球赛,对阵的双方是阿根廷队和葡萄牙队,标记为事件 B。显然,在比赛开始前,这两个事件的比赛结果都具备一定的不确定性。人们也会根据历史数据,分别计算两场足球赛结果的概率。原创 2022-10-01 21:40:18 · 1025 阅读 · 0 评论 -
程序员的数学课09 似然估计:如何利用 MLE 对参数进行估计?
你好,欢迎来到第 09 课时——似然估计:如何利用 MLE 对参数进行估计?前面我们学会了如何计算概率,这一讲我们学习如何利用概率对某个参数进行估计。在读书的时候,你一定接触过极大似然估计,它是数学课程的难点之一,它名字背后的含义,以及它的推导过程都非常复杂,需要你对它有深刻的理解。不过,有了前面“形式化定义”“概率计算的加乘法则”和求函数最值的“求导法”“梯度下降法”的知识储备,相信极大似然估计也能迎刃而解。原创 2022-10-01 21:39:24 · 475 阅读 · 0 评论 -
程序员的数学课08 加乘法则:如何计算复杂事件发生的概率?
在我们的工作和生活中少不了对概率的计算,对概率的准确计算会帮助我们做出更加合理高效的决策。例如,早上出门之前,你需要对是否携带雨伞进行决策。如果没有任何依据而随机决策,那么就会遇到下雨没带伞或者晴天带伞的麻烦;而如果有依据,你知道今天下雨的概率超过 80%,那么你就会做出带雨伞的决策,来规避下雨带来不便的风险。那么问题来了,对于一个事件而言,其发生的概率该如何计算呢?这一讲我们就来解答。原创 2022-10-01 21:37:20 · 193 阅读 · 0 评论 -
程序员的数学课08 加乘法则:如何计算复杂事件发生的概率?
在我们的工作和生活中少不了对概率的计算,对概率的准确计算会帮助我们做出更加合理高效的决策。例如,早上出门之前,你需要对是否携带雨伞进行决策。如果没有任何依据而随机决策,那么就会遇到下雨没带伞或者晴天带伞的麻烦;而如果有依据,你知道今天下雨的概率超过 80%,那么你就会做出带雨伞的决策,来规避下雨带来不便的风险。那么问题来了,对于一个事件而言,其发生的概率该如何计算呢?这一讲我们就来解答。原创 2022-09-30 08:13:59 · 544 阅读 · 0 评论 -
程序员的数学课07 线性回归:如何在离散点中寻找数据规律?
回归(也称作拟合),通常是指利用某个函数,尽可能把数据样本点“串”在一起,用于描述输入变量和输出变量间的变化关系。在回归中最常用的就是线性回归了,这是因为线性回归与人类“越怎样...越怎样...”的思维方式更一致。线性回归的特点是,用来把数据“串”起来的那个函数是线性的。线性回归可分为一元线性回归( 一个自变量)和多元线性回归(至少两个自变量)。围绕上面的概念,我们尝试写出线性回归的方程。一个线性函数的通式为 y =k·x+b 或者y =kTx+b。其中,x是 nx1 维的自变量向量,k。原创 2022-09-30 08:12:48 · 833 阅读 · 0 评论 -
程序员的数学课06 向量及其导数:计算机如何完成对海量高维度数据计算?
在上一课时,我们学习了利用梯度下降法求解函数的极值。我举了个例子,如果商品利润函数 r 和补贴金额 x 的关系为 r(x) = p(x)×(m - x - c) = (2/(1+e-x) - 1)×(16 - x - 8),然后我又利用梯度下降法,求解出让利润最大的补贴额 x* 为 2.42 元。就这个例题而言,其实根本不需要求导法或者是梯度下降法。这是因为,商品定价是 8 元,补贴额 x 的就是从不打折的 0 元到不要钱的 8 元。原创 2022-09-30 08:11:28 · 677 阅读 · 0 评论 -
程序员的数学课05 求极值:如何找到复杂业务的最优解?
形式化定义”,就是用函数去表达需要用文字描述的问题。也就是说,在做决策之前,需要把你的动作、收益、风险,用函数建立起联系。我们举一个实际公司业务的例子。假设你在一个电商公司,负责用户营销红包的投放工作。很明显,对于一件商品,你投放给用户的红包金额越高,用户购买这件商品的可能性越大。然而投放红包的金额越高,利润空间也越小。那么问题来了,对于一件商品,投放多少金额的红包,能让你的利润最大呢?要想解决这个问题,就需要先对问题进行形式化定义。假设,用户购买商品的概率与投放的补贴金额的关系为 p(x)。原创 2022-09-30 08:10:31 · 334 阅读 · 0 评论 -
程序员的数学课04 万物可数学,经典公式是如何在生活中应用的?
在我们的生活和工作中,有大量的数学应用场景,一些简单的经典公式会在我们的生活中被反复验证、体现。对于经典公式的理解,能增强你的数据 sense,更能帮助你在遇到问题时,迅速找到解决思路。这一课时我将列举四个脑洞比较大,却又妙趣横生的例子,向你展示数学与万物之间的巧妙联系。“数学无处不在”,可能学完这一课时,你就会理解为什么说“数学是一切科学之母”了,因为万物、生活、世界的本质就是由数学组成的,或者说可以用数学去解析表达。原创 2022-09-30 08:08:19 · 918 阅读 · 0 评论 -
程序员的数学课03 用数学决策,如何规划好投入、转化和产出?
在工作和生活中,我们经常会说“这样做,划不划算?”其实这是做每个决策时都会面临的一个问题,也就是心里得有个“小算盘”。那么怎么我们应该怎么“算账”呢?算完账后又应该如何决策呢?下面我会先讲一个我的,带你在麻将局中认识算账的关键三要素:系统、指标、兑换;然后再带你回到学生时代的“补习场景”,认识,看到外部力量向指标的转化路径;最后,还是回归各位程序员的现实工作场景中,通过三个案例看到不同的转化路径,深入理解“投入”“转化”“产出”三者的关系。本课时的内容梗概如下图所示,可供你参考学习。原创 2022-09-30 08:07:01 · 382 阅读 · 0 评论 -
程序员的数学课02 逻辑与沟通,怎样才能讲出有逻辑的话?
你好,欢迎来到第 02 课时—— “与”“或”“非”:怎样才能讲出有逻辑的话?我们都知道,语言沟通的背后是说话人逻辑思维的过程,单句与单句间、事件与事件间,都是靠关联词联系起来的,所以这节课我将从数学逻辑的角度,向你论述语言沟通背后的原理。我将先向你介绍这一课时的根本思维原则 —— MECE 原则,再从“与”“或”“非”“异或”,以及“文氏图”这些运算方式出发,带你深入剖析沟通表达中的关联词。原创 2022-09-30 08:05:32 · 335 阅读 · 0 评论 -
程序员的数学课01 从计数开始,程序员必知必会的数制转换法
以前看过一个幽默段子,老师说:“世界上有 10 种人,一种懂二进制,另一种不懂二进制。”小琳问:“那另外 8 种人呢?” 显然小琳同学是不懂二进制的那类人。二进制的 10,代表的是十进制的 2。替换到老师的话中就是,世界上有两种人,一种懂二进制,另一种不懂二进制。当我们还是个孩童时,幼儿园的阿姨便用火柴棍教我们如何数数。这是最早期的数学教育,这也是在某个数制下的计数问题。作为第一节课,我还是想和你回归最基本的“数制转换”主题。原创 2022-09-30 08:04:03 · 1015 阅读 · 0 评论 -
程序员的数学课开篇词 数学,编程能力的营养根基
你好,欢迎来到《程序员的数学课》。一些同学可能知道,之前我在就开设了一个《数据结构与算法》课程,目的是帮助大家提升编码能力,打牢代码基础,在结课时也受到许多同学的好评,表示所讲的内容在面试和工作中都很有实用性。编程一类的基础能力固然重要,但这些依旧不是程序员全部的“立足之本”。个人角度而言,从我在中科院的博士研究生经历,再到后来从事机器学习、数据挖掘等算法研发工作,都是数学作为我的基础思维能力支撑我一路走来。原创 2022-09-30 08:02:34 · 209 阅读 · 0 评论 -
微服务应用性能分析实战22 拥抱未来:如何备战下一代性能监控系统?
我们这就进入最后一节正课了。作为尾声,这一讲我将与你讨论如何备战下一代性能监控系统。将围绕 1.监控数据能力,提升数据价值。2.掌握数据库技术。3. 融入开源社区。这三个方向与你分享。原创 2022-09-25 09:10:09 · 415 阅读 · 0 评论 -
微服务应用性能分析实战21 高维思考:通过监控 Case,彻底悟透 OpenTracing
你好,这一讲我将带你通过三个监控 Case,让你实现 OpenTracing 的能力更上一台阶。由于分布式追踪是基于插件扩展实现的,而绝大多数时候,插件很难在企业的应用服务集群中面面俱到,也就是不能实现 100% 的链路串联。所以很多时候在落地 APM 工具后,还是避免不了二次开发。通过前面、课时的学习,我们已经掌握了 OpenTracing 的基础概念,以及二次开发企业内部插件的必备能力。但是很多时候现实往往与已有认知不同,这时我们就需要变通思考了。原创 2022-09-25 09:07:14 · 520 阅读 · 0 评论 -
微服务应用性能分析实战20 能力进阶:APM 工具自燃?随时客串 APM 工程师
你好,从今天起我们就开始了对最后部分“APM 软技能”的学习了。在本部分的课程中,我会从典型案例故事出发,让你感同身受问题现场,然后加之相应软技能辅助,让你在前面课程中学习到的硬实力更加充分地发挥出来,最终让你独自排查问题时可以更有头绪,具备独当一面的能力。解决常规的应用服务问题或是故障排查手段,每个团队都有着适用于自身的“白皮书”或是“三板斧”。其主要作用,就是让一线开发人员遇到问题时,具备定位常规问题的思路,并能梳理好团队已有的 APM 工具以及项目干系人,从而做到处理问题有章法、解决问题有效率。原创 2022-09-25 08:22:18 · 239 阅读 · 0 评论 -
微服务应用性能分析实战19 望火楼:与故障系统联动,纳入、积累故障资产
首先我们要认识到,应用服务的线上问题是不可避免的。如新功能上线后,服务不能按照规定的设计完成,那就是出现了线上问题;而当问题很严重,不能及时解决时,就上升成了故障。可能你会问:用户问题不能通过监控系统反馈出来吗?答案是否定的。这就好比谚语“道高一尺魔高一丈”,监控系统的持续建设,永远是由故障推演出来的。所以会有这样一种现象:故障越多、数量越大,就越倒逼技术人员去总结、去发人深省,最终建设出更好的监控系统。那什么样的问题,问题严重到什么程度才能称其为故障呢?可以通过五维图去定性、定量地甄别问题的严重程度。原创 2022-09-24 13:25:49 · 284 阅读 · 0 评论 -
架构师的 36 项修炼第11讲:致未来的架构师
技术人的进阶路径本课时将分享技术之外的话题:如何从普通程序员成长为技术专家?技术人的进阶路径普通程序员与顶尖技术专家之间有多大差距?他们的进阶路径是怎样的?跟大多数领域一样,计算机技术人才构成也是金字塔型。一般说来,这样的金字塔结构是按照二八定律划分的。如下图,我按照二八定律将技术人金字塔分为八层,从 0 级到 7 级。0 级——普通程序员最下面的是第 0 级,80% 的技术人都处在这一级。0 级技术人,在开发过程中几乎没有话语权。原创 2022-09-03 14:07:14 · 484 阅读 · 0 评论 -
架构师的 36 项修炼第10讲:架构实战案例分析
初创互联网公司架构演化案例本课时的主题是架构案例分享,通过案例分析来加深对前面所学内容的理解。下面将分析三种不同的系统架构案例。分析初创互联网公司的架构演化案例,看一个小的系统架构是如何演化成一个较为成熟的、能够承受百万级订单的互联网系统架构。分析一个分布式存储的架构案例,看如何去设计一个分布式存储系统,底层存储系统的架构是如何设计的。分析一个反应式编程框架的架构案例,看开发框架的架构是如何设计的。这三类系统架构是三种比较典型的架构设计,对设计的要求很不一样,对架构师能力的考验也不太相同。原创 2022-09-03 14:05:05 · 743 阅读 · 0 评论 -
架构师的 36 项修炼第09讲:系统的安全架构设计
Web 攻击与防护本课时讲解系统的安全架构。本节课主要讲 Web 的攻击与防护、信息的加解密与反垃圾。其中 Web 攻击方式包括 XSS 跨站点脚本攻击、SQL 注入攻击和 CSRF 跨站点请求伪造攻击;防护手段主要有消毒过滤、SQL 参数绑定、验证码和防火墙;加密手段,主要有单向散列加密、对称加密、非对称加密;信息过滤与反垃圾主要讨论分类算法和布隆过滤器。Web 攻击与防护XSS 攻击先看 XSS 跨站点脚本攻击。原创 2022-09-03 13:25:14 · 1502 阅读 · 0 评论 -
架构师的 36 项修炼第08讲:高可用系统架构设计
系统高可用的挑战本课时讲解高可用系统架构,如下图所示,本课时内容主要包括 3 个部分。互联网系统可用性度量,即如何用指标来衡量系统的可用性,以及进行可用性管理时的一些手段。高可用架构策略,主要包括负载均衡、备份与失效转移、消息队列隔离、限流与降级、异地多活这样几种架构方法。高可用运维,如何在开发测试发布以及系统运行过程中,保障系统的高可用,包括自动化部署、自动化监控、自动化测试、预发布测试这几个方面。系统高可用的挑战。原创 2022-09-03 13:15:00 · 496 阅读 · 0 评论