阅读更多

1顶
14踩

编程语言
众多语言摆在菜鸟程序员的面前,致使许多菜鸟程序员在选择自己第一门要学习的语言时常常面临困惑。那到底选择哪一门编程语言吗?下面一位国外朋友从各流行编程语言的优势、开发环境配置等方面进行了简单对比,给出了相关建议。

了解各语言的长处

“尺有所短,寸有所长”。每个编程语言都有自己擅长的领域,有的适合建站,有的适合文本处理……所以到底如何什么样的编程语言,我们还需要具体问题具体分析,发挥每个语言自己的优势才行。

让我们大体看下几个语言的常用领域:

语言
常用领域
Java 编写跨平台应用
C# / .Net            开发Windows应用、iPhone应用                    
PHP Web程序后端
Javascript网页设计
Python 系统管理、自动化运维、科学研究
Ruby 大型Web应用开发
Perl 适用于大量文本处理
Bash 用于Linux下的自动化工作
C/C++ 大型项目、嵌入式开发


上面列举的语言都可以完成一些其他语言擅长的工作,但可能要花费更多的时间与精力才行。

了解各语言的语法细节

目前全球共有几千种语言,每个语言也都有自己的语法规定,这和编程语言是一样的。比如,英语和日语语法相差千里,但法语与西班牙语语法则类似。我们先通过下面几个例子,来了解下几个语言的语法细节,以输出“Hello World”为例:

#!/usr/bin/perl
print “Hello World.\n”;

#!/usr/bin/python
print “Hello World\n”

public class Hello1
{
public static void Main()
{
System.Console.WriteLine(“Hello, World!”);
}
}

public class HelloWorld {
public static void main(String[] args) {
System.out.println(“Hello, World”);
}
}

我们可以看出,Perl和Python语法很接近,C#与Java的语法很接近。很多语言在设计之初就参考了其他的同类语言的语法,比如,Python就大量借鉴了C语言,Python的命名规则、部分关键词与C语言是一样的。所以,如果你学习了一门语言,其他类似的语言也就很容易上手了。

开发环境配置

本文中提到的一些例子,在Linux下的开发环境都很容易进行配置。比如Python,目前大多数Linux发行版本都默认安装了Python。之前C#只能跑在Windows平台上,不过现在也可以借助Mono项目来在Linux下运行。但相比起来,在Linux下配置开发环境更加简单一些,很多只是一条命令就可以解决。

语言
Windows平台安装
Ubuntu系统安装
Ruby Rubyinstaller apt-get install ruby
Python 2.7 Activepython apt-get install python
C#/.Net VisualStudio -
JavaJavase apt-get install openjdk
C++VisualStudio              apt-get install build-essential gcc              

流行度比较

我们可以在编程语言排名网站TIOBE.com上来查看最近的编程语言排名。下面是排名前10的编程语言:




选择

如果你:
  • 一个Windows用户,想要编程:可以学习C#/.Net,轻松写出图形应用,同时也可以在MSDN上找到很多学习资料;
  • Linux用户,想要完成部分自动化工作:可以学习Python,适合初学者。
  • 搭建网站:那学习JavaScript和PHP吧!
部分菜鸟程序员可能已经开始了某个语言的学习,但如果你发现正在学习的编程语言不适合你,就可以考虑学习下其他语言,慢慢找到适合自己工作和个性的语言。

原文:Choosing Your First Programming Language
  • 大小: 40.3 KB
1
14
评论 共 17 条 请登录后发表评论
17 楼 yettie 2013-12-10 14:58
给菜鸟的建议:如何选择第一门语言;
你翻译这个时候能不能想想,给菜鸟的建议?
我觉得文章够菜鸟了;
毫无参考意义;

用分号结尾,希望你不要执行出错;
16 楼 kidneyball 2013-12-10 11:06
tuhaihe 写道
baukh789 写道
小编,毁人不倦啊

这里,给大家道歉。
个人软件开发知识粗浅至极,给各位造成的误导表示抱歉。个人将在以后努力学习,提升自我的业务能力。

再次表示抱歉。


道歉个屁。不就是不同意见要踩场子么,偏偏要给人套个“误导新人”的帽子,找个道德制高点。其实最误导新人的就是这种到处说别人误导新人的做法,好像是当年那帮前盛大创新院的喷子们的套路吧。说得好像新人不用自己思考,找对了人来信就行了。当然信别人那是被误导了,信我的才是正路。
15 楼 lyjilu 2013-12-09 20:35
其实我很想知道,点那个顶的人,是不是小编自己?还正式记者。。。
14 楼 tuhaihe 2013-12-09 13:55
baukh789 写道
小编,毁人不倦啊

