参考:https://tech.meituan.com/study_vs_work.html
看了这篇文章,觉得总结得非常好,因此摘抄了一些关键点,以便自己经常翻阅。
引言
在繁忙的工作中做好技术积累,构建个人核心竞争力.
在繁忙的工作中,持之以恒、不断学习和进步是一件艰巨的任务,需要坚强的毅力和坚定的决心。
如何学习
贵在坚持
要想在计算机领域持续做优秀架构师,就必须不停的学习,掌握最新技术;要想成为优秀的架构师,贵在坚持!
虽然知识更新很快,但是基础理论的变化却非常缓慢。这就是“道”和“象”关系,纵是世间万象,道却万变不离其宗。对于那些非常基础的理论知识,我们需要经常复习,也就是“学而时习之”。
重视实践
学习领域有所谓721模型:个人的成长70%来自于岗位实践,20%来自向他人学习,10%来自于培训。虽然这种理论存在争议,但对于工程师们来说,按照实践、学习和培训的方式进行重要性排序,大致是不错的。所以重视实践,在实践中成长是最重要的学习原则。
重视交流
我们需要从别人身上学习。从老师、领导、同事、下属甚至对手身上学习,是快速成长的重要手段。
在项目中积极参与具体方案讨论也非常重要。参与者感知了相关背景,并且讨论的观点和建议也是综合了发言者多种知识和技能。所以,讨论让参与者能够非常全面,立体地理解书本知识。同时,和高手讨论,他们的观点就会像修剪机剪树枝一样,快速的剪掉自己知识领域里面的疑惑点。
重视总结和输出
工程师在实践中会掌握大量细节,但是,即使掌握了所有细节,却没有深刻的总结和思考,也会陷入到“学而不思则罔”的境地。成长的“量变”来自于对细节的逐渐深入地把控,而真正的“质变”来自于对“道”的更深层次的理解。
将经验输出,接受别人的检验是高层次的总结。这种输出不仅帮助了别人,对自身更是大有裨益。总结的方式有很多,包括组织分享,撰写技术文章等等。
重视规划
对于漫长的学习生涯而言,好的计划是成功的一半。
长期规划
定方向.
短期规划
良好的短期规划应该在生活、成长、绩效和晋升之间取得平衡。大部分公司都会制定一个考核周期——少则一个月,多则一年。所以不妨以考核周期作为短期学习规划周期。
那些令人纠结的困惑
人生是一场马拉松,在漫长的征途中,难免有很多困惑。当这些困惑被释然之后,大家都感觉如重获释,为下一阶段的征程提供满满的正能量。良好的心态是技术之旅最好的伴侣。
学无止境吗
虽然,人类的整体知识体系一直在扩张。但是就很多重要的工程细分领域,基础理论并不高深。计算机的很多重要领域,工程师有能力在有限时间内抓住核心要害。
技术学习是一场对抗赛,虽然学无止境,但超越大部分对手就是一种胜利。所以,以正确的学习方式,长时间投入就会形成核心竞争力。
没有绝对高明的技术,只有真正的高手
掌握某项技能知识只能是一个短期目标.怀揣某些技能就沾沾自喜的人需要记住:骄傲使人退步。
真正的高手不是拿着所掌握的技术去卡客户需求,而是倾听客户的需求,给出精益求精的方案。完成客户的需求是一场擂台赛,真正的高手,是会见招拆招的。
不做项目就无法成长吗
在项目中学习是最快的成长方式之一,很多工程师非常享受这个过程。正常情况,在项目之间都会有一些非项目时间。在这段时间,有些同学会产生迷茫,成长很慢。
项目真的是越多越好吗?答案显然是否定的。重复的项目不会给工程师们带来新的成长。不停的做项目,从而缺乏学习新知识的时间,会导致“做而不学则殆”。真正让工程师出类拔萃的是项目的深度,而不是不停地做项目。所以,在项目之间的空档期,工程师们应该珍惜难得的喘息之机,深入思考,把项目做深,做精。
如何提高项目的深度呢?一般而言,任何项目都有一个目标,当项目完成后,目标就算基本达成了。但是,客户真的满意了吗?系统的可用性、可靠性、可扩展性、可维护性已经做到极致了吗?这几个问题的答案永远是否定的。所以,任何一个有价值的项目,都可以一直深挖。深挖项目,深度思考还可以锻炼工程师的创造力。期望不停地做项目的人,就像一个致力于训练更多千里马的人是发明不出汽车的。锻炼创造力也不是一蹴而就的事情,需要长时间地思考。总之,工程师们应该总是觉得时间不够用,毕竟时间是最宝贵的资源。
职责真的很小吗
一定要当老大吗
平台化的传说
搞基础技术就一定很牛吗
可行性调研的那些坑
工程师天生不善沟通吗
带人之道
有些初为导师的工程师由于担心毕业生的能力太弱,安排任务时候谆谆教诲,最后感觉还是有所顾虑,干脆自己写代码。同样的事情发生在很多刚刚管理小团队的工程师身上。最终的结果他们:写完所有的代码,让下属无代码可写。“ 事必躬亲”当然非常糟糕,最终的往往是团队的整体绩效不高,团队成员的成长很慢,而自己却很累。
良好的用人方式应该如下:
1. 首选选择相信,在面临失败后,收缩信任度。
2. 查找失败的原因,提供改进意见,提升下属的能力。
3. 总是给下属机会,在恰当地时机给下属更高的挑战。 总之,苍天大树来自一颗小种子,要相信成长的力量。
效率、效率、效率
为了提升工作学习效率,我们需要注意以下几点:
主要关注效率提升。很多时候,与效率提升所带来的收益相比,延长时间所带来的成果往往不值得一提。
要有清晰的结果导向思维。功劳和苦劳不是一回事。
做正确的事情,而不仅仅正确地做事情。这是一个被不断提起的话题,但是错误每天都上演。为了在规定的时间内完成一个大项目,总是要有所取舍。如果没有重点,均匀发力,容易事倍功半。如果“南辕北辙”,更是可悲可叹。
架构师能力模型
成为优秀的架构师是大部分初中级工程师的阶段性目标。优秀的架构师往往具备八种核心能力:编程能力、调试能力、编译部署能力、性能优化能力、业务架构能力、在线运维能力、项目管理能力和规划能力。
编程能力
提升编程能力的书籍有很多。精通面向对象和设计模式是高效编程的基础。初级工程师应该多写代码、多看代码。找高手做Code Review,也是提升编程水平的捷径。
调试能力
多写程序,解决Bug,多请教高手是提升调试能力的重要手段。
编译部署能力
性能优化能力
影响系统性能的因素众多,包括:数据结构、操作系统、虚拟机、CPU、存储、网络等。为了对系统性能进行调优,架构师需要掌握所有相关的技术。
精通性能优化意味着深刻理解可用性、可靠性、一致性、可维护性、可扩展性等的本质。
性能优化与业务强耦合,最终所采取的手段是往往折衷的结果。所以,性能优化要深谙妥协的艺术。
在线运维能力
业务架构能力
需求变更主要有两个来源:第一个原因是市场改变或战略调整,第二个原因是伪需求。对于第一个原因,无论是工程师还是产品经理,都只能无奈的接受。优秀的架构师应该具备减少第二种原因所导致的需求变更的概率。
伪需求的产生有两个原因:
第一个原因是需求传递变形。
第二个原因就是需求方完全没有想好自己的需求。
优秀的架构师应该具备辨别真伪需求的能力。应该花时间去了解客户的真实业务场景,具备较强的业务抽象能力,洞悉客户的真实需求。
业务架构师应该关注客户的痛点而不是PRD文档,应该深入关注真实业务。掌握现存系统的大量技术和业务细节也是业务架构师的必备知识。
项目管理能力
团队管理能力
不想做CTO的工程师不是一个好的架构师。走向技术管理应该是工程师的一个主流职业规划。团队管理的一个核心能力就是规划能力,这包括项目规划和人员规划。