程序员需要具备的软实力

-

      我觉得程序员朋友很容易陷入一个误区,那就是觉得技术就是一切,技术就是衡量程序员是否优秀的唯一标准。以前我也这么觉得,你别跟我扯啥业务价值、业务背景,我能按时高质量完成需求开发,就很优秀。而来到新公司之后,我发现很多软实力其实比硬实力更重要。

1.业务场景调研能力

技术其实是为业务服务的。系统的迭代演进往往是随着业务发展来的。比如题主问题中提到的大数据知识,在现实工作中没有用到。很大的可能就是你们目前的业务系统流量较低,数据没有沉淀。

在需求开发当中,程序员会更多的关注代码质量、架构设计,但是往往对需求所要解决的业务背景、痛点、价值一无所知。

所以希望大家在做需求的时候,更多的思考需求背后的故事,甚至可以去真实的业务场景当中发现更多的问题,进而来促进系统的优化演进。

2.演讲能力

我觉得这一点对大家比较有挑战性。理工科的同学生性上就不是那种善于表达的人,往往喜欢低头默默做事。但是你做的事如何被更多人看到?你做的系统如何产生更大的影响力?

这都需要你的演讲能力。通过PPT或者文章的方式,把自己系统所要解决的问题、价值、产品设计、技术架构、难题、竞品分析、优势、规划一遍又一遍的对外输出。

酒香也怕巷子深。我们也得学会优雅的吆喝。时刻想象自己的产品放到充分竞争的市场经济中,如何赢得消费者的青睐。

3.技术调研能力

随着系统的不断演进,系统的业务逻辑会变得越来越复杂,对可用性、稳定性、性能的要求也越来越高。这个时候,往往意味着你的系统需要进行架构升级。

在偌大的技术生态当中,如何挑选符合你们业务场景、成本、性能的技术尤为重要。

同样,放到充分竞争的市场当中,你如何挑选符合自己的工具对你以后能走多远起着至关重要的作用。

4.人员协同能力

这一点其实是push一件事情顺利发展的能力。我觉得大部分人的主动性都是比较差的,换句话说喜欢被安排而不是安排别人。用我老板的话说:大家都是成年人了,没有人会给你准备好一切,很多事情需要自己去推动,自己去组织。

而推动一件事情顺利发展的核心那就是人员协同。

而人员协同的核心那就是互嬴和良好沟通。互嬴是合作基础,在一个大型的公司当中,每个人都有自己的kpi。对方为啥愿意跟你一起做这件事情,你需要从互嬴的角度说服对方。而良好的沟通是方法论,高效、简短、闭环的沟通方式往往事半功倍。

5.其他

各种论坛当中说的最多的就是程序员的学习能力。但我觉得学习能力是会随着年龄的增加而衰退的。年轻人花一个小时学习的新技能你可能需要花费2-3天。那你的核心能力是多么呢?

我觉得是对行业的理解,是思考事情的角度,是做事的方法论,是拥抱变化的心态。

现如今,行业千变万化,新的行业不断诞生,传统的落后行业不断死去,没有人可以保证自己可以一辈子从事固定的行业。

阿里的六脉神剑中有一条:唯一不变的就是变化。

我们可以适应变化、拥抱变化甚至创造变化。


相关文章!