初学编程,选择java好还是C#好?分别能从事些什么工作?

嫉妒与傲慢


从事嵌入式开发多年,主要玩过三种编程语言,java,C/C++三种,C#也用来设计过桌面测试工具,整体来讲使用的企业和程序员相对java还是少太多了,现在java稳稳的第一编程语言,生态圈子根深蒂固,初学编程如何选择编程语言,也需要遵守一定的规则,选择上要尽量靠近主流语言,也不要太前沿虽然前景很不错,但是企业实际的需求还不是那么旺盛,所以选择上不能走了弯路,以个人的经验看选择java相比C#更加靠谱点,当然如果对于C#这门编程语言非常的感兴趣,那就不要考虑市场方面的因素了,毕竟兴趣能让人产生更多的动力。

现在根据个人的一些经历说下这两种编程语言能做些什么工作,java这门语言的涉猎非常广泛,主要在app开发,web后台,大数据等等领域都有着非常大的就业空间,目前开源社区最活跃的编程语言当属于java了,可以在招聘网站上查看最火的编程语言java当仁不让的第一名,但是现在java入门的门槛相比之前的确提升了许多,之前很多机构培训三个四月就能轻松找份java的工作,放在今天已经是不怎么可能的事情了,主要现在每年有几十万人加入到编程的行业,加上之前总的程序员总数量已经有几百万的数量存在了,不仅仅是java,整个软件行业的门槛都提升了,所以没点真材实料很难找到合适的工作,即使现在java这门编程语言非常的火热。

C#当初就是微软拿来对抗java的编程语言,这么多年过去了,还抵不过java,但这门编程语言在实现上位机软件以及在开发服务端后台方面还是有着独特的优势,虽然就业的岗位么有java那么多,但总体数量也不少,总的感觉这门编程语言是在走下坡路,最近几年微软好像醒悟了一般,在各个层面在迎合开源社区,收购github等等都在全方位的向开源靠拢,市值也是重新赢来了爆发机会,从个人角度考虑还是觉得C#开发上位机软件还是非常不错,有些界面性的功能可以直接使用工具包拖拽效率非常高,不太建议作为编程入门语言,毕竟后续的生态链不是那么有前景了。

很多初学者对于python和go语言都有着不错的印象,个人觉得还是有点超前,实际的招聘岗位对于这两种语言用的还是相对比较少,但是现在很多机构在宣传上的气氛,俨然这两种编程语言已经成为第一主流的编程语言了,所以在选择编程语言的时候,直接去招聘网站上看看到底谁占比高,不排除未来这两种编程语言会有一个非常好的发展前景,但学完了就要吃饭就要养活自己,不能学完了没有企业需要这种编程语言,时间长了学到这点理论知识很快就忘光了。

有一定的编程经验之后就会发现,编程语言只是工具一般的存在,熟悉掌握了一种编程语言之后再去搞别的就会方便很多触类旁通,当然要达到这种境界需要时间,需要长时间的磨练。

希望能帮到你。


大学生编程指南


先来说一说Java和c#的一些语言细节上的区别。

第1个方面是数据类型方面。

c#支持nullable数据类型,而Java不支持。

c#支持指针类型,而Java不支持。

c#支持无符号整形型,而Java不支持。

c#支持tuple类型,而Java不支持。

c#支持值类型,而Java只支持原始数据类型的值类型。

c#支持多维数组定义,Java不支持。

第2个方面是面向对象特性。

Java支持内部类嵌套定义,c#不支持 。

c#支持匿名类定义,Java不支持。

Java支持枚举类型的接口实现,c#不支持。

c#支持运算符重载, Java不支持。

c#支持索引属性,Java不支持。

c#支持Properties, Java不支持。

c#支持引用和输出参数类型,Java不支持。

c#支持Partial method, Java不支持。

Java支持编译异常判断,c#不支持 。

这两门语言具体语言细节上的不同还有不少,这里就不一一列举了。

再来说一下这两门语言在具体应用中用途上的区别。

c#支持如下的应用:

首当其冲的是传统桌面系统开发,得力于开源项目的大力推动,以及近年来微软的觉醒, c#桌面系统的开发, 已经包含了各种平台,诸如windows Linux和苹果系统。

