一、编程的概念
让我们简单介绍一下编程。编程是人与计算机之间的一种交流方式,通过编写一系列的程序指令,指导计算机执行相应的任务。专门从事编程工作的技术人员被称为程序员。
在计算机领域,编程可以细分为许多技术方向。从整体上看,可以分为两类,即高层编程和低层编程。
当然,这种划分只是为了方便理解,在学术上并不十分准确。接下来,我将分别介绍这两类编程。
1、高层编程
简单来说,高层编程更侧重于与计算机的外部交互。对于有一定计算机基础的人来说,计算机语言可以分为机器语言、汇编语言和高级语言。
高层编程主要使用高级语言,有时也会涉及一部分汇编语言,以实现与计算机的交互。这类程序员并不直接与计算机用户接触。
由于现代计算机的高度集成,许多高层编程工作都采用高级语言,比如C语言,而无需涉及复杂的机器指令。
举例来说,我们在安装打印机或扫描仪时,或者当手机首次连接电脑,又或者在安装操作系统后,通常需要安装相应的驱动程序。
这些驱动程序的编写工作,就由高层编程的程序员来完成。
2、上层编程
这类程序员需要与用户进行频繁沟通,负责将用户对软件的需求转化为实际的编程实现。他们使用的是高级编程语言。
这类程序员占据了整个程序员群体中的大部分比例,至少达到了90%以上,并且这个比例还在不断增加。如果你也想学习编程,那么你就属于这一类。
举个例子来说,我们每天浏览的网页,使用的手机APP,以及各种应用系统,都是由这类上层程序员编写的。
可以这样说,每个人都会与上层程序员有所接触,或者更准确地说,每个人都会直接或间接地与他们所编写的软件进行交互。为什么会这样说呢?
每天你都会使用手机,手机上安装着各种各样的APP,这些都是上层程序员的杰作;只要你接触电脑,你就会使用各种软件,而这些软件也是由他们编写的;即使你不用手机、电脑,但与你的日常生活相关的各种信息存储都依赖于各种软件构建的信息系统。
在21世纪,整个社会都离不开信息系统,它已经融入了我们生活的方方面面。
所以现在你不能说与程序员没有关系。作为一个有十年经验的程序员,我很庆幸能为大家提供服务,让大家的生活变得更加便捷。
学习编程的条件可分为两类人:一种是希望从事该行业的人,另一种是出于兴趣而学习。不管哪一类,初始学习阶段大体相同,只是后续深入程度有所差异。
下面将分析学习编程的前提条件,特指较高级的编程范畴。计算机学科由电学和数学组成,其中电学涉及硬件,而数学则负责软件。
提到程序员,你可能会联想到一天坐在电脑前,敲击键盘,屏幕上满是字符和数字,因此也将编程与英语挂上钩。这时可能会产生一些疑虑:
学习编程是否需要有电学基础?
是否必须具备深厚的数学功底?
英语水平是否需达到一定程度?
现在,我来为你做出解析。
1. 电学
这主要指涉及数字电路和模拟电路等学科。如果你希望深入了解计算机并与其进行更多交流,涉及硬件方面,即作为底层程序员,这方面的知识是必要的。但如果你只想学习上层编程,那么这方面并不是必需的。
2、数学
计算机学科是由数学学科发展而来的,在大学中也被称为数信学院。可见,数学的重要性不言而喻,没有坚实的数学基础,必然会遭到批评。
实际上,没有人是真正的零基础,就像你现在阅读这篇文章一样,如果你是零基础,连字都无法辨认,更何况理解内容呢?
因此,若你的文化程度只有初中尚未毕业,那么最好及早放弃学习编程,因为确实不适合。不过,如果你有一定的文化基础,从小到大形成了一定的逻辑思维,那已经足够应付这点逻辑思维需求了。
计算机软件编程发展至今,分工变得越发精细,就像工厂中的流水线工人一样,每个人都有自己的特定职责。
专业的数学模型由数学专家来完成,而与数学专家密切配合的程序员只占程序员总数不足5%;更多的程序员是与广大用户紧密联系,在开发符合需求的软件产品方面发挥作用。通常情况下,他们无需考虑深奥的数学问题。
3、英语
编程的过程中,虽然全是英文,但实际上都是一些常见的词汇。一旦真正开始编程,这些单词每天都会反复出现,时时刻刻都在你的视野里,我相信你肯定能记住它们。
对于软件中的一些交互或提示等内容所用的英语,都是相当简单的语法。万一遇到不懂的,还有百度嘛,为什么要害怕呢?
三、零基础如何入门?
现在,我相信你一定想要尝试了。在开始之前,我将更详细地介绍几个上层编程的方向。
1、前端页面技术
这个领域严格来说是属于美工或UI设计师的范畴,但我在这里介绍它,是因为它与程序员有很多交集。
在一些小公司中,程序员也会兼职这方面的工作。前端技术主要包括HTML、CSS、JavaScript等。
2、高级语言
这是程序员主要掌握的技能,包括主流的C、C++、Java、Python、Objective-C、Swift、Go、C#等。如果你愿意,可以百度搜索一下,有很多高级语言供你选择。
3、数据库
数据库主要用于数据存储,比如Oracle、SQL Server、MySQL、DB2等。当然,还有其他很多种类,你也可以进行查询。
举个例子,以百度这个搜索引擎为例。
页面上显示的搜索框和按钮是由前端页面技术完成的;
点击按钮后,后台会用高级语言进行搜索;
海量的页面和数据存储则需要数据库技术的支持。
从这里可以看出,这三层技术并不是孤立的,而是相互关联的。在一些公司中,会有详细的分工,一个人只需要掌握其中一种技术就可以,其他工作则交给专业的人员处理。
如果你有职业规划,并希望在未来专业发展,可以选择从一种技术领域出发。例如,如果你想成为美工或UI设计师,那么需要学习前端技术;如果想成为某门编程语言的程序员,那就专注学习该语言即可。若你想从事软件开发工作,就需要掌握高级语言如C/C++等技术。
但如果你只是出于兴趣驱动,想探索多个领域,这也是可行的。虽然学习多个技术可能让你有些担心,但其实无需过于焦虑。并不要求你每门技术都学得非常深入,只要入门了解即可。所以不必过于忧虑。
当然,你也可以选择专注于某一个方向的技术,玩得开心也是可以的。例如,如果你只学了前端技术,你的软件可能无法实现动态变化的数据;只学了高级语言,用户界面可能不够友好,只能通过控制台(类似DOS命令提示符)与计算机交互;只学了数据库,可能只能手动保存和查询数据,无法通过用户界面和自动化方式操作数据。