编程语言认知

什么是编程?

人们为了使计算机能够理解人的意图,让计算机能够按照人类的想法进行工作,人类就必须将需要解决问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。

编程,就是编写程序,就是人们通过编写由英文字母和标点符号组合成的“代码”,给我们的电脑和计算机发送指令,然后给我们的计算机规定特定的运算方法,让计算机能够识别“代码”所代表的指令,让计算机能够完成人们想实现的效果。

什么是软件开发?

在了解软件开发之前呢,我们先来了解一下到底什么是软件?以及还有软件相对应的硬件。

先来说硬件,单纯从计算机领域,用最简单的话说,我们日常生活中最常见的电子设备,比如说我们的手机,电脑主机,显示器,以及我们的冰箱,电视,空调等等只要是我们能看得见摸得着的,能通电的这些仪器设备,零件,全部都可以称之为硬件。

那么什么是软件呢?我们普通人所认知的软件就是我们电脑上下载的办公软件,音乐播放器,手机上的微信,QQ,App等,实际这是从我们作为软件用户的角度理解的狭义的概念,那么广泛意义上来说,或者从我们IT从业人员的眼中所理解的软件,就是只要承载于所有这些电子硬件当中的,已经编写好的程序,都可以称之为软件。包含我们电脑的 windows系统,我们用的网站,用的各种办公管理系统,乃至说我们智能电视里边的程序,智能冰箱里的程序,公交车刷卡机里的程序,以及超市刷卡的POS机里边的程序,全部都可以叫做软件。

软件开发,顾名思义,就是根据用户的要求,建造出有特定功能的软件系统,或者系统中的软件部分的过程。软件开发是包含了需求获取、需求分析、设计、技术实现、测试、上线,这一整套流程的一项工程。

什么是编程语言?

编程语言( programming language),是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。

编程语言也俗称“计算机语言”,种类非常多,适应的业务场景也不同,我们行业中常见的编程语言有Java、 Javascript、 python、C、C#、C+、PHP、OC、Swift、Go、 Scala、R等等。我们通俗的理解就相当于人类世界的语言,有中文、英语、法语、德语、日语等等。那么针对不同地区的人进行交流沟通,就需要使用不同的语言,这些语言虽然语法和发音均不同,但是语言都具备同样的功能和目的,就是交流!但是计算机是听不懂我们人类的语言的,所以就需要使用计算机能听懂的语言来完成人与机器之间的交流,那就是计算机语言,即编程语言。使用编程语言,并通过编写程序的方式来实现交流,给计算机发送指令,让它执行并回应。当然每种编程语言的语法结构、所适用的程序类型、业务功能,以及适用的领域不一样。

所以如果我们想去从事软件开发的工作,那么前提就是我们必须要先学习一门编程语言。

Java:就相当于人类语言中的英语,可以说是掌握Java,走遍天下都不怕。是一门基于面向对象的跨平台开发语言,功能强大且简单易用,在TIOBE语言排行榜常年联第一,在全球占有最大的市场份额,经过20多年的发展,形成了完善的社区生态,多用于B/S架构的企业级项目开发,目前国内一线公司都有使用Java在进行项目建设,Java的就业面非常广,Java开发在各大招网站中的招聘量也是最多的,除了Java本身对应的岗位,企业也非常喜欢有Java背景的前端开发、移动端开发,、测试、产品等等,可以说有了Java的技能傍身,你想往各个岗位去转都会容易一点,职业规划发展更为广阔。

PHP:是一种通用开源脚本语言,主要适用于Web开发领域。在前几年的时间,互联网逐渐兴起,大家有很多“建网站”的需求,由于PHP的相对轻量级,能够快速进行Web开发,所以非常火热。但是随着这几年互联网的逐渐成熟和提升,项目体系和要求越来越高,PHP的热度已经在下降,目前PHP对应的就业仍然主要是WEB开发,但是就业需求相比Java已经少很多。

Python:“人生苦短,我用 Python"非常简单的一种编程语言,极大的降低了编程门,已成为全球大中小学编程入门课程的首选教学语言,更是人工智能领域首选的编程语言。在大数据领域Python同样可以胜任,比如使用 Python进行数据的爬取操作等等,总之 python可以用在web开发、爬虫、游戏、人工智能、物联网等方方面面。 Python目前呈上升趋势,未来发展前景很好,但是目前从就业角度来说,单独的 Python岗位还是少一些,大多数是要求有Java等开发能力,在其岗位要求的基础上要求同时掌握 Python, Python更多作为工具语言存在(比如:人工智能岗位、大数据岗位中均会要求掌握 Python)。

C:古老的编程语言之一,几乎所有系统兼容,很适合操作系统和嵌入式系统,一般使用C语言进行操作系统底层开发、物联网软硬件开发,学习难度大,就业岗位相对来说会少一些,对人员要求较高,同时就业面相对来说较窄。

