头图

作为一名软件开发者,需要具备一些基本的素质,下面就来聊聊从业多年来我自己的感受。

一、一定要热爱技术

不管做什么事情,如果你是被动地去做,一定是做不好的。只有真正感到了其中的乐趣,你才可能坚持不懈;只有你抱有一腔热情,才可能摩擦出火花。所以,做技术兴趣很重要。

兴趣不是天生的,也是可以培养的。就像学音乐,当你不懂乐谱的时候,在初学时可能是会感到痛苦和煎熬的,但是当你能够得心应手时,就会逃出初学阶段的折磨,逐渐进入到享受的过程中。就拿我们最简单的学习用键盘打字一样,也必然会经历一个与困难斗争的过程。在这个斗争的过程中,有的人比较有毅力,或者把这个过程当作一种快乐而非痛苦,这些人就容易成功,步入自己所眺望的殿堂。有的人只想着痛苦或缺乏毅力,则会轻言放弃。

之所谓:“一念成佛,一念成魔”,全在一念之间。

二、要有较强的学习力

软件技术不但知识范围宽而广、大而深,而且知识的更新换代也非常快。在这个开源盛行的时代,全球的从业者都在不断贡献,同一个工具或软件常常以月为单位更新,有的可能以周为单位更新。开发语言也是不断推陈出新,比如,近年被推崇的Go、TypeScript等语言。单机应用之后又出现了分布式系统,分布式之后又出现了微服务,微服务之后又出现了云原生。从IaaS到PaaS到SaaS再到FaaS最后XaaS。……。新的技术不断涌现,新的行业应用也不断翻滚,移动互联网之后,又出了物联网,物联网之后又出现了区块链。VR、AR、MR、XR虚拟现实技术蓬勃发展,大数据、机器人、人工智能突飞猛进,……。如果你没有很强的学习力,压根儿就赶不上时代的发展,迟早会被社会和技术所淘汰。

之所谓“活到老”,需要“学到老”。

三、要有禅的定力

知止而后有定;定而后能静;静而后能安;安而后能虑;虑而后能得。  ——《大学》

止、定、静、安、虑,最后可得。

软件研发人员一定要能“坐的住”。只有坐的住,问题才能得以解决,只有坐的住才能善始善终。

四、一定要细致认真

系统是由一个个的应用组成的,应用是由一个个模块构成的,模块又是由一个个文件组成的,而一个程序文件是由一行行代码组成的,一行行代码是由一个个跳动的字符组成的,一个个字符又是由一个个字节组成的,一个个字节就是由0和1二进制数组合而成的。就像这个大千世界,由大到小、由表及里、由宏观到微观,组成了一个复杂而又多变的世界。所以,写代码是一个精细活儿,牵一发而动全身。

写程序依靠机器,但确实也是一门手艺活儿,它如同彩绘五彩斑斓,如雕花刀刀玄妙,如缂丝“寸丝寸金”,如雕玉精琢细磨。

好的代码是艺术品,不好的代码如同恶魔。

五、要有较强的逻辑思辨力

写代码是为了完成某项功能,多项功能合起来可以完成某项业务。没有实际用途的代码是无用的代码。有的业务复杂,自然代码逻辑也就会复杂。即使再简单的一行代码,也是有逻辑的,即使表示的不是业务逻辑,也有其编译与运行的内部逻辑。所以,程序员必然需要具备较强的逻辑思维能力。

分析问题时你经常需要对代码进行观察、比较、分析、综合、抽象、概括、判断、推理、......等等。有时你需要归纳,有时你需要进行演绎。如果涉及到计算,你还需要用到数学知识进行统计分析,图形图像处理、机器学习、人工智能、......无不需要复杂的算法、建模与设计。

代码是应用的物料,架构是程序的骨架,逻辑是系统的灵魂。所以,程序员需要头脑清晰,逻辑思维缜密,写出来的程序bug才可能少。

六、要有扎实的基础知识

作为一名程序员,基础的知识是必不可少的。

  1. 要懂计算机的组成和原理。
  2. 要掌握两门以上的开发语言。
  3. 要有操作系统的基本知识。
  4. 要懂数据库,包括关系型数据库和非关系数据库。
  5. 要熟练运用常用的开发工具,如VSCode IDE、maven等
  6. 要针对选择的技术方向,熟悉热门的几个开源项目和组件库。

以上是我对软件开发者需要具备的基本素质的个人看法,欢迎你留言讨论,发表你的看法和见解。


popgis
40 声望3 粉丝