大一上学期
这个学期主要是 C 语言 和 Linux 基础。
第一部分:C 语言学习
教材:《明解 C 语言》
第一周 简单入门
阅读《明解 C 语言》第一第二章,完成书上相关习题
- 熟悉 Linux 操作系统 C 语言开发方式 C 语言介绍 -> linux 下的 c 语言开发
- 写 Hello World 程序
- 变量类型,声明,赋值
- 简单的输入输出 学习 ASCII 编码
- 运算
注意,代码需要在 Github 上新建仓库,然后推到 Github 上。注意必须使用命令行(不能使用图形界面工具)。然后仓库名要有意义,比如 c_pratice。
养成好的习惯,一个类型的练习/项目用一个仓库,不要把多个无关的东西放同一个仓库里。提交信息使用英文,说明这次提交的内容。不能随意写。每天如果写了代码都要及时在当天 commit 和 push!
Git 和 Github 的教程可以参考这个,或者自行搜索。有疑问请提出。
第二周 控制流
阅读《明解 C 语言》第三、四、五章,完成书上相关习题
- 表达式、语句和代码块
- 条件分支 逻辑运算
- 循环
- 数组
- 作用域 可见性
第三周 函数
阅读《明解 C 语言》第六章,完成书上相关习题
- 区别声明和定义
- 参数列表
- 递归
- 全局变量 静态变量
- 类型转换
第四周 数组和结构体
阅读《明解 C 语言》第五、十二章,完成书上相关习题
综合练习题
第二部分:Unix && Linux 基础学习
推荐学习材料:
- 《Unix & Linux 大学教程》(
首选
里面好多小故事以及各种名词的出处,可以当小说来读了。PDF 在团队内获取) - 《鸟哥的 Linux 私房菜》(PDF 在团队内获取)
- 网络课程(本系列的主要课程参考):
斯坦福:Practical Unix
讲解视频(需翻墙)
Week 1
了解 Unix & Linux 系统,历史,及简单使用
学习目标
- 学习操作系统的发展历史,初步了解 Unix & Linux 是什么,以及其历史
- 学习使用 Vim/Emacs 文本编辑器,学会基本操作(主要是 Vim)
- 在终端使用 GCC 编译,GDB 调试 C 语言程序(进阶:更深入一点可以尝试学一下 Make 工具,会写 Makefile)
任务:
Week 2
Shell 及 Linux 基本常用命令学习,Linux 文件系统概念以及基本操作学习
学习目标
- 了解什么是 Shell,了解 bash 等等经典的 Shell。安装使用更方便的 Zsh(oh-my-zsh)
- 学习 Linux 中常用的命令 Unix/Linux Command Reference
- 了解 Linux 的文件系统
任务
- 阅读《Unix & Linux 大学教程》11 章。进阶:有兴趣的可以阅读 12-14 章。
- 看视频的Practical Unix: Intro 2 - Shell
- 阅读 《Unix & Linux 大学教程》23 章,了解 Linux 文件系统,了解根目录下各个目录的作用。在终端中对文件系统进行基本操作(ls,cd,mkdir,touch,mv,cp)等等操作。学习 Linux 常用命令之后尝试在终端中玩一下这些命令。
Week 3
I/O 重定向,过滤器,正则表达式学习
I/O 重定向和管道是 Unix 命令行工具箱之后隐藏的设计准则的体现,这些都是帮你升级为 Unix/Linux 进阶用户的有力工具
学习目标
- 掌握 I/O 重定向和管道的基本用法,理解管道背后的 Unix 设计哲学
- 学习正则表达式基础
任务
- 阅读《Unix & Linux 大学教程》的 15 章,看课程视频中的 Week 3: Input / output redirection 小节的几个视频,并自己跟着视频在终端中进行对应的练习
- 阅读 《Unix & Linux 大学教程》的 20 章,看课程视频中的 Week 4: Search and grep 小节的几个视频,并自己跟着视频在终端中进行对应的练习(主要是 grep 的用法)
- 进阶:完成 Week3,Week4 的 Lab
Week 4
Linux 网络工具的使用
有兴趣的还可以继续学一下 Shell 编程,写写 Shell 脚本。对后端同学来说是一个必备技能
任务
Week 5
这个是进阶任务,有多余时间的同学可以考虑。之后的大一下学习安排中也会涉及,所以不是必选
简单的 Linux 系统编程(需 C 语言基础)
- 参考书《Linux 系统编程》
学习目标
这时你对 Linux 系统已经有了初步了解,且掌握 C 语言,所以可以更进一步,去接触一下 Linux 系统编程,调用系统接口,做一些有意思的事情。通过直接和 Linux 系统对话,来更深入的认识 Linux 系统,系统编程主要包括以下几个方面:
- 文件系统操作
- 进程,线程管理
- 内存管理
- 网络编程
任务
- 自行寻找资料学习并练习。
第三部分:博客搭建
博客是一个程序员发表自己技术文章的地方,相当于你的个人站点。在里面你可以展示自己的技术发现和总结,也可以闲聊你感兴趣的话题,还可以写一个自我介绍,让进入博客的人了解你。总之,这是一个程序员在线上的主页,是你展示自己,提升影响力的一个重要渠道。我们可以借助 Github 提供的 Git Page 功能轻松搭建自己的博客。
学习并使用 Markdown 语法
Markdown 以其易写、易读、纯键盘操作解放鼠标及学习简单 15 分钟即可上手等多种优势在众多书写格式中脱颖而出,它是全球最大的技术分享网站 GitHub 和技术问答网站 StackOverFlow 的御用书写格式,是程序员所应掌握的必备技能。
Markdown 也是我们平时写技术文章的源代码格式,可以很方便的对文章进行排版。因此在搭建博客之前,我们需要了解 Markdown 的语法。
- 阅读教程,并在在线编辑器中体验 Markdown 语法
- 掌握最基本的 Markdown 语法操作(包括标题、列表、文字样式、图片、链接、引用、代码块、表格等基本操作)
- 寻找并选择一款喜欢的 Markdown 编辑器(客户端)
搭建基于 Git Page 的博客
在成功创建 Github 账号之后,我们希望你能够在 Github 上搭建自己的博客,并定期更新自己的学习总结和想法等(这是你的博客,你可以在上面写任何的内容),总结是学习过程中必要的步骤,博客写的多,利人利己,好处多多。(基于 Github 搭建的博客很容易被 Google 检索到,所以你写了文章之后,就可以帮助到很多你不认识的同行,这也是一个很有成就感的事情)
- 搭建博客 ①Windows 环境②Ubuntu 环境
- 为自己的博客选择合适的主题和样式(你可以尽可能的让它美观一些,别忘了一定要选择有语法高亮的主题)
- 更新你的第一篇博文吧,在上面总结一下你搭博客时遇到的问题及解决方式,并总结使用博客常用的命令行。