00 踏入编程大门

踏入编程大门


图片描述

每个人都应该学习一门编程语言,它会教你如何思考。我把计算机科学看成基础教育,每个人都应该花至少 1 年时间学习编程。

—— 史蒂夫 · 乔布斯

 

短短 20 年间,「计算机和互联网」以一种前所未有的速度,改变了人类的生活 。

我们使用微信「交流」,使用淘宝「购物」,使用搜索引擎「获取信息」,随着 Uber、滴滴、饿了么的出现,甚至我们的出行、吃饭都越来越离不开互联网了。

而这些改变,都来源于 编程

如果说上个世纪是全球化的时代,掌握了英语,就能成为时代的宠儿;那么在语义识别 和 人工智能愈发成熟的今天,「人和人的沟通」不再是难题,「人和计算机的沟通」会显得越来越重要。

想象一下:

如果一个产品经理能通过编程,轻松整理出万级的「用户画像」;

如果一个运营能「自动化获取网站、用户数据」,减少 50% 的人力劳动;

如果一个行政能「自动化员工考勤和工资核算」,将原来 5 天的工作量缩短到 1 个下午……

当你是 CEO,你凭什么不给他们更高的薪资和地位?

与之相对的,太多的铁饭碗会不复存在:计算器取代了算盘、语音识别取代了打字员、现代化机械取代了工人和农民……而未来,司机、翻译、设计师、文案等等,都可能会被人工智能取代。

这种劳动力的升级,已经在人类历史上发生了很多次。

图片描述

因此,编程几乎成为现代人的一道必选题。即使你不想成为一名专业的程序员,编程也能让你的职业前景和生活乐趣大大提升。


Hello 编程

计算机的世界是二进制的,它只能读懂 0 和 1,人类要学习计算机的语言几乎是不可能的。

反过来,让计算机理解人类的语言也太困难。自然语言太过随性,一个意思有多种表达,还有很多语气和双关语(比如女朋友:我没生气)。

如何跨过这样的鸿沟呢,可行的方法是设计一套「高级语言」,让人类和计算机都能看懂。

我们现在学习的编程语言,就是这样的高级语言,它有两个特点:

  1. 简单,人类学习一段时间就能使用。
  2. 精准,可以自动编译成机器语言来执行。

下图是高级语言、汇编语言到机器语言的对比:

图片描述
 

看到这,你可能舒了一口气:幸好今天不用学机器语言了,否则连头发都保不住了……😿

但问题又来了:世界上有 600 多种高级语言,该从哪门学起为好 ?

 


Hello Python

如果你没有任何编程基础的话,我强烈建议你使用 Python 入门,这有以下几个原因:

一、易学

Python 几乎是所有计算机语言中,最易读、最易于编写、最优雅的。也因此,越来越多的大中小学,把 Python 作为新生的入门语言。

图片描述

(分别使用 C++、Java、Python,打印 “hello world!”,可以看到 Python 的代码不但最简洁,而且语言逻辑高度接近英语)

二、强大

易学并不意味着 Python 是玩具,在 NASA、Google 等地球顶尖科技机构中,都广泛使用着 Python。

Python 几乎无所不能,你可以用它来开发软件、游戏、网站等;同时在数据分析和人工智能领域,Python 占据着领导地位。

也正因为 Python 是这样一门属于未来的语言,中美等大国都把它写进了小学计算机教材里。

Python的应用范围

三、有趣

学习 Python 的第三个原因是 「有趣」:

学习任何东西的核心驱动,一定是“成就感、兴趣、喜欢”这样的正面情绪,而非“焦虑、挫败、厌恶”……

Python 就是这样一门,能带给你正向反馈的语言,不用纠结过多的语法细节,和陌生的概念,直接写就是了。

它可以帮你处理很多重复性的事务,如处理文档、批量下载图片、抓取信息,你甚至还可以用 Python 做个游戏。

亲手在右侧的实验环境中运行一下试试:

(实验操作只能在 PC 端的浏览器中运行,请在电脑浏览器中打开课程,点击开始实验,即可执行)

首先,右侧实验环境的桌面上有一个 Xfce 终端,双击打开它,然后在第一行的 $ 符号后面输入:

wget https://labfile.oss.aliyuncs.com/courses/1330/game.py

 

💡 提示:点击实验桌面右边的工具栏 —>> 再点击剪切板,可以把代码复制进去,然后在环境中粘贴即可。

图片描述

然后输入:

python3 game.py

 

图片描述

一个游戏就被你运行出来了,是不是挺酷的?😎

如果没玩够的话,可以多执行几次,看看会有什么不同的结果。



 


编程难不难

看到这里,你可能会想:“我也知道编程对职业发展和薪资提升帮助很大,但我 —— 已经 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 系统的学习。点击上方的「章节列表」,点击下一节「 认识 Linux 」即可。

图片描述

 

 

 

 

 

 

 

热门文章

暂无图片
编程学习 ·

那些年让我们目瞪口呆的bug

程序员一生与bug奋战,可谓是杀敌无数,见怪不怪了!在某知识社交平台中,一个“有哪些让程序员目瞪口呆的bug”的话题引来了6700多万的阅读,可见程序员们对一个话题的敏感度有多高。 1、麻省理工“只能发500英里的邮件” …
暂无图片
编程学习 ·

redis的下载与安装

下载redis wget http://download.redis.io/releases/redis-5.0.0.tar.gz解压redis tar -zxvf redis-5.0.0.tar.gz编译 make安装 make install快链方便进入redis ln -s redis-5.0.0 redis
暂无图片
编程学习 ·

