内容简介:用游戏的方式来学习,是一种有趣而高效的方式。从刚接触电脑时的打字练习软件而
用游戏的方式来学习,是一种有趣而高效的方式。
从刚接触电脑时的打字练习软件 金山打字通 ,到程序猿写代码的利器 Vim 都有小游戏( 金山打字通游戏 、 VIM Adventures )来帮助我们入门。当你的目标从 掌握技能 转变为 打通游戏 之后,学习本身也就不再痛苦。在完成每一关的过程中,都能增加我们的技能熟练度和成就感。
而 Learn Git Branching ,就是一个用小游戏带你入门的 Git 的网站。
为什么要学习 Git
Git 是一种分布式的版本管理系统,作用和网盘有点类似,但是功能性和灵活性都更强大。如果你是一个计算机专业的学生或从业者,Git 的重要性不言而喻;但是对普通人而言,Git 也有 备份数据、保存历史记录 等重要作用。
不怕断电、断网
数据无价,但很多时候我们无法保证自己的电脑不出问题。有很多时候我们会怀念上一个小时、前天或不久以前自己写的那些文字、画过的那些图 1 ,如何完好的保存数据是个永远的话题。将工作保存在云端也许会增加我们内心的安全感,这也是很多人会用网盘进行备份的原因。
Git 的「本地提交」较好地解决了这个问题,它的工作方式大概是这样: 即使没网络,我们也可以先工作,等到连上网络后再打包上传 。每个文档的名字都写有主要的工作(修改)内容,而且我们还能清楚地看到文档之间地区别和改动,Git 还会自动把历史纪录保存下来。对于越来越多开始从事移动办公、远程工作的人来说,由于网络环境不稳定,即使他不编程,也能从 Git 中受益。
严肃写作的一个个节点
iOS 上的知名笔记工具 Drafts 会在你写作时,每隔一分钟帮你保存一份当前文档的「快照」,这样就可以方便地找回之前的某个写作版本了。你觉得不满意而删除的一段文字,总可以在历史版本中找回,很贴心。 保存写作的历史版本其实就是建立写作节点的过程。而这,也是 Git 所擅长的。
对于论文、书籍这些严肃的写作内容来说,我们在写作的时候不会频繁的更改。深思熟虑之后,在一个节点时,我们有必要保存一下这一阶段的成果。同时,我们在对以前工作进行修改之后,也希望能便利地显示和以往的不同 2 。
Git 最原本的使用方式
Git 是一个分布式版本控制软件,于2005年以 GPL 发布。它最初是为更好地管理 Linux内核 开发而设计。它不需要服务器端软件就可以运作版本控制,使得源代码的发布和交流极其方便 3 。
GitHub 是通过 Git 进行版本控制的源代码托管服务 4 ,我们每个人都可以把自己的代码托管在上面。同时,也可以看看别人写的代码,相互交流,极大方便了软件项目的多人协作开发,也推动了开源软件社区的壮大。GitHub 所具有的社交性让很多人戏称为最大的同性交友网站(男性用户占绝大多数)。如果你愿意,可以把别人的代码下载到本地随意修改,放心这不会影响他人。 总之,在 GitHub 上,大家都用同一种语言进行代码仓库的操作,那就是本文的主角:Git。
如果你想开始学编程,一定想记录一下自己成长的路径。想必也一定会去 GitHub 看一看(来,这里是 按加星数 排序 的代码仓库 ),这时学一下 Git 不是顺理成章的吗?
怎么学习 Git
曾经我在好奇心的驱使下去学习最浅显易懂的 Git 教程 廖雪峰的 Git 教程 。但经过一段时间之后,我发现自己仅仅会使用 git clone
, git add
, git commit
, git push
等简单语句。之后多次查看 git rebase
的用法,也一直没有理解。我们来看看最基本的几条命令有什么作用:
git clone 克隆:下载远程代码仓库到本地; git add 添加:添加文件、修改后的文件到暂存区; git commit 提交:建立本地仓库的工作节点; git push 推送:将本地仓库推送到远程代码托管服务、网站。
就像很多次把学过的知识还给老师的经历,这次只记住几个简单命令的过程依然没让我失望。这些命令是我平时使用最多的,所以记得最牢,而其他命令只能用到时再去查了。 没有经过实践的知识好像无法停留在脑子里。
前几天在 twitter 上闲逛,发现了一个可以交互式学习 Git 的网站 Learn Git Branching 。尝试了一下发现效果真的很棒,有一种在玩编程游戏的感觉。回想啃着玩 Human Resource Machine 的经历,证明 不在于知识本身多艰深,只要学习曲线不陡峭,咱都能爬上去。
Learn Git Branching
网站是有中文的,而且界面很不错,给人的第一印象很友好。
关卡选择界面可以看到,有「主要」、「远程」两部分。每一部分的内容不多,覆盖了基本的用法。每一关都是一个模拟的小项目,通过上手操作很容易获得代入感。代码本身的用法在玩游戏的过程中领会到,这种感觉很棒,让人上瘾。
教程的每一关都有引导,告诉你示范动作是怎样的、会有什么结果。稍作了解之后就可以自己上手探索。模仿之前教的动作,做错了可以 reset
命令从头开始。完成之后,可以用 show solution
命令查看答案。这种即时反馈的学习让过程变得有趣。
从 Git 到 GitHub
说了这么多,简单讲一下具体的流程:
-
git clone
下载代码到本地。 - 创建了自己的文件,或者进行了修改,可以用
git add .
把所有文件加入暂存区,等待建立节点。 -
git commit -m "这一阶段工作描述"
尽量细化你的节点,别做了很多工作才提交一次呀。 -
git push
把之前建立的一系列节点推送到 GitHub 发布、保存。 -
git pull
将 GitHub 的改动同步到本地,比如你在办公室电脑的改动同步到家里,或者多人协作项目中他人的改动同步到本地。
总结一下就是: 「记录修改、本地提交、传到云端」 的过程。
其他学习资源
除了之前文章中提到的 廖雪峰的 Git 教程 外,还有很多学习资料。比如:
- Pro Git 第二版 。这本书被誉为 Git 学习的圣经,作者是 Scott Chacon 和 Ben Straub 。Scott Chacon 在 GitHub 工作,自称 Git 的布道者。你可以在网站上免费阅读这本书,也可以下载他们提供的电子版本。
- git-recipes 。它 童仲毅 (geeeeeeeeek@github) 对很多英文资料进行翻译、整理的集合教程。包含入门基础、进阶知识和应用范例。这些英文资料主要包括 GitHub 竞争者 Bitbucket 的 Git 教程 。
- 谷歌无人车之父 Sebastian Thrun 创办的 优达学城(Udacity) 上面的 免费 Git 课程 。这门课程由优达学城与 GitHub 共同制作,介绍进行版本控制的基础知识,重点讲解 Git 版本控制系统以及 GitHub 协作平台。如果你更喜欢这种上课方式,这门课程随时都可以开始学习。
- happypeter1983 的 Git 视频教程 。这份教程就更进阶了一些。讲到了一些高级命令的用法。当然还有其他学习资源。
Git 本身不难,但学会之后就是另一方天地。尽快在项目或工作中实践吧!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 回溯算法讲解--适用于leetcode绝大多数回溯题目
- 常用算法之回溯法
- leetcode题解(递归和回溯法)
- 精读《手写 SQL 编译器 - 回溯》
- Linux内核的栈回溯与妙用
- tshark + Elasticsearch 打造流量回溯分析系统
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
程序设计语言理论基础
米切尔 / 电子工业出版社 / 2006-11 / 68.00元
本书提出了一个框架,用于分析程序设计语言的语法、操作和语义性质,该框架基于称为类型化λ演算的数学系统。λ演算的主要特色是对于函数和其他可计算的值的一种记法,以及一个等式逻辑和用于表达式求值的一组规则。本书中最简单的系统是称为泛代数的一个等式系统,它可以用来公理化和分析通常用于程序设计的许多数据类型。可作为理论计算机科学、软件系统和数学专业的大学本科高年级或者研究生初始学习阶段的教材,同时也适合用于......一起来看看 《程序设计语言理论基础》 这本书的介绍吧!