爆栈思想 – 为什么别人升职比我快,赚钱比我多?

机会

在上一篇文章 爆栈思想 – 开发人员的层次和水平发表之后,反响不小。

有网友说:

你所提到的这些技术,越往上越难有机会让一般的工程师接触到。为什么呢?一方面,很多时候,问题发生在生产环境或者CI/CD的pipeline上,online fix 问题,风险高不好操作而且一般都是level 很高的工程师主导。另一方面,就算这类问题在系统设计期被发现,这本身就证明了那个技术负责人团队很牛,要查出、测试这样的问题,需要大量的测试数据,写benchmark,模拟真实业务场景。能参与解决这些问题,不但需要你技术上本来就处在比较有影响力的角色上(credential),还需要你有很强的组织协调能力(你需要别人的support来你解决一些非核心问题)

所以,你能掌握这些很不容易。这要放在我们公司,至少也是principal 或者 senior principal 这个级别了。。。

 

首先,需要时间,一些开发人员很浮躁,缺乏充足的经验,却动辄自称精通。其次,还是看动力。修行在个人,见缝插针,像海绵那样去吸收。学习的机会如果都在被动地等,那是和别人主动地去学不一样。

一些同学技术修行还没达到天花板,就已经在说/想:反正到了天花板,领导还不是我,他们还比我们年轻,技术没我们好,但却做我们领导,所以我们努力来干嘛?

机会是需要创造的,我来澳洲之前在中国已经做到部门小头目,来到澳洲重新做起,花了4年当上部门经理,现在是Head of Architecture,虽然只是给名字,但起码说明坚持不懈的努力是有回报的。

 

 

想知道为什么我这么多年来能掌握那么多种技术,不仅仅是广度,还有深度,达到我所说的“爆栈”吗?

在《爆栈之旅》,我根据大家都实际情况、水平、方向等规划职业路径,手把手带你做实战的项目,用最高效的办法达到你想要的高度。

爆栈之旅

是否想技术水平快速提升?是否希望快速成为公司的技术骨干?

核心价值
  • 把我这10多年来所学到的知识、总结的经验、吸取的教训分享出来
  • 针对不同的学生量身定制规划学习成长路线、1对1个人指导、代码审阅等
  • 解答各种技术问题
  • 为公司提供技术解决方案

请查看本站右边的信息联系我。

版权所有

所有文章内容版权所有,任何形式的转发/使用都必须先征得本站书面同意。本站保留一切追究的权利。

爆栈思想 – 开发人员的层次和水平

开发的层次

极限编程之父Kent Beck曾经说过,软件开发的过程,就是:Make it work, make it right, make it fast。其实就像是敏捷开发,先是让软件能跑起来,然后把功能和实现都做对,最后才考虑优化。

Image result for kent beck make it work

 

过早的优化

软件开发大师Donald Knuth曾经说过的一句名言:过早的优化是罪恶之源。

Image result for premature optimization is the root of all evil

 

软件开发里面有魔鬼

王四哥个祖师爷、计算机开发大师Tony Hoare更尖锐地指出:过早的优化是软件开发的罪恶之源。

Image result for premature optimization is the root of all evil

王四哥曾经说过,一些开发人员把上述名言作为借口不做合适的设计,写垃圾软件。

 

开发人员的层次

古代,人分三六九等。曾经有人把人分成七层:奴、徒、工、匠、家、师、圣,并做了如下解释:

  • 奴:指非自愿和靠人监督的人。
  • 徒:指能力不足,又肯自愿学习的人。
  • 工:就是老老实实,按规矩做事的人。
  • 匠:指精通一门技艺或手艺,靠劳动生存的人。
  • 师:就是掌握了一些规矩,又能将规律传授给他人的人。
  • 家:有固定的信念,让别人生活得更好的人。
  • 圣:精通事理,通达万物,大公无私,为民立命的人。

现代社会,各个岗位都分层次、级别,我在之前多篇文章中指出,开发人员也分多个级别。我们常自我调侃说自己是“码农”,还有一些贬义的更低层次的,被称作“码奴”,当然还有不能登大雅之堂的,如“码畜”.

如果简单粗暴地分,我们可以分为3个级别:

  1. 能写软件
  2. 会写好软件
  3. 会把软件优化好

我多次指出,为了提高面试命中率,太多开发人员把不想称的精通写入了简历。实际上,大部分开发人员只达到“能写软件”这个级别,一部分能通过多年的努力达到“会写好软件”这个层次,极少数的开发人员能成为塔尖的“会把软件优化好”。这个优化,不是贬义的提前优化。

我在多篇文章和多个场合,反复吐槽各种不合格的开发人员常犯的错误,细到语言特性,大到系统架构。然而,吐槽是一回事,现实是残酷的,很多公司对这些质量问题没有特别的追求,开发人员也就无欲无求,多年后,带新人,把这些坏态度像病毒那样传下去。

拿数据库系统SQL Server举个例子:

  1. 懂CRUD,能写个业务模块的那叫“会做SQL Server数据库开发”
  2. 理解SQL Server各方面的功能,优缺点,坑,怎么在不同的场景如大量并发 vs 低并发大批量数据处理 用不同的解决方案,那叫“会写好的SQL Server系统”
  3. 深入掌握SQL Server的原理、机制和上限,掌握数百种性能监控指标、数百种安全漏洞防御措施、使用多种方法全方位地进行优化改造,那叫“能把SQL Server优化好”。

再深入一点,那就是充分利用SQL Server支持的特性,实现高可用性、安全、横向扩容的方案。

所以,业界中,真正出色的开发人员,是极少数的。

 

 

想知道为什么我这么多年来能掌握那么多种技术,不仅仅是广度,还有深度,达到我所说的“爆栈”吗?

在《爆栈之旅》,我根据大家都实际情况、水平、方向等规划职业路径,手把手带你做实战的项目,用最高效的办法达到你想要的高度。

爆栈之旅

是否想技术水平快速提升?是否希望快速成为公司的技术骨干?

核心价值
  • 把我这10多年来所学到的知识、总结的经验、吸取的教训分享出来
  • 针对不同的学生量身定制规划学习成长路线、1对1个人指导、代码审阅等
  • 解答各种技术问题
  • 为公司提供技术解决方案

请查看本站右边的信息联系我。

版权所有

所有文章内容版权所有,任何形式的转发/使用都必须先征得本站书面同意。本站保留一切追究的权利。