Skip to content

Latest commit

 

History

History
164 lines (100 loc) · 9.28 KB

2021009 - 推荐几个C++项目,可以学到点东西和写在简历上的那种.md

File metadata and controls

164 lines (100 loc) · 9.28 KB
layout category title tagline tags excerpt comment
post
algorithm
推荐几个C++项目,可以学到点东西和写在简历上的那种
by 阿秀
原创
计算机
CS
学习
社招
校招
阿秀
推荐几个C++项目,可以学到点东西和写在简历上的那种
false

推荐几个C++项目,可以学到点东西和写在简历上的那种

作者:阿秀

原文链接:https://mp.weixin.qq.com/s/LopXj5XkUbOSgESV-sOf4w

这是四则或许对你有些许帮助的信息:

1、👉 最近我发现了一个每日都会推送最新校招资讯的《校招日程》文档,其中包括往届补录应届实习校招信息,比如各种大厂、国企、银行、事业编等信息都会定期更新,帮忙扩散一下。

2、😍 免费分享阿秀个人学习计算机以来收集到的免费学习资源,点此白嫖;也记录一下自己以前买过的不错的计算机书籍、网络专栏和垃圾付费专栏

3、🚀如果你想在校招中顺利拿到更好的offer,阿秀建议你多看看前人踩过的坑留下的经验,事实上你现在遇到的大多数问题你的学长学姐师兄师姐基本都已经遇到过了。

4、🔥 欢迎准备计算机校招的小伙伴加入我的学习圈子,一个人踽踽独行不如一群人报团取暖,圈子里沉淀了很多过去21/22/23届学长学姐的经验和总结,好好跟着走下去的,最后基本都可以拿到不错的offer!此外,每周都会进行精华总结和分享!如果你需要《阿秀的学习笔记》网站中📚︎校招八股文相关知识点的PDF版本的话,可以点此下载

大家好,我是阿秀

据我粗略估计,问我“有没有什么好的 C++ 项目推荐“这个问题出现的频率仅次于“问我帅不帅“。

C++」是一门贴近底层的语言,不像「Java」那样能够快速的搭建一个业务系统,比如 「XX」 秒杀系统、、「XX」电商系统这种看着“高大上“,「C++」 一般只能用来做一些轮子。

我这两天花时间整理了一下,推荐几个个人觉得还不错的 C++项目吧,由易到难。

我们将封装好的组件、库,叫做轮子。

1、手把手教你从零开始实现一个 JSON

Json 是一个用于数据交换的文本格式 ,可用于任何编程语言。一个动态网页想从服务器获得数据时,服务器从数据库查找数据,然后把数据转换成 JSON 文本格式:

Json格式如下:

{
   "title": "Design Patterns",
   "subtitle": "Elements of Reusable Object-Oriented Software",
   "author": [
       "Erich Gamma",
       "Richard Helm",
       "Ralph Johnson",
       "John Vlissides"
   ],
   "year": 2009,
   "weight": 1.8,
   "hardcover": true,
   "publisher": {
       "Company": "Pearson Education",
       "Country": "India"
   },
   "website": null
}

这个项目还可以,也是从 0 开始一步一步教你做的。作者是腾讯 T4 大佬, 曾参与《天涯明月刀》、《斗战神》、《爱丽丝:疯狂回归》等游戏项目 ,也是《C++ Primer 中文版(第五版)》的审校人之一,反正又是一个大佬,手动狗头。

github链接:https://github.com/miloyip/json-tutorial

2、实现属于你自己的 STL

一个合格的 C++ 程序员是必须要会STL里的,其中的容器、算法在刷各种OJ的时候简直是一大利器。我知道有很多同学都有想过写一个属于自己的 STL,我也想过,但没行动过 hhh

MyTinySTL这个项目把我想的做了,它是基于 C++11 tinySTL,其中实现了 大部分 STL 中的容器与函数 ,所以你也是完全可以照着它来实现自己的 STL 的。

github链接:https://github.com/Alinshans/MyTinySTL

3、烂大街的HTTP服务器

这个项目似乎成了Linux C/C++技术栈人手一个的项目了?

虽然这个项目烂大街了,看着也挺简单的,不过能玩的花样还是不少的。比如加入代理功能、添加支持 CGI 功能或者加入日志记录等。它越简单,你可以做的改进就越多,在面试的时候,你就可以跟面试官聊你的改进和你添加的功能,面试官是很愿意看到你的自己在做一个项目时的思考和改进的。偷偷跟你说,这种改进很加面试分的。

这里我推荐牛客大佬健康成长天线宝宝啊的 HTTP服务器,这位大佬现在在阿里云做平台开发。他在牛客上写的 C++ 求职/基础架构路线文章非常不错,想要走 C++ 路线的同学推荐你们去牛客看看他的帖子。

健康成长天线宝宝啊个人主页:https://www.nowcoder.com/profile/2765647?noredirect=true

健康成长天线宝宝啊服务器项目github链接:https://github.com/linyacool/WebServer

4、实现一个多线程网络服务器

这个是我在github上发现的,这里直接搬运一下该 Demo 的说明吧。

本项目为 C++11 编写的基于epoll 的多线程网络服务器框架,应用层实现了简单的HTTP服务器 HttpServer 和一个回显服务器EchoServer,其中HTTP服务器实现了 HTTP的解析和Get方法请求,目前支持静态资源访问,支持HTTP长连接;该框架不限于这两类服务器,用户可根据需要编写应用层服务。

通过该项目你可以了解到部分 C++11 的语法和编码规范、学习巩固网络编程、网络 IO 模型、多线程、git 使用、Linux命令、性能分析、TCP/IP、HTTP协议等知识

github链接:https://github.com/chenshuaihao/NetServer

5、从0开始手把手教你做的服务器框架

说实话,这个算是比较难的C++项目了,是我在B站发现的,我看了底下的评论,相当不错。是一个C++ 高性能分布式服务器框架 的项目,我确认过了,是新手不要尝试的那种难度。

该项目主要有 13 大模块组成,分别是日志模块、配置模块、线程模块、协程模块、协程调度模块、IO 协程调度模块、Hook 模块、Socket 模块、ByteArray 序列化模块、TcpServer 模块、Stream 模块、HTTP 模块、Servlet 模块。

B站视频教程:https://www.bilibili.com/video/av53602631?from=search&seid=9029288577396826503

服务器框架github链接:https://github.com/sylar-yin/sylar

6、做个操作系统内核吧

《深入理解计算机系统》这本书大家应该都听说过吧,这本书被誉为“跟金子一样珍贵的计算机基础书籍”,如果你还没看过,赶快去买一本补补功课。

其中这本书中的一些lab 很是不错,你完全可以实现其中的一个小 lab 来作为自己的 C++』 项目的。而且这本书也是美国麻省理工学院的推荐的计算机书籍之一,课后的一些lab 也会布置给上课的学生。

想一下,面试官问你的项目背景是什么的时候,你直接告诉他“这是美国麻省理工学院的计算机专业学生的结课大作业”,没有分量吗?不能装逼吗?

建议先看一下 B 站 MIT 6.828 视频,再去实践。

《深入理解计算机系统》课后lab作业github链接链接: https://github.com/woai3c/MIT6.828

结语

完了,拜了个拜!