首先我们定一个基准点:架构只是功底深厚的程序员,千万不要成为不会写代码的架构师。

  程序员从初级、中级、高级再到架构师,是一个不断经验积累的过程,但是在这过程中我们常常很迷茫,不仅仅是面对技术繁杂的无力感,更重要的是因为长期埋没于代码世界的浩大的分工体系中,无法看清从业务到系统架构的价值链条,无法清楚定位自己在分工体系的位置,处理不好自身与技术、业务的关系所致。所以在程序员生涯中除了技术实力以外,其它软实力也不容忽视。如:主动学习、积累经验、控制注意力、超越自我。

  对于一个卓越的程序员来说,编程技能毋庸置疑是很重要的。但是,除了基本的编程开发能力,其他方面的能力也是体现一个程序员的能力的很重要因素。比如,问题排查能力、线上运维能力、项目管理能力、协调沟通能力等。

首先要具备解决问题的能:

  解决问题的能力不是天生的,自然得靠后天努力,当遇到阻塞性的问题的时候,需要立即排查并处理,由于是线上的环境,有一定的难度,但是也有一定的方法可寻,一般按照如下步骤:

从日志中查看:

  查看报错信息,一句这些信息进行问题排查。

代码检查:

  这需要对代码有一定的熟悉程度,可以知道用户的操作是由哪里的代码执行的,然后对该块代码进行检查。

远程调试:

  由于代码是静态的,而代码执行是动态的。静态代码的检查可能并不能检查出问题,而需要通过线上的环境、数据一并进行检查。这时,可以在不影响线上用户使用的情况下,远程断点调试程序。

本地调试:

  有的系统可能并不方便进行远程调试,那么可以尝试把线上的全部数据(或者关键历史数据)拷贝下来,在本地环境使用线上环境的数据库,进行调试。断点调试是比较直观的一种检查错误的方式,通过异常信息的日志,能确定到指定的代码行,并结合线上的数据,很容易发现问题。

学会提问:

  问问题的能力是一个人的修养,学会提问是一个人成长的必经之路。尤其是软件行业的从业者,要保持对技术的钻研精神,不做伸手党,问出水平,问出修养!

有礼貌:

  毕竟谁也没有义务帮你解决;

问对的人:

  选择相关主题的板块,不要多次发布相同问题!

主题清晰:

  问了让别人不用看描述就知道问题类型和背景

描述要准确:

(os,机器配置,版本信息);描述自己的排查方向和相关现象;描述问题的触发背景(升级了什么组件/改了什么);提供复现方法。

描述要客观:

  不要加主观判断;

描述目标:

step;可能你的方向偏了,实现目标根本就不需要实现这个step

  想提高自己解决问题的能力,首先得学会如何提问。给自己提问或者向别人寻求帮助时。

总结分享:

Google,自己也能够有一个索引库。经常自己总结,也能够提高自己的写作能力,以后写文章、ppt总结提炼自然也难不倒你了,也是一举两得的事情。

非技能篇

主动学习:

SQ3R法主动阅读法让你如何更有效阅读。

2004架构师自学通过率 架构师难不难_问题排查

积累经验:

  你需要从实践中学习其中的价值,而一些常见障碍会让这个过程很艰难。但是你也不要刻意地拼命实践,过犹不及。我们应该研究如何利用反馈、乐趣和失败来创造更有效的学习环境,关注设定最后期限的危害,并体会如何通过自我引导积累经验。

控制注意力:

超越自己:

  开始时目标设置低一些。当你实现时奖励自己一下,再设立下一个目标。脑子里记住你的最终目标,但不要试图把所有步骤想明白。只关注下一步,一旦达到这一步,再继续为实现下一步目标而努力。

小结

  用战术的勤快掩盖战略的懒惰!那么这样的后果就是我们把自己限死在流水线的工位上,阉割了自己能够发现业务价值的能力,而过多关注新技术对职场竞争力的价值。这也就是我们面对繁杂技术,而产生技术学习焦虑症的根本原因,希望通过上面的内容能让职业更进一步,让我们的职业生涯进行脱变。