程序员七问

timg.jpg

有不少人向我抱怨说工作中都是写业务代码,刚开始还有新鲜感,熟练了以后就觉得无聊了。

这样的问题多了,也促使我去思考和总结,我总结了一个自检的列表, 如果你已经确定在一个公司发展下去,不妨对照着检查一下,看看差距在哪里,估计就不会无聊了。

1. 我是否对系统的业务有了整体的了解?

我能不能对其他人(例如面试官)描述下该系统实现的业务:

  • 系统有哪些角色,这些角色如何与系统交互;

  • 系统有哪些主要流程,次要流程,都有哪些角色参与其中。

2. 系统的整体架构是什么样子?

系统都分为哪些组件,这些组件是如何部署在服务器/客户端的?

它们之间是怎么交互的?用的什么协议?

3. 系统用到了哪些技术和框架,我是不是都已经精通了?

例如Spring, Redis, Nginx......这些框架和软件的原理都搞清楚了吗?

4. 我是不是已经精通了多个模块甚至整个系统的代码?

对于一个bug, 我能否迅速地定位到bug的源头?

对于“烂代码”,我是否有能力,有勇气去重构它?

5. 对于系统的非功能需求,我是不是已经掌握了?

安全是怎么做的?

如何做的性能测试?

高可用性、可扩展性是怎么实现的?

......

6. 我是不是已经了解、甚至掌握了系统使用的工程实践?

系统怎么做的build ? 用到了哪些工具?

系统怎么做的测试? 如何自动化?

系统是怎么部署的?

系统是怎么监控的?

现在还有什么问题? 我能不能改进它?

7. 我在团队的地位如何? 

大家有了业务或技术问题,第一时间会不会想到找我来帮忙?

我能不能在团队的讨论中发出自己的声音和见解, 并且被别人尊重?

我是不是经常可以给大家做技术分享?

列举出这些,就是让我们去脱离自己的“一亩三分地”,aim higher,慢慢地成为一个有影响力的Leader。 

大家肯定能看出来,要成为这样的人,肯定得付出比常人更多的努力才可以,没有人能随随便便就成功的。


未经允许请勿转载:程序喵 » 程序员七问

点  赞 (6) 打  赏
分享到: