CS年薪百万,YYDS?

7/21/2021

这是知乎上的一个问题,我的回答几天就破20万阅读了,不少知乎读者留言反馈挺有用:

图片

今天也把我的回答分享给大家呀:

先说结论:计算机应届生两级分化严重,收入高的大有人在,收入一般的同样很多,找不到工作的也不是没有。

如果毕业能进BATTMD等大厂,收入薪资福利都很不错,简单贴一张2021校招薪资表:

图片

这还只是本科生的薪资信息,最高都40万了!

但如果是中小厂那就不一定了,如果是小厂那就惨不忍睹了,7k、8k的大有人在。

关键是进大厂,对于计算机专业的学生来说,只能进小厂和毕业就能进大厂的差距真的是巨大的,并且这种差距会随着时间的推移越来越严重!

我毕业拿到多家大厂Offer,最终选择去了腾讯,之后跳槽/晋升都是一路绿灯,以上这个观点真的非常真诚。

先说下CS专业毕业如何进大厂

首先做好以下几点:

  • 算法和数据结构:数组、链表、二叉树、堆栈、排序算法、B+/B-树、DP(动态规划)等;
  • 疯狂刷题,撒比算法题、Leetcode等等,都挺不错,刷起来
  • 计算机网络:HTTP、DNS、ARP、TCP、IP、ICMP、UDP等;
  • 操作系统:IO、存储器、多线程/多进程、同步机制、处理器调度及死锁、设备管理、通道等;
  • 计算机组成原理:冯诺依曼计算机组成、计算机层次结构、计算机性能指标等;
  • 选定一门主攻的语言方向,比如Python、C++、Java等,并真正攻克它;
  • 多实践多上机,机房要常去
  • 抓住一切可以实习的机会,是否有实习经历往往是大厂给不给offer的分水岭

另外,再多说几点吧,以下几点对应届和工作的朋友都有用:

# 1.尽早确定主攻方向

是选Java后端还是windows C++前端,或者是安卓开发,还是需要尽快定下来。这样有的放矢的做全面准备,包括平时的实践和找实习的目标,等到春招秋招之际你才不会慌乱。

同时,自己确定主攻方向,还可以有筛选,挑出自己真正感兴趣的方向,拿我自己举例,我在读书期间选择的方向就是:C++游戏开发,所以无论是平时的学习还是实习,都在刻意往这个方向靠,最终在毕业之际也成功加入腾讯游戏。

很多朋友会随波逐流,没有确定主攻方向,这样不仅不能获得额外的优势,还会导致工作后发现不是自己喜欢的方向,这就太尴尬了!

另外说下目前技术岗竞争的难易程度: 算法 >>> 后台/后端开发 > 前端 > 客户端 > 测试开发。

如果不是特别优秀,不推荐走算法方向,基本都是神仙打架普通人很难参与进去。

大家要评估下自身的实力,如果是双非也没有获奖经历,那就不要去挤热门了。试想一下BAT的热门岗位的竞争得有多激烈,凭什么最终录取你?前一段时间BAT的机器视觉和推荐算法爆出100:1的录取比例。。。重点是先加入大厂先上岸,这个时候客户端和测试开发也是很好的选择。

工作后大家就知道了,岗位的差距其实并没有那么大,但大厂和小厂之间的差距真的巨大且很难弥补。

# 2.多看计算机经典书籍

看经典书+实践是成长最快的方式,对于计算机专业的学生来说,更是如此。

我看的第一本经典书籍就是:《C++ Primer》,可以说上面的每一个例子,都上机造过轮子。

随后开始啃《Effective C++》、《More Effective C++》、《C++程序设计原理》、《深度探索C++对象模型》、《STL源码剖析》、《计算机网络系统方法》、《TCP/IP详解》。

其实大家用于学习的时间差距都不会特别大,分水岭是单位时间的利用效率,我们要做高附加值的学习,看计算机经典书籍的附加值就极高。

过去10年前前后后也看了近百本计算机书籍,其中觉得最经典的有10来本,大家可以看看这篇文章:洋哥最成功的投资,赚爆了~ (opens new window)

3.优先巩固计算机体系基础知识

勿再浮沙筑高台,不少同学在基础还没牢固的时候就开始学习上层应用语言,这样不仅很多背景知识会成为障碍,在校招也会处于不利位置。

就说大厂校招/社招的笔试面试吧,算法必考,并且是拉分的关键点。

计算机体系基础知识包括以下几个方向:算法、数据结构、操作系统、计算机组成原理、数据库、计算机网络。

尤其是算法,重中之重,大厂招聘必考,甚至很多面试官会要求手写:

  • 数组、链表、堆、栈、二叉树、B+/B-数、哈希...
  • 冒泡、快排、二分查找、kmp、dp.....

