编程入坑指南

前言

又是一年开学季,回想去年,还是新生的我踏入校园,虽然脚下的路走得踏实,但是梦想的路,却很迷茫。

热爱编程,却不知道如何入门,这大概是很多新生共同的疑惑,距离开学已没多久,我带的学弟学妹一只手已经数不过来,总是给他们讲着一样的东西,突然想到,为何不直接把经验写下来,让他们慢慢看,既能培养他们的自学能力,也可省下我的一些时间

编程其实并不难,先理解下面几组概念

概念

文件、文件夹、路径

很多同学使用的电脑都使用的是Windows系统,文件是依据后缀名分类的,不同后缀名代表不同类的文件,虽然这样理解没有错误,但其实是条弯路,没必要这么麻烦,文件就只简单的分为两类,文本(字符)文件 和 二进制文件,虽然文本文件也是二进制储存的,但是它的内容是人类能看懂的字符,比如英文,中文,或者其他有意义的符号集,这些符号虽然人类能看懂,但是电脑不认识,电脑只知道电路的开闭,也就是1和0,二进制文件就是人类看不懂但是电脑看得懂的文件,也就是全是010101的文件。

文件夹顾名思义就是用来装文件或文件夹的,这个很好理解。

路径,文件和文件夹储存在硬盘中,硬盘可以理解为一座大城市,文件和文件夹就视作房屋,想要在一座城里找到具体的某一间房,当然要知道这间房的具体地址才行,不然一间一间地去排查吗,这个地址,也就是所说的路径,想要在硬盘中找到某个文件或文件夹,就需要知道它们的路径才行。

编辑器、编译器、编程语言

前面说了文件分两类,一类是人能看懂但是电脑不能看懂的,一类是电脑能看懂人看不懂的。写代码,其实就是在编辑一个文本文件,会使用到编辑器,我们写的代码当然能看懂是什么意思,但是电脑不懂代码是什么意思,那么想要让电脑知道代码具体的意思,就需要一个“中间人”来做翻译,这个“中间人”就是编译器

所以,编辑器是用来编辑文本文件的(也可以编辑二进制文件)

编译器是用来将文本形式的代码转换成对应的机器码的(转换过程就叫做编译)

编程语言有很多种,如 C/C++、 Golang、 Java 等等,但实际都是殊途同归,不同语言适用的场景不同罢了,不同语言之间的根本区别,其实就是对应的编译器(静态语言是编译器,动态语言是解释器)不同,所以想使用一门语言进行编程,只需要有语言对应的编译器(解释器)就行了

图解

一些简单的概念讲了,可能会有些难以理解,下面就配合图片来解释,形象一点

后缀名不同的三个文件

但其实都是文本文件

二进制文件

有意义的执行结果

编辑器打开二进制文件(为了方便,二进制码通常用十六进制简短表示)

文件夹

文件和文件夹的区别,前面有d的表示directory,即文件夹

路径

使用编辑器编辑文本文件

甚至编辑二进制文件(通常意义不大)

PS:好用的编辑器推荐,Sublime TextVS CodeAtom,非图形界面编辑器Vim(神器,强推)
编译器一般都是命令行调用,图示为调用gcc编译C代码

调用Go编译器编译Go代码

PS:经常听到的IDE这个词,其实是 Integrated Development Environment(集成开发环境)的缩写,也就是 编辑器 + 编译器 + 许多提高效率的小工具

完整流程图示

Mac

先找到自带终端(任何shell应用都可以)并打开

打开后看到类似窗口
  1. 输入cd Desktop 并敲一下enter键
  2. 输入touch hello.c并敲一下enter键,可以发现桌面上多了一个叫做test.c的文件
    hello.c
  3. 使用文本编辑器打开这个文件
    当然,用其他的编辑器也都是可以的
  4. 在打开的编辑窗口里面输入下面图示内容
    注意其中的符号都是半角符号
  5. 输入完成后,保存(command + S),然后关闭窗口
  6. 在刚才的终端窗口中输入gcc -Wall hello.c -o hello并敲一下enter键
    可以发现桌面上出现了一个hello文件,就是刚才用gcc编译出来的可执行文件
  7. 再在终端中输入./hello并敲一下回车键
    可以看到,终端中输出了Hello World字样

    如果上面这些步骤都能够理解,那么相信你应该知道如何在Mac上进行简单的编程了

Windows

  1. 安装编译器
  2. 新建文件
  3. 编辑文件
  4. 编译生成可执行文件
  5. 测试运行

Linux

Linux 和 Mac 都是有强大的终端的,操作基本一致,参照Mac

编程语言特点介绍

学校开设

咋们系大一上学期开设C++的基本语法课程,只讲 类和对象(不包括) 之前的内容,但推荐自己把全书看完,全书因为内容浅显易懂,对自己要求高的同学,建议一周阅读完,能力有限的同学,建议两周读完,读完后进行自学(如果不知道读完之后学什么,可以联系你们的学长)。
大一下学期开设Java课程,讲的内容也只是基础语法。
学习完一门语言的基础语法后推荐学习数据结构和算法

C

  • 接近底层,可以在裸机上跑
  • 高级语言中效率最高,达到汇编的80%
  • 面向过程
  • 没有GC,很多指针需要自己释放,需要程序员很细心

C++

  • 万能的
  • 面向对象
  • 标准库
  • 大量的三方库

Java

  • 完备的类库
  • 优秀的生态
  • Apache、Alibaba 等优秀公司
  • 用户基数大
  • JVM 各种配置
  • 运行在虚拟机上,跨平台

PHP

  • 动态编程语言
  • 编程范式难以统一
  • 面向对象部分设计过于复杂
  • 对 MySQL 支持好
  • 解释执行,需要单元测试覆盖率保证

JavaScript

  • 优秀的生态
  • 全栈
  • EggJS/Ant Design/Element UI
  • 函数第一,相对不易理解
  • 语言规范仍在快速发展

Python

  • 科学计算
  • 数据分析
  • 人工智能
  • 动态语言

Golang

  • 静态类型
  • 编译完成的二进制对系统零依赖
  • 代码规范统一
  • 简化到极致的并发模式,内建的 HTTP 支持
  • 促进 Docker、云的发展
  • 面向接口

书籍推荐

编程语言入门

《The C Programming Language》

数据结构与算法

《算法导论》《大话数据结构》《算法》(第四版)《算法竞赛入门》(第一二版)

计算机理论

《深入理解计算机系统》《计算机组成原理》《编译原理》

网络

《TCP/IP详解》(卷一二)《计算机网络(自顶向下)》《图解HTTP》

数据库

《数据库系统概论》

Linux

《鸟哥的Linux私房菜》《深入理解Linux内核》《Linux内核源码解析》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • 转自http://blog.csdn.net/xugangwen/article/details/44811783...
    扎Zn了老Fe阅读 12,662评论 1 142
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,043评论 25 707
  • 身边总有些人火气很大,精力旺盛的没地方用了一样,看到一点不顺心,就开始发脾气。 可是,有没有想过,因为你的脾气,对...
    大鸣白阅读 629评论 0 4
  • 此刻, 2016年12月2号15点18分 我在成都,天空有点暗,太阳早也不知道躲去了哪里。第一次打开简书,想要尝试...
    木呆带阅读 204评论 0 1
  • 桃花坞里桃花庵,桃花庵下桃花仙。 桃花仙人种桃树,又摘桃花换酒钱。 酒醒只在花前坐,酒醉还来花下眠。 半醉半醒日复...
    木筱茜阅读 311评论 5 1