一个转开发路线图

2021.3.6 更新

没想到有这么多人看,今天和某个学弟交流之后,感觉自己可能不太成熟,才会写前半部分,反省一波感觉自己当时写这篇文章的时候还是很浮躁,经历的险境完全是因为没有进行合理的提前规划自作自受,只应该庆幸自己没有掉下悬崖。

这只是一个起点,只能说自己很幸运,第一步没有卷输,后面还有很多事情要做。

前半部分删除了,后面部分路线图继续保留吧,祝21届的同学和22届的学弟学妹求职顺利!

路线图部分:

本人的基本情况是本硕c9,本科是仪器专业,研一跳到算法,研二下学期跳到后台开发,一段腾讯的实习经历。

说在前面的是,首先,本路线图适用的是后台开发方向,且不保证是最优路线,个人观点,仅供参考,因人而异;第二,不要局限于此,有能力就尽早多留点儿时间,有时间就多学,千万不要觉得时间还有很多;第三,实习真的非常非常非常重要,如果很不幸你没有拿到暑期实习或者客观条件不允许,需要用这段时间补充其他的项目经历;第四,扔掉python,扔掉python,扔掉python,首选Java或C++,有余力的话可以熟悉一下golang。

首先介绍的是操作系统,操作系统分为三个部分,概念、操作和开发。
操作的话,主要是熟悉基于命令行的Linux开发环境,入门的话可以申请一台云服务器(阿里腾讯9.9每月就可以),推荐使用《鸟叔的Linux私房菜》入门。
概念的话,主要是熟悉操作系统的运行机制,例如虚拟内存、进程通讯、进程和线程模型、编译原理等等。推荐的书籍是首先《现代操作系统》,随后是《深入理解计算机系统》。
开发的话,主要是通过写程序实现操作系统的相关概念,属于略高级的层面,推荐的书籍是《Unix环境高级编程》和《Unix网络编程》。
这一部分可以先熟悉“操作”和“概念”,至于“开发”,可以搞定会更好。

第二介绍的是数据结构与算法。
数据结构部分本人没有系统的学习,推荐B站王道考研的数据结构,但战线不要拖太长,看视频课会给人一种安逸的感觉,这是不好的。
算法部分,推荐的书籍是《算法》,当然,直接刷leetcode也是可以的。这一部分可能会非常的折磨人,需要持续努力,保持刷题的习惯。笔试和面试前《剑指offer》必须非常非常非常熟练。

第三介绍的是计算机网络,计算机网络分为两个部分,网络模型和概念和网络开发。
网络模型和概念的核心是七层(或者五层)模型以及TCP/IP协议栈。这一部分推荐的数据是首先用《计算机网络:自顶向下方法》,完成第一本书之后,可以通过《图解TCP/IP》和《图解HTTP》对面试最常考的几个协议进行细节的补充,同时,公众号“腾讯技术工程”里面有一篇很长的文章,叫《彻底弄懂TCP协议:从三次握手说起》,是我目前看过的最棒的一篇文章,强烈推荐收藏。最后,有时间可以试一下《TCP/IP详解》系列,非常棒的书。
网络开发部分,没有来得及具体做一些的东西,实习的时候内部推荐使用《Linux多线程服务端编程:使用muduo C++网络库》,或者看一些项目去复现一下也是不错的。

第四介绍的是数据库,此处数据库仅指MySQL关系型数据库,不涉及Redis等,数据库也分为两个部分,概念与底层实现方式以及MySQL语法。
首先,先说MySQL语法,这一部分相对比较简单,配一下环境之后(在服务器上用MariaDB即可),跟着《MySQL必知必会》,三四天时间就可以上手,后面只要保持手感即可。
相比于操作,概念与底层实现部分是面试中更常被问到的。包括事务、锁、并发机制、隔离级别、索引的数据结构、索引的匹配原则、索引的种类及区别、不用引擎之间的区别等。推荐使用《数据库系统概念》(作者是外国人的那本)。

第五介绍的是语言,推荐的是Java和C++二选一,有余力的话试一下Golang,大胆预言一下,这应该是后面的趋势之一。以下的路线适用于C++。
C++和Java,以及Python的恩怨情仇和具体特点就不说了,只给结论,C需要了解,C++和Java熟练运用,Python的话,如果不会就先别碰了。