这些知识,在关键时刻决定了你的命运!读书期间,有机会就要多刷题,工作后有时间也要多刷题!刷题包括数据结构算法基础的题,和一些套路题(类似剑指 offer 的题)。

前者是基础,后者是那种要求你beat100的变态题,思路其实并不难,做过的话很轻松就可以通过,如果回答不上来基本秒挂。

《剑指offer》《编程之美》《编程珠玑》《Crack over the code interview》TopCoder Leetcode,这些都安排上,整起来!

# 4.动手实践

只学习,不动手很难真正熟练掌握知识。

给大家说一个动手的诀窍:计算机编程本身非常枯燥,但用它做出的东西,却完全可以充满趣味性!

大学期间,我掌握了C++之后,还用它做了不少有趣的东西,比如:万年历、五子棋、俄罗斯方块等等,俗话说兴趣是最好的老师,建议大家在学习编码的过程中也不妨挖掘出一些有趣的东西。

我写的五子棋程序:

图片

俄罗斯方块:

图片

这个就稍微复杂点了,当时用了mfc。

虽然简陋,但这种训练给我的编码能力带来了极大提升,还训练了程序思维。

# 5.保持高效学习

我们在学习的过程中要始终牢记:保持高效!

本科生都是在大学学习四年,效率高低某种意义上决定了校招的成败。

工作后的不断成长也非常重要,如何在繁忙的工作之余学习成长?效率也是关键!

那么如何做到高效学习呢?做到以下几点基本就够了:

  • 保持学习的极致专注:寻找心无旁骛的感觉,如果做不到就卸载那些让你上瘾的软件、戒掉那些让你分心的嗜好。
  • 打造拆解-执行-复盘闭环:领到任务,先拆解,越没有把握的事情,拆解的颗粒度要越细,将ddl也同步拆解到每一件可执行的事情上,最后保持周期性复盘。
  • 尽可能利用碎片时间:不清楚碎片时间的威力?你可以做一个时间表,看看每天有多少碎片时间,结果会让你非常吃惊。

大家无论是在读书,还是准备考研,又或者在工作,始终要记得:只有自己能改变或者救赎自己。无论是拿到好的绩点还是考上985研究生,又或者是加入大厂工作,都需要制定明确的目标,并一步步去接近更好的自己。

当然,奋斗未必就一定能成功啦,但这不是我们摆烂当咸鱼的理由和接口,因为不奋斗真的是一点机会都没有的。

这个世界不存在躺平,如果你能躺平,那要么是有人帮你承受了风雨,或者是让你难受的时间点还没到而已,并且躺平之后的难受,可真是能到绝望的程度。

人生中有些事是不得不做的,于不得不做中勉强去做,是毁灭,于不得不做中做得好,是勇敢。

# 6.重视实习

实习尤其是暑期实习,非常重要,现在的大厂竞争越来越卷,不实习拿到Offer的概率越来越低。更别提暑期实习转正概率很高。

在今天这个竞争激烈的环境之下,实习=快人一步拿到Offer,就算最终没转正,你拿着这些实习经验去其他公司,也会充满竞争力!

平时可以多和在BAT就业的师兄师姐联系,又或者发动下身边的人脉,关键时刻一个小小的内推,可能你就拿到实习机会了。

另外还包括准备一份好的简历,疯狂投递不放过任何机会等等,就不一一详述了,以上关于本科生如何进BAT的建议,就说完了。

写在最后:

有一句话我很喜欢的话送给大家:千淘万漉虽辛苦,吹尽狂沙始到金。

大家一定要在工作之前多掌握一些技能,多学一些有用的知识,不要空着手去社会拼搏竞争。

少打几盘王者荣耀,少和同学喝酒聚会,多去去自习室学习,多去去机房上机,多去leetcode之类的刷题网站刷刷算法题,多和老师做做项目,这样当你步入社会之际,你的底气会更足。

不然的话你会被社会毒打到怀疑人生。你会发现你投的简历都石沉大海,你会发现要晋升的时候,那个人总不会是你,你会发现怎么越工作越艰难,天天要担心被淘汰。

如果你进的第一家公司,不那么好,你会发现你后面走的路,相对于那些进了大厂的同学,简直是曲折太多、难走太多。

工作了的朋友,也要记得利用尽可能多的余闲时间充电学习,只有不断武装自己,才有更好的前途。

工作多年后,你会发现:有人创业成功成了企业家、有人年薪百万做了个金领、有人过着小日子挺滋润,还有人可能找工作和温饱都成问题。

真的是这么残酷,仿佛大家都生活在不同的世界之中。但其实选择哪个世界,都是我们自己决定的。