本仓库用来记录学习使用rust
欢迎志同道合的朋友一起学习, 可以开个issue或者向我提PR
我的学习背景:
- 计算机科学专业
- 系统学习过汇编,c,c++(写过课设, 写过大量练习题, 没有实际工程经验, 只学过c++11之前的版本, 没有系统学习过c++的构建工具make,cmake等,不了解c++下的单元测试框架)
- 了解并曾经学习过move, forward等c++特性, 看过相关提案但是现在已经忘记了, 知道c++语言存在的double free, 悬空指针等内存问题,了解过RAII**但是没彻底搞明白
- 工作主力语言是Java, 写过完整的scala项目(学习并大量使用过函数式编程), 了解groovy并大量使用过spock做测试框架, 了解并使用过kt(实习期间)
- 尝试手撸过lisp编译器(半途而废)
- python是用的最多的脚本语言(必须借助谷歌才能写出脚本)
总而言之:我是一个曾经有c++基础但是没找到c++工作去做了Java开发的程序员, 以本仓库记录自己学习rust的过程。
选择rust的原因:
- AI出现后, **Java程序员的竞争一定会越来越激烈, Java太卷(换Go也一样),核心是非系统性语言上手过于简单, 我想选择学习一门不使用GC的系统语言提高竞争力
- 微软宣布使用rust重构部分内核, cloudflare使用rust成功写了自己的nginx, 字节跳动也有部门在使用rust(有工作岗位)
- 我觉得会写rust的人至少是懂计算机科学的, 以后相处也轻松
- 所谓业务向编程是完全没有核心竞争力的, 程序员就是产品经理和老板的宝可梦, 我想找一份技术驱动性质强烈的
- rust的文档是目前我看到的语言里写的最对我胃口的
为什么不选择c++:
- 打不过, 换个新赛道
学习目标:
- 在一个月内可以在AI的帮助下完成本项目的0.0.1版本(跨平台windows, linux, macos的rust命令行教学指南)
- 在三个月内可以在AI帮助下使用rust开发具有图形界面的跨平台的可执行程序
- 在六个月内可以参与到rust开源社区解答简单的问题,并可以在大部分情况下不使用AI进行编程
目前使用的IDE: fleet vscode (fleet试验性质还是太严重, 和vscode的生态相比还是太差了)