[ Blog ]

只会编程的程序员没有前途[转]

比尔-盖茨曾说:“学习编程锻炼你的思维,帮你更好地思考,它能形成一种思考方式,让你更好地思考一切,这对所有领域都有帮助。”

于是,编程可以扩大你的思维,编程可以强化你的能力,编辑是可以赚大钱的……

于是,编程被过份强调了。

让我澄清一点:编程,被过份强调了。

有一种言论很流行,那就是软件代码是未来的语言,更进一步说,编程是未来的必备技能。作为个体的你,如果想在未来有立足之地,最好学点编程。

这种言论的后果是:

1、进入学校的人,或者准备开始寻找工作的人,他们会认真考虑进入软件开发行业,哪怕他们真正的兴趣在其它地方。

2、已经毕业的、没有编程背景的人觉得自己低人一等,相比于拥有编程背景的同事来说,觉得自己容易受到排斥。

依我之见,这两点都是对趋势的过激反应,看起来世界经济变得越来越以代码为中心。问题在于:它相信经济、世界和未来会以代码为中心。

真是这样吗?不是的。

只要我们处在前Singularity时代(Singularity是微软提出的概念操作系统),只要人类统治我们的经济、社会、政治决策,我们的全球生态系统就会一直由人类需求驱动。其它都是工具或者语言,它用来强化个人。

当中包括代码。

我们应该将编程看成促使你成功的技能,它不是诅咒,也不是万能药。

现在是黑客通才时代,任何人都可以学点编程技能,但拥有其它职业。这些人并非为编程而编程,它是工具,可以提供价值。

在我教导的MBA学员中,有一个团队曾制作非常漂亮的幻灯片。我问他们谁设计的,他们指着团队的一个成员,这是一个心脏外科医生。他告诉我,在成为医生之前曾当过图形设计师。图形设计师转型心脏外科医生,真不可思议!

如果他学点编程呢?如果知道用HTML5和CSS3制作网站呢?如果会调整HPP代码呢?如果他能下载和使用jQuery插件呢?

我想,他的能力会为病房、病人带来巨大增值价值。

21世纪,我们应该理解到生活的许多方面是复合互联的,技术是彼此融合的。一旦我们理解到这点,会会知道作为个体、团队、组织的我们应该如何去解决那些纠缠人类的问题。

单是成为Java EEE专家、或者Django巨头、或者程序语言奇才,这已经不够了。要真正推动世界前进,脱颖而出,成为明天的问题解决者,变得真正有创造力,就要拥有一些新东西:深度和宽度。总的来说,就是要擅长一些其它的学问。

它告诉我们:

1、如果你是一个编程人员,学点其它领域的技能和知识。这会增加可能性,让你将编程技能用在其它方面。

2、如果你不是一个编程者,但有其它领域的技能,你可以学点基本的编程知识。这会增强你的能力,让你站在新层次上解决问题。它还可以通过新的方式利用你的天赋。

作者Ali R.Tariq,MyFamilyTales联合创始人

原文链接:http://it.sohu.com/20130807/n383542954.shtml

 Read    Comment

More Posts

