1. 为什么学编程

近日来,读了谷歌研究员吴军博士的书—《数学之美》,该书开篇就阐述了人类处理信息的方式发生的演变:声音->文字/数字->计算机。
我们学习编程,目的是为了让计算机帮我们更好的处理信息。其实1946年诞生计算机的几年间,并没有编程语言,只能靠人工搬运磁带的方式把信息给计算机处理,让后把带有计算的结果的磁带再次输入有输出功能的计算机,这样人类控制计算机就太辛苦了。
后来随着技术的发展,人们发明了编程,可以让程序自己去控制计算机,人类只需要把程序输入到计算机并执行,就可以躺着控制计算机了,这就是编程的发展原因。
再举例,不同国家的人交流,是通过语言,语言就是沟通的载体。
程序就是人和计算机沟通的载体,当然这是单向的(人告诉计算机)。

2.为什么有那么多的编程语言

众所周知,计算机有很多编程语言,国内流行的比如C++, 易语言,Java,Python, PHP,Go,国外流行的Lisp,Ruby等等,全世界有数千种编程语言。
为什么需要这么多编程语言呢?
1.没有完美的人和事物:没有哪一种编程语言可以解决所有的问题
比如玩易语言的玩家,觉得易语言写界面很舒服,但是Python就没那么方便。
比如Python语法简洁的同时还是一门胶水语言(功能广泛),不仅可以写爬虫,还可以写WEB服务器,爬虫脚本,数据分析,机器学习,人工智能等,很明显,易语言不擅长这些。再比如PHP设计之初就是为了写中小型WEB服务器,Html就是为了写网页界面。
2.编程语言实际上与它们所要解决的问题领域相关,当问题随着环境变化有变化的时候,就需要创造新的编程语言来适配它。
比如刚开始只有机器码全是0101,后来觉得太麻烦,发明了汇编语言,但是汇编语法很多是计算机的底层原理,比如寄存器,磁盘,内存,总线等,学习成本太高了,编程语言随着计算机和技术的发展,也一直在进步,直到今天的Python这么简介强大的语言出现后,人类才放缓改造语言的脚步。但是Python简单的同时,不支持真正的多线程,当你对计算性能有非常苛刻要求的时候,Python就不是那么好的选择了,可能C++和Go会更好些。

3.学习编程要哪些基础

在担心之前,我们先冷静。能否掌握一个东西,取决于基础吗?一定要等所有的基础都具备了吗,这取决去你的目的!如果你只是为了做一些爬虫,网站,后端服务器,界面等,那你只需要看看编程的课程大纲,你会发现,编程其实就是一堆的字符,很多时候连英文都不是,比如你取个名字叫mufengsb,这个时候你需要会英文吗?

需要有英文基础吗

NO!
你也可能会问,编程不是很多英文吗?其实正在的英文就是30个左右的关键字,比如if,for,print,记忆这些关键字很难吗,四级词汇有3000多个啊!
你还可能会问,要学好编程不得看英文资料吗。No,如今中文资料都铺天盖地。除非你学的东西没什么中文资料(这个概率很低,起码学Python中文资料特别多)

需要有数学基础吗

如果你只是学编程,你初中学历的数学知识都够,有很多人就是初中和高中毕业学编程的,而且正因为兴趣,这些人编程学的很好!
只要不是学算法,比如机器学习和深度学习(确实会用到大学数学:微积分、线性代数、概率论、统计学、凸优化),深度学习是人工智能用到的算法,数据分析用的是机器学习算法。