《程序员进阶攻略》总结

读完小册

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

建立技术学习的体系框架与思维模型

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

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

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.我为什么要成为程序员呢?

可能是因为自己是计算机专业吧。

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%时间用于行。

你可能感兴趣的:(编程语言,java,程序人生,面试,经验分享)