首先说下个人情况:
- 21 年毕业,双非一本非科班;
- 考研二战失败,22 年 4 月到 23 年 3 月在一家制造业公司干 Java 后端(目前已离职);
- 工作中技术没有进步(毕竟是在制造业,有时候代码都写得少),甚至让我讨厌 Java 。
但是我一直对 C++比较感兴趣,目前 C++的水平大概是:
- C++Primer 入的门,熟悉基础语法,STL 容器、模版、范型编程、OOP 也都了解;
- 通读 Effective C++和 Effective Modern C++,对 C++的一些具体条款有所了解;
- 网络编程只看过游双的《 Linux 高性能服务器编程》,Socket 编程,以及常用的 API 都还比较熟悉;
- 项目就是烂大街的 webserver ,用 C 写的 Json 解析器;
- Git 、gdb 、CMake 、valgrind 这些工具都还算会用;
- 其他诸如网络、算法、操作系统等方面的基础知识非常薄弱。
而我求职 C++后台开发岗的现状是:
- 社招基本要有一至三年的相关经验,而我没有;
- 我投递的简历基本石沉大海,连面试的机会都没有;
- 岗位少,大厂看都不敢看,游戏服务器也不看,不知道找什么样的合适。
以上说的有些啰嗦,总结来讲就是:非科班,非名校,非应届,没有 C++工作经验,技术水平不够。
以下我想问各位老哥:
- 我现在的水平是否完全找不到工作,如果是,那么还差哪些方面,差多少?
- 我这种情况,无论现在还是之后,是不是求职 C++后端开发岗都不现实(考虑到没办法入场,一直零经验)?
- 建议报培训班吗?或者有什么其他的办法。(本人自制力奇差)
- webserver 项目我跟着开源教程写了三个,基本都能理清设计思路,掌握技术要点,并做一定更改。但我想知道这 3 个哪个最合适?
以下是 3 个开源项目:
-
30 天自制 C++服务器
- 特点:事件驱动,主从 Reactor 模式,TCP
- 目前我跟着写完,主要是一个 TCP Server ,个人认为是这三个中功能最简单的,但它功能抽象结合回调函数的设计感觉很棒,Modern C++也很简洁优雅。
-
TinyWebServer
- 特点: Proactor 模式,Http Server ,异步日志,mysql
- 目前我实现了简单的登陆注册功能,值得说的就只有定时器和异步日志,其他的感觉设计得不如上一个项目优雅。C with Class 和 C++11 版本都写了一遍。
-
Sylar
- 特点:日志模块,配置模块,线程模块,协程模块,协程调度模块,io 协程调度模块等等
- 目前实现了仿照 Java 的 Servlet 模块,项目到处是 OOP ,各种封装继承多态,特别是结合线程协程时,很复杂,搞得很晕,代码量对我来说也很大。不过一个个模块仿写加测试,感觉也学到不少。就是有些地方感觉不是很现代 C++。
另外陈硕大佬的 muduo 我感觉跟 Sylar 应该差不多复杂,估计要花不少时间,这个是否值得看?最重要的是我想问这些项目在面试官眼里是否就是纯“玩具”,特别是社招?但我没有相关工作经验,“玩具项目”似乎就是最大底牌了。