Skip to main content

程序员的职业素养

img.png

前言

最近看了一本书,还没有看完,但书中有些东西让我产生了共鸣,所以我也想写出来,让大家来感受一下,工作7年之久,在工作中也遇到过各种各样的人和事,但总的来说,那些混的不错的都如同书中写的那样,程序员确实是个特殊的职业,但不管怎么样,一种好的职业素养带来的就是好的发展前途。下面跟我一起来看看,到底哪些职业素养,能让你少走一弯路,多留一信心。

职业素养

如果你不小心放过一个bug,以致于公司造成经济损失,你会怎么样呢?

  • 甲:人又不是神,难免会出现问题吗?这也不能怪我吧。
  • 乙:我愿意为公司的损失买单。(你是这样讲,但公司也会根据实际情况而定。)

你在工作中是甲还是乙呢?我相信很多人会是甲的状态,而且我身边就遇到很多这样的人,为自己犯下的错误找理由,但其实这种情况看似合理,缺在老板心里埋下了你不值得培养的祸根,好的职业素养会让你选择乙,勇于承担责任,我相信大多数公司不会因为你的一次过错且勇于承担的表现而对你产生反感,甚至开除,除非你有意的过错或者造成极大的损失。但肯定会因为你推脱,不承认,不向内归因而对你失去信心。

担当责任

将公司的利益视同个人利益,这就是担当责任的精髓。我们中国喜欢说,一条绳上的蚂蚱(利益共同体),你会发现工作中的一个特点,员工和员工一条线,领导和公司一条线,所以一个公司就有了两条绳的蚂蚱,哈哈,对吧,当然一个好的领导能在这两条线中间架起一座桥,让员工和公司看似一条线,然而只有员工自己去主动连接,才会变成真正的一根线。 可能有些人认为个人利益比较重要,感觉将公司的利益视同个人利益是不可能的,但其实这句话只表明了一点,那就是公司的利益可以当成自己的利益,如果公司不把你当回事,那这个条件其实也不成立吧我认为,还是要相互成就,这才是正确的责任担当。

减少失误

勇于承担错误肯定是好的品质,但一而再再而三的错误,再好的品质也会让领导对你失去信心。我们要做的不只是敢于负责,而是减少失误,甚至逐渐近于零,当然失误不可能等于零,但你可以让它无限接近于零。

让QA找不出问题

相信你遇到过这样的人,ta开发完成后,偷懒没有自测,而是把bug留给QA,等着他们提bug,然后再修复,你肯定跟我一样认为这是错误的做法,但有多少人能真的做到自测呢?肯定是少数人。如果QA也偷懒说,让用户找问题吧,等着客服反馈问题再提bug。那岂不是会给公司造成不可预估的损失。如果你愿意将公司利益视同自己的利益,请从现在开始,让QA找不出问题作为自己的职业素养。加油。

软件结构

为什么说到软件结构呢?其实你在工作中会遇到各种各样的需求,在编码过程中也会遇到各种各样的问题,好的软件结构会让你在面临新的需求的时候,不必大动干戈,破坏软件结构,所有软件项目的根本指导原则就是易于修改,那么我如何做到易于修改呢?其实也不难,学习软件设计原则,学习设计模式,并在开发中多运用,还有学习老前辈的经验,例如在Java中,我们以面向对象为核心,但经验告诉我们,面向接口编程才更易修改,组合大于继承等等吧。

职业发展

每一个程序员都要经历,初级-中级-高级甚至更高的级别。但你要明白一个道理,职业发展是自己的事情,公司并没有义务确保你在职场一直发展,没有义务培训你,如果将自己的职业发展寄托于公司,我认为不靠谱。如果你遇到了这样的公司,那么恭喜你。所以这就出现了一个问题,我们如何提高自己呢?作者给了一个示例: 你每周工作60小时,前40小时给雇主,后20小时给自己,在这20小时里,你应该去看看书,练习和做提高自己职业技能的事情。有人会反驳这怎么可能,我在公司做不完的工作,加不完的班,哪有时间学习。一天工作很累了真学不动。我只想告诉你的是,如果这样的公司你还继续待着,那就是你自己的原因了,我从来不反对加班,从来不反对努力工作,但如果公司给你安排的满满的,超负荷的那种,只是把你当作一个工具在用,你觉得你还有必要待下去吗?这已经不是将公司利益当作个人利益的问题了,而是公司将你的利益完全变成了公司的利益。尊重永远是相互的,一定要敢于说“不”(说“不”也是一个职业素养中需要的品质,这里表达的“不”并不是一味的拒绝,而是要有自己的判断,例如合理预估工时,要对不合理的工时安排说“不”)

领域必备

作为程序员,当然要在程序员的领域做到擅长甚至精通。到底有哪些东西是我们每个程序员必须要有的技能呢?下面请看

  • 设计模式
  • 设计原则(SOLID原则,组件设计原则等)
  • 方法。理解Scrum敏捷开发,看板,瀑布,结构化分析,结构化设计等
  • 实践。测试驱动开发,面向对象设计,结构化编程,持续集成,结对编程等
  • 工件。如何使用UML图,结构图,流程图,时序图等等吧

书到用时方恨少,程序员也是,需要有软技能来辅助自己,并不是只会编码。当你写PPT回报工作时,难道你要贴一万行代码吗?哈哈肯定不是。这就是它们的作用所在,如何将你的软件结构,用简单的图表示出来,让不懂技术的人看的懂。

持续学习

程序员的可持续发展就是持续学习。软件行业飞速发展,未来还有5G,会出现更多的智能终端,并不限于现在的手机了,你以后可以在冰箱,洗衣机,甚至刮胡刀上面打电话甚至玩游戏等等,这些技术都是要持续学习,你才会的东西。读书,看文章,写博客,如果你是Java开发,建议你学习Ruby。这是作者说的一句话。我有空实践一下,学习一下Ruby。看能否对我有帮助。

持续练习

相信学习只是一个过程,而你的目标是练习,只有不断的练习,试错,你才能更熟练的驾驭程序员这个职业。

合作

16个字: 一起编程,一起练习,一起设计,一起计划。 不啰嗦了,大家都懂。

了解业务领域

这个是我没有想到的,我工作中其实也知道业务对于一个程序员的重要性,但并没有作为对自己的要求,但读了作者的讲解,我也意识到,一个好的职业素养,就是在你的技术能力之外,去理解业务,去了解领域知识。比如你编写一个财务系统,如果你对财务领域不了解,那会很难做出完美的软件。我也建议,不管你到了哪个领域做开发,买两本书关于该领域的,学习学习,并不让你做到领域专家,但起码对流程对业务痛点业务细节都有所认知。

最后

我用书中的语言来做总结,来结束这次的分享: 编程是一种创造性活动,写代码是无中生有的创造过程,我们大胆的从混沌之中创建秩序。我们自信地发布准确的指令,稍有差错,机器的行为就可能造成无法估量的损失,因此编程是极其自负的行为。专业人士知道自己自负,不会故作谦逊。他们熟知自己的工作,并引以为荣,他们对自己的能力充满信心,并因此勇于承担责任。然后,他们也知道自己会摔跟头,自己的风险评估也有错误的时候,自己也有力不从心的时候。这个时候,他们照照镜子,会看到那个自负的傻瓜对着自己笑,因此,在发现自己成为笑柄的时候,自作自受的接受别人的嘲笑,反之,他并不会因别人犯下的错误而嘲笑别人,因为他知道,他有可能就是下一个犯错的人。 不羡慕谁,不嘲笑谁。