C++:面向对象编程语言。主要用于软件开发、搜素引擎、操作系统、游戏开发等,学习难度相对来说也较大,就业岗位相对来说会少一些,对互联网行业来说,就业面相对来说也比较窄。

JavaScript:一种主流的web编程脚本语言,一般用来在客户端览器中执行,但目前由于异步编程思想的深入,JS结合node应用越来越广泛,不仅可以做web前端,也可以做后端开发,还可以和移动端开发配合使用实现跨平台开发,比如:小程序开发,可以说 JavaScript 属于前端开发必备技能,前端开发的很多框架都以此为基础,所以JS未来的前景也是非常不错的, GitHub上排名第一。

什么是分布式微服?什么是集群?

分布式微服是近几年越来越热的一个概念,我们可以分开理解为:分布式和微服务两个概念。

先说微服务,其实就是把一个大的服务进行拆分,拆分成多个小服务。举个例子,比如我们都去过火车站买票。那么火车站最开始的时候可能就是一个很小的地方,里面提供一个对外服务的窗口,这个时候火车站就相当于一个已完成的大的服务,对外提供咨询、买票、退票、改签等服务。那么随着不断的发展,通过火车出行的人越来越多,这个时候如果这个窗口的服务员生病了请假了,那么所有的人都无法使用火车服务,有的人没法买票、有的人没法退票、有的人没法改签。这个时候就需要进行服务的拆分,我们把这一个窗口拆分成咨询服务窗口、买票服务窗口、退票服务窗口、改签服务窗口,这样拆分过后就好很多,现在就算退票服务窗口出现了问题没法退票,但是不会影响买票、咨询的服务使用。可以极大的提升我们服务的“健壮性”。其实淘宝也是一样的,它也是进行的“微服务”化,可以想想它拆分成了商品服务(商品搜索、商品详情查看功能),订单服务(下订单、查询历史订单功能)、用户服务(登录、用户信息查询、用户信息更新等功能),如果商品服务坏掉了,那么是不影响我登录查看用户信息的。

另外再说分布式,还用火车站的例子来说,原来我的服务都在一个地方(比如说同一个机器上),现在我进行拆分后有咨询、买票、退票、改签四个服务,最少4个人,在同一个窗口实在太拥挤了,我就需要分开部署,分成4个窗口。其实火车站也早就是这么做的,也是分布式微服务的思想。

最后再说一个集群的概念。集群是什么?就是相同的程序服务做同样的事情。你看现在买票的服务需求量特别大,一个窗口要排起长队应对不了,那我们就做买票服务集群,开多个窗口,都是提供买票的服务。改签就1个窗口,那它就不是集群,买票有多个服务窗口,这个买票的服务窗口放在一起就是集群。

软件开发行业有哪些工作岗位?

在互联网软件行业下,基本都在使用敏捷开发方法,一般公司所涉及的岗位如下:

产品经理

产品经理是在互联网行业中诞生的一个新岗位,他们要根据业务需求进行大量的调研分析,需求过滤,将业务需求进行产品、以及信息化的转化,从而用一种新的产品理念服务于客户,具体工作包括用户体验设计、交互设计、业务流程设计、信息架构设计等等,一般产出:产品原型。

架构师

架构师了解业务之后,对业务进行抽象与架构设计,根据设计进行技术选型和框架搭建,

制定整个软件系统的技术方向和开发方式,就像是建筑设计师一样,不仅要有良好的抽象能力、设计能力、更要有良好的技术和公关能力。

UI设计师

UI设计师的主要负责软件的外在美观设计,增强用户的视觉感官体验。

后端开发工程师

后端开发工程师,主要就是负责编写应用系统的代码实现,实现产品要求中的业务功能。

前端开发工程师

后台工程师的主要工作是实现功能,而前端工程的工作就是实现用户的操作界面,完成人机交互,包括:App( Android、IOS)和Web。

测试工程师

软件总会有bug,所以在上线之前需要对软件进行全方位的测试工作,包括:功能测试(黑

盒、灰盒、白盒测试)、安全测试、性能测试、压力测试、稳定性测试等等,那么就用到了测试工程师,他们主要对软件质量进行把控。

运维工程师

系统在运行中,还需要有运维工程师,保障系统能够安全有效的、不间断的提供服务,他们需要对硬件、软件、网络、安全设备等进行实时监控、运营维护。

大数据开发工程师

大数据工程师主要负责数据处理,简单来说是在大数据处理平台下的数据处理,包括数据收集、存储、转换、分析与可视化。为企业业务决策提供数据支撑,注重数据价值提取。


文章来源于网络,如有侵权,请联系网站删除。