C#、C++、Java、Python 编程语言选择哪个好?

C#、C++、Java、Python 编程语言选择哪个好?

一个好的程序员不能把自己绑定在一种语言上,不能把自己就定义为JAVA程序员,C#程序员,等等。语言没有高下之分,只有适用的场景。好的程序员,应该有很快学会一种新的语言,并解决实际问题的能力。在我二十年的程序生涯中,有过不止一次,因为项目,一两天学一种语言的基本语法,然后边Google函数和库用法,边完成项目,然后项目完成后就扔一边的经历。

一名优秀的程序员,永远绕不开这些东西东西:

  • 计算机组成原理
  • 算法与数据结构
  • 软件工程
  • 程序语言理论课
  • 操作系统原理
  • 数据库原理
  • 学习能力
  • 编译原理

语言只是工具而已


C#、C++、Java、Python 编程语言选择哪个好?

基础功夫打好,以后随便什么语言都可以乱拳打死老师傅

工作这么多年,正式项目用过的语言有: Pascal/Delphi,dBase/FoxBase,FoxPro,VB,VBScript,JavaScript,COBOL,C/C++,Lua,Python,Java,C#,各种数据库的SQL。

最早学的是Pascal,大学里面学数据结构用的,毕业以后用delphi写了一个小项目,然后再也没有用过。

dBase/FoxBase也是学校里面学数据库的时候教的,然后毕业以后用的是FoxPro,也是做了一个小项目,后面基本就没用了。

VB/VBScript作为主力语言,从1998年用到2002年,对,那时候做ASP。也用VB写过还算有规模的EXE的项目。至今书橱里面那本《VB5金典》依然保佑一席之地。VB做快速开发真的很好用。然而http://VB.Net就压根没看过。那已经不是VB了。

我认为,语言没有高下之分,只有应用场景之分。作为一个技术决策者,拿到任何一个项目,首先第一个考虑的,不是怎么做,而是用什么做。如果你拿到的是一个Web项目,我认为,在很多情况下,JSP、PHP、ASP.Net甚至Node.js基本上都是等价的,应该都能够很好的完成项目的开发,选择什么技术开发,看自己所拥有的资源禀赋和具体情况。如果手下一帮弟兄都是搞Java的,当然JSP啊,如果手下小弟都是做C#,当然ASP.Net啊。当然,项目有特殊要求的除外,比如,如果甲方是银行,那估计就没法用ASP.Net了,如果是有客户端的项目,当然C#+WinForm啊,如果是做安卓,当然Java啊。


但作为一个好的程序员,应该至少会三种以上语言

C#、C++、Java、Python 编程语言选择哪个好?

这样你能够充分接受不同语言的风格,更关键的是你会去关注不同技术社区的讨论,开阔眼界,对编程的本质会有更深刻的体会,然后你会觉得,看任何语言都是差不多的。我经常对公司的技术人员讲,要用Java的编程思想来写C#的代码。这是不同技术社区的风格体现出来的。在Java的社区,你能看到更多的对模式、框架的讨论,而微软虽然自己做的东西很讲究模式和框架,但似乎更喜欢做好一堆全家桶给你,让你去做快速开发。


写程序,关键的是解决问题的思路,而不是语言本身。对语言来说,无外乎语法,函数,类库,现成的框架这些东西,这些都是“术”,而你对数据结构,设计模式,系统架构,计算机原理这些东西的理解,才是“道”。

打个比喻,你这个问题就好像武侠中一个刚拜师学艺的江湖人士,问:刀枪剑戟,我学什么比较好?真遇到高明的师父,会说:去打坐、练好吐纳心法。刀枪剑戟什么的都不急,先把内功练好。

你看看江南七怪手里的郭靖和遇到马道长之后的郭靖就明白了。练好了内功,拿条毛巾都能无敌天下。

不过,话说回来,真正的绝顶高手,哪个不是十八般兵器样样精通的?所以,要成为你想成为的那个挺厉害的人,这些你早晚都得会。然而,在那之前,学好数据结构和算法,会事半功倍。

Java和Python

C#、C++、Java、Python 编程语言选择哪个好?

当然,没有一种语言,空学数据结构和算法什么的也是无稽之谈。从这一点讲,Java 和Python可能会适合一些。

没有哪个语言好哪一个不好,都有自己的特点。如果只是刚接触要用到工作上面,那么非常建议学好Java 和Python或者C++,C++只是在C的基础上面做了一些扩展,而且经验丰富的程序员会选择C 而不是C++,C++确实要麻烦些。C#呢对个人来说应用面还太窄,远不如Java的面广,库也不如Java的多。


我们最后来谈谈Java和Python,从Java 开始那么就会接触到分布式、多线程、垃圾回收、web网站开发、spring 框架、andriod 开发、大数据、人工智能等一系列。所以前景肯定是不错的。学得好,自然容易飞黄腾达。

Python呢和Java比用起来就顺心多了,学会后会感觉自己从道士变为了神仙,功力大增。人工智能是未来的趋势,而Python 做完官方的语言,做人工智能会有很多优势。想往人工智能方向发展的那么久选Python,当然也是以后比较挣钱的行业,选了不后悔,不选后悔一辈子。

Python的优势还是很明显的,我认为它的整个生态还会活跃相当长的时间。C++是一种高效的语言,但是涉及到了太多的内存管理的内容,比如里面涉及到了指针的操作,这对于非计算机专业的同学就非常不友好。C#和Java从“形式”上是非常相似的,首先和C++一样他们都是面向对象编程的语言,再着它们都有非常友好的IDE环境,功能丰富。但是它们的体系都略显厚重,老实说不是很适合跨界的同学。Go在服务器编程方面是有优势的,但是仍然是刚刚说的那些问题,它的生态不如Python这么丰富。

只要有对数据的需求(数据抓取、数据分析、模型部署)在,那么Python就会一直火下去。

语言的发展都是从底层慢慢往高层发展的,从具体到抽象的。这个也是适应现代的发展需要,所以选着抽象程度高些的语言自然可以容易编写出更高层的东西。


分享到:


相關文章: