C#语言简介-程序员宅基地

技术标签: C#开发语言简介  什么是程序  编程学习路径  编程语言选择  深入浅出笔记  为什么需要查询  

什么是程序(Program)

程序也叫软件

程序也叫软件,是跟硬件相对的,硬件相对好理解,就是我们桌上的计算机或是手中拿着的手机,我们都知道,计算机具有一定的运算能力,但是你要想让计算机释放出来它的运算能力,靠人的语言是不行的,你用人的语言和计算机说,你帮我创建一个文件夹,打开一个文件,这样计算机是听不懂的.那想让计算机帮我们做事情就需要用计算机能听懂的语言,那计算机能听懂什么语言呢?

0和1

计算机能听懂的语言是一种电子化的语言,用我们人类的字符把这个电子化的语言表示出来,就是一串串0和1这两个字符组合出来的指令,0代表电子元件的关闭(非)1代表电子元件的开启(是),一串串0和1组成的指令,然后把些指令形成逻辑交给计算机,然后计算机就能帮我们执行了,这就是最原始的程序
在这里插入图片描述

为什么要有汇编语言

但是随着我们程序的功能需求越来越多,人们发现用0和1去编写指令去让计算机去执行这样的效率非常低,因为这样无论是从阅读啊,维护啊,还是除错这方面来讲的话,这种程序都非常困难,而且需要有专门的知识储备,然后人们就想办法,既然指令是这样不会变的,那我们可以拿一些人类能看懂的单词来代表这些指令,我们就可以使用人类好理解的单词来编写,然后再用一种特数的程序翻译成计算机能看懂的指令,这就是汇编语言

有了汇编语言为什么还不够吗?

汇编语言虽然人能看懂了,但是汇编语言用起来还是有些别扭,因为汇编语言是和计算机的指令一一对应的,所以虽然写的人能看懂,但是语言还是得对应计算机比较蹩脚的指令逻辑
后来人们就更进一步,我们能不能再开发一种更加贴近人类思维和人类语言的高级语言,然后拿这种高级语言来写程序,写完之后再把他翻译成计算机能看懂的指令,然后高级语言就有了(果然偷懒才是最大的生产力驱动)

这就是程序

把高级语言翻译成计算机能看懂指令这个过程叫编译,执行这个过程的是一种特殊的程序叫做编译器,我们把高级语言放进编译器运行,转换成计算机能读懂的指令,这就是我们现代的高级语言编程,这就是我们的程序了

为什么需要程序

我们需要程序是因为我们需要计算机释放它的运算能力,但这只是最初的目标,现在我们知道计算机的功能非常强大,它除了能告诉你1+1=2这种数据运算,还拥有很多其他的功能,比如说听音乐,看视频,或是玩游戏,随着硬件的算力原来越强大,我们就需要更强大的软件来同意管理我们的硬件,让我们的硬件能协调这些功能,这些程序组合在一起就形成了我们的操作系统

常见的操作系统

我们常见的操作系统有Windows、UNIX、Linux、IOS,当然除了这些桌面操作系统,我们还拥有手机上的移动操作系统比如华为的HarmonyOS、苹果的IOS、谷歌的Android、和各家厂商记忆与Android深度定制的操作系统,哦当然我们也不能忘记微软的WP操作系统(死了,但没完全死)

为什么需要程序?

这些操作系统都是应用程序,用于同一管理我们的硬件资源,但是操作系统不是万能的,不是说什么事情都能做,比如说我们现在需要将一张图片转换成文字,操作系统没有这些功能怎么办呢,我们就要用编程语言在操作系统上把程序编写出来,这就是我们程序员的工作,这就是我们为什么需要程序,

  1. 管理我们的硬件资源,
  2. 实现用户的特殊需求。

怎么编写程序和程序语言的选择

编程语言的选择

根据目的学习编程语言

  • 做苹果手机的应用软件,选择Swift
  • 做安卓的应用软件,选择Java
  • 做游戏软件,例如家庭用游戏机PlayStation4和Wii U上的游戏软件,选择C#
  • 互联网服务和网页设计,选择JavaScript、HTML、CSS5. 做统计分析和大数据分析,选择R和python

主要编程语言的特点

太长不看直接看总结

C#语言是比较通用的一门语言,它可以编写很多种的拥有程序横向来看能编写命令行程序、桌面程序、设备(包括手机和平板电脑查询和Wbe查询还能编写游戏等等,是一门比较通用的语言,C++也可以做这些事情而且更快,因为C++更贴近底层效率更高,但是c++有一个问题,C++学习曲线比较陡,换句话来说就是,C++学起来比较难,不太适合入门学习,而其它语言比如说C语言它和C++一样是非常底层的,但是它不是面向对象的语言,而且它主要的目标是用来编写操作系统,所以如果想编写应用程序C语言反而不太合适,再说Java,Java主要是用来编写Web网站或者服务的应用程序在Android上来编写应用程序,但是它不太擅长编写桌面应用程序,所以C#是一门比较通用的编程语言,当我们在不是特别追求性能的时候,我们可以使用C#开发多种应用程序,那这就代表着C#程序员拥有非常广阔的就业面

Java

Java是目前世界上使用最广泛的一种编程语言。无论哪种操作系统(OS)或计算机,在任何环境下都能运行Java,Java还具有较高的泛用性和扩张性。目前在互联网系统、服务器搭建和安卓的应用软件等广泛领域都在使用Java。
优点:充分掌握编程的基础知识;经常应用在大型的业务系统,存在较多的企业需求;能够开发安卓上的应用软件。
缺点:必须编写完整的程序,学习难度较高。
推荐学习的人:不受潮流影响,希望学到的知识能长期使用的人;对大规模系统开发感兴趣的人;想制作安卓应用软件的人。

C和C++

这两种语言都有运行速度快的别称。由于泛用性较高,被广泛运用于个人电脑的软件和游戏,以及机械控制等诸多领域。在Window和Linux等操作系统和需要即时处理的业务系统中也使用C语言和C++。
优点:能充分学习计算机基础知识和编程基本思考方法,并巩固计算机基础知识。
缺点:必须编写完整的程序,学习难度较高。
推荐学习的人:对硬件开发感兴趣的人;想开发游戏的人。

C#

C#是在C语言的基础上发展并开发的一种编程语言。C#可以用于制作Windows的应用软件,或者用于Unity游戏开发环境。
优点:在学习之后,制作各种3D游戏包括VR(Virtual Reality:假想世界)等。还可以用来开发苹果操作系统和安卓开发系统的应用软件。
缺点:在开发游戏之外的领域,泛用性较低。在其他方面,只有在制作Window的应用软件,才会用到C#。

Python

是一种非常有人气的语言,是谷歌的三大语言(C++、Java、Python)之一。在数据分析上功能强劲,因此被广泛运用于大数据分析、人工智能和机械学习等方面。
优点:可以在大数据分析和人工智能等最前端的计算机领域,开拓前进的道路;相对Java和C语言,学习难度较低。

JavaScript

现在几乎所有互联网服务都用到了JavaScript,而且在智能手机的应用软件和台式机的应用软件,以及游戏的开发上,也使用JavaScript。因此,JavaScript的人气急速攀升。
优点:不需要准备开发环境;语法简洁,库处理也较充实。
缺点:如果在工作中使用JavaScript,需要具备跟JavaScript有关的各种知识,知识面需要较广。如果想要在网站的创建和设计上有所发展,必须具备前端和后端的知识,前端包括HTML和CSS等,而后端包括PHP和Rudy等。 Java和JavaScript名称相似,但并不是兄弟语言或姐妹语言,是两种不同的语言。

PHP

PHP是在开发互联网服务上被广泛使用的编程语言。最广为人知的是它被应用于word press,word press是一种开源的内容管理系统(content management system,缩写为CMS)。
优点:有关word press的开发项目较多,如果想成为软件工程师的自由职业者,PHP是最合适的语言。在云外包中,有关PHP的开发项目很多。有关的学习信息较多,搭建开发环境较简单。
缺点:范围仅限于互联网,泛用性不高。

Rudy (Rudy on Rails)

Rudy是编程语言,Rudy on Rails是应用框架。应用框架是指建筑在共同的思考方式和解决问题的方法上的结构。在Rudy on Rails应用框架中,不但有功能群,还有程序模板,只需编写少量代码,就可以实现各种功能和设计。
优点:将它们作为一套来学习,可以用较少的程序更方便地开发互联网系统。与其他语言相比,开发效率高。
缺点:同时学习两种知识,学习成本较高。

Objective-C和Swift

Objective-C在2014年前作为面向苹果手机和苹果操作系统X的应用软件的开发语言,具有超高人气。在2014年,苹果公司宣布采用新的编程语言Swift,在2016年开放了源代码。
优点:新语言,语法简单明了。
缺点:很难在Windows上学习;跟其他语言比,历史较短,用于学习的信息较少。

Visual Basic.NET

Visual Basic.NET是微软开发的一种编程语言,也是用于开发Windows上的软件和应用的编程语言。
优点:容易学;可以运用在VBA等方面
缺点:只留在Windows上使用,对于学习其他语言的基本能力,没有帮助

CSS

严格来说,CSS不是一种编程语言,而是一种用于装饰页面的样式表语言。在互联网设计中,HTML和CSS是不可缺少的语言,将它们和Java并称为开发互联网的三大重要语言。

R

它不是面向开发的语言,而是一种专门用于统计分析的语言。

前端和后端

前端和后端主要会出现在开发或使用互联网服务的时候。前端有时又被称为客户端,后端有时又被称为服务器端。前端是指使用互联网服务的一方(终端浏览器),后端是指实现互联网服务的系统(服务器)。如果将上面的语言分类,那么HTML、CSS和JavaScript就是经常使用在前端的语言,而PHP、Rudy和Python等就是经常使用在后端的语言。全栈就是前端后端都会使用的语言。比如JavaScript就是全栈语言,但通常用于前端,往往会有人误解。全栈工程师则是掌握多种技能,同时胜任前端和后端工作,能自己搞定一套产品的人。

其他

Unity是一款由Unity Technologies研发的跨平台2D/3D游戏引擎,可用于开发Windows、Mac OS及Linux平台的单机游戏,PlayStation、Xbox、Wii、3DS和任天堂Switch等游戏主机平台的视频游戏,或是iOS、Android等移动设备的游戏。

编程语言的人气排行榜

TIBOE是在对Google、yahoo和Bing等检索引擎上的热门语言进行统计后,公布的排行榜
地址:https://www.tiobe.com/tiobe-index/
在这里插入图片描述
Red monk是根据Git Hub的使用情况和Stack Overflow中话题的热门程度,公布的排行榜。其中,Git Hub是一个著名软件,Stack Overflow是一个有关编程的问答网站
地址:https://redmonk.com/sogrady/2019/03/20/language-rankings-1-19/
在这里插入图片描述
PYPL排行榜 地址http://pypl.github.io/PYPL.html

在这里插入图片描述

怎么编写程序

主要分四步

  1. 编辑 :使用上面所提到的高级语言编写程序
  2. 编译:使用编译器编译成计算机能看懂的指令
  3. 调试:程序员调试程序,查找Bug
  4. 发布:发布出去吸引用户

编程的学习和路径

纵向(由浅入深): 语言->类库->框架

无论学什么语言或者哪一类的编程语言,都需要经过上面的三步
第一步是语言的学习,首先你需要掌握一门编程语言,无论是C、C++、C#或是Java,学会这门语言之后,就能接触这门语言的各种各样的类库

什么是类库呢?

就是我们可以用语言编写一些组件,这些组件是前人已经编写好了,并且把它组合在一起叫做类库,我们只需要去这些类库里直接拿出来用就好了,避免我们重复的去编写,(避免我们重复造轮子,别人发明好了,我们直接拿来用就好了不用我们自己去造)提高我们开发的效率,也能避免出错,这些类库有些是免费的有些是收费的,有些公司就是靠编写高性能的类库来赚钱的,很多类库是开源,开源的意思是有些公司或是组织,他们在开发软件的过程中将源代码开放出来,供大家参考学习,当然这些开源软件有各自的协议,我们在使用的时候要遵守他们的开源协议,以免出现纠纷,
学习了类库之后就要学习框架

框架

框架就是有一定逻辑的类库,比如说我们做Web开发,我们用到的框架,它里面有一套已经组合好的逻辑,避免我们再重复拿一些类库组合,

为什么要这样

这是因为我们在开发的工程中有一些叫做最佳方案,这些框架就是将这些最佳方案已经组合好了,避免我们自己组合出现错误,

看完纵向再看横向
横向就是你可以用你学习的语言开发命令行程序,或是桌面程序,或是移动端的程序,或是Web程序
无论你是编写那种程序都需要先学习语言类库框架

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44368963/article/details/119752271

智能推荐

(转载)java synchronized详解-程序员宅基地

文章浏览阅读422次。java synchronized详解记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块..._java make synchronized invalid

Android 多种投屏神器(Vysor,Total Control,scrcpy )-程序员宅基地

