rust_learn

本仓库用来记录学习使用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的生态相比还是太差了)