编程概述

编程概述

一、什么是编程?

在讲什么是编程之前,我们先说说软件(软件也叫程序,也叫App)。

在生活中软件无处不在,它正在逐步影响和改变着我们的生活方式。早上你会被手机闹铃叫醒,闹铃就是一个软件;出门的时候我们可以通过支付宝或者微信乘坐地铁和公交,支付宝和微信也是软件;在电脑上使用Word编写毕业论文,使用Excel做表格,使用QQ聊天,打各种游戏…Word、Excel、QQ、游戏都是软件,在家看电视的时候,电视上也有各种各样的软件;随着物联网的到来,冰箱、空调、电子秤、电饭锅等都会有自己的软件,这些软件在影响和改变着我们的生活。

你会发现软件也可以细分,分为:手机软件,电脑软件,电视软件等

那这些软件是怎么做出来的呢?-----这些软件(程序)都是由软件开发工程师编写出来的。编写软件(程序)就是所谓的编程。编写软件的人被称为软件开发工程师,俗称程序猿,正是这些程序猿在改变着世界。

二、如何编程?

通过前面的讲述,我们已经了解到编程就是编写软件,不同的软件在解决生活中不同的问题。淘宝在解决我们购物的问题,滴滴在解决我们出行的问题,爱奇艺在解决我们看视频的问题,百度地图在解决我们导航的问题,各种游戏在解决我们娱乐的问题,微信在解决我们沟通的问题,钉钉在解决企业办公的问题…

编程的本质就是根据需求编写出一些列的机器指令,这些指令指挥你的手机、电脑、电视等硬件做什么事,以及怎么做这些事,最终解决我们生活中的问题

因此编程的核心就是给设备下指令,并且把这些指令打包成一个软件,设备通过运行软件来读取和执行编写好的指令,以完成我们规定好的任务。

由此可见,想要编写程序,就要学会给设备下指令,即学会与设备交流的语言。

三、编程语言

刚刚说到,只要会给设备下命令就能编写程序。编程语言就是设备能直接或者间接读懂的语言,我们通过编程语言告诉设备要做什么,怎么做。

(1)编程语言的划分

计算机语言可以大致分为三类:机器语言、汇编语言、高级语言

  1. 机器语言。这是设备能直接识别的语言。机器语言只包含数字0和数字1,不同数量的0和1组合代表不同的意思。0和1对应设备的低脉冲和高脉冲,计算机通过感应脉冲的高低理解人要表达的意思。至于0和1的组合代表什么含义,就会像字典一样记录成书。

由于机器语言的0和1对应电流的低脉冲和高脉冲,所以设备没有理解成本,因此执行效率最高。

但是人在理解机器语言的时候就比较困难了,0和1的组合非常多,每一组组合代表什么含义记忆量非常巨大,因此除了生产设备的专业人员外,很少有人能看懂机器语言。

  1. 汇编语言。汇编语言是人和设备沟通的一个折中。不再直接使用0和1这种组合,而是用符号代表0和1序列组合。比起单纯的0和1组合,符号更容易被人理解一些。

汇编语言

上面的截图就是汇编语言编写的一小段代码,这段代码用于实现一组数据的排序,里面出现了MOV(移动),DEC(自减),CMP(比较)等符号。虽然比0和1组合更容易看懂,但是对于大多数人还是不容易看懂。

  1. 高级语言。高级语言是更容易被人看懂的语言,越是容易被人看懂的语言,越容易被普及。当然,越容易被人看懂的语言就越不容易被机器看懂。要想让机器看懂,需要有编译器(或解析器),将高级语言翻译为计算机能看懂的机器语言。

通常我们所说的编程语言指的就是高级语言,目前有100多种编程语言。常见的语言有:Java、C、Python、C++、JavaScript、C#、PHP、SQL、Objective-C、Perl、R、Ruby、Go、Swift等。

这些编程语言分为编译型语言和解释型语言

编译型语言:编写好完整的代码,编译器对其进行编译,编译成机器能识别的语言,如果有任何一处代码有误,都会导致编译失败。需要修改程序之后,再次编译。作为机器只需要按顺序执行编译后的结果即可。

解释型语言:代码不需要是完整的,解释器逐行解释程序,即使在解释到后面有出错的代码到导致程序退出,但出错语句前面的代码都能正常执行。

机器语言、汇编语言、高级语言的对比:

语言特点
机器语言编写程序很困难,难以编写大型程序。优势是机器能读懂,执行效率最高,缺点是特殊人员才能看懂,严重限制了软件行业的发展。
汇编语言人与机器之间的折中,执行效率略低于机器语言。优势是可以编写更大型的项目,执行效率仅次于机器语言,缺点只有专业的技术人员才能看懂和编写程序。
高级语言更侧重于人的易读性,执行效率较低,因为要先翻译成机器语言,才能执行。优势是更适宜人去理解和读懂,能加快软件行业的发展,缺点执行效率低。
(2)如何选择编程语言?

2020年4月语言排行榜

上面的这个图片是TIOBE 2020年4月公布的编程语言排行榜,截取了排行榜热度前10的编程语言。

TIOBE是全世界最权威的语言排行榜,每月都会发布一份排行,从排行榜上能看出不同编程语言的热度。

在选择一门编程语言的时候有以下几个参考点:

(1)语言的热度

这个热度从排行榜上可以一目了然的看到。可以参考连续6~12个月的热度情况去选择。一般情况下,排名前10的语言热度变化不会有特别大的变化。

