互联网+公司,商务一百多人,总人数近 200 人,技术只占一小块。公司对于个人成长和团队氛围极其看重,扁平化组织,部门里任何一个人都随时可以面见老板提出自己的意见。
因为很多后端知识我是一知半解,所以基本都是开会共创,看大家节奏,但是我目前给分发的任务依旧是以微服务和重构作为目标(老项目跑了三年了,最近性能问题和维护问题成为了瓶颈),特别是主力项目充斥了各方需求,如果能把与主线无关的需求拎出来就能最小影响到核心服务运行。
团队上也是以共创为主,但是我会引导大家往新的技术和新的工作流程上探索,比如在公司服务器崩了之后在服务器维护共创会上,大家普遍想的是预警 + 提前扩展服务器,因为大家都不是专业运维,但我依旧引导比较喜欢探索新技术的人花一定时间学习 k3s 等技术,哪怕最后可能用不到。
自己的定位就是个传声筒,碰到问题有自己的想法,但是必须要共创给其他伙伴寻求大家都能接受的最优解,有什么难处也是和大家吐槽,绝不闷着避免和大家形成隔阂。
通过共创激励大家主人翁精神、通过主人翁精神激发对部门、工作、流程的创新。
2.想把自己的情况同步给大家,看看有什么“只缘生在此山中”所看不到的点,和大家的建议
我们公司技术研发团队规模和 OP 团队差不多,leader 是后台资深 java 开发,对前端了解不多,没写过前端代码,没有独立或者参与过前端项目交付。从过往的闲聊中知道 leader 对前端是有点“看法”的,比如:前端一般是非科班出身,甚至半路出家转行从培训班出来的。。。。前端整个技术生态不如后端规范严谨,诸如此类吧。
这两年开发团队交付了几个项目,本来也没什么问题。后来公司搞低代码产品,前后端就开始不断争论甚至吵架,leader 要求前端团队修改框架、交互机制,前端抱怨干了很多不该前端干的活儿,有个特地招来的低代码前端开发转正后不到两个月辞职,离职前也跟 leader 有过激烈争论。
我从技术层面聊几句:
我的建议是尽量往横向发展。这个意思是,技术的广度最好不设边界,运维、开发、测试都了解一点。横向发展有个前提,要对某几项核心技术有深入的理解。例如,网络,网络技术基本上是所有高层应用的前提。k8s ( overlay 网络)、高性能计算( kernel bypass 网络)、云计算网络( vlan 、xvlan 、路由、VPC )、分布式计算(共识,为了解决网络不可靠)、微服务治理(服务通信治理,也属于网络 )
之后,再对某几个领域(观测、监控、devops )学习一下。这之后, “公司服务器崩了之后”,你就可以提议一下“观测系统的建设”。再如,维护成了问题,你就可以再提议 “ DevOps 怎么搞, 怎么搞敏捷部署、交付”。这些和开发语言没有关系,但你熟悉这些领域之后,会不会某个语言,也就没啥关系了。
我自己的例子举给你(稍微吹一下),事实上,我写过 C++,Java 、PHP 、Golang 、Python ,Swift 、Kotlin 、Vue....。这些语言,我基本拿过来就用,学习语言本身没超过三天的( C++ 除外)。不是我学得快,而是上面的基础打得好。
“公司的核心技术”,从来不是某个语言。
你知道你该学什么了吗?