读《可以平凡,不能平庸》一书有感

 作者:刘力鑫                               写于 2012年5月8日 在阅读刘兴旺著的《可以平凡  不能平庸》一书之前,就思考着,平凡和平庸区别在什么地方?辞海里注解“平凡”一词为平常,普普通通,而平庸则为庸碌、普通、寻常而不突出,碌碌无为。《可以平凡 不能平庸》这本书用朴实的文字,接近生活的、真实的故事来说明一个个道理。笔者在书中指出: 平凡与平庸是生活的两种状态。平凡的人,是机器上的一颗螺丝钉,虽然不是其中的关键零件,但是少了他不行,千千万万个平凡的人构成了社会发展的基础。平庸,是有能力没发挥,才华尽掩。就像河蚌里拒绝成为珍珠的沙子,自甘埋没。基于笔者的观点,我重新审视了自己,对平凡和平庸进行了新的认识。 世界著名的旅馆业大王康拉德·希尔顿,许多年之前到一家著名的酒店当服务生,受训期间公司安排他洗马桶。每次对着马桶康拉德·希尔顿都恶心得想呕吐,洗马桶的工作让他难以忍受,为此他对自己的人生道路产生了迷茫,他心灰意冷,到底是继续干下去,还是另谋职业?在这个时刻,一位前辈出现在他面前,亲自洗了一遍马桶给他看,然后在马桶里盛了一杯水一饮而尽,丝毫没有勉强,同时送给他一束鼓励的目光。康拉德·希尔顿警觉到自己的工作态度出了问题,于是痛下决心,就算一辈子洗马桶也要是最出色的。从此他的工作质量也达到了无可挑剔的高水准。北京博士德文化公司董事长汪中求说过:我们普通人,大量的日子,很显然都在做一些小事,怕只怕小事也做不好,小事也做不到位。洗马桶是个非常平凡的岗位,而康拉德·希尔顿在平凡的岗位上做出了不平凡的业绩,从而成就他未来不平凡的道路。 一个人的工作态度折射着人生态度,而人生态度决定一个人一生的成就。工作是生存的需求还是自身价值的认可?生存是第一位的,工作赚钱养活自己是无可厚非的。然而被动的无奈的去接受工作,尽管也可能会勤勤恳恳,但他们注定是一个平庸者。为了实现自我价值而工作,必将付之努力,将会不断完善自我,不断挑战自我,不断发挥创造性潜质,使大家充分认识到他的价值,获得到大家的认可和尊重。工作就意味着责任,岗位就意味着任务,工作的底线就是尽职尽责。作为一名最基层的干部,我从事着平凡的工作,演绎着平凡的角色。我想无论处在什么岗位,做什么事,都应该具有岗位责任感,尽职尽责。因为从平凡到平庸,只要稍稍懈怠,就滑向了平庸的边缘。而从平庸到平凡,需要的则是一个坚定不变的目标,一种滴水穿石的力量。平凡的人不一定能成就一番惊天动地的大事业,但却能在生命过程中把自己点燃,即使自己是根小火柴,只要能发出微微星火也就足够了;平庸的人也许是一大捆火药,但没有引线,在忙忙碌碌中消沉下去。 记得有这么一句话“没有目标的人永远为有目标的人去努力”,读了刘兴旺《可以平凡 不能平庸》我再次深刻学习了平凡和平庸的内涵,用刘兴旺先生说的“想成为珍珠先正视自己是一粒沙子”,“ 我们左右不了变化无常的天气,却可以适时调整我们的心态”, “其实我很平凡,但我总是脚踏实地在干”,“比别人勤奋一点点,就能超前别人一大步”来时刻警醒自己。

 Read    Comment

SVN windows 项目去除SVN的方法

当项目不需要SVN标志的时候,我们一般怎么办哪??可能很多人设置Windows显示隐藏文件,然后将项目中的所有.svn文件删除,这种方法是既费劲儿又蛋疼的方法。 下面,从网上找了个非常简单的方法,重新编辑后当为我自己的原创,希望原作者不要怪罪。 第一步:建立一个名字叫做remove-svn-folders.reg的文本(先建立txt文件,然后粘贴内容后再修改文件名字),记得后缀要叫.reg。文本的内容为:   Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] @=”Delete SVN Folders” [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command] @=”cmd.exe /c \”TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \”%1\” %%f IN (.svn) DO RD /s /q \”%%f\” \””   第二步:保存后,双击这个文件,此时再右键任何文件夹时都会出现一个“Delete SVN Folders”,点击这项,将会把此文件夹下包括子文件夹的.svn都给删除。如果项目想去掉svn,直接对此项目进行上面操作,一下子就将项目所有的.svn删除,即项目去除了svn。   第三步:也比较重要哦!如果项目已经去掉了svn,此时我们应该将右键的这项功能去掉预防以后不小心点击将不想去svn的项目去除了,这将会非常令人蛋疼。去除右键这项功能的方法为:打开注册表(就是在命令行输入:regedit命令),然后在注册表里找到:[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN],将DeleteSVN删除就可以了。现在再对你的文件夹进行右键是不是找不到“Delete SVN Folders”这个选项了吗??爽歪歪吧!!!   原文出处,不记得了,谢谢原文的作者!

 Read    Comment

中国父母不可不读的十条调教微博

