编程是什么?你要学吗?

天天见闻 天天见闻 2022-03-17 科技 阅读: 283
摘要: 很多人觉得编程是很高端神秘的事情,觉得自己可能学不来。什么是编程所以学会一种语言,再学一种难度就没那么大。应该不应该学习编程回到最开始的问题,我应该学编程吗?首先,问问你自己,你学编程的目的是什么?你想学到一种编程语言让你当金饭碗用,拿高工资。你可要知道程序员最喜欢讨论什么语言,什么框架好。最后,无论有没有老师,学编程最重要就是:模仿,模仿,模仿。

很多人觉得编程是很高端神秘的事情,觉得自己可能学不来。但是了解到程序员的工资比较高,所以又蠢蠢欲动,想进入这个领域。那么,在回答这个问题前,我们先了解一下什么是编程吧。

什么是编程

编程,也叫程序设计,其实就是用编程语言处理数据,以达到你想要的效果。有一本书的名字很清楚表达了这个观点。

Algorithms + Data Structures = Programs

算法 + 数据结构 = 程序

什么是数据结构?

数据结构其实就是数据存储的方式。我们不妨用下面几个生活中的例子来理解。

行李是排成一排,顺序进入 X 光机处理的。排最前面的,先处理。最后进的,最后处理。如果把行李看作是数据,这种数据结构其实是队列。队列的特点是先进先出。

叠在一起的箱子,最开始放置的肯定是最下面的那个,然后一箱一箱往上垒。要拿出来的时候,当然是先拿最上面的,最下面的最后才拿。这种结构就是栈。栈的特点是先进后出。

文件夹可以包含有子文件夹和文件,子文件夹又可以再包含下一层的文件夹和文件。这个结构可以理解为树型结构。文件是树的叶子节点,子文件夹可以是树的分支,也可以是叶子。树的特点是分支和层级关系

什么是算法?

算法就是对数据进行处理的方法。

从数据层面看,结构不同一般需要不同的处理方式。从处理效率看,对同一种数据结构,也可以有多种不同的处理方式。有些算法,可能要处理的数据量越大,时间就会成倍增加。有些却无论数据多大,时间都基本恒定。举一个例子:

假设你买了一个圆柱型的水果软糖,里面有 9 粒糖果。如果它的包装开口是在某一边,你需要拿第 5 粒,那么你就必须先把前面 4 粒拿出来,才能拿到第 5 粒。而且你想拿的糖果在越后面,花费时间就越多。但是,假设有一种包装是横着把圆柱形打开(结构不同了),你一次可以看到和拿到 9 粒糖果。那么无论你拿哪一粒,花费的时间都是一样的。

在电脑里是怎样的?

假设我把上面的糖果问题抽象到计算机里面,是什么样子的呢?下面用一段 JavaScript 代码来模拟吧。懂编程的朋友,别吐槽顺序取的代码,我知道可以按位置,这里只是说明一下。

从上面可以看到,同样的数据,可以按照不同的结构来存放。不同的处理逻辑/算法,效率不同。所以,从这种角度来看,学习编程和程序设计,是学会抽象,学会如何把现实问题,在计算机里面表现出来。还有数据处理。

从另一种角度来看,编程和程序设计,就像写作。从上面第一段顺序取数据的代码看,我就像写作一样。我在用计算机能理解的语言,写操作指引出来。一个好的程序员,写的代码,一定像好文章那样容易理解。不同的语言,指令有点不同,但不差太远。所以学会一种语言,再学一种难度就没那么大。

应该不应该学习编程

其实编程和程序设计并不难,尤其是当你能把它和实际问题结合,理解。回到最开始的问题,我应该学编程吗?首先,问问你自己,你学编程的目的是什么?

你觉得通过指尖敲击的指令,就能创造无限可能,这实在是太酷了。 – 你绝对应该学习。你目前遇到些繁琐而重复的事情,想看一下计算机能否代劳。 – 你应该尝试。你想找一份工资相对高的工作,不用搬搬抬抬,还能在办公室吹空调。 – 这也是不错的选择。你想学到一种编程语言让你当金饭碗用,拿高工资。 – 早早死了心算了。

计算机应该是变化越来越快的领域,虽说有不少语言诞生的时间已经几十年,但是它们也是持续演化的。说不准你刚学会没多久的懂,两三年后就没什么人用了,就像现在的前端框架。所以,如果你想把程序设计作为你的职业,请做好长期持续学习的准备。

但是,即便你不需要把它当作职业,我认为,多少具备一些编程的能力,让计算机辅助你解决问题,提升思考方式和效率,真的非常有好处。送上 Linus 大神的话:

Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.怎么开始?

如果你已经下定决心要学习程序开发。那怎么开始?

从问题出发

你想解决什么问题?处理什么数据?最后达到什么效果?从事哪个领域?

比如说,如果你要处理 Excel编程是学些什么东西,做各式各样的报表。或者要从固定格式的 Excel 里面抽取数据。那你可能只要学习 VBA 就可以了,或者用 JAVA。因为 Excel 这种企业级的东西,你用回微软自家的语言会方便些。企业级的 JAVA 语言也是不错的选择,因为已经很多写好的工具,你学会拿来用就可以了。但是如果你非要选 Node.js 和 JavaScript 来处理,就真有点作死。

