选择Java还是C#还是PHP?写了10年的代码,给你一个答复

引言》》》》》

很多同学都很困扰一个问题,就是到底应该学习Java还是学习C#?那个更有前途?哪个更有空间?我们主要拿Java和C#两个具有代表行的探讨一下,PHP啊PY啊Node啊,如果你能认真看完整篇文章,你就会发现,这些做不做比较,已经没有多大意义了。

一些废话》》》》》

其实我也是一个新手,从接触程序到现在估计有10个年头了,说到这,大家可能觉得我是个标题党,是的,我可能是个标题党,但是我不是专业的水军,也不是作家,把标题写的这么高大主要是为了让大家进来看看,新人进来看看希望能对迷茫的你有所帮助,大神进来看看,希望大神能对同样是新手的我一点指点。

说是10年呢,其实是很虚的,这包含了高中时期学习Pascal,那个时候根本是门外汉的,根本没有接触真正的程序设计,但是也是从那个时候开始,产生了对代码浓厚的兴趣,对编程世界的向往。程序的世界是一个很有意思的独立世界,它是一个态度严谨的、逻辑清晰的、思维缜密的世界,同时,这也是一个无私的世界,因为它足够庞大、足够强大,所以没有人能完全控制这个世界,我们只有不停的学习、不停的分享、不停的交流,才能更了解它、驾驭它、喜欢它、爱它。

好了,这都是些废话,为什么说我是个新手呢,因为除去单纯的学习的阶段,其实我写代码没几年,所以很多东西我理解的并不透彻,这也让我写一些东西有很多顾虑,并不是怕自己写的不好写的不对被质疑、被骂~~(>_<)~~,而是,我害怕误导很多新手,所以,希望大家一定要带着怀疑的态度、举一反三,对于没接触过的东西做到理解足矣,代码、Demo还是要自己动手做的,不要局限于我写的代码。好了,一味的煽情是很无趣的,让我们来说点正事吧~

我的历程》》》》》

相信很多刚开始接触接触的朋友一定跟我一样,刚开始学的是数据结构、C之类的越学越糊涂,越学越感觉不实用,一开接触Java或者C#突然发现,这才是程序,这才是编程,因为我们能真真实实的看到自己的劳动成果,而不是理论性的东西。而,同样,我们很快就会进入困扰,我们很快就会面临选择,一个感觉会影响自己一生的选择,到底选择Java方向还是C#方向?

探讨》》》》》

那么到底是应该选择Java还是C#呢?如果去网上搜索,会越看越迷茫,有人说Java工资高,有人说C#好上手,有人说Java平台好,有人说C#语言好。越看越不知道哪个好,我们多希望能有一个权威的、多年工作经验的前辈来明确的告诉我Java好或C#好。但是,我们搜遍全网还是失败了~~~为什么呢?因为这是一个没有答案的问题!

我们先来说几个不太合理的例子:

你拿着刀被一个练散打的拿着木棍给抽了,你说是刀子不如木棍吗?(不要纠结于刀的大小和木棍的长短)

你开着奔驰跑不过赛车手开个桑塔纳,你说奔驰不如桑塔纳吗?

新手写的Java跑不过高手写的C#,是Java不好吗?

同样,新手写的C#跑不过Java,就是C#不好吗?

所以,问题的关键不是刀、棍、车或者语言,而是人,人是关键。语言从来不是最总要的,如果非要拿Java和C#比那个好,这就好比让我们回答英语好还是汉语好。因为它本身就没有答案,所以,一直以来没有人给我们一个明确的答案。

Java和C#各有千秋,C#最近不是也在跨平台么(千万别纠结哪个性能更好),语言不是互斥的。这又说到了我们刚开始学的那些无趣的数据结构啊、C啊、汇编啊之类的,人生于自然最终还是回归于自然,当我们在程序世界混迹多年,我们突然发现,我们又回到了那些无趣的课程,程序用的是思维、逻辑和方法,语言只是一个工具,就拿吃饭来说,我们的目的是把饭送到嘴里,至于用勺子还是筷子那都不重要,重要的是喝的是面条还是汤,用勺子更容易实现我们的目的还是用筷子更容易实现我们的目的。

Java平台性兼容好(微软的跨平台也进入日程了),C#拥有宇宙最强大的IDE没有之一,开源的东西有开源的好处,不开源的也有不开源的好处。(开源的好处我就不多说了,网上都是介绍这个的,不开源的框架有强大的资金和专业支持,所以,千万不要感觉,开源就高大上。)

如果你主攻的是Java,当你看C#代码的时候,你会感觉就像亲兄弟,如果你主攻的是C#,当你看Java代码的时候你会感觉好熟悉。所以,在这,我斗胆的告诉大家,选择适合你的!不管是Java还是C#,如果,将来,你的需求需要对方,那么转换其实是很快的,因为你已经接受了程序的思维,这是我们学习编程最总要的,至于语言、语法,这些都是经不起学的,很容易就上手的,请直接抛开你的困扰。

