《程序员进阶攻略》总结

读完小册

这是一篇极客时间小册《程序员进阶攻略总结》的总结。做者用诗同样的语言,描写了程序员的江湖。我简单输出下个人收获,小册更像是一个大佬前辈在娓娓道来他沉淀的思想框架,不一样于职业规划类的书籍,也不一样于讲“术”的《从小工到专家》,更像是聊“道”的武功心法。程序员

创建技术学习的体系框架与思惟模型

1.经典算法,是剥离了业务场景的高度抽象,要学好算法。
2.在写代码的时候,用测试的思惟与方式(提供单元测试)去审视和检测代码。
3.若是你不在意你的工具,可能你也就不会在意你的时间和效率。尤为是天天要用的笔记本。
4.框架是代码复用,模式是设计复用。
5.我读源码的方式是,发现这个框架实现了某个能力,我本身想不出怎么作,就会去看看别人怎么实现的。带着问题去读,可能有针对性一些。
6.一个程序员要想精确评估程序的运行效率和效果,就得本身动手作大量的基准测试。一个新东西引入到核心服务中,不理解实现原理,是用很差的,还可能埋坑,这是必要的成本。
7.时间类Bug种类:周期、非规律、海森堡。
8.学习要造成本身的点线面体。
9.多画图,简单的软件,简单的图形和配色。
10.电站须要复杂系统的目的:一是为了确保安全,二是为了提升效率。安全与效率的平衡,是全部工程技术的核心。
11.在程序系统的开发过程当中,当系统的大小和复杂度到了必定的规模临界点,就会发生从量到质的转变,规模不一样,相应的需求调度、设计开发、测试运维的过程也都不一样了。
12.若是你能发如今系统里起主导做用的回路是什么,你就抓住了系统的主要矛盾,你就找到了问题的关键所在。
13.程序员的信用,更多体如今面对技术债务的态度和能力——有意识地引入债务,并有计划地归还债务;无心识地引入债务,发现以后,有意识地归还。web

梳理清晰的成长与进阶路线

1.擅长于沟通和协做,技术能力在上流水平的就是稀缺人才。
2.为何是我,而不是个人同事,提早得到了晋升,获得了更高的薪酬,个人价值在哪里?这个价值的稀缺性在哪里?算法

打造本身的组合技能,保持主动。安全

3.在细节上,架构师须要作一个判断,哪些细节上的问题会是战略性的,而我有限的时间和注意力,必须放在这样的战略性细节上。即关注与把控边界。
4.架构是构建一个系统,重要的是稳定,实现稳定的方法是,简。
5.高级工程师不只能够完成高难度任务,还能够全面考量用户体验和性能优化。
6.把效率提上去,就能遇到不少问题,再去把这些问题解决,就能成长。
7.一个优秀的工程师应该同时具有科学思惟和系统思惟,它们是工程思惟的两种不一样表现形态:系统思惟洞察问题本质,科学思惟发现最优解法。
8.保养不少技能是不太合理和现实的,更优化的选择是:持续保养主要的生存技能,合理开发辅助技能,造成本身独有的技能组合,沉淀能力模型,发展能力矩阵。
9.当你再碰到相似功能的实现时,能直接复用库就复用库,不能直接复用的就在脚手架代码上进行扩展,后续的重心就放在了优化实现思路上。
10.How can I carve myself out a niche that only I have?走少有人走的路。
11.前辈的价值在于:他们走过的路,你不用再去摸索,只需快速顺着走下去,另外一个价值在于塑造环境,而环境决定了总体的平均水平线。
12.走向专家之路,就是精确地找到、创建你的领域,并不断推高壁垒和扩大边界的过程。
13.假如把奠基计算机行业基础的那一批图灵奖得主级别的程序员定义在 90~100 分档,那么咱们不少靠编码为生的程序员基本都在 1~10 分档间分布。因此咱们还有很大的成长空间。性能优化

扫清成长路上的迷茫与障碍

1.技术老是短时间被低估,不要被技术潮流所左右。
2.不要忽视行业的重要性,选择语言,就是选择行业,首先就是选择行业。架构

要考虑行业的现状,平均增速,和其余行业的比较。框架

