全国报名热线:0755-23061965

程序员拥有两个世界

时间:2019-06-21 10:58:19   来源:百战程序员   阅读:
       很多人认为计算机变得如此智能,所以在不久的未来将不再需要程序员。另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题。甚至不少程序员对他们是做什么的都没有清晰的概念。

 

在这篇文章中,我想给不知情的人解释一下程序员到底是做什么的:

人类世界的背景

 

        人类是生物进化的产物,并且拥有独特而宝贵的器官——大脑,它能为程序员提供想法。大脑有组合复杂的新大脑皮层(对人类而言是独特的),还有从哺乳动物和爬行动物继承的旧结构。旧的大脑结构主要负责生殖(性)和生存(寻找食物或者躲避危险)。新大脑皮层进化成能够更好地支持这些功能,但是,它开始产生奇怪的副作用——意识、思考和好奇心。幸亏这些副作用的影响,人类产生了文明并在数千年后发明了计算机。

        一些人相信经过数千年的发展,人类应该变成完全沉闷的、理性的、可预测的生物,但是这并没有发生。人类旧的大脑结构、复杂的心理和社会行为往往使人们不理性,不可预测并带有欺骗性。并且,人类有糟糕的记忆力、强烈的情感和个人兴趣。但是,程序员没法选择与更理性的物种工作,他们不得不与人类共事并且把人类的想法翻译成计算机语言。

计算机世界背景

 

        计算机是人类文明的最佳发明。它由CPU、主板、内存、硬盘驱动器、显示器和其他部分构成。计算机将我们的文明推入一个新的水平,使我们的生活更有意义并充满乐趣,还弥补了我们大脑的缺陷。很可能计算机比人类更聪明。(不过,我有点关心如果这成为现实后,计算机还需要人类程序员吗?)

        现代计算机具有完全逻辑性、直接性和顺从性。如果你知道它应该做什么并且知道如何命令它,那么和计算机一起工作是快乐的。唯一的问题是,计算机只会做你告诉它去做的。因此,你应该有清晰的思路并且在见你的上司或客户时保证计算机不出岔子。

一名优秀程序员所具备的能力

 

       我们可以看到,一名优秀程序员应该具备应付两个不同世界的两套技能。

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

1. 沟通——与人建立联系的能力,能够同他人亲密的交谈,并有勇气去尝试分享自己的观点。

 

2. 意图——从谈话中提取有用的信息,理解并使之有意义。

 

3. 逻辑——为不懂让步的计算机整理、剔除那些人类思想中含糊而有争议的内容。

 

4. 创造力——挖掘、转变人类的想法,从而创建优秀的解决方案。

 

5. 构思——利用人类友好的接口和便捷的互动性来包装编程思想。

 

6. 大局观——清楚解决方案是如何适应全世界的用户、企业以及其他,从而使你的程序更有用。

 

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

1. 逻辑(再次强调)——把程序员的想法组织整理成有凝聚力的软件思想和计算机指令。

 

2. 技术——发现并理解科技黑箱(对于99%的人来说是黑箱)。

 

3. 编程语言——学习美观的、富有逻辑的、清晰明了的语言,从而把程序员的想法提供给电脑。

 

4. 算法——精通让计算机完成任务最高效的方法。

 

5. 建模——在软件代码中建立抽象和模型,从而掌握并操控想法。

 

6. 实践(比如代码重构、单元测试、持续集成)——周期性活动,以保持系统可靠、健康与可改变。

 

         面向人类和面向硬件对象/系统的程序员有很大不同。

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

 
 

 

 
分享:0
开班计划
热门文章
学员感言

电话咨询

客服热线服务时间

周一至周五 9:00-21:00

周六至周日 9:00-18:00

咨询电话

0755-23061965

微信扫一扫