23届秋招小废物的转码路线(C++&一点点Go)
- C++基础语法 & STL
- 数据结构与算法
- 计算机网络 操作系统 数据库(MySQL Redis)
- Linux
- 一点点Go
- 项目
- 编程语言选择
学习路线,学习速度因人而异,按照自己实际情况进行,我只是讲一下自己的实际情况,希望给一些同学带来一点点帮助。
====时间回到2021年====
C++基础语法 & STL
书籍
我自己的话是先看了C++ primer的前16章节的内容,大概用了两个多月(这段时间还看了B站王卓老师的数据结构相关的课程),每一节后面有一些练习题,大部分没有手敲出来,有一个思路就对照答案看看。
最开始的时候看了很多很多学习路线帖子,推荐的书籍大差不差:C++ primer,侯捷老师翻译的四件套(effective ,more effective,深度探索, STL源码剖析)。 但是! 感觉自己过于浮躁,只完整看了一本effective C++
平常查一些STL的内容是cppreference
还有一本比较硬核的书是《程序员的自我修养》,非常牛的书,事无巨细地讲解了代码如何一步步变成进程跑在操作系统上。
视频
我只看了侯捷老师的视频课,受用很多,认真看了书之后,视频刷的很快,老师的课程分为很多部分,我选着看了,C++面向对象高级开发(上下),STL标准库和泛型编程。内存管理和C++11&14时间充裕的话也可以看一些。
数据结构与算法
书籍
只买了一本大话数据结构,内容没有那么死板,对每种数据结构的特点有清晰的认知就ok。
视频学习&刷题
首推!y总AcWing的课程,Carl的代码随想录,Codetop的题单,剑指offer。 我自己最开始的话,先刷了一遍剑指offer,一遍Carl的代码随想录,这是最折磨的时光,半天A不了一题,感觉自己脑子太费劲了,直到有一天在哪看到有人在吹y总,很好奇是谁,后来找到了AcWing,大佬有一句话大概意思是“我们不是要创造算法,而是会用这些前人已经写好了的优秀的算法,会用就已经打败很多人了”,太对了! 从那以后,十分钟不会的题目,就开始看题解(当然!题解看半天也是常有的事情....)
我写了一共444道LeetCode,大部分简单题中等题,部分常见的困难题,面试手撕感觉问题不是很大(当然我没面过几家大厂)。我基本上刷了六七遍剑指offer(一天码完剑指offer的70多道题不是问题),两遍代码随想录,一遍Hot100,Codetop上的一点点题,牛客的面试必刷101的一点点题。 笔试题的话,我没特意准备过,但是明显感觉到题还是刷少了,做的挺差的。
给大家的建议就是早点开始刷题,到后面找实习、秋招啥的可能都没心情写了(或许只有我是这样的,hhh)。
计算机网络 操作系统 数据库
这些内容都非常非常非常重要,多花点时间也正常
书籍
计算机网络自顶向下,MySQL必知必会,MySQL45讲,MySQL是怎样运行的,Redis核心技术与实战,Redis深度历险:核心原理和应用实践,操作系统我没看书.... 计网计操究极八股文:小林Coding
视频
网络:中科大老师 郑烇、杨坚
操作系统:南大 蒋炎岩
MySQL Redis:纯看书,书里全都是面试题。
这些内容肯定是太多太多了,所以视频课我都是选看,更多的是看书。
Linux
我之所以要把Linux单拿出来是因为咱既然志愿当一名新生代农民工,就得多了解了解农民工干活的环境。
B站大丙的Linux入门课,牛客网有一个视频课,Web服务器。 除此之外,学有余力的同学可以折腾下网络抓包,面试的时候有面试官专门问了:有没有自己抓过包。
如果想找嵌入式,可以研究一些Linux内核和面试官battle一下。
一点点Go
文档
视频
当时学Go是为了完成字节跳动青训营的项目,也因为这个项目,让我在秋招的时候有的讲,我最后要签的工作大概率也是Golang后台开发工程师。
项目
秋招的时候我在简历上写了三个项目,
- 参加字节青训营完成的简易版的短视频后台服务器开发;
- 牛客的Web服务器;
- 在华为实习完成的简单的APP。
因为投递的岗位大部分是后台,所以问的最多的是和1相关,有时候会介绍实习的工作内容,2的话,太普遍了,面试官见得太多,基本就问IO多路复用,线程池,你改进了哪些,还有一两次被吐槽怎么都是这个项目... 我感觉可以包装包装,把他应用起来,比如和Carl推荐的KV跳表存储项目结合一下。
可以用一些企业级的开源组件,比如Kafka,Docker,K8S,但是只要你写了,就大概率会问一些相关的知识。
语言选择
我相信,很多人转码的第一步就是选择一门语言,因为工科都学过C,平常做课题也用的是C,自己就接着学了C++,没考虑很多。有好有坏吧,好处呢就是感觉不用学很多框架,也少了一些竞争对手,坏处就是和java比少了很多互联网相关的岗位。
但C/C++的话除了互联网,在制造业(汽车电子,QT界面开发),芯片公司,自动驾驶这些领域也有很大的需求。
相信大家都看到Golang很火,不少互联网公司看上它节省机器资源,上手简单的特点,在积极转变,有同学想学的话,可以把它当做第二语言来学习,相当于多点了一个技能点吧~
所以推荐大家根据自己期望加入的一些公司和岗位,去官网查看对应的招聘信息进行语言和技术栈的选择。
今年这行情,我不敢推荐大家转码,但我希望对后面已经确定要投身软件开发的同学一点点帮助,祝大家一切顺利,offer多多吧~