聊一聊技术人学习的方向

840 阅读2分钟

现在想在大厂找一份高级开发工程师的工作,不是那么容易,要会缓存、会数据库、会分库分表、会大数据、会消息队列、会rpc……

这么多个技术点,每个技术点要学哪些东西?学到什么深度?都没有具体的答案,学起来往往让人一头雾水,难以坚持

我觉得,不管做任何事,一定要先站在更高的角度,搞清楚做这个事的目的和价值,把做事的目的和价值搞清楚了,才能反过来指导做事的具体细节,怎样才能更好地实现目标,创造价值。否则如果直接开始做事,而不了解做这件事的目的和价值,做起来就没有方向,也没有成就感

对于求职这件事,我们只有给公司创造价值,公司才愿意给我们工作机会,那么技术人在公司里可以创造什么价值?

以互联网大厂来说,技术存在的意义,一个是做产品,但现在已经不是靠一个产品就能打天下的时代了,还需要完整的线上线下的生态,需要持续地运营,所以第二个点是技术需要赋能产品的迭代和创新

那公司对技术具体的要求是什么,我觉得无外乎下面三点

  1. 快速支持业务需求,而业务需求又分为几个典型的场景
  • 高并发
  • 复杂业务逻辑
  • 快速迭代
  1. 保证系统的稳定性
  2. 降本提效

所以在学习技术的时候,可以从这些更高的层面去入手,指导我们学习的方向

为了构建支持高并发业务场景的系统,我们需要系统学习高并发系统的构建方案,里面会包括一些通用的思路,比如使用缓存、分库分表、使用消息队列等等,那么我们就要学习这些技术的使用,以及如何利用它们构建高并发系统

为了实现复杂业务逻辑和快速迭代,我们需要学习一些设计模式,学习DDD思想,深入了解业务,搭建高效的开发交付模式等

为了保证系统稳定性,我们需要系统学习保障系统稳定性的方案,比如负载均衡、资源隔离、限流降级、压测、故障演练等

为了降本提效,我们需要开发一些中台或者通用工具,来降低研发成本,快速支持业务需求等

以上提供了一些例子,可能不是很全面,但具体的思路是确定的,就是学习技术的时候,要从更高的角度,知道为什么学,这样才会对学习的过程有指导意义,学习的效果更好