(2)语言的用途
语言主要用途
JavaJava SE做跨平台的桌面程序开发;Java EE企业级应用,Web开发、服务端后台;Java Android开发基于Android系统的软件。Java大数据,大数据项目的开发。
C操作系统、嵌入式、驱动开发
PythonWeb开发、科学计算、爬虫、运维、数据分析
C++图形图像、科研、通信、桌面软件、游戏、游戏服务器
C#Windows桌面软件、.NET Web、服务器、Unity游戏开发
JavaScript前端开发,在node中可以做后台开发
PHPWeb开发、服务器
Objective-CiOS、Mac OS软件
(3)语言的发展前景

目前行业主流的技术方向是:移动开发、后台开发、前端开发、大数据、人工智能、物联网。

  1. 移动开发:主要包括2个方面,iOS开发以及Android开发。

    iOS是Apple公司发布的操作系统,适用于iPhone 、iPad、Apple Watch这些设备。主要开发语言是Objective-C和Swift。

    Android是除了iOS之外的另外一个操作系统,适用于各种Android设备,包括Android手机,Android系统的电视等。主要开发语言是Java。

  2. 后台开发:后台开发包括2个方面:后台管理系统的开发、服务端后台开发。目前主流的后台开发语言是Java、PHP、C++等。

    Java是目前使用最广泛的后台开发语言,适合开发中大型项目,性能好,安全性高,可靠性高。

    PHP是几年前比较流行的后台开发语言,易学,开发速度快,适合开发中小型项目。运行效率不高,安全性不够高,开发不了大型项目。

    C++是游戏服务器的主要开发语言,也是很多大型网络游戏客户端的开发语言。

  3. 前端开发:主要指的PC和手机网站的开发,小程序的开发以及H5跨平台应用程序的开发。

    前端开发主要涉及的语言是:HTML、CSS、JavaScript。

  4. 大数据:大数据项目只存在于数据量大的企业,例如:淘宝(大量商城数据)、美团(大量团购数据)、微信(大量社交数据)等。一般的企业数据量不大,传统的后台开发就能实现数据的统计与分析。大数据开发使用的开发语言是Java和Scala,大数据分析使用Python。

  5. 人工智能:人工智能是大数据的具体应用体现,在大量数据的基础上开发出具体的人工智能程序。例如:智能客服,智慧物流等。适合于人工智能的语言有Python、Java、R。

  6. 物联网:物联网是指移动网络的延伸,不再是通过手机联网,更多的设备会连接到网络,甚至有些设备还装有操作系统(通常是Android 系统)。物联网开发的主要语言是:Java、C、Python。

(4)招聘需求

目前移动开发、后台开发、前端开发、大数据、人工智能、物联网等领域都有招聘需求,由于Java能做的事情多,涉及面广(Java后台开发、Android 开发、大数据开发、物联网开发等),因此在招聘量上也是最多的,能占到整个互联网招聘的23%。

(5)自身的喜好

喜欢开发Android软件的可以选择Java,因为Java是Android程序的开发语言。

喜欢开发iPhone、iPad、Apple Watch软件的可以选择Objective-C和Swift语言。

喜欢做比较炫酷的网站,跨平台的网站,小程序的可以选择HTML、CSS、JavaScript语言。

前面三种都属于大前端的范畴,做出的软件和网站是直接和用户打交道的,无论是用户体验还是华丽度都比较高,做的好的项目容易被用户认可和推崇。

逻辑思维能力强、思维严谨、对数据感兴趣,对性能感兴趣的可以从事后台开发,后台开发更多是给前端提供数据,供前端显示,优秀的后台能扛得住千万级甚至更多用户的同时访问。后台开发的主要语言是Java、PHP、Python等。

综上所述,Java是一门很值得选择的编程语言,他的使用领域比较广,既可以做桌面软件的开发,也可以做B/S架构的Web项目,也可以做Android,还可以做大数据开发。可谓是进可攻退可守,不仅就业面广,就业区域也广,一线、二线、三线城市都有Java开发工程师的需求。

四、如何学习编程语言?

编程语言的学习和现实世界中的语言学习很类似。

拿现实中的语言来讲,刚开始学习的时候是学习语法,语句;之后是不断使用学过的语句进行实际的交流,例如:问路,买东西等;再往后就是使用语言和智慧解决各种各样的问题,例如:解决纠纷、谈项目合作、处理婆媳关系等等。最后你会发现,语言只是一个工具,解决各种问题靠的是智慧。

编程语言的学习,也是先学习语法,语句;之后通过做练习加强对语法的理解,通过小案例强化语言的综合使用,再往后借助编程语言和思路(智慧)实现自己的项目。到最后语言只是一个工具,项目的编写更多是靠智慧。

学习方法:

  1. 理解和掌握语法。
  2. 多练习,强化对语法的理解,拿语法解决一些小的问题。
  3. 加强综合项目的学习,掌握编程的思路和技巧。
  4. 攻克大项目,提升知识层次和理解层次。

语法需要记忆:语法是死的,规定好的格式,必须要遵守,必须要牢记。

代码需要熟练:学会语法很容易,忘记更容易,一定要多练习,形成牢固的记忆。

算法需要理解:算法是解决具体问题的方法,编程里的算法和我们解决生活中问题的算法一致,只不过使用编程序言描述了解决方法。

思路需要梳理:越往后编程思想越重要,学习完之后要不断总结,梳理思路。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值