随着互联网和移动互联网的快速发展,各类应用软件(app)如雨后春笋般涌现,许多应用程序甚至成为超级app,一些活跃用户过亿的应用程序成为国民app,这些app的兴起与程序员这个群体密不可分。快速发展的行业、互联网巨头的光环、国民级的应用程序带来的成就感、远超出普通行业的薪水,每年都在吸引着大量的程序员。竞争变得越来越激烈,程序员的35岁门槛已常年成为社交媒体热议的话题,程序员的中年焦虑已成为常态,作为程序员,我们应该建立怎样的核心能力,让使自己摆脱焦虑并在漫长的职场道路上不掉队呢?
今天就来聊一聊我在十多年的程序员生涯中总结出的一点感悟。
从基础到高级,我将从三个方面进行概括:通用能力、专业能力和进阶能力。
01 通用能力
通用能力是作为一个职场人员都需要具备的基础能力。
通用能力包括学习能力、沟通能力、执行力。
- 学习能力
在互联网行业,技术日新月异,并且不断升级;3G和4G在10年内逐渐普及,5G也即将踏浪而至,随之带来对IT相关技术要求也越来越高。从我们每天在使用的编程语言、技术框架等,到更复杂的通信协议、音视频编解码、网络数据传输等等,各项技术都在持续的更新与进步。作为一个程序员,我们还会在不同的子行业、公司之间辗转,接触不同的业务和产品,快速学习和理解不同业务及产品背后的逻辑和本质,是一项必备的素质。这些都要求至少及格往上的学习能力,不断的学习、研磨技术,丰富自身技能,以适应时代的快速变化带来的技术更新和挑战。
- 沟通能力
作为程序员,大部分时间是和机器在打交道,但并不意味着程序员就可以和外界完全隔离,良好的沟通技巧,能够让工作事半功倍。许多程序员会排斥与人沟通,总是希望通过代码、做出来的产品来展示和表达自己,在某些时候也许行的通;但在大部分工作中,我们还是要与其他人沟通与交流,比如需求评审需要和产品同学沟通,bug需要和测试人员沟通,即使是代码也需要做出良好的技术架构设计,通过文字、图形或语言表达出来。沟通首先需要具备沟通意愿。
其次要掌握好沟通技巧,学会换位思考,避免无谓的冲突。随着90后、千禧一代迈入职场,社会也越来越包容倡导多元、自由的文化,这带来的一个问题是越来越多的人会走向自我、封闭甚至极端,直接的体现是他们在社交、职场上与人沟通经常出现冲突,团队合作愈发困难。因此掌握良好的沟通技巧,学会共情也是沟通能力的一种体现。
- 执行力
任何一个团队和组织,都会在目标明确后要求每个人能够全力以赴,不折不扣的执行既定的计划,高质量高效率的完成任务,因此良好的执行力也是程序员在一个团队中必备的基础能力。
以上是作为程序员在职场中所需要具备的几项基础能力。除此之外,我认为程序员还需要构建以下几项专业能力。
02 专业能力
专业能力是程序员能够进入IT行业从事软件开发的关键。专业能力的不同也意味着可以达到不同的职业高度。
专业能力包括基本的技术能力、架构设计能力和项目管理能力。
- 基本的技术能力