《大话数据结构》第三章学习笔记--线性表(一)

线性表的定义 线性表:零个或多个数据元素的有限序列。 线性表元素的个数n定义为线性表的长度。n为0时,为空表。 在比较复杂的线性表中,一个数据元素可以由若干个数据项组成。 线性表的存储结构 顺序存储结构 可以用C语言中的一维数组来…
暂无图片
编程学习 ·

对象的扩展

文章目录对象的扩展属性的简洁表示法属性名表达式方法的name属性属性的可枚举性和遍历可枚举性属性的遍历super关键字对象的扩展运算符解构赋值扩展运算符AggregateError错误对象对象的扩展 属性的简洁表示法 const foo bar; const baz {foo}; baz // {foo: "bar"…
暂无图片
编程学习 ·

让程序员最头疼的5种编程语言

世界上的编程语言,按照其应用领域,可以粗略地分成三类。 有的语言是多面手,在很多不同的领域都能派上用场。大家学过的编程语言很多都属于这一类,比如说 C,Java, Python。 有的语言专注于某一特定的领域&…
暂无图片
编程学习 ·

写论文注意事项

参考链接 给研究生修改了一篇论文后,该985博导几近崩溃…… 重点分析 摘要与结论几乎重合 这一条是我见过研究生论文中最常出现的事情,很多情况下,他们论文中摘要部分与结论部分重复率超过70%。对于摘要而言,首先要用一小句话引…
暂无图片
编程学习 ·

安卓 串口开发

上图: 上码: 在APP grable添加 // 串口 需要配合在项目build.gradle中的repositories添加 maven {url "https://jitpack.io" }implementation com.github.licheedev.Android-SerialPort-API:serialport:1.0.1implementation com.jakewhart…
暂无图片
编程学习 ·

2021-2027年中国铪市场调研与发展趋势分析报告

2021-2027年中国铪市场调研与发展趋势分析报告 本报告研究中国市场铪的生产、消费及进出口情况,重点关注在中国市场扮演重要角色的全球及本土铪生产商,呈现这些厂商在中国市场的铪销量、收入、价格、毛利率、市场份额等关键指标。此外,针对…
暂无图片
编程学习 ·

Aggressive cows题目翻译

描述&#xff1a; Farmer John has built a new long barn, with N (2 < N < 100,000) stalls.&#xff08;John农民已经新建了一个长畜棚带有N&#xff08;2<N<100000&#xff09;个牛棚&#xff09; The stalls are located along a straight line at positions…
暂无图片
编程学习 ·

剖析组建PMO的6个大坑︱PMO深度实践

随着事业环境因素的不断纷繁演进&#xff0c;项目时代正在悄悄来临。设立项目经理转岗、要求PMP等项目管理证书已是基操&#xff0c;越来越多的组织开始组建PMO团队&#xff0c;大有曾经公司纷纷建造中台的气质&#xff08;当然两者的本质并不相同&#xff0c;只是说明这个趋势…
暂无图片
编程学习 ·

Flowable入门系列文章118 - 进程实例 07

1、获取流程实例的变量 GET运行时/进程实例/ {processInstanceId} /变量/ {变量名} 表1.获取流程实例的变量 - URL参数 参数需要值描述processInstanceId是串将流程实例的id添加到变量中。变量名是串要获取的变量的名称。 表2.获取流程实例的变量 - 响应代码 响应码描述200指…
暂无图片
编程学习 ·

微信每天自动给女[男]朋友发早安和土味情话

微信通知&#xff0c;每天给女朋友发早安、情话、诗句、天气信息等~ 前言 之前逛GitHub的时候发现了一个自动签到的小工具&#xff0c;b站、掘金等都可以&#xff0c;我看了下源码发现也是很简洁&#xff0c;也尝试用了一下&#xff0c;配置也都很简单&#xff0c;主要是他有一…
暂无图片
编程学习 ·

C语言二分查找详解

二分查找是一种知名度很高的查找算法&#xff0c;在对有序数列进行查找时效率远高于传统的顺序查找。 下面这张动图对比了二者的效率差距。 二分查找的基本思想就是通过把目标数和当前数列的中间数进行比较&#xff0c;从而确定目标数是在中间数的左边还是右边&#xff0c;将查…
暂无图片
编程学习 ·

项目经理,你有什么优势吗?

大侠被一个问题问住了&#xff1a;你和别人比&#xff0c;你的优势是什么呢? 大侠听到这个问题后&#xff0c;脱口而出道&#xff1a;“项目管理能力和经验啊。” 听者抬头看了一下大侠&#xff0c;显然听者对大侠的这个回答不是很满意&#xff0c;但也没有继续追问。 大侠回家…
暂无图片
编程学习 ·

nginx的负载均衡和故障转移

#注&#xff1a;proxy_temp_path和proxy_cache_path指定的路径必须在同一分区 proxy_temp_path /data0/proxy_temp_dir; #设置Web缓存区名称为cache_one&#xff0c;内存缓存空间大小为200MB&#xff0c;1天没有被访问的内容自动清除&#xff0c;硬盘缓存空间大小为30GB。 pro…
暂无图片
编程学习 ·

业务逻辑漏洞

身份认证安全 绕过身份认证的几种方法 暴力破解 测试方法∶在没有验证码限制或者一次验证码可以多次使用的地方&#xff0c;可以分为以下几种情况︰ (1)爆破用户名。当输入的用户名不存在时&#xff0c;会显示请输入正确用户名&#xff0c;或者用户名不存在 (2)已知用户名。…