Skip to content

yaerlan/student-camp-2018

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2018 DML308多核组新生学习

该初版目录参考自华科冰岩作坊

📖 总进度表

学 员 1 2 3 4 5 6 7 当前 deadline
11/18 24:00-完成任务1
黄业兴
李 妍
李雅兰
张培基

欢迎你来到多核组 2018 Git冬令营!

在开始之前,你需要知道的是:

在成为C++/Java/后台/游戏/前端/测试开发工程师之前,你首先得是个工程师!

📁 仓库结构与规范:

初始项目架构:

  • student-camp-2018
    • Huang(黄业兴)
      • Notes(空)
      • Tasks(空)
      • README.md(进度表)
    • Yan(李妍)
    • Yaerlan(李雅兰)
    • Zhang (张培基)
    • README.md
    • .gitignore

目标项目架构:

  • student-camp-2018
    • 你的文件夹
      • Notes
        • git.md
        • markdown.md
        • lexer.md
      • Tasks
        • task1
        • ...
    • README.md(进度表)
    • .gitignore

可能的师兄师姐分配(大约2019年初前指定)

学员 指定
黄业兴 待定
李 妍 待定
李雅兰 待定
张培基 待定

新手大礼包

工具 说明
Chrome https://www.google.com/chrome/
学生大礼包 https://github.com/ivmm/Student-resources
Github Education Pack https://education.github.com/pack
任意输入法 要求项目内全部使用utf-8编码
标点符号使用英文标点(半角)
wox / bitwise / cmder 实验室软件推荐列表/未来由你们更新

接下来让我们开始紧张刺激的 7 层关卡挑战吧 ~~ Link Start !!

1. 代码托管 / 版本控制

Build software better, together

推荐时长:1~3

任务目标

  1. 创建并拥有一个 github 账号
  2. 了解并掌握 git 基本操作
  3. Fork 并 Clone student-camp-2018 仓库
  4. 要求把过程中学到的新知识写入你的文件夹/Notes,包括后续任务进程中也是如此

考核指标

  • 创建你的文件夹/Notes/git.md文件,在其中写入以下内容
    • git 指令:
      列出命令行中常用的git指令, 至少5个
    • 回答问题: 什么是 Pull Request?
      自己的理解写在这里,10-50个字即可
    • 把自己fork的文件夹内内容修改完毕后提交 Pull Request 到主目录.不要动别人的文件

    事实上,对 fork 和 Pull Request 使用到位的情况下, 你的本地文件夹中根本就不会出现别人的文件

任务位置

你的文件夹/Notes

注:这步涉及到后面内容的代码控制,请一定完成好哦!以下所有涉及此仓库的代码记得当日 push

关键词:git、github

任务奖励

  1. 经验值 10 Exp
  2. 能愉快的对代码进行版本控制与管理了!

参考资料

本实验室发布的 Git 使用简明教程 熟练使用后可以大胆参与完善该文档

廖雪峰的 Git 教程

利用 SSH 连接 Github

2. Markdown

推荐时长:1

任务目标

  1. 阅读并了解 markdown 语法规范
  2. 熟练使用基本的 markdown 操作
  3. (可选)开通自己的Markdown博客 未来求职简历可附上技术博客 ,推荐 简书 或者 Github Pages + Hexo

关键词:markdown、typora、简书、插件

任务奖励

  1. 经验值 10 Exp
  2. 能够基本写出一手不难看的文档

参考资料

原味文档

中文文档

3. 正确获取知识的姿势

你看百度的工程师都用在用 google,所以要什么百度自行车!

推荐时长:自由

任务目标

  1. 成功翻越 GFW
  2. 能够正常访问 Google、Stackoverflow等国外网站
  3. (选做)成功申请并使用上 gmail(申请后可以配置 Chrome 账户登录后同步书签和插件)
  4. 在心中修改常用搜索引擎为 Google (很多人包括我一开始还是对百度怀有留恋,但随着使用次数的提升你会越来越喜欢Google, 尤其是陷入CSDN的转载黑洞时)

关键词:Google、Shadowsocks、Virtual Private Network

任务奖励

  1. 经验值 10 Exp
  2. 完成目标 3 额外获取 5 Exp
  3. 瞬间提升的逼格

参考资料

lantern 比较贵,不推荐

shadowsocks 可以几个人合买一个服务器来配置代理

4. 挑选一个适合自己的编辑器

工欲善其事,必先利其器

推荐时长:1

任务目标

  1. 任选其一:(千万不要浪费太多时间在这个地方,只需安装一个即可)
    • 世界级宝具:Visual Studio Code
    • Windows 限定: VS2013(过渡期可以使用,但不能依赖 IDE 的环境)
    • 轻便&零配置 : Brackets
  2. 了解并安装适当的插件

关键词:coding

任务奖励

  1. 经验值 5 Exp
  2. 高颜值的编辑器

参考资料

Visual Studio Code

Brackets

5. Github 多人协作

推荐时长:1 - 2

任务目标

  1. 了解什么是

    • git merge
    • Pull Request
    • Issue 有问题就开 Issue,我们可以把讨论的过程记录下来,也便于其它人遇到同样的问题时有文档可查
  2. 同时产生学习笔记写入 你的文件夹/Notes/git.md

  3. student-camp-2018中提交Pull Request

  4. cn.costream.sitecostream.site中提交Pull Request来修改自己的个人名片

关键词:多人协作

任务位置

你的文件夹/Notes

任务奖励

  1. 经验值 15 Exp

6. COStream 语法熟悉 & 编写测试文件

推荐时长:每个测试文件7

任务目标

  1. 了解 COStream 语法

  2. 负责DML308/COStream项目主目录的tests测试文件维护

    • 计划是逐步将原有无文档测试文件全部替换为新测试文件
    • 原则上不追求复杂的算法,也不追求产出速度
      • 但要求对每个一眼看不出结果的函数标记详尽的注释
      • 最差最差也要留下你参考的博客链接
      • 并对函数运行结果的正确性进行校验,给出测试时用的数据和预期结果(和网上标准结果进行比对时要附上链接)
    • 文法覆盖面尽量大
      • 首先尽量覆盖网站文档中已有的文法结构
      • 能找出越多的 BUG 越好. 后期考虑专门开一个页面,纪录找到的BUG列表和修复BUG的工作, 签名制

注: 测试对于软件开发是一项很重要的工作, 目前市面上测试开发的岗位也能开到20k/月,而且很缺专业人才. "单元测试" 这四个字在任何开源软件中都能频繁的见到, 甚至不少项目都有着"测试驱动开发"这样的编程思想

考核指标: 在DML308/COStream/tests目录中拥有属于自己的文件

关键词: tests 单元测试

任务位置

https://github.com/DML308/COStream/tests

任务奖励

  1. 经验值 15 Exp

7. Bison & Lex 编译器工具使用

推荐时长:30~60 天, 最迟第一学期结束前完成

后续这个任务细节我再继续补充

任务目标

  1. 了解 lex 词法分析 & 正则表达式

  2. 了解语法分析 & 移入-规约 规则

考核指标: 使用 flex 和 bison 完成一个自己的计算器

  • 功能涵盖:
    • 加减乘除运算
    • 与或非运算
    • ( )的优先级控制
  • 可选功能:
    • 支持a=10; b=a+1这样的赋值语句
    • 支持int a;这样的声明语句

关键词:flex / Bison / 编译原理

任务位置

你的文件夹/Tasks/

任务奖励

  1. 经验值 100 Exp

About

多核组新生学习

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 65.8%
  • Yacc 21.6%
  • Lex 10.8%
  • Shell 1.8%