开篇
最近几个月 , 公司招聘高级开发工程师。我也在负责筛选简历, 面对大批的简历, 工作在8年以上的同学,首先初选来面试的同学非常少, 95%以上的简历中完全无法看到其对技术的沉淀 , 其次来初试的同学也是一团糟 ,对技术的敏感度非常的低, 对系统的设计认知也非常的低。不禁感叹, 招人真难呀! 过去几年, 我在自己对编程的理解中, 快速前行, 每一次的选择都是当前最佳的选择,虽然过程非常艰难, 但自己的成长也是非常的快。回顾在两家公司的工作, 除了借助公司的平台完成自我成长以外, 还干了一件自己一直在做的事, 把自己的每一次的收获分享给身边的小伙伴, 帮助他们的成长,实现共赢(其实发现我过去都在做这样的事, 上学时, 帮助身边的同学成长 ;自己当时是王者荣耀游戏主播时, 也是以教学为主,出了一系列实用的上王者的教学视频,帮助了不少的人, 看来这是刻到骨子里了) , 或者这也是我一直比较幸运的一个原因。
依我所见, 会什么样的编程语言只是一种工具, 能支撑我们走得更远, 拿到更高薪资和职位的是你对当前你从事的事业的本质思考,总结出一套自己解决问题的思路, 想想自己到底有什么样的能力, 能解决什么样的问题。
业务与技术
我想聊一下我对业务与技术的一些粗浅认识。
业务
业务是一整套行为动作的流程,需要具备以下能力:
- 深度思考能力: 从产品的角度去思考为什么要这样去设计, 多问自己为什么。
- 沟通能力: 将自己的想法、疑惑与小伙伴、产品团队以及其他部门进行沟通,达成一致。
- 软件设计能力: 将业务抽象,转化为可执行的代码。
构建一个系统实际上是构建一个虚拟的社会。 系统需要被使用,有不同权限的用户,系统的组织架构,以及功能模块,这些都决定了系统的能力和与使用者的关系。
技术
技术支撑业务发展,使业务变得简单,专注于行为流程。 技术涉及技术方案和技术组件的能力,需要具备以下技能:
技术组件
- 阅读官方文档的能力: 深入了解当前技术的最新动态。
- 实践能力: 实践是理论的落地,关键是要付诸实践。
- 阅读源码的能力: 面对异常,通过日志和源码进行原理剖析,解决问题。
- 自信: 在技术领域,自信是不可或缺的品质。
技术方案
技术方案源于对技术组件的深入了解。 例如,我对 RocketMQ 较为熟悉,当项目需要进行 RocketMQ 迁移时,我提出了使用客户端双订阅的方案,以确保整体系统消息不会丢失。
人情世故
江湖不仅仅是技术的较量,更是人际关系的社会。不管社会怎么改变, 人与人之间的人情世故学问是不会变的, 这是人性所驱。 在学习技术时,不能陷入盲目自我学习的陷阱。 要努力获取公司的资源,将学到的东西与工作结合实践,转化为自己的能力。
这是我对业务与技术关系的一些思考,希望对大家有所启发。