1、【黑人司机与白人母亲的对话】黑人司机载了一对白人母子,孩子问:为什么司机伯伯的肤色和我们不同?母亲答:上帝为了让世界缤纷,创造了不同颜色的人。到目的地黑人司机坚持不收钱,他说:小时曾问过母亲同样的问题,母亲说我们是黑人,注定低人一等,如果她换成你的回答,今天我定会有不同的成就。 2、【洛克菲勒给儿子的信】孩子:世界如高山,父母在山顶,注定你不会生活在山脚。父母的位置决定了孩子的起点。但穷富、成败没有世袭,我奋斗我成功才是真理。起点影响结果,但不会决定结果。能力、态度、性格、抱负、经验和运气才是人生事业的重要推手。人生之战,人人有求胜意志,只有做好谁备的人才会赢! 3、【爸爸你知道吗】美国心理学家发现:一个人能够取得成就20%取决于后天努力,80%又决于父亲。作为孩子生命中“重要他人”,同样一句肯定的话如果爸爸说出来对孩子的影响力会是妈妈的50倍。妈妈对孩子的影响是你能不能成为一个独立的人,而爸爸则是塑造孩子对生命的看法,关系到人格的形成。 4、【亲子关系13戒】一戒过度保护;二戒过分宠爱;三戒拔苗助长;四戒过分专制;五戒脸孔严厉;六戒忽略孩子优点;七戒忽略孩子说话;八戒嘲笑挑剔;九戒无益的唠叨;十戒乱发脾气;十一戒低估孩子的能力;十二戒以偏概全;十三戒对孩子漠不关心。爸爸妈妈们,你们可不要不当回事哦! 5、【父母教孩子这8件事】1:公平——游戏时遵守规则;2:感激——谢谢别人的好意;3:助人——在需要时帮助别人;4:凉解——原谅他人的过失;5:诚实——把真话告诉大家;6:尊重——对别人心存敬意;7:慷慨——乐于同他人分享;8:友善——友好对待周围的人。 6、【放手才能快乐】父亲对他的孩子说:攥紧你的拳头,告诉我是什么感觉?孩子攥紧拳头:有些累!父亲:试着再用些力!孩子:更累了!有些憋气!父亲:那你就放开它。孩子长出一口气:轻松多了!父亲:当你感到累的时候,你攥得越紧就越累。——很简单的道理,学会放手才会轻松。 7、【父母要给孩子空间】当孩子编织美丽的梦想时,不要用你眼中的现实去纠正他。如同纪伯伦所说:孩子虽是借你而来.却不属于你;你可以给他爱,却不可给他想法,因为他有自己的想法。如果你执意把孩子引上成人的轨道,当你这样做的时候,你正是在粗暴地夺走他的童年。——周国平 8、【让孩子学会运用身边的资源】一小孩搬石头,父亲在旁边鼓励:孩子,只要你全力以赴,一定搬得起来!最终孩子未能搬起石头,他告诉父亲:我己经拼全力了!父亲答:你没有拼尽全力,因为我在你旁边,你都没请求我的帮助!——你全力以赴了吗?回头看看身边的资源是否真的全部为你所用! 9、【教育的最终目的】不是传授已有的东西,而是要把人的创造力量诱导出来,将生命感、价值感唤醒。唤醒,是种教育手段。父母和教师不要总是叮咛、检查、监督、审查他们。孩子们一旦得到更多的信任和期待,内在动力就会被激发,会更聪明、能干、有悟性。——德国教育学家斯普朗格 10、一个父亲能为他孩子做的最好事情,就是好好爱他的妈妈。

 Read    Comment

数据库优化方案

