第一章 BBFM
BBFM
新实习生第一个月目标就是完成
确切的说,本文档提到过的东西都不会专门解释,默认你已经知道了这些
BinBat 实习生一个月强制自学内容 BBFM(BinBat First Month)
为了保障所有的沟通都是有效的,项目沟通,过于基础的知识将不会解释
比如:任何项目再沟通时是不会去解释私有 IP 地址和公有 IP 地址区别,这些默认内容你已经知道
BBFM 完成时间时间为一个月,考虑部分有实习生还有其他事情,最长不得超过三个月
超出未完成被视为不适合在这个领域发展
第一周:Linux 基础
读书和实践
测试标准:自己编译 Linux 内核
- 现场讲解自己编译内核的可重现式操作笔记
- 使用自己编译的内核启动
可重现式笔记
可重现式操作笔记要保障,其他人拿到你的笔记可以完整复现你的状态
第二周:服务器
读书和实践
测试标准:自己搭建 www 服务器,并用 PHP 写一个文件上传和下载功能
Secure Shell (SSH)
使用 SSH 连接远程服务器
第三周:编程基础
我们目前主要用着 四 两种语言:Golang,Typescript,Python, Rust
Golang 和 Python 已经不再建议使用,原因是目前的编程已经变成了 Vibe Coding 为主。
在这样的环境下我们应该选择更适合 Vibe Coding 的编程语言:
Rust 由于零开销的抽象、内存安全、编译器的严格检查,可以在开发阶段避免大部分问题。随着 Vibe Coding 工具对 Rust 支持日益成熟,Rust 的严格编译器反而成为天然优势。(Python 和 Golang 适合地方场景,都可以换成 Rust)
Typescript 作为 Web UI 最重要的编程语言 JavaScript 的类型增强版本,可以在编译期发现大部分问题。
Python 作为人工智能领域的先行者,但其动态类型和运行时错误的特性,在 Vibe Coding 场景下并不是最优选择。
Golang 在传统小项目开发中工程化体验极好,但它仍然存在 data race 等问题。在 Vibe Coding 成为主流开发方式的今天,语言层面的安全保证远比工具链便利性更重要,Golang 的工程化优势因此大打折扣。
实践:自己找资料实现 Web 应用
TIP
如果没有任何想法,那就去实现一个 Blog
测试标准:现场功能演示
第四周:代码管理和协作
读书
使用 git bisect 找出问题,购买域名。配置 https 指向上周开发的网站。给开源项目提交 PR (Pull Request)
TIP
为了让自己的代码尽快被合并,开发首先要学会写优雅的代码。
其次要提高 PR 的可读性(写的时候尽可能拆成多个独立的可被 review 的 commit,写之后为 PR 认真写 description)。
最后是估时必须加上 PR 和提测(如有)的时间,而不是以“明天要上线了”为理由逼迫 reviewer 合并。
测试标准:
- 现场演示有 https 到站点
- PR (Pull Request) 被 merged
WARNING
按照一般情况,等很多天,反复修改,甚至 PR 并不一定会被合并,在开源项目里属于非常常见情况
所以要尽可能多提 PR 和尽早提 PR,这样才可能在时限内完成
Git Commit message
GitHub 和 PR
有一句名言是咋说的来着? 代码主要是给人看的, 其次才是给电脑去运行.
git bisect
二分查找引入问题的 commit