这里,给大家道歉。
个人软件开发知识粗浅至极,给各位造成的误导表示抱歉。个人将在以后努力学习,提升自我的业务能力。

再次表示抱歉。
13 楼 baukh789 2013-12-09 13:16
小编,毁人不倦啊
12 楼 schweigen 2013-12-06 17:44
内容错误百出,这文章还上了首页,太夸张了吧?
11 楼 Vity 2013-12-06 11:18
有几项严重误导各种新人。。这帖子也能上首页?
10 楼 ad6543210 2013-12-06 08:05
引用
但如果你发现正在学习的编程语言不适合你,就可以考虑学习下其他语言,慢慢找到适合自己工作和个性的语言。

結論,除了這句以外都是廢話
9 楼 BuN_Ny 2013-12-05 15:55
guokwei 写道
指导意义不强,误导作用明显

指导意义不强,误导作用明显
8 楼 eisenwolf 2013-12-05 11:45
学Java提升最快,源码大海读起来很爽有木有……
7 楼 zhukewen_java 2013-12-05 10:25
最后一句:搭建网站:那学习JavaScript和PHP吧!完全是扯
6 楼 guokwei 2013-12-05 10:08
指导意义不强,误导作用明显
5 楼 1927105 2013-12-05 09:41
一看小编就是非IT专业人士,呵呵。
4 楼 guokwei 2013-12-05 09:20
指导意义不强,误导作用明显
3 楼 yixiandave 2013-12-04 23:40
几个语言的常用领域我就呵呵了。。。。

Java,更多的是Java EE开发,企业级别的大型应用。包括分布式系统、各类中间件以及网站后台等,真正用Java做跨平台桌面应用的已经很少了

C#/.net 是微软搞出来的类似Java的玩意,当然现在两者各有千秋。C#开发Windows平台的桌面应用也非常方便。和iPhone应用一毛钱关系都没有,iOS的开发语言是ObjectiveC

JS也不是网页设计,网页设计是HTML+CSS,JS提供了网页动态交互的支持。另外借助Node.js也可以用于开发网站后台

PHP定位算比较准,除了做网站后台没发现别的地方在用。

Bash就是Linux下的命令行,可以用来写批处理,也可以直接作为工具使用。如果长期要和Linux打交道那么良好的Bash功底是必要的

其他的我自己也了解不深,不妄加评论
2 楼 DreamRoute 2013-12-04 22:11
看上去还不错,不过个人认为有些地方太片面了,可能会造成误导新人。
1 楼 ykssky 2013-12-04 21:25
毫无指导意义的烂文

发表评论

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