其次就是手机系统的开发。从最开始的mono droid, mono iOS到现在的Xamarin。如果你懂c#,就可以做安卓手机开发以及iOS手机开发了。

再次就是游戏的开发。Unit3d的编程语言之一是c #。

最后一个也是越来越热门的,就是后端的开发asp.net core。这门跨平台技术,可以让开发者在不同的操作系统上开发后端。

在此之前,微软的ASP dot net mvc也是一门很主流的后端和前端结合的网络平台开发技术。

类似的Java支持如下的应用:

第1个桌面系统应用。因为Java本身被几乎所有的操作系统所支持,所以Java的桌面应用用途也非常广泛。

第2个Java也支持手机系统的开发,从最开始的j2me, 到后来的安卓开发, Java一直是手机系统开发的一门主流语言。

第3个和第4个是Java支持庞大的spring家族系列。从最开始的spring mvc, 到后来的spring boot. 这一点跟c#有点类似。在网络程序开发这一部分可以说不相伯仲。

总的来说,

从使用的广度上来说,c#占一些优势,

从开发者的绝对人数上来说,java占一些优势。

从语言的角度本身差别不是很大。



丁哥开讲


首先,你的定位是什么?你学java或者C#是用来做什么的?单从语言角度来看,两者大同小异,学习难度也差不多。

1.如果你是想在Windows 下写桌面程序,你可以用c++或者c#来写,c#可以说是首选。刚开始我们可以学习winform编程,写一下工具类程序或者管理系统软件之类的,慢慢的对程序界面有追求可以学习wpf编程,需要熟练运用xaml。接下来我们可以学习ASP.NET,用来编写网页程序,还有至少得熟练运用一门数据库,比如mysql, sqlserver

2.做移动开发,比如安卓,常见的那些手机app,做网页后台开发,服务器开发,嵌入式软件开发(目前流行自动购物柜机、玩具等等)再比如做一些大型的管理系统(公司人事管理系统、餐饮管理系统等等)或者具体一点比如是购物网站这些,那首选java,再配合JavaScript ,当然这些都离不开数据库

当然了,随着你学习的深入,你会发现c#也并不是不能做java能做的那些事情,c#现在有了.net core可以开发安卓或者苹果系统的app,只是各有所长而已。


路马编程


我既为推动.NET技术栈,当然建议选择C#。

自.NET Core发布以来,C#开始跨平台且开源时代,源码公布在Github上。.NET的确在前期由于诸多限制,生态不及JAVA,但是以.NET Core的布局来看,2020 C#将会开始崛起之路,2月份语言排行榜,C#上升明显,增长率3.08%,特别是云原生时代的到来,.NET Core所赋予的C#的魅力将在2020年充分展现,还有排在第六的VB.NET正逐步转换为c#,VB.NET + C#的总份额是超越 Python的,位居第三 。

编程语言的热度也是市场的一种反应,比如2015 年 因为 Andriod 的大爆发,Java 成了年度编程语言;2018 年人工智能大热,Python 直接飙升到排名第三。

众所周知,TIOBE指数并不代表语言的好坏,而大家对趋势如此感兴趣是因为担心会错过某些新技术。

相比较Java着重于企业级程序,C# 在应用领域上更具吸引力,它更像个“多面手”,囊括了桌面程序、企业应用、游戏、数据分析、人工智能、开发、测试、运维等领域。




dotNET进阶之路


01 现状

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。它能开发Windows桌面应用程序、Windows Store应用程序、Web应用程序、WCF服务等。

但是目前来说,在Web端、大数据等领域,Java有非常成熟的框架和解决方案;在移动端,原本可以用于Windows Phone,但随着其没落也没了踪影;如今Android已经成为世界上使用最多的移动操作系统,而Android正是使用Java进行开发。

技术方面

C#底层不开源,如果你使用C#,虽然C#本身也不收费,但它运行的平台——Windows是收费的;而且IDE——Visual Studio收费,其他辅助工具,如SQL Server、SharePoin等都要收费。

