程序员和开发者,细品之下见差别( 二 )

  • 根据既定任务行事
  • 专注于代码逻辑和算法
  • 负责业务逻辑的实现和代码组装
  • 开发者:
    • 很少的代码编写量,更偏重于编码规范的制定
    • 负责评定和管理项目代码
    • 对项目的时间,空间和资金成本负责
    • 协调处理整个项目的功能
    • 协调/掌控全局,但没有必要知道各子功能的内部细节 。
    程序员利用专业知识,将现实需求/问题转化为可执行代码,开发人员则需要利用创造性和概念性来保证程序员的节奏一致,为项目争取时间和空间 。这好比一场交响乐音乐会,程序员像演奏者,而开发者像手拿指挥棒的演奏指挥 。
    3.2 时间范围程序员:
    • 任务下达——工作开始时间
    • 编码
    • 测试
    • 调试
    • 任务完成——工作结束时间
    开发者:
    • 需求谈判——工作开始时间
    • 需求分析
    • 概要设计
    • 解决方案
    • 编码实现
    • 系统测试
    • 系统运维
    • 文档编写——工作结束时间
    程序员的的工作好比一个400米的接力往返跑比赛,每个程序员只负责其中一段工作,而开发者更像是马拉松长跑比赛,需要从头盯到尾 。

    程序员和开发者,细品之下见差别

    文章插图
     
    3.3 工作能力【程序员和开发者,细品之下见差别】程序员:
    • 使用合适的编码指令和算法,编写经过测试且符合标准的有效代码,以完成任务 。
    开发者:
    • 发挥自身的创造性和概念性,找到满足客户需求的解决方案,并让程序员能够理解并实现自己的想法 。
    3.4 专注领域程序员:
    • 业务逻辑转化为可执行代码
    • 精于某一个或多个编码语言
    • 善于使用各类算法解决问题
    • 善于对代码进行测试、修改和运维
    开发者:
    • 需求分析和沟通
    • 资源整合和协调
    • 项目管理与跟踪
    • 风险评估于把控
    四、总结
    通过对程序员和开发者之间的对比,我们发现了两者之间的差异 。简单来说,程序员和开发者之间最本质的区别在于他们的工作范围不同,思考方向不同 。开发人员(技术总监,架构师,设计师,项目经理等)会更多的参与到整个项目当中,并对项目有更深入的了解;而程序员(例如:初/中/高级JAVA程序员或技术专家),他们只参与了项目的特定部分,利用自身的专业知识,解决了某一领域的问题 。
    回到一开始的那个问题中,开发人员也是程序员,就像美食家也是厨师 。但需要注意的是,开发者可以平滑切换到程序员的角色,但程序员并不一定能切换为开发者的角色 。为什么这样说?道理很简单,美食家可以切换成厨师的角色,自做美味菜肴,但厨师并不一定能够像美食家一样创造新的菜品,并对没事进行品鉴 。同样的,一个技术总监或架构师可以成为一个合格的程序员,去完成编码任务(通常不会这样,杀鸡用牛刀,如果小公司只有一把牛刀,那也没有办法);但一个高级程序员未必能够胜任技术总监或架构师的工作,因为两者要思考的问题是一个父子集合,整体与局部的关系 。
    认识到这一点后,如果你是一名IT公司的招聘人员,你应该已经明白,一个编程专家未必是你想要寻求的技术总监或架构师,选择需谨慎,用人有风险;如果你是一个码农,也请认清两者区别,做好职业规划,如果你想往技术总监/架构师方向发展,除了必要的编码能力,你还需加强自身在沟通,表达,整合,探索,创新等方向上的能力,规划需谨慎,光阴去不回 。
     
     



    推荐阅读