文章浏览阅读1.9w次,点赞6次,收藏32次。一,Vysor1,Vysor特点及优点特点或者说优点:极强的跨平台性能,Mac、Windows、Linux系统上都可以用;免费;无需Android系统Root 即可玩转电脑控制Android 设备;2,官网https://www.vysor.io/3,使用3.1,Win客户端(建议使用)直接下载windows客户端安装,运行就可以使用,使用也很简单,可以通过局域网和数据线连接Android设备,然后实现投屏;3.2,Chrome浏览器3.2.1,从官网Download进入_total control

Java反射机制_object o3 = m; object o4 = n; system.out.println(o-程序员宅基地

文章浏览阅读144次。概念:在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为 Java 语言的反射机制。简单来说,反射机制指的是程序在运行时能够获取自身的信息。在 Java 中,只要给定类的名字,就可以通过反射机制来获得类的所有信息。类的加载机制:new 对象()1.JVM加载对象.class文件1.1JVM在硬盘找对象.class文件并读取到内存中1.2JVM自动创建..._object o3 = m; object o4 = n; system.out.println(o3 == o4)

NDK各个版本,待后续更新_android-ndk-r10e和ndk 29差别-程序员宅基地

文章浏览阅读414次。ndk_r15c (July 2017)Windows 32-bit :https://dl.google.com/android/repository/android-ndk-r15c-windows-x86.zipWindows 64-bit :https://dl.google.com/android/repository/android-ndk-r15c-windows-x86_64.zipMac OS X :https://dl.google.com/android/repositor_android-ndk-r10e和ndk 29差别

Linux常用命令—grep_linux命令+grep-程序员宅基地

文章浏览阅读4.1k次,点赞3次,收藏16次。简介grep命令(Global Regular Expression Print)是 Linux系统中一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来 。grep 是linux中最为常用的三大文本(awk,sed,grep)处理工具之一,所以有必要掌握其用法。grep家族总共有三个成员构成:grep、egrep、fgrep。使用格式grep [选项] ..._linux命令+grep

关于the selection cannot be run on any server错误的问题,如何快速的解决。-程序员宅基地

文章浏览阅读3.9w次,点赞29次,收藏121次。最近在导入外来项目时,遇到了一个难题,就是出现了图中的错误。the selection cannot be run on any server(无法在任何服务器上运行所选内容)这个错误的原因在于Dynamic Web Module 的版本与server不匹配。Dynamic Web Module的版本可以通过右键项目名->properties->Project Facets可以..._the selection cannot be run on any server

随便推点

Cookie,会话,令牌-程序员宅基地

文章浏览阅读804次。会话cookieAre you new to web-development, feeling confused with different Web Storage elements? 您是Web开发的新手,对不同的Web存储元素感到困惑吗? If yes, then you are at the right place This article will give you a brief e..._会话和令牌

Linux查找文本中指定字符的小技巧_linux查找指定字符后的数据-程序员宅基地

文章浏览阅读3.6k次。在Linux的vi编辑器中,如果要查看指定文件中的某项内容,由于内容过于庞大,可以打开vi编辑器后再打一个【/】,括号中间的字符,然后输入你要查找的字符这样就可以找到你需要的字符了,方便我们查看大容量的日志文件。_linux查找指定字符后的数据

编译chromium 总结_<includepath>$(includepath);$(dxsdk_dir)include</i-程序员宅基地

文章浏览阅读2.5k次。编译chromium 总结http://www.chromium.org/developers/how-tos/build-instructions-windows这是官网的详细地址,但我只用他的说明还不够 可以参考这篇文章http://blog.sina.com.cn/s/blog_41608ead0101578b.htmlwin7+vs2010+vs2010SP1+DIR_$(includepath);$(dxsdk_dir)include

Struts-笔记-2-程序员宅基地

文章浏览阅读61次。2 .搭建Struts开发环境 2.1 搭建环境l 导入jar 包。 Add Library 导入jar包 l 建立一个配置文件:struts-config.xml &lt...

【杭电oj】1872 - 稳定排序(结构体排序)_wygoj-程序员宅基地

文章浏览阅读695次。稳定排序Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4632 Accepted Submission(s): 1802Problem Description大家都知道,快速排序是不稳定的排序方法。_wygoj

Java中 GC是什么_gc钱包是干嘛的?-程序员宅基地

文章浏览阅读2.3w次,点赞9次,收藏17次。Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,在使用JAVA的时候,一般不需要专门编写内存回收和垃圾清理代 码。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。电脑的内存大小的不变的,当我们使用对象的时候,如使用New关键字的时候,就会在内存中生产一个对象,但是我们在使用JAVA开发的时候,当一个对象使用完_gc钱包是干嘛的?

推荐文章

热门文章

相关标签