软件开发者六要

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

一、一定要热爱技术

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

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

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

二、要有较强的学习力

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

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

三、要有禅的定力

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

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

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

四、一定要细致认真

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

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

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

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

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

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

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

六、要有扎实的基础知识

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

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

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值