关于数据库优化方面的文章很多,但是有的写的似是而非,有的不切实际,对一个数据库来说,只能做到更优,不可能最优,并且由于实际需求不同,优化方案还是有所差异,根据实际需要关心的方面(速度、存储空间、可维护性、可拓展性)来优化数据库,而这些方面往往又是相互矛盾的,下面结合网上的一些看法和自己的一些观点做个总结。 一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优,也不单单是开发阶段的事情,而是在整个软件生命周期都需要注意。所以我希望按照软件生命周期的不同阶段来总结数据库性能优化相关的注意事项。  一、 分析阶段 一般来说,在系统分析阶段往往有太多需要关注的地方,系统各种功能性、可用性、可靠性、安全性需求往往吸引了我们大部分的注意力,但是,我们必须注意,性能是很重要的非功能性需求,必须根据系统的特点确定其实时性需求、响应时间的需求、硬件的配置等。最好能有各种需求的量化的指标。 另一方面,在分析阶段应该根据各种需求区分出系统的类型,大的方面,区分是OLTP(联机事务处理系统)和OLAP(联机分析处理系统)。  二、 设计阶段 设计阶段可以说是以后系统性能的关键阶段,在这个阶段,有一个关系到以后几乎所有性能调优的过程—数据库设计。 在数据库设计完成后,可以进行初步的索引设计,好的索引设计可以指导编码阶段写出高效率的代码,为整个系统的性能打下良好的基础。 以下是性能要求设计阶段需要注意的: 1、数据库逻辑设计的规范化 数据库逻辑设计的规范化就是我们一般所说的范式,我们可以这样来简单理解范式: 第1规范:没有重复的组或多值的列,这是数据库设计的最低要求。 第2规范: 每个非关键字段必须依赖于主关键字,不能依赖于一个组合式主关键字的某些组成部分。消除部分依赖,大部分情况下,数据库设计都应该达到第二范式。 第3规范: 一个非关键字段不能依赖于另一个非关键字段。消除传递依赖,达到第三范式应该是系统中大部分表的要求,除非一些特殊作用的表。 更高的范式要求这里就不再作介绍了,个人认为,如果全部达到第二范式,大部分达到第三范式,系统会产生较少的列和较多的表,因而减少了数据冗余,也利于性能的提高。 2、合理的冗余 完全按照规范化设计的系统几乎是不可能的,除非系统特别的小,在规范化设计后,有计划地加入冗余是必要的。 冗余可以是冗余数据库、冗余表或者冗余字段,不同粒度的冗余可以起到不同的作用。 冗余可以是为了编程方便而增加,也可以是为了性能的提高而增加。从性能角度来说,冗余数据库可以分散数据库压力,冗余表可以分散数据量大的表的并发压力,也可以加快特殊查询的速度,冗余字段可以有效减少数据库表的连接,提高效率。 3、主键的设计 主键是必要的,SQL SERVER的主键同时是一个唯一索引,而且在实际应用中,我们往往选择最小的键组合作为主键,所以主键往往适合作为表的聚集索引。聚集索引对查询的影响是比较大的,这个在下面索引的叙述。 在有多个键的表,主键的选择也比较重要,一般选择总的长度小的键,小的键的比较速度快,同时小的键可以使主键的B树结构的层次更少。 主键的选择还要注意组合主键的字段次序,对于组合主键来说,不同的字段次序的主键的性能差别可能会很大,一般应该选择重复率低、单独或者组合查询可能性大的字段放在前面。 4、外键的设计 外键作为数据库对象,很多人认为麻烦而不用,实际上,外键在大部分情况下是很有用的,理由是: 外键是最高效的一致性维护方法,数据库的一致性要求,依次可以用外键、CHECK约束、规则约束、触发器、客户端程序,一般认为,离数据越近的方法效率越高。 谨慎使用级联删除和级联更新,级联删除和级联更新作为SQL SERVER 2000当年的新功能,在2005作了保留,应该有其可用之处。我这里说的谨慎,是因为级联删除和级联更新有些突破了传统的关于外键的定义,功能有点太过强大,使用前必须确定自己已经把握好其功能范围,否则,级联删除和级联更新可能让你的数据莫名其妙的被修改或者丢失。从性能看级联删除和级联更新是比其他方法更高效的方法。 5、字段的设计 字段是数据库最基本的单位,其设计对性能的影响是很大的。需要注意如下: A、数据类型尽量用数字型,数字型的比较比字符型的快很多。 B、数据类型尽量小,这里的尽量小是指在满足可以预见的未来需求的前提下的。 C、 尽量不要允许NULL,除非必要,可以用NOT NULL+DEFAULT代替。 D、少用TEXT和IMAGE,二进制字段的读写是比较慢的,而且,读取的方法也不多,大部分情况下最好不用。 E、自增字段要慎用,不利于数据迁移。 6、数据库物理存储和环境的设计 在设计阶段,可以对数据库的物理存储、操作系统环境、网络环境进行必要的设计,使得我们的系统在将来能适应比较多的用户并发和比较大的数据量。 这里需要注意文件组的作用,适用文件组可以有效把I/O操作分散到不同的物理硬盘,提高并发能力。 7、系统设计 整个系统的设计特别是系统结构设计对性能是有很大影响的,对于一般的OLTP系统,可以选择C/S结构、三层的C/S结构等,不同的系统结构其性能的关键也有所不同。 系统设计阶段应该归纳一些业务逻辑放在数据库编程实现,数据库编程包括数据库存储过程、触发器和函数。用数据库编程实现业务逻辑的好处是减少网络流量并可更充分利用数据库的预编译和缓存功能。 8、索引的设计 在设计阶段,可以根据功能和性能的需求进行初步的索引设计,这里需要根据预计的数据量和查询来设计索引,可能与将来实际使用的时候会有所区别。 关于索引的选择,应改主意: A、根据数据量决定哪些表需要增加索引,数据量小的可以只有主键。 B、根据使用频率决定哪些字段需要建立索引,选择经常作为连接条件、筛选条件、聚合查询、排序的字段作为索引的候选字段。 C、把经常一起出现的字段组合在一起,组成组合索引,组合索引的字段顺序与主键一样,也需要把最常用的字段放在前面,把重复率低的字段放在前面。 …

 Read    Comment

CSS hack浏览器兼容一览表

CSS hack是指我们为了兼容各浏览器,而使用的特别的css定义技巧。这是国外摘来的一张CSS hack列表,显示了各浏览器对css hack的支持程度,对我们制作兼容网页非常有帮助。

 Read    Comment