但Java是开源且免费的,经过这么多年的发展,它现在已经很完善,也拥有了大量质量可靠的第三方库,根据需要开箱即用,具有很高的开发效率。并且Java拥有很多杀手级应用,如Spring,Apache、Android,Hadoop,Spark等。最重要的,Java在不断的进化,并且在慢慢的进化。

如何选择

从上手难度上来说,C#会容易一些。但我建议你从长远发展考虑,选择并学好Java。无它,因为有庞大的而完善的生态系统。而且Java本身上手也简单,它的语法并不复杂。语言各方面比较均衡,拥有最值得信赖的GC,避免很多码农的低级错误。并且天生的面向对象设计,更容易模块化开发。再加上Java强类型静态语言,只要框架已搭好,即便开发人员能力不足,也基本能保证代码质量,这在大项目的协作开发、维护方面很有优势。

要说Java能从事的工作,其实有很多,从现在的形势来看,主要用于后端服务器和Android,当然也可以做大数据方向。具体可以在智联招聘、前途无忧等招聘网站上细看。


以上就是我的一些拙见,希望对你有帮助。


光聊科技


这两个现在都属于成熟的语言,已经不能像以前学习三板斧就能拿到高工资了。都是需要经过几年积累才行的。正如c需要十年,Java现在需要四年积累。

现在比较好的方向是手机APP(安卓和iOS开发),微信小程序(阿里轻应用),物联网这类属于比较有钱景。这些还属于开拓阶段,只要积累个两年就能拿Java四年的工资水平了。

物联网属于刚开始,但未来肯定会爆发是否走物联网取决于你的家庭条件,没经济压力的可以考虑毕竟需要熬很长时间。

当然还有大数据和人工智能,这个Java也能用上,但是Python会用得更多,但是重点是数学底子有要求,高数,线性代数,概率都要熟悉,否则后续学习算法会很头大的。

在两款里面选Java会比较有前景,工作肯定是开发了。对于没应届毕业和非软件行业,咬咬牙找一下正规培训机构(黑马培训,北大青鸟之类)培训一下让人家推荐一下工作比自己摸索可以快个半年。如果足够上进持续学习三年后进阶高级开发还是有点希望的。


heipi雪人


本人搞过2种汇编语言,还有basic,C,VC++,VC#,Asp. net Form及Mvc. 就是没搞过java..年龄现在54了,不能再学语言了。所有的重点是关注产品的功能及客户的体验,技术是灰色的,产品技术不一定是最好的,一个好产品跨越很长的开发升级时间方可体验到位,此时里面的技术可能已经淘汰了。所以,多研究产品。


格码顶端编程


1、网络开发和web应用

java这方面的功能特别强大,各种优秀的开源框架层出不穷,对于做大型网站,java具有独特的优势,而且网络这块做分布式计算也做的非常优秀。这个也是目前java的主要应用场景。

2、移动端的应用

这个不用多说,android就是用java开发的,就是因为其跨平台的特性。

3、桌面应用程序

这个来说一般般,现在桌面应用程序貌似很少用java写的,但是确实可以写出像QQ、迅雷那样的桌面应用程序。

再来看c#的:

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。其实主要做桌面应用与网络,由于是微软发明的,所以天生的就对windows有着兼容性。

以上就是我的理解,希望能够对你有所帮助,欢迎随时与我交流!


半核CPU


两个都开源,c#语法更时髦一点,环境也简单,就业也还可以因为人比较少,如果就是想写写小程序,那肯定c#好一些,毕竟直接生成exe,双击就跑了,当然linux环境下就和其他的差不多了。

java就业钱比c#多,企业也多,但人也多,所以感觉差不多。java环境比较碎,个人学的话不好弄,但上限高,毕竟资源多,但前提是你得能学到那一步。自己写着玩的话比.net麻烦一些。


hoek


其实他们的写法用法很相近,学一个把另一个补一下就行,Java生态圈大并且稳固,很适合职业发展,C#的话虽然圈子小点,但能力绝对的强劲,比如EXCEL的插件,桌面级应用,在日常的办公中能起到很大的作用!但是就是平台的局限性有点大,不像java那么通用…


分享到:


相關文章: