阅读更多

3顶
4踩

编程语言
几周前,做为8th Light公司的实习生,我从CEO那里拿到了我的工作成绩报告。在与CEO的会见期间,我发现了一个对如何做一个程序员的认识上的盲区。起初我以为,想扩展自己的软件职业道路,那就要学很多各种的语言。我现在就要告诉你,事情不是这样的。

我们一共有多少种编程语言?你只需看一下维基百科上的清单,600多种!说实话,就我个人的情况,我不相信我能学会数百种语言。因为有太多的文档需要看,它们之间有太多的差异需要注意。它们很多都是相似的,例如那些面向对象的语言:C++,Java,Ruby,Python等。然而,我们却有一种更高效的方法学习它们,那就是对它们归纳分类。


在美国德锐大学,每个毕业生要接受的一门必修课程教育就是如何有效的学习。我很幸运遇到一位非常好的教授,Sugarman先生,我才有机会学到学习方法。尽管这个方法非常的基础,但它几乎能应用到任何事情上——不论它们的数量看起来是多么不可思议。

面向对象编程语言的基础理论要点:

学习基础理论要点,例如设计模式/范式,这样你就知道了在所有面向对象的编程语言中共同的知识,而不是只提高了一种语言水平。这是学习编程语言最有效的方法。

编程语言的类型有很多种,例如函数式语言,面向对象语言,面向数据语言(更多)。通过把各种语言归纳分类,这600种语言大概可以分成50类。通过学习每种分类的基础理论要点,再学习分类中的不同语言就变得容易多了。这里我给出一个例子。

对于面向对象编程语言,有5个基本原则能帮助你写出整洁优秀的代码。这些原则由Bob Martin总结,叫做SOLID原则。这里有一篇文章用图片形式很好的对这些原则进行了解释说明。这些原则是:

  • 一个对象只承担一种责任,所有服务接口只通过它来执行这种任务。
  • 程序实体,比如类和对象,向扩展行为开放,向修改行为关闭。
  • 子类应该可以用来替代它所继承的类。
  • 一个类对另一个类的依赖应该限制在最小化的接口上。
  • 依赖抽象层(接口),而不是具体类。
通过学习这些原则,你可以在所有面向对象语言里更有效的进行编程。当然,你需要学会一门这种类型的语言来练习这些原则,但这是完全值得的。

各种面向对象语言间的不同之处:

同属于面向对象语言,它们之间存在大量不同之处:

  • 语法:了解各种语言在语法句式上的差异有很多好处,其中之一能帮助优化你的编码。通过让一个方法或类跟它的行为在特征是保持相似,这能让程序更容易懂。
  • 独特性:每种编程语言跟其它种比起来都有自己的独特之处。Java有私有方法和数据自定义上的特点,Ruby在Web应用上有很强的优势。
总之,学习各种语言之间的区别很重要。这种语言可能比那种语言中某些方面更容易使用或更强大。

总结

学习编程语言最有效的方法是学习它们的基础性的模式/范式,这比单独学习每种语言更高效。通过学习这些基础原理,你可以把它们应用到很多其它类似的语言里。学习各种语言之间的差异,这能帮助我们在面对各种情况时选择更合适的语言。

英文原文:What it means to know Programming Languages / 译文:外刊IT评论
  • 大小: 38.8 KB
来自: 外刊IT评论
3
4
评论 共 4 条 请登录后发表评论
4 楼 xlaohe1 2013-03-21 14:16
clxy 写道
全世界有2千多种语言(另个算法是5千多),超过5000万人使用的有不到二十种;
全世界有600种编程语言,使用比例超过1%的只有十几种;

这么看来,人类永远不可能建成巴别塔.....

我觉得,但凡有人推出一门新的语言时,应该先交笔押金。
只有当使用比例超过某个值时才能还给他,否则按排污费论处!

3 楼 geminiyellow 2013-03-21 10:22
要贿选么?

white_crucifix 写道
clxy 写道
全世界有2千多种语言(另个算法是5千多),超过5000万人使用的有不到二十种;
全世界有600种编程语言,使用比例超过1%的只有十几种;

这么看来,人类永远不可能建成巴别塔.....

我觉得,但凡有人推出一门新的语言时,应该先交笔押金。
只有当使用比例超过某个值时才能还给他,否则按排污费论处!


哈哈

2 楼 white_crucifix 2013-03-20 18:15
clxy 写道
全世界有2千多种语言(另个算法是5千多),超过5000万人使用的有不到二十种;
全世界有600种编程语言,使用比例超过1%的只有十几种;

这么看来,人类永远不可能建成巴别塔.....

我觉得,但凡有人推出一门新的语言时,应该先交笔押金。
只有当使用比例超过某个值时才能还给他,否则按排污费论处!


哈哈
1 楼 clxy 2013-03-20 17:23
全世界有2千多种语言(另个算法是5千多),超过5000万人使用的有不到二十种;
全世界有600种编程语言,使用比例超过1%的只有十几种;

这么看来,人类永远不可能建成巴别塔.....

我觉得,但凡有人推出一门新的语言时,应该先交笔押金。
只有当使用比例超过某个值时才能还给他,否则按排污费论处!

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • jxpath jar包

    jxpath jar包 JXPATH是通过简单的表达式,可以在JAVA的类对象层次中进行查询

  • JXPath使用介绍

  • JAVA使用JXPATH操作XML

    使用JXPATH    APACHE的东西有个好处,就是简单,符合KISS原则。毕竟是给数万程序员用的,太晦涩了这些大忙人们可没功夫去慢慢琢磨。    JXPathContext ctx = JXPathContext.newContext(对象实例);Object value = ctx.getValue(数据的XPATH路径);    就这么简单。稍微说明的一点是,如果查询的是Java对象的话

  • JXpath学习笔记

    http://www.javaworld.com/article/2077700/data-storage/java-object-queries-using-jxpath.html     1      简介 JXPath定义了一个简单的XPath解释器,可用于定位各种对象——JavaBeans, Maps, Servlet contexts, DOM——以及它们的混合。 JXPa

  • 使用Commons JXPath简化XML/JSON处理

    讲真,JXPath在很多人眼里可能还是个陌生的名字。但别担心,小黑来给咱们科普一下。Apache Commons JXPath是一个开源的Java库,它提供了一种非常直观的方式来查询和操作XML和JSON数据。其实,JXPath的原理有点像XPath,它允许咱们通过路径表达式来定位数据。这样一来,无论数据结构有多复杂,咱们都能轻松地找到需要的信息。用JXPath处理数据的好处是显而易见的。首先,它能大大简化代码。想想看,如果不用写一堆循环和条件判断,直接一行代码就能拿到数据,是不是感觉很爽?

  • Apache Commons JXPath 使用教程

    Apache Commons JXPath 使用教程 commons-jxpathApache Commons JXPath项目地址:https://gitcode.com/gh_mirrors/co/commons-jxpath 项目介绍 Apache Commons JXPath 是一个开源的 Java 库,它提供了一种简单的方式来使用 XPath 表达式来访问和操作各种类型的对象图,包括 ...

  • 使用JXPath访问java对象、集合和XML文件

    google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//<script type="text/javascript"

  • Apache Commons JXPath 快速入门教程

    Apache Commons JXPath 快速入门教程 commons-jxpathApache Commons JXPath项目地址:https://gitcode.com/gh_mirrors/co/commons-jxpath Apache Commons JXPath 是一个用于在各种对象图上执行XPath表达式的库。它适用于处理JavaBean、Map、Servlet上下文以及DOM...

  • Java对象查询方法:Jxpath(转译)

         在JAVA对象中,如何进行有效的查询呢,这一直是个很值得探讨的问题.大家知道,在XML中,要找元素如何找呢?没错,通过XPATH是个不错的办法,同样道理,新近发现原来在JAVA中,也居然有象XPATH里的东西,这就是著名的apache commons库中包含的jxpath包中所提供的功能,这可以在http://jakarta.apache.org/commons/jxpath/中找到相关...

  • 一切都可以XML?--JXPATH实用讲解

    使用APACHE的东西有个好处,就是简单,符合KISS原则。毕竟是给数万程序员用的,太晦涩了这些大忙人们可没功夫去慢慢琢磨。JXPathContext ctx = JXPathContext.newContext(对象实例);Object value = ctx.getValue(数据的XPATH路径);就这么简单。稍微说明的一点是,如果查询的是Java对象的话,XML里的属性和子节点在这里都被看

  • JXPATH指南

    使用JXPath查询Java对象 —使用XPath表达式语言查询复杂的Java对象树 译者:cleverpig 原文作者:Bart van Riel 原文出处:http://www.javaworld.com/javaworld/jw-03-2007/jw-03-jxpath.html 在近期的一个项目中,我需要一种能够遍历Java对象树并从中提取对象属性值的...

  • JXPath(1.3)的简单示例

    JXPath提供了使用Xpath语法操纵符合Java类命名规范的 JavaBeans的工具。也支持maps,DOM和其他对象模型。.

  • JXPathContext支持迷糊匹配

    看完例子就会了 [code=&quot;java&quot;] public class Person { private String name; private int age; /** * */ public Person() { } public Person(String name) { this.name = name; } ...

  • Apache Commons Jxpath命令执行漏洞CVE-2022-41852

    JXPath 为使用 XPath 语法遍历 JavaBeans、DOM 和其他类型的对象的图形提供了 API。需要在spring环境下运行。该组件已停止维护,未修复。

  • xpath之数组定位

    翻页是常用的功能,写了个demo希望能够帮助

  • JXPath使用实例

    0094/8827/13165d0e-0663-3bd8-9854-56bcca4d3728.jpg[/img] 执行简单的JXPath 查询:   最简单的查询就是从对象树中查找一个对象,例如,要查找公司,用下面的代码: JXPathContext context = JXPathContext.newContext(company); Company c = (Company)context.getValue(&quot;.&quot;);   第一行

  • CVE漏洞研究

    Java漏洞学习

  • 超轻量压缩传输js2java rpc框架(XtZPStream v1.0)

    特点: 1、JS2Java RPC:能够在javascript的web浏览器环境中指定java类,获取该类实例的属性, 调用该实例的方法 2、支持复杂js对象作为入参:能够传递复杂的JavaScript Object对象作为调用参数, 在java中得到对应的Map对象 3、自动压缩、解压传递的数据:调用过程中传递的数据自动进行压缩传输,后台自动解压, 然后转换为Map给开发人员;因此从一定层面上保护、加密了传输的数据 4、JS回调函数中能够接收java返回的复杂对象:java中可以返回复杂的对象, 比如Map、List,在javascript中对应为Object和Array 5、友好逐行数据输出并回调:java中可以将List逐行输出到浏览器中, 框架每接收到一条数据,能够自动回调给定的javascript方法, 从而实现数据流的逐行输出; 该接口继承与“com.ibatis.sqlmap.client.event.RowHandler” 因此很容易将ibatis的数据流逐行输出给浏览器,从而实现非常友好的数据加载方式 6、支持回调全异步(观察者模式):所有的过程调用都采用异步方式, 可以指定回调函数,用来接收返回的对象,并进行其他处理 7、日志回调:L异步过程可以设置日志回调函数,让你掌控全过程

  • jxpath与内存索引

    NULL 博文链接:https://xylong.iteye.com/blog/1845354

Global site tag (gtag.js) - Google Analytics