当前位置:首页 > 单片机 > 单片机
[导读] 公司里曾在北美作为产品研发经理的资深人物某日和我闲聊,说到中美程序员的差别,北美的程序员,尤其是发明那些根本性东西比如JAVA, 比如Message机制,用得都是非常简单的办法,一方面,英语作为母语,与程序设计语

 公司里曾在北美作为产品研发经理的资深人物某日和我闲聊,说到中美程序员的差别,北美的程序员,尤其是发明那些根本性东西比如JAVA, 比如Message机制,用得都是非常简单的办法,一方面,英语作为母语,与程序设计语言更加靠近,比中国的象形文字来的近,另一方面,这些北美的程序员似乎都深谙大道至简的道理,代码都写得很简单,当然问题的思维方式更为系统。相对的来说,国内的技术人员总是习惯把问题复杂化,不仅理解问题复杂化,解法也复杂,有时正是因为没有理解核心代码的设计,反而使得解法更加背道而驰。    《代码之美》这本书,刚好给了一些关于北美(但不限于)的顶级程序员的例子,与其说它是讲代码之美,到不如说是讲他们的思维方式,我们甚至可以窥见他们的价值观,个人的体会是,这本书里面的顶级程序员们体现了以一系列思维习惯值得国内同行参考:

第一:非常认真全面的研究问题/客户需求,比如在为霍金开发只用一个按钮的交互软件时,他们很快意识到按钮不止表达01,按扭的时长可以成为一种模拟输入,从而为长按和短按分别设计更细化的选项,由此简化了后面的设计。

第二:总是希望用一个个案抽象一种模型,并用于更大的范围,前面的程序可以服务给盲人,Google著名的MapReduce算法开始用于统计百万亿网页上的词频率,后来用于所有分布式环境

第三:永远寻求简单的方式来解决问题,不过有个技巧,就是可以把复杂的难题恰当的分割。MapReduce算法体现了一种简约之美,如同我们常讲的中间件,屏蔽一切分布式,普通的程序员都可以依靠MapReduce和GFS来写用于上千台机器的分布式应用。   在另一章开源ERP5的项目中,复杂的ERP项目的一级类仅有五个,Resouce, Node, Path, Movement, Item, 这些概念加上Order和Delivery的业务基本项构成了基础业务模型,这个设计思维有点像说宇宙是四大元素组成的。    另一个不错的案例来自Linux内核小组关于驱动的研究。   这个模型的抽象能力的缺乏,估计是中国工程师的软肋,也是思维复杂化的原因。硅谷软件人才IC(India/China)比比皆是,但能够定义软件行业的,还都是白人。或许,这个删繁入简的抽象能力,早在中国人学语文的时候被虚情假意的形容词淹没了。

第四:对于技术难题的灵感需要等待,从这本书看起来,软件天才是不存在的,几位顶级程序员都遇到一筹莫展的问题,有些几个月也没有解法,有的是某次喝咖啡的灵光一闪,或者干脆关键的程序都是在喜马拉雅山下的山村写的。

第五:他们都怀有程序改变世界的信心,在关于安全通讯的一章结尾,作者深信他们对于世界的民主化在做贡献,在他们看来:人类文明的代码,越来越需要程序员对其进行重新编程,然后重新接入社会这个操作系统中。比如,基因序列分析,商业软件,计算机建模,更不要说互联网上的多次革命,Email, Blog, SNS, VoIP。

这下理解为什么Google敢于对抗各国政府。

PS:但是对抗不了中国政府啊。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

学好电子技术基础知识,如电路基础、模拟电路、数字电路和微机原理。这几门课程都是弱电类专业的必修课程,学会这些后能保证你看懂单片机电路、知道电路的设计思路和工作原理;

关键字: 单片机 编程 电路设计

单片机编程需要使用专门的软件工具,这些工具能够帮助程序员编写、调试和烧录程序到单片机中。以下是一些常用的单片机编程软件:

关键字: 单片机 编程 软件工具

Java语言和C语言是两种不同的编程语言,它们在语法、特性和应用领域上有许多差别。下面将详细介绍Java语言和C语言之间的差异以及它们各自的技术特点。

关键字: Java语言 C语言 编程

嵌入式系统是现代生活中无处不在的一部分。它们包括了我们的家电、汽车、智能手机、医疗设备等等。这些系统的工作必须高效、可靠,因为它们往往控制着生活中的关键方面。而C语言作为一种广泛用于嵌入式系统开发的编程语言,其质量和稳定...

关键字: 嵌入式系统 C语言 编程

在嵌入式系统开发领域中,C语言是使用最广泛的编程语言之一。它具有高效、灵活和可移植的特点,成为嵌入式系统设计师的首选语言。本文将介绍C语言编程的基本概念、特点以及在嵌入式系统开发中的应用。

关键字: 嵌入式系统 C语言 编程

在编程和计算中,运算符优先级是解释和计算表达式的一个关键因素。本文旨在阐述运算符优先级的概念、规则及其在表达式中的应用,以帮助读者更好地理解和运用运算符优先级。

关键字: 表达式 运算符 编程

泰克科技组合软件总经理Rick Khulman:“激发孩子们——尤其是女孩们对STEM的兴趣,对我本人乃至广大工程界都至关重要。”

关键字: 编程 机器人 示波器

PIC单片机采用精简指令集,例如对于PIC16F716单片机,只有35条单字节指令。要用这么少的指令实现复杂的控制或计算,显然要在程序设计上多做文章,以下就程序设计需要注意的问题谈一些看法。 美国微芯公司开发的CMOS工...

关键字: 单片机 控制 编程

PLC编程是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它采用可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字式、模拟式的输入和输出,控制各种类型的机械或...

关键字: plc 编程 plc编程

初学PLC梯形图编程,应要遵循一定的规则,并养成良好的习惯。下面以西门子PLC为例,简单介绍一下PLC梯形图编程时需要遵循的规则,希望对大家有所帮助。

关键字: 西门子 plc 编程
关闭
关闭