格局与视野 -- 工作篇

站得高,看得远,说话抓得住重点的。

题记

我出道不久,屌丝软件工程师一枚,本文就聊聊自己对工作的认识和对职业的看法。经验有限,难免有不周之处,也很希望大家能指出斧正。

视野与格局

在看待一个程序员的能力时,我们主要从三个方面来看待,其分别是编码能力、业务能力、协作能力。

一、编码能力

编码能力顾名思义就是写代码的能力,它主要体现在 – 基础知识的掌握和灵活运用,代码框架的搭建与使用,对于算法与数据结构的理解和活学活用以及遇到问题的分析处理问题的能力。
编程能力越强,就越能解决复杂问题,特别是当对算法有一定的了解掌握,对数据结构有特精通时,就越能避免一些诸如死锁,线程安全,故障快排等问题,并能从数据或算法根源去永远解决问题。同时,你的视野也决定着你的编码能力。如果你经常浏览各种论坛,参与各类开源项目,或者你有去了解过很多开源的技术知识,那么当出现相应的应用场景时,你就会很容易去想到对应的技术。

二、业务能力

业务能力其实就是个人经验的一种体验。在不同的业务场景下处理相同数据的方法就有可能是不同的。例如类似黑五购物秒杀。平常的购物由于并发数量有限,可能你需要保证客户所下的每笔订单都能成功交易。可是在秒杀场景,或者抢购场景,你可能就需要应对瞬间的高并发下单场景,但此时每笔订单却不是必须要保证下单成功,那么此时,可能就要做故意丢单,丢包等,一方面限制并发量,一方面确保不超单。那么在此过程中你的业务能力就是需要你的业务积累来确保业务的正常运行。

三、协作能力

大部分程序员都不是全栈工程师,就算是全栈也是需要跟产品,需求,UI等进行合作才能完成项目。如何保证几个高手互相能够配合好?如何保证项目里面水平最差的人不拖后腿?这个工程化建设,往往会跨越多个业务,以汇报关系上的团队为单位来做。包括前后端解耦,模块化,质量保证,代码风格等等。 程序员的性格非常的单纯或者简单,对于事情的处理,容易情绪化或者欠缺历练,往往影响个人的职业发展。

视野解决了人的思维高度,要抓住能和市场,或是业内人士沟通的机会,互相了解,把握各种契机,不要将自己局限在一个狭小的领域。产品/商业/市场等等都是作为一个职场人士需要涉猎的,如果你只是看技术的书籍,你需要谨慎了,自己的视野有可能会被限制了。要有职业规划和设计,发掘自己的职业方向,终身学习和抬头做事,不要想着可以在一个公司终老。

在谈论玩以上的那些之后,我们也就可以探讨下更高一层的管理与规范,工作与生活方面的心得了。

管理与规范

当身处在一个团队,并管理一个团队时,我们可能就会想一下的几个问题:

  1. 如何提高开发效率、如何培养技术团队、如何选拔技术人才、如何建立企业文化?
  2. 如何整合现有资源、如何按标准流程去做事、如何设计系统架构、如何进行异地工作、如何跨团队工作、如何高效沟通?
    对此,我是有一些建议
  3. 开发团队建立初期,要定义开发规范与流程,培养核心技术人员并分阶段进行改造。
  4. 高效开发。懂得敏捷开发,学习Scrum敏捷开发方式,学习将团队拆分为Scrum小组,Scrum Master快速评估开发量,技术评审,很分配督促开发任务,每日召开stand up并且参与到编码中来,Product Owner来负责整个产品,把控整个业务逻辑。Scrum Team 互相协作完成各项开发和测试任务任务,按照时间与优先级,顺次完成并每日汇总。

工作与生活

作为一个程序猿,可能一天不写代码手就会痒又或是为了一个问题可以废寝忘食;其实这都没什么问题,但要注意生活和工作要分离开来,工作时跟要注重业务流程,团队协作与自己技术的点滴积累,同时认清自己的职业规划是管理走向还是技术走向。并且根据不同的规划,去有目的的培养自己充实自己。在生活中,除了摆弄摆弄自己的技术博客,研究下优秀代码,多多参与线下沙龙之外更要注重自己的身体,多锻炼,多健身。行万里路胜读万卷书,要喝热爱技术的小伙伴多去远方探讨技术和人生,不要将工作带到生活,不要局限在工作,而要将兴趣和快乐融入生活,充实自我,丰富自我。