CS 就业寒冬?这里有一份面试必备基础知识

CS 就业寒冬?这里有一份面试必备基础知识

作者 | 阿司匹林

2017 年国家统计局发布消息称,2016 年信息传输、软件和信息技术服务业的平均工资为 122478 元,首次打败金融业成为新霸主,是全国城镇单位就业人员平均水平 57394 元的两倍以上。

可以说,虽然程序员长吐槽自己是新时代的“码农”,加班多,时薪低,但是反映在工资上却是完全不同的情形,特别是人工智能领域的“码农”,平均年薪甚至能达到 30 万。

在互联网和人工智能浪潮的推动下,一大批年轻人选择了 CS 专业,这里面还包括各种转专业的学生。

然而,2017 年底的时候,关于 CS 毕业生就业难的问题却在知乎上特别火热。

CS 就业寒冬?这里有一份面试必备基础知识

按照知乎的传统,先问是不是,在问为什么。不过,似乎大部分答主都认同 CS 就业越来越难这一观点(横向对比),特别是对于经验不足的毕业生来说,以往挑肥拣瘦的局面早已一去不复返。

不过,也有人认为,这种现象代表着热闹的时光已经过去,现在开始回归正常,这是一个行业开始成熟的标志。

当整个行业高速发展,人才稀缺的时候,整个市场自然向“卖方”倾斜。然而,所有都公司希望招到的员工能够为自己立即解决问题,因此往往会偏向有工作经验的人才。

毕竟,一个没有经验的程序员带来的不仅仅是零输出,甚至有可能带来副输出。

作为 CS 专业的学生,或者希望向 CS 转行的学生,一定要具备扎实的基础知识,才能在未来的面试中脱颖而出,变被动为主动。

为此,GitHub 用户 CyC2018特意整理了一整套技术面试的资料 ,该资料不仅内容详实,囊括数据结构与算法、网络、操作系统、面向对象、编码实践等领域,而且结构清晰,排版美观,易于阅读。

以下内容来自 GitHub 项目——Interview-Notebook:

一、网络

计算机网络

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/计算机网络.md——整理自《计算机网络 第七版》,重点内容会在标题之后加 *。

HTTP

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/HTTP.md——整理自《图解 HTTP》

二、操作系统

计算机操作系统

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/计算机操作系统.md——整理自《现代操作系统》和《计算机操作系统》

Linux

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Linux.md——整理自《鸟哥的 Linux 私房菜》

三、数据结构与算法

算法

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/算法.md——整理自《算法 第四版》,主要整理了面试常问的排序和查找算法。

剑指 Offer 题解

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/剑指%20offer%20题解.md)——《剑指 Offer 第二版》的最优解,在牛客网在线编程中出现的题目都已 AC。

Leetcode 题解

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Leetcode%20%题解.md——对题目做了一个分类,并对每种题型的解题思路做了总结。已经整理了 300+ 的题目,基本涵盖所有经典题目。

四、面向对象

设计模式

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/设计模式.md——整理自《Head First 设计模式》

面向对象思想

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/面向对象思想.md——一些面向对象思想和原则。

五、数据库

SQL 语法

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/数据库.md——整理自《SQL 必知必会》

MySQL

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/MySQL.md——整理自《高性能 MySQL》,整理了一些重点内容。

六、Java

JVM

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/JVM.md——整理自《深入理解 Java 虚拟机》,主要整理了内存模型、垃圾回收以及类加载机制。

Java 容器

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Java%20容器.md——容器的一些总结,包含容器源码的分析。

Java IO

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Java%20IO.md——File、InputStream 和 OutputStream、Reader 和 Writer、Serializable、Socket 以及 NIO

Java 基础

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Java%20基础.md——整理了一些常见考点。

七、编码实践

重构

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/重构.md——重构是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。

代码可读性

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/代码可读性.md——编程有很大一部分时间是在阅读代码,可读性良好的代码能够大大提高编程效率。

代码风格规范

https://github.com/CyC2018/InnterviewNotes/blob/master/notes/代码风格规范.md——Google 开源项目的代码风格规范。

资料下载:

https://pan.baidu.com/s/1o9oD1s2#list/path=%2F

GitHub 链接:

https://github.com/CyC2018/Interview-Notebook

相关推荐