还有,很多人想学数据分析,一上来就学什么 Spark, Hadoop,搞大数据,但我觉得那是不对的。只学会搭建工具环境,却不会数据分析的基础,难道不是本末倒置吗?况且,工具和框架更新换代比语言变化的还快,一年后说不定又换新了。数据分析最主要的是有数据思维,基本的统计学知识和数据分析的能力。如果你用 Excel, SQL 就能挖掘出数据里面的商业价值,看到别人看不到的规律,那就牛了。当然你还可以学习 Python 或者 R 这种最基础的数据分析领域的语言,因为它们提供丰富的数据分析算法和展示工具,让数据分析工作更简单。所以,我觉得只有真的具备一定的基础,而且数据真的大到一定程度,你才需要去用那些大数据的处理工具。

Web Application 开发领域,无论前端后端,我觉得肯定要学的是 JavaScript, HTML, CSS。如果你打算在前端发展,不管你是打算用 jQuery, AngularJS,React 或者 VueJS 也好,原生 JavaScript 都是基础。即便你想从事后端,拥有基本的前端知识,可以让你方便和前端沟通合作。后端的语言选择相对较多,一般是 Ruby, Node.js, Python,PHP, Java。Java 在传统企业领域用的比较多,初创公司一般选其它的来起步。Go, Rust, Clojure 比较新,用的人相对少一些。

如何起步

现在互联网如此发达,书,视频,在线教育和练习编程开发的资源都相当地多,对于一个稍微有点编程经验的人来说。自学应该完全不是问题,不愁没有资源。但是,对于一个完全是自学起步,没有任何编程背景的人来说,最好找一个靠谱的师傅来指引起步。

首先,从上面说的问题出发,新手是不可能有答案的。即便在论坛上提问,用什么语言编程是学些什么东西,什么建议都会有。你可要知道程序员最喜欢讨论什么语言,什么框架好。所以有个笑话说,你想让程序员们吵起来,只要在里面喊一句,XXX 语言是最好的语言就可以了。

其次,开始学习编程开发遇到的最大的障碍是搭建环境。很多新手都是在最开始的时候就遇到各种环境问题,导致完全无法跟教程练手,挫败感太强而放弃。所以,如果有人在身边指导,至少先把搭建环境这关过了,后面会顺畅很多。

再说,一个有经验的靠谱的老师,还可以告诉你学习使用某一种语言的最少必要知识,不至于让你迷失在太多技术细节中,真的可以事半功倍。

如果确实身边和网络上找不到这样的朋友,老师,又不舍得花钱去培训班,要如何降低遇到障碍的可能性和提高问题解决效率呢?最好选择 Mac 来开发,学会如何使用 Google,和正确提问。

最后,无论有没有老师,学编程最重要就是:模仿,模仿,模仿。练习,练习,练习。

其他相关
讲唐 | 第82讲 不良员工,不能招聘

讲唐 | 第82讲 不良员工,不能招聘

作者: 天天见闻 时间:2024-04-04 阅读: 1
员工微信群发表不当言论,辞退时应注意4点企业辞退打架员工,须注意什么?招聘录用中的10大法律风险(下)招聘录用中的10大法律风险(上)辞退吸烟员工的大数据分析企业招聘难的8大原因员工违反公序良俗,企业能否辞退?...

通达信量化之历史数据下载

作者: 天天见闻 时间:2024-04-04 阅读: 1
本文介绍通达信盘后分析数据的获取方法(盘中的实时数据获取则需要借助DLL,可参考我别的文章):1)盘后数据下载\T0002\\目录下的sh.tfz和sz.tfz表示通达信当日沪市和深市的分时数据。2)复权数据导出上面就可以导出当前窗口的股票信息。...

数据分析公司排名 数据分析公司

作者: 天天见闻 时间:2024-03-26 阅读: 13
数据分析师这个工作累吗?经常加班吗数据分析师在公司是一个很重要的职位,他会与许多部门沟通接洽,为多个项目产品的决策提供支撑,是一个一对多的角色,所以数据分析师加班是难免的,但在现在这个社会,几乎没有不加班的工作,所以也没什么好抱怨的,要想获得成功就要付出比别人更多倍的努力。有哪些企业做数据分析App 数据分析常……...
浏览器推荐怎么关 浏览器推荐

浏览器推荐怎么关 浏览器推荐

作者: 天天见闻 时间:2024-03-25 阅读: 22
tv端浏览器推荐建议使用Firefox for TV、Opera for TV、Roku Browser以及Amazon Silk浏览器。这些浏览器都可以提供清晰的图像和流畅的浏览体验,让您在电视上轻松观看网页内容。公认最好用的4款浏览器一、谷歌浏览器谷歌浏览器是公认最好用的,这个可以从市场占有率看出端倪,超过……...

那种网站

作者: 天天见闻 时间:2024-03-23 阅读: 16
国内发布前沿科技的科技网站有哪些说下微信公共号吧:差评 36氪 艾瑞 等都不错,虎嗅什么的比较一般了,软文多,可以关注一些众筹相关的如 开始吧,一般都是一些新的科技思路的新产品,创业相关的有一个叫 铅笔道的,是专门介绍各个创业公司的,另外纪录片专门做军事类的很少,可以去网易公开课里面看,那个里面纪录片、TED比……...
数据分析软件工具有哪些 数据分析软件

数据分析软件工具有哪些 数据分析软件

作者: 天天见闻 时间:2024-03-20 阅读: 17
常用的数据分析工具1 有Excel、Python、R、Tableau等。2 Excel是一款功能强大的电子表格软件,可以进行数据的整理、计算和可视化分析。它易于使用,适合初学者和小规模数据分析。3 Python是一种通用编程语言,具有丰富的数据分析库(如pandas、numpy、matplotlib等),可以进……...
我来说两句

年度爆文