这是我最为一个写了几年代码的新手的一些体会,如果因为无知,说的不合理,说的不对,希望大家指正。

原创文章 转载请尊重劳动成果 http://yuangang.cnblogs.com

时间: 2024-08-04 00:05:23

选择Java还是C#还是PHP?写了10年的代码,给你一个答复的相关文章

java多媒体文件编码要怎么写,处理工具类代码实例详情介绍

这篇文章主要介绍了java多媒体文件编码 处理工具类使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 引入 <dependency> <groupId>org.apache.storm</groupId> <artifactId>storm-core</artifactId> <version>1.1.0</version> </dependency>

学习java窗口基本操作时无聊写的

学习java窗口基本操作时无聊写的 就当记录 代码如下: package day08; import java.awt.BorderLayout;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout; import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;

写可測试的代码

写可測试的代码 不论什么一个软件都是能够測试.在某种意义上,用户的使用过程也就是一个软件測试的过程.但是这并非我们今天要讲的可測试性.我们讲的可測试性指的是代码的可測试性,通俗点儿说就是是一串代码里包括的逻辑是不是能够被单元測试所覆盖.在这篇文章里我会从单元測试的基本概念開始引伸到怎样写单元測试,怎样写可单元測试的代码.文章里全部的样例都是C#写的,一来它是我职业生涯的主力语言.二来C#广为人知,相信对广大职业的或是业余的程序猿来说读懂C#的代码不会是什么特别困难的事情.实际上我描写叙述的方法和

关于单元测试,如何写出可测试的代码?

单元测试在一个完整的软件开发流程中是必不可少的.非常重要的一个环节.通常写单元测试并不难,但有的时候,有的代码和功能难以测试,导致写起测试来困难重重.因此,写出良好的可测试的(testable)代码是非常重要的.接下来,我们简要地讨论一下什么样的代码是难以测试的,我们应该如何避免写出难以测试的代码,以及要写出可测试性强的代码的一些最佳实践. 什么是单元测试(unit test)? 在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进

老菜鸟致青春,程序员应该选择java 还是 c#-

致青春 还记得自己那年考清华失败,被调剂到中科大软院,当初有几个方向可以选,软件设计.嵌入式.信息安全等等,毫不犹豫地选择了信息安全. 为什么选信息安全?这四个字听起来多牛多有感觉,我本科是学物理的,记得做一个光学实验的时候,一个老师看我做的结果,说,学物理不是什么人都可以的,这个是需要一点智商的. 好吧,当初其实并非对我一个人所说,但我确实感觉到受到了鄙视,同时,我没有任何在物理上的精湛技艺可以反击我的老师. 由于整个大学期间,我都在沉迷游戏和小说,以至于辅导员说,现在找你都得预约. 而我的同

论“java程序员的进阶路途”如何做到少走弯路,多写正确有意义的代码。

首先说明一下我为什么会去思考这个问题.本人离开学校也有一段时间了,经过了几场面试几次临时抱佛脚还有遇到的种种问题之后,社会告诉了我,如何做到少走弯路?如何让自己在何时去写合适的代码.其实在我看来这是每一位程序员都会去思考的事情. one:"如何让自己少走弯路" 一个伟大的程序员或者架构师再或者一个cto,如果你想问他们怎样让自己快速的进步?他们如一的告诉你,"累代码":对,对,讲的对!一名合格的程序员就是从简单的代码积累进阶的. 可是如果一名程序员重复的代码永远就是

【Java学习笔记】如何写一个简单的Web Service

本Guide利用Eclipse以及Ant建立一个简单的Web Service,以演示Web Service的基本开发过程: 1.系统条件: Eclipse Java EE IDE for Web Developers Java SE 6 Windows XP 2.基本环境搭建: 1)Java SE6 JDK的安装:下载Java SE6 JDK,双击,安装默认选项进行安装即可. 2)Eclipse的安装与配置: 安装时直接解压.     配置处有两点,Window>Preferences>Jav

Java中的class一旦写好就很难动态的去改变了

iOS开发中的小伙伴应该是经常用der和p12进行加密解密,而且在通常加密不止一种加密算法,还可以加点儿盐吧~本文章主要阐述的是在iOS中基于openSLL的RSA加密.一共有两种方式,一种是基于p12加密解密的,还有一种是博客园官方提供的公钥字符串加密的,其实两种都差不多,只不过在iOS中支持crt格式的加密,其实也是一样的吧~下面就来看看两种加密的应用. 在上一节中,我们成功将数据从前台的JSP页面传递到了controller层,但是还没有写service层,老实说还有很多工作没有,尤其是和

当用hibernate reverse engineering而无法选择java src folder时的解决方法

当用hibernate reverse engineering而无法选择java src folder时的解决办法 要么是该工程已经支持了hibernate特性,而.project文件中没有添加该特性的说明,要么就是该工程没有添加hibernate特性. 我用的是MyEclipse5.5.1的开发工具,没有采用MyEclipse的Hibernate工具去自动生成实体类,而是手工自己编写hibernater的配置文件.只可惜当采用Hibernate Reverse Engineering去生成实体