首先是需要入门以下C。推荐的数据有《C Primer Plus》,如果你是零基础的话,可能要多花些精力,Python肯定更简单些,但学习C是为了更好的了解程序的运作模式。
随后进入C++的学习,第一本书应该是《C++ Primer》或《C++ Primer Plus》,二者都可以,这本书通完之后,应该就可以刷算法题了。
随后进入进阶,进阶的话,分为两个part,第一个part是语言自身的特性,第二个part是标准模板库(STL)。针对语言自身的特性,视频推荐B站上侯捷老师的《C++面向对象高级编程》,书推荐《Effective C++》,有能力可以挑战一下《More Effective C++》。针对STL,视频推荐B站上侯捷老师的《C++ STL体系结构与内核分析》,书推荐侯捷老师的《STL源码剖析》。(在班车上看的视频课就是上面提到的!)
最后,由于C++11相比于C++98出现了比较大的更新,需要去了解几个新特性,例如智能指针、列表初始化、lambda表达式(从来没有答出来过)等等。

最后一项是设计模式,这一部分主要出现在笔试中多一些,个人的面试感觉是,你直接告诉面试官你不会应该也无伤大雅,毕竟在学校可能大型程序接触的也比较少,当然,技多不压身。

上述内容都啃完之后,首先可以先恭喜一下了(啃不完也可以恭喜,毕竟是走在正确的道路上)!最后3-4月(最早二月底)投一波实习,刷一下面经,一边笔试面试,一边及时复盘自己面试或笔试时的失误,就可以越来越好的。至于从实习到秋招,相信各位会在实习的时候,找到适合自己的路线。

本文有遗漏之处,或者有其他问题需要交流,欢迎来找Henry讨论,我的邮箱是henry_king96@qq.com。
最后,祝大家都有好offer!
#面经##学习路径#
全部评论
没去shopee你亏大了啊,虾皮今年普涨5000元,真的是离谱啊
1 回复 分享
发布于 2020-11-07 11:19
为啥没有在腾讯转正啊
1 回复 分享
发布于 2021-03-06 15:22
同本测控,研控制,做深度学习,工作找开发,但是个菜鸡😅惭愧
2 回复 分享
发布于 2020-11-08 07:43
请问为什么扔掉python呢,招聘要求上很多不是会一种语言就行吗
1 回复 分享
发布于 2021-03-24 23:41
真大佬👍
点赞 回复 分享
发布于 2020-11-07 11:11
虾皮香啊
点赞 回复 分享
发布于 2020-11-07 11:34
这作息真滴牛皮
点赞 回复 分享
发布于 2020-11-07 13:36
感谢分享
点赞 回复 分享
发布于 2020-11-07 13:48
lz电信云北京户口吧?
点赞 回复 分享
发布于 2020-11-07 18:00
大三菜鸡一只,cpp水平只是普通写代码的那种,求问如何能进腾讯的实习呀😭
点赞 回复 分享
发布于 2020-11-07 22:11
你是昨天晚上半夜吃夜宵碰到的兄弟??
点赞 回复 分享
发布于 2020-11-07 23:39
流批
点赞 回复 分享
发布于 2020-11-08 00:02
虾皮这么香都忍得住,太牛逼了!!
点赞 回复 分享
发布于 2020-11-08 00:04
点赞 回复 分享
发布于 2020-11-08 02:26
LZ真的是很自律了… 当榜样学习!!
点赞 回复 分享
发布于 2020-11-08 03:04
曾以为自己很努力了,却不知自己付出的还远远不够,加油😂
点赞 回复 分享
发布于 2020-11-08 08:10
让专业经历差不多研一还在摸鱼的我心里一紧,ORZ
点赞 回复 分享
发布于 2020-11-08 09:38
感谢分享
点赞 回复 分享
发布于 2020-11-08 09:47
请问零基础转cs的话 楼主对于计算机基础的部分学习顺序是文中按第一第二部分介绍的顺序吗
点赞 回复 分享
发布于 2020-11-08 10:41
跟你差不多背景,但是实验室不让实习,妈的气死了。。。。
点赞 回复 分享
发布于 2020-11-08 11:10

相关推荐

不愿透露姓名的神秘牛友
11-26 10:52
美团 后端开发 23*15.5 本科985
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-09 14:54
点赞 评论 收藏
分享
评论
84
386
分享
牛客网
牛客企业服务