3.运维类代码也很是重要,要造成足够重视。
4.成长之路不是笔直或者说匀速的,在每个拐弯处,都应减速,思考,学习,而后再加速,进步。
5.晋升要注重责任域和能力域,责任域,就是你负责什么,能力域,就是表达和沟通能力,以及业务和技术能力(产出)。晋升的本质是承担更大的责任,而责任和能力是须要匹配的
6.本身的成长是最重要的事情,晋升或别人的评价是一个侧面的印证,只是形式和标签。
7.做为导师,带好了徒弟,接手并取代了你当前正在作的事情,你才有可能解放出来去作更高层次和更大维度的事情。
8.做为学徒,学习和成长是本身的事,严肃待之,行动起来,自助者,人亦助之。
9.清楚沟通问题的本质是要方便接收,达成共识,保持换位思考和同理心,改变自会发生。
10.不少熟练程序员的平常工做则是在 “温馨区” 的自动完成。停滞,就是这样发生的。正确的是天天的平常训练都是在 “学习区” 的刻意练习。
11.跳出温馨区,一次不要跳出太远,渐进式扩张。
12.前 1/3 的路程就是让你在决策前充分观察、调研、肯定你的满意标准,以后2/3面对第一个满意对象就可以直接决策,而后继续快速前行。
13.去作值钱的事,打造值钱的结构,从知识结构、技能结构到做品结构与产品结构,而后等待某个将来的兑现时间。
14.用长期的眼光看待工做和生活,工做是水,生活是酒,水的好坏决定了酒的品质。
15.技能的成长速度总会进入平缓阶段,并慢慢陷入瓶颈点,而后也许你就会感到焦虑,焦虑是一种预警,要重视起来。运维

造成明确的自我定位与认知

1.我为何要成为程序员呢?svg

多是由于本身是计算机专业吧。工具

2.人生最激荡人心的时刻,就在于自我实现的创造性过程当中,产生出的一种 “高峰体验” 感。正由于人所固有的需求层次模型,咱们才有了愿望,愿望产生目标,目标则引起计划。不计划和努力一下,也许你永远没法知道本身的边界和所能达到的程度。 3.Easy choices, hard life. Hard choices, easy life。 4.程序员对于计划的估计老是过于乐观,乐观地期待 “惊喜”,而后又“惊吓”地接受现实。因此,请悲观的面对计划。而后乐观的执行它。 5.计划才能给你真正的自由,你对计划的控制力越强,离自由也就更近了。 6.不要在挫败的情绪低谷期进行任何的选择与决策。能够暂时放下这件事,等待情绪回归到正常,再从新理性地评估计划仍是否该坚持。 7.即便再忙,也应该抽空看书夯实基础。成长是本身的事情,不能怪没有时间! 8.要造成时间习惯,要经过有意识的感知和测量来发现时间是怎么流失的。 9.试一试,是走出温馨区的一次行动,这本是一个好的出发点,但若只有一个模糊的终点,那么它带来的更可能就是无谓的浪费。 10.工做的目的意义,你追寻的职业生涯,你所作的工做岗位,这三者相交的那个位置,就是你的 “工做区”。在这个区域内,工做让你有驱动力,感到快乐,充满成就感。找到了 “工做区”,很天然就会进入 “工做态”。 11.当你知道本身作得很好,但却没有感受到成长与进步时,这个时候就要“逃离”了。 12.技能是你习得的一种工具,那么能力就是你运用工具的思考和行为方式,它是你作成一件事并取得成果的品质。 13.技术须要懂的是产品提供的核心服务和流程,并清晰地将其映射到技术的支撑能力与成本上。 14.给本身 Review 是一种自省,自个人成长老是从自省开始的。 15.面对众多的技术干货,从循证出发,找到参考,作出技术决策,决定后续演进路线;在演进路上,不断切磋,升级思考方式,调整路径,走出合适的道路;在路上,把遇到的独立的知识点,不断吸取连结进入本身的技术知识体系之网。 16.避开 “达芬奇诅咒”,围绕核心硬技能,发展“一主多辅”的技能模型树。 17.人,彷佛不犯一些错,就成长不了,也许这就是成长的成本。 18.学习新技术的时候套用 “海尔迈耶系列问题” 来自省一番。 19.打造多维度竞争力的前提是,要先在一个维度上作得足够好,让其成为你赖以生存的维度,这个维度就是你的核心基础维度,而它是其余维度得以发展的根基。 20.20%知,80%时间用于行。