首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux C++生存指南

Linux C++生存指南

作者头像
公众号guangcity
发布2020-06-03 22:34:12
3.7K0
发布2020-06-03 22:34:12
举报
文章被收录于专栏:光城(guangcity)光城(guangcity)

0.导语

本文没有什么花里胡哨的东西,也没有广告,更没有长篇大论,只有一如既往的干货,期待大家留言!

最近更文不是很频繁了,现在工作比较忙,但是会尽量保证优质文章输出,没有文章的话,也不会乱发其他文章或者广告,可以浏览历史记录,是没有广告的,目前公众号文章288篇原创+,我的公众号撰写是从研一开始的,当然现在关注量是非常少的。。。这一点就不多阐述了。

今日主要来阐述一下最近比较火的《C++那些事》开源项目,这个项目是我在研一下,研二上那个阶段整出来的,当时目标就是为了满足自己找工作的需求而写的,所以大家如果找工作看我的C++那些事,是非常有帮助的!

本文呢,就是对C++那些事的详细阐述以及阐述每一块怎么学,我是怎么学的,C++那些事未来要做什么,以及面试重难点,职业发展等。

C++那些事项目地址:

https://github.com/Light-City/CPlusPlusThings

配套网站浏览地址:

https://light-city.club/sc/

1.入门

看书/学校课程学习,一般就上课用的书或者比较经典的很厚的那个C++ Primer,个人不太推荐看这个书,不过如果在校学生学习的话,研读这本书还是蛮好的。

本人入门Cpp是在研一下,具体的内容对应《C++那些事》的第二部分《实战系列》,其中的大多数内容是我在准备考试阶段学习到的,如果你是一个在校生,这一块也是非常不错的,如果是入门选手,更是宝贵的学习资料。

随后,推荐以下几本书:

https://book.douban.com/subject/1842426/

《Effective C++》 豆瓣评分 9.5分

其实,看完上述这本书对于敲代cpp代码是有一定的感觉的,如果你是边学习边练习的话,肯定入门了,否则那再来一遍吧。

2.新特性

现在用的比较多的是C++11版本,当然面试过程或多或少会问一些,虽然现在也有14/17等,但是面试以及实际工作中用处不太大。例如:nullptr与null、0的区别? 怎么初始化?经常会被问到,这一块的内容对应于我的《C++那些事》当中的C++2.0新特性,这一块的学习我是根据侯捷老师的b站课程(仓库上学习资料可见)以及后面推荐的书籍学习的。

强烈推荐下面这本书的英文原版!我个人是看了一遍,收获很大的!

https://book.douban.com/subject/25923597/

《Effective Morden C++》豆瓣评分9.4分

涉及这一块的代码,大家可以跟我的C++那些事代码库一起码起来。

这一块对应的热点面试题:智能指针,左值与右值。

3.面试及进阶

这里我将面试与进阶放到了一块是因为,你如果准备面试,光掌握上述的知识点还远远不够,而进阶的同时又是与面试知识息息相关,因此放到了一块。

1.这一块我强烈推荐大家学习C++那些事项目中的基础进阶部分,这一块的内容既是基础,也是面试常考点!就跟考试一样,高考考的都是一些很基础的东西,基础不牢,地动山摇。在基础的之上,你该考虑上一层楼了,此时就是我自己研究了2个月的STL源码,源码对应版本是gcc4.9.1,我自己花了2个月时间,每天抽一点时间,将STL的源码进行了剖析,每一部分都有文档即代码,算是非常详细了,这一块的内容是我C++那些事的核心!非常非常重要!对应的热点面试题:vector内存增长方式?map底层数据结构?

2.面试还会考察设计模式,设计模式通常有些晦涩难懂,代码复杂,如果语言基础不牢固,可能会绕晕,因此这一块的东西,请选择重点的部分学习,例如:单例模式、工厂模式。这两种是面试的热点,可以先学习一下,此处对应于C++那些事第四部分设计模式。

3.最后,可以看看一些并发编程相关的内容,实际上面试考察的不多!但是考察的却通常是操作系统相关的内容,例如:多线程、多进程,进程通信,线程通信。

4.基础素质

上述4大部分是你去学习C++入门及进阶的必走之路,cpp学习是一条苦海之路,你需要一些过硬的基础素质,这些在上述是没有提到的,下面一一列举。此处对应于Linux C++后台开发人员。

  • Linux基础
    • 基础命令:例如:ls,cd等
    • vim使用:查找、替换、删除等
    • 网络故障排查及抓包:例如:netstat、tcpdump等
    • Gdb调试、Gcc/G++
  • 操作系统
    • 进程
    • 线程
  • 数据库(Mysql、Redis)
    • Mysql事务
    • Redis底层原理
  • 服务器
    • Nginx特性
  • 云部署
    • Docker
    • K8s (非必须)

基础素质这一块,将会在《C++那些事》未来加入,期待大家长期关注本项目!

5.工作发展

此处仅仅代表我的个人职业看法,很多人对C++找工作不解,不知道就业有什么岗位,这里我推荐几个。

  • 音视频开发
  • 后台开发
  • Qt开发
  • AI底层开发
  • 驱动开发

其中比较常见的是后台开发,最近AI领域很火,很多人是学习AI技术的,但又不想抛弃AI,找工作又不好找,此时转C++是非常不错的选择,为什么这么说呢?举个例子吧,在图像视频领域,大家用opencv,ffmpeg很多,那么可以无缝对接音视频开发。再比如说,你对tensorflow熟悉,那你可以去找写框架底层的工作,例如:模型开发等,甚至比较火的CUDA开发工程师,你都可以去找。

C++工作不是不好找,自己要切合自己的氛围,自己的机会就在那摆着,如果有疑问,可以一起交流!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 光城 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0.导语
  • 1.入门
  • 2.新特性
  • 3.面试及进阶
  • 4.基础素质
  • 5.工作发展
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档