相关推荐

  • 子类父类覆盖关系

    因此,对于不同的子类对象调用子类方法时,会从子类方法表中,查询该方法的地址,如果子类覆盖父类方法,那么对应的方法的地址也被修改了,进而实现多态。   参考文章: 1、...

  • 禁止 Python 子类覆盖父类方法

    当实现我们自己的父类Animal的时候,由于meta.has_base为 False,所以不会触发检查逻辑。但当我们基于Animal实现Dog子类的时候,由于meta.has_base是True,...Python 原生是没有提供禁止子类覆盖父类的方法的功能,因此

  • public、protect、private在父类子类中使用

    先贴出一张,直观的、估计大家都见过的关于public、protect、private的范围图 作用域 当前类 同一package 子孙类 其他package public T T T T ...

  • 为什么子类中不能访问另一个包中父类中的protected方法?

    其实这个问题问法是错的,在子类中是可以访问另一个包中父类中的protected方法,能问出这样的问题,多半是在不同包的子类中创建了父类对象,通过父类对象去调用protected方法,结果发现编译不通过,所以才会萌生这样...

  • 17.子类重写权限不能低于父类权限,重写接口方法必须用public修饰

    这是因为,实现接口的类必须提供一个实现了接口中所有 public 抽象方法的具体方法...接口中的方法默认都是 public 抽象方法,因此,实现接口的类中对于接口中的方法只能使用 public 访问修饰符来覆盖(即实现)该方法。

  • JAVA学习:继承(上)

    文章目录一、继承二、重写与父类子类区别1、使用继承2、子类访问父类成员3、不能继承的父类成员4、访问修饰符5、继承后的初始化顺序6、子类的特性信息三、多种封装关键字对比封装的关键字四、抽象类与抽象方法 ...

  • php 子类调用父类变量,php – 从父类访问子类静态变量?

    因为您使用PHP 5.3,您可以使用late static binding在运行时解决对正确类的静态调用.class base_class {public function doSomethingWithReference(){static::$...}}class extended_class extends base_class{protect...

  • Java中父类和子类中的方法调用和参数传递探讨

    2、如果子类继承了父类的成员变量(前提是可以继承public和protected),而子类没有显示覆盖该成员变量,那么子类访问到的成员变量和父类访问到的成员变量是同一个变量。任何一个修改后都会影响到另一个。 3、try...

  • Java中父类和子类中的方法调用和参数传递总结

    2、如果子类继承了父类的成员变量(前提是可以继承public和protected),而子类没有显示覆盖该成员变量,那么子类访问到的成员变量和父类访问到的成员变量是同一个变量。任何一个修改后都会影响到另一个。  3、...

  • java 访问权限修饰符 和 子父类

    父类方法中的功能,不能满足子类中的需要,可以将父类中的方法在子类中重写。Java之中只允许多层继承,不允许多重继承,Java存在单继承局限。在类中可以加入extends关键词将 (类1)继承(类2)(修饰内部类,方法...

  • 关于SpingAop切面拦截的问题 protect方法代理问题

    cglib是子类,private的方法照样不会出现在子类里,也不能被拦截。 我不是类内部直接调用方法,而是通过维护一个自身实例的代理 execution(* test.aop.ServiceA.*(..)) public class ServiceA { private ...

  • java protect 继承_java继承覆盖与向上转型,权限

    子类可以覆盖父类的非final成员变量和重写非final方法private私有变量和方法只能在类的内部使用,因此子类继承的同时会被隐藏,相当于不继承protected变量,子类可以继承调用方法被覆盖,方法中的成员变量来自子类,上...

  • java子类方法的重写规则

    例如:如果父类的一个方法被声明为 public,那么在子类中重写该方法就不能声明为 protected。 父类的成员方法只能被它的子类重写。 声明为 final 的方法不能被重写。 声明为 static 的方法不能被重写,但是能够被...

  • Java继承方法方法的覆盖重写(Override)及注意事项

    重写(Override) override翻译:(以权力)否决,推翻,不理会;比…更重要;凌驾;...方法的覆盖重写特点:创建的是子类对象,则优先用子类方法 覆盖重写(Override)方法书写的注意事项: 1、根据概念我们可.

  • Java- - -方法重写/覆盖(override)

    简单的说:方法的覆盖(重写)就是子类有一个方法,和父类的某个方法的名称、返回类型、参数一样,那么我们就说子类的这个方法覆盖了父类的方法。 构成重写的条件: 1.子类的方法的形参列表,方法名称,要和父类...

  • Java学习笔记之继承

    子类继承父类的属性和行为,并增加他自己新的属性和行为。 继承是一种由已知的类创建新类的机制,利用继承可以先定义一个共有属性的一般类(People,name&age),根据一般类再定义具有特殊属性的子类,子类继承...

  • 继承

    1. 概述 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个...继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。

  • java之子类与继承

    一、子类与父类 Java不支持多重继承,即子类只能有一个父类 1.子类 通过使用关键字 extends 来定义一个类的子类。...1.子类和父类在同一个包中,子类可以继承不是private的成员变量和不是private的方法,继承的成...

  • 虚函数的缺陷-子类可以继承父类的私有虚函数但是只能访问父类的public变量

    子类可以继承父类的私有虚函数-因为只是方法不是变量 子类 class WeatherBase { private: virtual void init(); } class Rain : public WeatherBase { private: virtual void init(); } 一个成员函数被定义...

  • 基于万能逼近原理的自适应模糊控制算法在多自由度AUV运动控制中的应用与抗干扰补偿Simulink仿真研究,自适应模糊控制算法的万能逼近原理与多自由度AUV运动控制的抗干扰补偿技术-基于Simulin

    基于万能逼近原理的自适应模糊控制算法在多自由度AUV运动控制中的应用与抗干扰补偿Simulink仿真研究,自适应模糊控制算法的万能逼近原理与多自由度AUV运动控制的抗干扰补偿技术——基于Simulink的仿真研究,万能逼近原理自适应模糊控制算法的多自由度AUV运动控制抗干扰补偿simulink仿真 ,核心关键词:万能逼近原理; 自适应模糊控制算法; 多自由度AUV运动控制; 抗干扰补偿; Simulink仿真。,基于万能逼近的模糊控制算法多自由度AUV抗干扰补偿Simulink仿真

Global site tag (gtag.js) - Google Analytics