人们眼中的程序员

来源:互联网 发布:润和软件怎么样 编辑:程序博客网 时间:2024/04/29 14:14

在形形色色的行业中,程序员绝对是非主流:除了 IT 从业者之外,我的同学、亲友们 几乎都不能一下子就明白我做的工作是什么。

这自然是一个悲剧,在外人眼里,随便挑一个程序员出来都会认为他是一个 geek…… 更悲剧的是,很多程序员自身都难以清晰地解释程序员的意义。

于是那篇文章指出一个核心观点:程序员是将人类想法翻译成计算机语言的人。

两个物种,两个世界

我们可以把“计算机”看成一个新物种,这种“生物”的特点是,能够保证全理性地执行工作。 就是说,你告诉他要做什么,他就做什么。

另一方面,人类本身是复杂的生物,记忆力有限、注意力容易分散……所以相比而言,计算机 拥有超过人类成千上万倍的工作效率。因此,计算机能做的事情,我们都给它做,这样生活就会更好。

这当中存在的一个问题是,计算机不可能直接领会人类的意图而执行任务。于是我们需要程序员 来告诉计算机我们要做什么。 容易忽略的一点是,程序员不仅仅要和计算机打交道,更重要的,他必须“明白人类的需求”, 所以“需求分析”是那么的重要。
程序员需要具备的能力

这是最后最重要的结论。正因为程序员是和两个世界打交道的人,因此他必须具备两方面的能力。

理解人类的需求并提出解决方案

  1. 沟通——与人建立联系的能力,能够同他人亲密的交谈,并有勇气去尝试分享自己的观点。
  2. 意图——从谈话中提取有用的信息,理解并使之有意义。
  3. 逻辑——为不懂让步的计算机整理、剔除那些人类思想中含糊而有争议的内容。
  4. 创造力——挖掘、转变人类的想法,从而创建优秀的解决方案。
  5. 构思——利用人类友好的接口和便捷的互动性来包装编程思想。
  6. 大局观——清楚解决方案是如何适应全世界的用户、企业以及其他,从而使你的程序更有用。

告诉计算机该做什么,并建立解决方案

  1. 逻辑(再次强调)——把程序员的想法组织整理成有凝聚力的软件思想和计算机指令
  2. 技术——发现并理解科技黑箱(对于 99% 的人来说是黑箱)。
  3. 编程语言——学习美观的、富有逻辑的、清晰明了的语言,从而把程序员的想法提供给电脑。
  4. 算法——精通让计算机完成任务最高效的方法。
  5. 建模——在软件代码中建立抽象和模型,从而掌握并操控想法。
  6. 实践(比如代码重构、单元测试、持续集成)——周期性活动,以保持系统可靠、健壮与可改变。

   最后,不与人沟通的程序员不是好程序员。 一个优秀的解决方案需要计算机世界与人类世界的双重技能。 只有连接起两个世界,才能成为一个真正的优秀程序员。

原创粉丝点击