后端工程师的自我修养

半年前,我致力于成为Web后端工程师,当初在知乎上看到一句话:人生苦短,这么多有意思的方向,何必要做web(大意如此,web后端地位之低可见一斑)。经历到现在,才略懂。web后端的确是没挑战的一份岗位,常见的就是面向业务逻辑CRUD编程,不要说高并发、C10K问题,绝大部分人写的还是面向内部人员的web吧,别说1w并发,日访问量能有1w都罕见(当然我很期待以后有这样的实际需求抛给我,以打破我对web的错误认知)。那么后端工程师,尤其是Java工程师,资深和新手程序员其差别在何处?

仅以我这一个月的零碎见闻来看,有:

  1. 主流框架、中间件相当熟练的应用,包括但不限于netty, redis, Spring, ORM(MyBatis等)quartz, 线程池ExecutorService
  2. 设计模式、抽象类、接口的广泛应用,以我目前水平看来甚至有过度设计的嫌疑。整体设计上很规范。
  3. Java语言本身的特性很熟,譬如反射,各种锁用的也很熟练。
  4. 对于相对常见的需求,有相对成熟的解决方案。譬如监控、譬如任务调度。
  5. 因工作经验丰富,对常见的单点登录(SSO)等各大公司通用的解决方案熟悉。
  6. 思路清晰,看穿你的技术细节。

总结一下,其实就是:时间带来的熟练度的提升,经验带来的给出方案的能力,下功夫和思考以挖掘深度。这是技术上的修养,而在非技术方面,学会更有效地沟通和表达则是工程师不可或缺的能力。

站在新人的角度,尽量多学习、多思考,以及质疑,因为他们做的或说的也有很多错的。

硬实力

软实力