追求更好是真正程序设计人员的必备特质,如果没有,很抱歉,你不属于这个圈子! 上个周末,和一个年长我几岁的朋友聚会,相互交流了双方近期的一些工作啊,生活啊之类的故事,我们俩人都是从事的互联网相关的工作,只不过方向不同罢了,毕竟术业有专攻嘛。他从事的是软件开发,也就是俗称的程序员。在IT这个圈子里已经混了差不多十年的时光了,在工作的年里也有过热血、奋斗、迷茫、懊悔......各种滋味只有自己能够明白。闲暇之余,将这次聚会总结到的一些感悟分享于此,望共勉。
现今的软件职业,常常被称为"码农",很多IT人也会以此自嘲。从这一称呼中,可以看出几点,首先,程序员是编码的;其次,程序员人数众多;再次,程序员的工作内容没有含金量;最后,程序员的待遇和地位堪忧。
最初,我也比较同意这一看法,因为目之所及,大多数软件公司中,程序员的状态确实符合上述几点。
后来,我发现"程序员"不是这么简单的,特别是随着时代与科技的进步,纵观国内外IT领域的发展,"码农"应该只属于那些没有真正踏入"程序员"圈子的IT从业人员。
软件程序也是一门艺术,真正的"程序员"都会以设计师自称。
请不要再叫我们"码农",我们是软件设计师!
思考最重要
码农与设计师的最根本差别在于:是否对所要做的事情进行思考。
如果不思考,提升的仅仅是熟练程度,重复性的编码,即消耗了时间与精力,却对设计能力的提升没什么帮助。
作为一名软件设计师,需要在实现一项功能前,仔细思考各方面的内容。框架如何选择、流程如何设计、是否便于扩展与维护、客户使用是否便利、有没有成熟的库或者函数可以直接使用,诸如此类的问题。这是可能有人会提出疑问,如此将敏捷开发置于何地?敏捷开发通过快速迭代,以求更快达成目标,这并不代表可以不思考就动手,首先当前的任务是否适合敏捷开发就是一个问题,不是吗!另外,思考的习惯有助于思路的形成和思想的理解。通过不断的思考,从工作到生活,再到周边的万事万物。谋定而后动,思考最终成全了我们"万事俱备只欠东风"的从容。
语言仅是工具
当然,编码是一名软件设计师的基础技能。掌握一门或者几门编程语言,本质上为的是能够实现想法。编程语言仅仅是软件设计师用来实现想法与创意的工具,就好像是画家所使用的颜料,而想法和思路则是画笔。"码农"学习编程语言为的是找到一份稳定的工作;软件设计师是为了找到更多和更好的解决问题的途径。C、C++、C#、Java、Python、SQL、JavaScript,这几种编程语言应当是一名全能软件设计师的必备技能。
通过这些,我们设计出更多、更好的为人们提供便利的软件工具,并广泛应用于各个领域。
追求更好,不妥协
真正的软件设计人员都会有自己的原则,更好的标准,坚持将自己经手的东西做的更好。我们不会甘心仅仅是简单的重复;改进和优化,获得更好的结果,这才是我们所追求的。
积累总结,厚积薄发
这一点算是经验之谈了,隔一段时间就需要对过去的所做和所想进行总结,温故而知新,确实如此。这里就涉及到两点,分享与应用。所谓的"知识就是力量"指的是,知识应用于实践,才会产生力量。
通过总结,一方面可以积累经验教训,另一方面可以思考自己对所掌握知识的应用程度。多多与人分享自己的知识与经验,我们也可以做到传道、授业、解惑,帮助别人的同时,也是在帮助自己。博客是一名软件设计师必备的知识分享途径。
不断学习 IT领域的知识更新是极快的,不断有新技术涌现。所以,想要不被时代所抛弃,不断学习是必须的。
通过学习,我们便可以时刻掌握科技的前沿资讯,主流的技术应用,从而持续扩展个人的知识面和舒适区。人工智能(AI)、大数据(Big Data)、云计算(Cloud Compute)、物联网(Internet of Things),是当前的主流研究方向。
软技能
除了工作技能外,如下的通用技能,同样是我们所具备的,或者正在学习的:
学习能力
理财能力
沟通能力
演讲能力
享受生活
我们追寻更好的生活,享受当下的生活。借助于对科技的了解,利用各种自动化手段和方法来让自己的生活更加便利。业余时间是属于你自己的,如果公司一定要占有这段时间,那就离开。"8小时工作,8小时睡觉,8小时做自己喜欢的事情",请不要浪费前辈所争取来的权力!
当再有人问你从事什么职业时,请告诉他们,"我是软件设计师"!
|