每个人都应该学习一门编程语言,它会教你如何思考。我把计算机科学看成基础教育,每个人都应该花至少1年时间学习编程。
—— 史蒂夫 · 乔布斯
短短20年间,「计算机和互联网」以一种前所未有的速度,改变了人类的生活 。
我们使用微信「交流」,使用淘宝「购物」,使用搜索引擎「获取信息」,随着Uber、滴滴、饿了么的出现,甚至我们的出行、吃饭都越来越离不开互联网了。
而这些改变,都来源于 编程 。
如果说上个世纪是全球化的时代,掌握了英语,就能成为时代的宠儿;那么在语义识别 和 人工智能愈发成熟的今天,「人和人的沟通」不再是难题,「人和计算机的沟通」会显得越来越重要。
想象一下:
如果一个产品经理能通过编程,轻松整理出万级的「用户画像」;
如果一个运营能「自动化获取网站、用户数据」,减少 50% 的人力劳动;
如果一个行政能「自动化员工考勤和工资核算」,将原来5天的工作量缩短到1个下午……
当你是CEO,你凭什么不给他们更高的薪资和地位?
与之相对的,太多的铁饭碗会不复存在:计算器取代了算盘、语音识别取代了打字员、现代化机械取代了工人和农民……而未来,司机、翻译、设计师、文案等等,都可能会被人工智能取代。
这种劳动力的升级,已经在人类历史上发生了很多次。
(阿里的人工智能设计师「鲁班」,一天可以完成4000万张设计图)
因此,编程几乎成为现代人的一道必选题。即使你不想成为一名专业的程序员,编程也能让你的职业前景和生活乐趣大大提升。
这节课中,我们为你准备了几个 Python 程序,你可以亲手体验一下编程的乐趣。
计算机的世界是二进制的,它只能读懂 0 和 1,人类要学习计算机的语言几乎是不可能的。
反过来,让计算机理解人类的语言也太困难。自然语言太过随性,一个意思有多种表达,还有很多语气和双关语(比如女朋友:我没生气)。
如何跨过这样的鸿沟呢,可行的方法是设计一套「高级语言」,让人类和计算机都能看懂。
我们现在学习的编程语言,就是这样的高级语言,它有两个特点:
- 简单,人类学习一段时间就能使用。
- 精准,可以自动编译成机器语言来执行。
下图是高级语言、汇编语言到机器语言的对比:
看到这,你可能舒了一口气:幸好今天不用学机器语言了,否则连头发都保不住了……?
但问题又来了:世界上有600多种高级语言,该从哪门学起为好 ?
如果你没有任何编程基础的话,我强烈建议你使用 Python 入门,这有以下几个原因:
一、易学
Python 几乎是所有计算机语言中,最易读、最易于编写、最优雅的。也因此,越来越多的大中小学,把 Python 作为新生的入门语言。
(分别使用 C++、Java、Python,打印 “hello world!”,可以看到 Python 的代码不但最简洁,而且语言逻辑高度接近英语)
二、强大
易学并不意味着 Python 是玩具,在 NASA、Google 等地球顶尖科技机构中,都广泛使用着 Python。
Python 几乎无所不能,你可以用它来开发软件、游戏、网站等;同时在数据分析和人工智能领域,Python 占据着领导地位。
也正因为 Python 是这样一门属于未来的语言,中美等大国都把它写进了小学计算机教材里。
三、有趣
学习 Python 的第三个原因是 「有趣」:
学习任何东西的核心驱动,一定是“成就感、兴趣、喜欢”这样的正面情绪,而非“焦虑、挫败、厌恶”……
Python 就是这样一门,能带给你正向反馈的语言,不用纠结过多的语法细节,和陌生的概念,直接写就是了。
它可以帮你处理很多重复性的事务,如处理文档、批量下载图片、抓取信息,你甚至还可以用 Python 做个游戏。
看到这里,你可能会想:“我也知道编程对职业发展和薪资提升帮助很大,但我 —— 已经27了/文科生/是女生,能学会编程吗?”
事实上,只要你愿意,从10岁的孩子,到82岁的老奶奶,都能学会编程。
一个简单的爬虫程序,仅用九行代码就能写出来;而上面的那个小游戏,你只需学会了 打印、变量、循环
这些Python基础概念,就可以自己开发出来。
它不分性别,不分专业,不分国界,你在纽约也好,北京也好,铁岭也好,学习编程都没有区别。
(年龄最大的iOS开发者,82岁自学编程,开发了一款下载量4.2万次的App)
但说编程不难,又有点站着说话不腰疼:
编程对很多人来说,都是一件从入门到放弃的事,很多学习编程的人,都会遇到下面两个问题:
1. 无从下手
很多人在决定学编程时,都会面临一个问题:我该学哪门编程语言,C ?Java ?Python ?
- C 大神告诉你,老一辈大学里都从 C 语言开始学,经典!
- Java 大神告诉你,Java 目前市场占有率第一,靠谱!
- Python 大神告诉你,Python 易学又优雅,功能强大又潜力无限,是未来的首选语言,学!
结果可能是,你买了本C语言的教材,看了几个Java的视频,读了几篇Python的文章,到头来还是什么都不会,自信心也被打击没了,从零基础变成了负基础……
2. 学习习惯
经过传统教育的“磨练”,我们大多数人都养成了一种 被动学习、被动灌输 的学习习惯,觉得看书、看视频就能学会编程。实际上,这种想法大错特错。
编程是一门手艺活,是一门实践学科 —— 就像你无法通过看书、看视频学会打篮球,编程也是一样。你必须要靠写代码、做项目的方式,来学好编程,否则一定会遇到“视频看完了,但还是不会写代码”的窘境。
但是:
双天可以告诉你,这些问题在本课程中都不会存在 —— 只要你肯跟着我们的脚步,多写代码多思考,你会发现:编程并没有那么难,反而会很有趣~
(在你之前,已经有很多人证明过这一点 —— 他们不知不觉就学了几个小时的编程,丝毫不觉得枯燥,取而代之的是进入新世界的成就感和兴奋……)
学习编程最有效的方法莫过于:写代码 –>> 思考 –>> 总结:
1. 做实验——写代码
学习编程最好的方法就是:编 程。
人类一生中,99% 的技能都是靠实践学来的,编程更是如此。太多人看完几本书、几个 G 的视频后,仍然不会写程序,就是因为代码写的太少了。
在这里,我们为你准备了 5 个动手实验,内容涵盖了「 Linux 基础、Python 基础、Git 和 GitHub」,并在右侧提供了配套的 Linux 实验环境(需在 PC 浏览器中进入实验)。你需要在真实的开发环境中,亲手敲下代码,一路披襟斩棘,真正地学会「编程」,最终在 Github 上留下你的代码证明。
2. 完成挑战——思考
在每节实验后,我们准备了一个「挑战」,你需要运用上一节学到的知识,独立思考,完成一个功能或实现目标。
挑战的过程是真正 培养编程思维 的过程,你可能会陷入一种「心流」的状态 —— 走路、吃饭时,都在思考代码该怎么写。一旦想通,回到电脑前如行云流水般写出代码,你会发现自己的水平提高了一大节,编程能力也远远超越了同期只看书、看视频的同学。
3. 做笔记、画脑图——总结
学习编程不可能一下子全部搞懂,也不可能一遍就全部记住。如果按照学校背书的那套方法来学习编程,你可能付出比别人多 10 倍的努力也学不好编程。
正确的做法是,完成一个章节的学习后,及时用脑图或笔记软件,对知识点进行总结,下次忘记时再及时查阅。
这样做的结果是:
- 记得更牢:用自己的语言记述后,知识变成了自己的。
- 方便查阅:过去学习 Ctrl + C、Ctrl + V 时, 你可能要百度很多次才能记住;有了一个可以随时翻阅、准确定位的备忘录后,你的搜索时间将大大减少。
- 求职利器:在面试求职中,一个善于总结、且有学习笔记证明的人,会脱颖而出,更有机会得到顶尖的工作。
别担心麻烦的问题:每节实验后,老师都会准备一张脑图供你参考,相信你不到 10 分钟就能画出。
4. 和小伙伴组队学习
在编程这么一个相对陌生的领域,一个人孤零零地学习,遇到问题连怎么百度都不知道,很容易陷入“沮丧、焦虑”等负面情绪……
所以,更有效的方式是和小伙伴组队学习,时不时地分享一下自己的作品和代码,用正向反馈激励自己持续学习,这跟玩游戏挺像的。
学习这门课程后,你将:
- 进入编程的大门,明白编程的作用,建立编程的兴趣、方法和习惯。
- 学会 Linux 基本操作、Python 基础语法、Github 基本操作,为学习编程打下地基。
- 亲手构建一个 Python 项目,建立起个人 Github 主页,可以作为加分项放入个人简历中。
当然,所有的收获都建立在学习的基础上:编程是一件很公平的事,付出多少就会收获多少,没有例外。
以上,就是我们本节全部内容。下个实验,我们将正式进入 Linux 系统的学习。