当前位置: 首页 > 编程
  • 13种编程语言名称的来历

    可能程序员们都认为编写代码时给变量取名是件烦人的事,不过他们还需要给另外一个东西取名,那就是新的编程语言。编程语言命名通常有几个规律,如根据特性取缩写(如BASIC,COBOL,TCL和LISP),以已有的语言为基础(如C++,C#和CoffeeScript),或直接是数学和计算机领域杰出人物的名字(如Ada,Pascal和Turing)。有时,设计者取名时更充满想象力。下面是13个意味深长的名字,以及它们背后的故事。

    Python

    于20世纪80年代末,由GuidovanRossum发明,初衷据说是为了打发圣诞节的无趣,1991年首次发布,是ABC语言的继承,同时也是一种脚本语言,目前已经很流行。取名时,GuidovanRossum认为它应该“短小,独特,还有一点神秘感”,他是英国著名剧团MontyPython的忠实粉丝,所以就是Python了。

    Java

    于20世纪90年代初期诞生,源自Sun公司的智能家电程序开发,如互动电视。最初名为Oak,不过Sun公司的律师发现这个名字已经被注册。通过一系列的会议,公司从一个包含有Silk,DNA和Java的名单中选择了它。是谁第一个建议使用Java这个名字的不得而知,不过普遍猜测是灵感来自Peet咖啡店,因为Sun公司的工程师们很喜欢到这里喝咖啡。

    Forth

    于20世纪60年代,由CharlesMoore创造。1968年CharlesMoore在一家名为Mohasco的家装公司工作,只有一台最多2250图形显示点数的IBM1130微型计算机,不过却要用它来设计地毯,而FORTRAN却不能满足要求,所以他发明了Forth。最初其名为Fourth,不巧,IBM1130最多支持5个字符的文件名,“u”去而“Forth”生。

    阅读全文
    作者:驽鸟 | 分类:电脑网络 | 阅读:1,573次 | 标签:, , ,
  • 如果编程语言是女人

      PHP 是你的豆蔻年华的心上人,她是情窦初开的你今年夏天傻乎乎的追求的目标。玩一玩可以,但千万不要投入过深,因为这个女孩有严重的问题。

      Perl 是 PHP 的姐姐。她对你来说年龄稍微大了一点,但在 90 年代,她是相当受欢迎的。她和 Larry Wall (译注:Perl 语言创始人)长期保持着亲密关系,因此她的审美一落千丈,如今她看起来是丑陋不堪。“无论你们怎么评论,我仍然爱她!”,Larry Wall 说。没有第二个人会像他这样。

      Ruby 是脚本家族中一个非常漂亮的孩子。第一眼看她,你的心魄就会被她的美丽摄走。她还很有有趣。起初她看起来有点慢,不怎么稳定,但近些年来她已经成熟了很多。

      Python 是 Ruby 的一个更懂事的姐姐。她优雅,新潮,成熟。她也许太过优秀。很多小伙都会说“嘿,兄弟,你怎么可能不爱上 Python 呢!?”。没错,你喜欢 Python。你把她当成了一个脾气和浪漫都退烧了的 Ruby。

      Java 是一个事业成功的女人。很多在她手下干过的人都感觉她的能力跟她的地位并不般配,她更多的是通过技巧打动了中层管理人员。你也许会认为她是很有智慧的人,你愿意跟随她。但你要准备好在数年里不断的听到“你用错了接口,你遗漏了一个分号”这样的责备。

    阅读全文
    作者:驽鸟 | 分类:电脑网络 | 阅读:2,494次 | 标签:, ,
  • 12 个有效的提高编程技能的方法

    1. 永远不要停止学习和阅读 阅读 书籍,而不只是网站 阅读 只为自我提升,而不是为了下一个项目 阅读 提升你的基础,而不只是最新技术 2. 跟比你聪明的人一起工作 跟比你更聪明的人或者是更有经验的人一起工作,可以让你快速提升 3. 变成一个全才 不要过于钻牛角尖,这可能会让你停滞不前和伤害 ...

    阅读全文
    作者:驽鸟 | 分类:电脑网络 | 阅读:1,999次 | 标签:, ,
  • 如何提高团队编程水平

    本文总结了一些Mendicant大学深受好评的方法。希望这些经验能帮助更多本地团队和在线团队,这样会有更多优秀的场所供程序员学习和成长。

    强调个人目标与团队兴趣

    在小团队里,只讨论眼下全球流行的IT技术,却忽略小组内部正在做的工作,这是对精力和潜力的极大浪费。而将关注的内容与团队成员正在参与的项目或日常工作中面临的问题联系起来,这样则会更加有效。

    与其对一般性的问题进行讨论和学习,不如找出团队需要解决的一些具体问题。可以自己克服这些障碍,通过整合手头的资源可以更加有效地找到相关学习资料,或者组织相关人员进行讨论。

    实践的方法有很多,其中有一种方法很有意思:在每次会议一开始,让大家谈一谈自己正在做什么、对什么比较感兴趣,这样大家可以依据兴趣进行组合。对于在线讨论组,可以使用wiki或者定期的邮件列表摘要来达到类似的效果。

    实行正式的代码审查

    不要空谈想法或策略,最好办法是坐下来、打开编辑器并准备好代码进行审查。通过向别人讲解自己的代码,你能从中学到很多东西。可以毫不夸张地讲,任何向他人教授知识的过程都能产生价值,哪怕仅仅是讲解编程习语或者命名规范这样的小知识也是如此。
    如果代码太过粗糙不能进行有效的审查,可以通过编写一个简单的例子来展示你正在学习的核心概念。讨论的内容越具体,在与别人的交流中获得有价值信息的可能性越大。

    倾向有理有据的争论

    在编程社区里,依据权威(“某某说过……,因此……”)和流行观点(“大家都是这么做……”)的争论非常普遍,但最终都会偏离想要表达的观点。幸运的是,讨论代码有一种更为有效的方法。

    对于给定问题讨论解决方法,明确问题背景是最重要的。不了解问题背景,就不清楚解决这个问题是使用锤子还是推土机更合适。明确问题背景后,对于给出的解决方案就有了可讨论的依据。

    至此,剩下的事情就是比较不同解决方案权衡利弊。打个比方,你可能会说:“Sqlite易于使用,因为它不需要数据库服 务器。但如果要处理GIS数据,你可能会选择PostgreSQL,因为PostGIS提供了很多有用功能”。这个说法虽然不是无懈可击,但比 “Sqlite很烂,一定要使用PostSQL”要好一些。

    有时候,你只是想表达一些纯粹的个人偏好,这没有问题。但在这个时候,如果能有一些理性讨论而不只是抒发个人感情,会更好地表达你的观点。在某些情况下,这能让你避开宗教般的争论。

    阅读全文
    作者:驽鸟 | 分类:电脑网络 | 阅读:4,072次 | 标签:, ,
  • 美到极致是疯狂

    一、什么是代码高手?你怎么证明自己是代码高手?

    知道许多代码技巧、JS炫彩技巧的人大有人在。你知道多少个.net函数,这一点都没有意义。你知道多少个新鲜IT名词,多少技术介绍,这也没有意义。做,真正做一个原型,做一个项目,解决你手头棘手的问题,这才有意义。

    1、快速准确的理解别人说的-〉

    2、快速的开发,还准确的反映了别人的需求-〉

    3、稳定,最少出BUG-〉

    4、高性能,10万条记录你能顶住,1000万条记录你能顶住吗?这就是技术功底的考验

    5、这还不够,你的代码是否能让别人快速的理解了

    6、你的代码是否能比较容易的接受不同客户的需求差异

    这都是处处要你的分析功底、架构功底、编码功底。

    阅读全文
    作者:驽鸟 | 分类:电脑网络 | 阅读:2,233次 | 标签:, ,
  • 10个的有关编程的至理名言

    10. "People think that computer science is the art of geniuses but the actual reality is the opposite, just many people doing things that build on each other, like a wall of mini stones."- Donald Knuth

    10. “人们认为计算机科学是天才的艺术,但事实完全相反:只是很多人在共同建立起来的事物之上工作,就像一条由小石头铺成的小径。”—— Donald Knuth

    9. “First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack.”- George Carrette

    9. “首先学会计算机科学和所有的理论。然后发展出一个编程风格。之后便要忘掉所有这些,以自由的方式探索。”—— George Carrette

    8. “Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris.”- Larry Wall

    8. “大多数的你们都熟悉程序员的美德。它们有三点:懒,不耐烦,以及狂妄自大。”—— Larry Wall

    7. “Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other,with no structural integrity, but just done by brute force and thousands of slaves.”- Alan Kay

    7. “今日的大多数软件很像埃及金字塔,由千百万砖头堆砌起来,层层相切,没有着整体的结构,是由畜力和成千上万奴隶的力量建立起来的。”—— Alan Kay

    阅读全文
    作者:驽鸟 | 分类:电脑网络 | 阅读:2,298次 | 标签:,
  • 风雨20年:我所积累的20条编程经验

    原文作者乔纳森·丹尼可(Jonathan Danylko)是一位自由职业的web架构师和程序员,编程经验已超过20年,涉足领域有电子商务、生物技术、房地产、医疗、保险和公用事业。正如乔纳 森在文中所言,本文适合刚毕业的大学生和刚入门的程序员。如果你已是高级开发人员,或许你在本文中看到自己的身影。

    从11岁时,我就一直在编程,并且一直都很喜欢技术和编程。这些年来,我积累了一些艰难又容易的经验。作为一名程序员,你或许还没这些经验,但我会把它们献给那些想从中学到更多的朋友。

    我会持续更新这些经验,我可能还会有更多的感想,但就我这20年来看,我想下面这个列表中基本不需要增添额外的东西了。下面就是我至今最难忘的经验。

    阅读全文
    作者:驽鸟 | 分类:电脑网络 | 阅读:2,073次 | 标签:,
  • 软件编程21法则

    任何一个有经验的程序员都知道,软件开发遵循着一些不成文的法则。然而,如果你不遵循这些法则也并不意味着会受到惩罚;相反,有时你还会获得意外的好处。下面的就是软件编程中的21条法则:

     

    1. 任何程序一旦部署即显陈旧。
    2. 修改需求规范来适应程序比反过来做更容易。
    3. 一个程序如果很有用,那它注定要被改掉。
    4. 一个程序如果没用,那它一定会有很好的文档。
    5. 任何程序里都仅仅只有10%的代码会被执行到。
    6. 软件会一直膨胀到耗尽所有资源为止。
    7. 任何一个有点价值的程序里都会有至少一个bug。
    8. 原型完美的程度跟审视的人数成反比,反比值会随着涉及的资金数增大。
    9. 软件直到被变成产品运行至少6个月后,它最严重的问题才会被发现。
    10. 无法检测到的错误的形式无限多样,而能被检测到的正好相反,被定义了的十分有限。
    阅读全文
    作者:驽鸟 | 分类:电脑网络 | 阅读:2,390次 | 标签:, ,
  • 什么是匈牙利标记法?

      匈牙利标记法 是编程中变量的一种命名习惯。
      [Prefix]-BaseTag-Name
      其中 [Prefix]是可选的,BaseTag是数据类型的缩写,Name是变量名字,说明变量的作用
      [Prefix]包括:
      p-指针
      rg-集合
      c-计数器
      h-句柄
      BaseTag主要有:
      v-void i-int f-BOOL ui-UINT
      b-BYTE ch-CHAR wch-WCHAR ul-ULONG
      l-LONG dw-DWORD hr-HRESULT fn-funtion
      sz-NULL str w-USHORT,SHORT,WORD
      针对OO,成员变量用m_开头,全局变量用g_开头
      example:
      BOOL m_fInitialized
      BYTE *pbBuffer
     

    阅读全文
    作者:驽鸟 | 分类:电脑网络 | 阅读:4,107次 | 标签:, ,
  • 关于学习c++和编程的50个观点(学什么都适用)

    关于学习c++和编程的50个观点:

    1.把c++当成一门新的语言学习(和c没啥关系!真的。);

    2.看《thinking in c++》,不要看《c++变成死相》;

    3.看《the c++ programming language》和《inside the c++ object model》,不要因为他们很难而我们自己是初学者所以就不看;

    4.不要被vc、bcb、bc、mc、tc等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;

    5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;

    6.会用visual c++,并不说明你会c++;

    7.学class并不难,template、stl、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书;

    8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的c++水平并没有和你通关的能力一起变高——其实可以时刻记住:学c++是为了编游戏的;

    9.看visual c++的书,是学不了c++语言的;

    10.浮躁的人容易说:xx语言不行了,应该学yy;——是你自己不行了吧!?

    阅读全文
    作者:驽鸟 | 分类:电脑网络 | 阅读:3,586次 | 标签:, , ,