有人说这只能是大企业或者互联网企业的工程师才能拿到。也许是的,小公司或者非互联网企业拿两万的不太可能是码农了,应该是已经转管理后才有可能。还有区域问题,这个不在我的考虑范围内,因为除了北上广深杭,其他地方也很难。

其实互联网相关的知识去互联网公司后很容易接触,并不是什么难点。如果你是在一线业务部门,我说的几个点几乎时时伴随着你,你完全不用担心自己不会。我司很多刚来的大学生在半年内都能把一些中间件系统摸的很明白,并不是说有多难,只是接触少,对未知的东西感到害怕疑惑而已。我在这里可以给那些想学习这方面的同学提供几本书,这几本书对互联网的知识能很快入门和了解全景。不是广告。

大型网站技术架构-核心原理与案例分析。
大型分布式网站架构-设计与实践。
大型网站系统与java中间件实践。
然后再推荐一个网站并发编程网网址。

首先20K的月薪在BAT实在太普遍了,一般是高级工程师和资深工程师的职位。在阿里是p6~p7左右,在百度是t5左右,腾讯是t2-3左右,京东是t3-1,美团是p6左右,其他的我不了解。这种级别是他们主要码农层级,加班多,能解决大部分问题,但对系统的整体架构能力和深入分析瓶颈的能力还需要培养。

能做到以下几点,拿到一二线大厂offer 20K 上下的薪资非常容易:

1.算法题,技术面试笔试都考这个,所以Leetcode至少得刷两三百道吧,《剑指offer》所有题目过一遍,搞过ACM当然更好,不刷题的话,那只有挂等着你了,毕竟现在很卷,面试官也只能通过算法题来加大筛选。

1.数据结构,不要求你手写红黑树,但是AVL哈希表堆这些简单的数据结构得自己实现过;链表、线性表必须熟悉到不能再熟悉,语言的标准库实现得了解下吧?什么Java hashmap , C++vector你得知道实现吧。

2.计算机系统知识,内存、堆栈、函数调用、数的表示等等,至少 《CSAPP》 得过一遍吧? (PS :这本书真的很适合程序员补齐计算机基础)。

3.操作系统,这些东西你总得知道吧:
●操作系统由哪些构成、进程的状态、切换、调度
●进程间通信方式(共享内存、管道、消息)、进程和线程的区别、线程的实现方式(一对一、多对一等)
●互斥与同步(信号量、管程、锁)、死锁检测与避免, 并发经典的问题:读者写者、哲学家就餐问题
●为什么需要虚拟内存, MMU具体如何做地址转换的
●内存为什么分段、分页、页面置换算法
●文件系统是如何组织的、虚拟文件系统(VFS )是如何抽象的

最好再结合Linux实现看下,推荐《Linux内核设计与实现》, 比如linux中就没有线程和进程的区分,就是一个task_ struct

另外,学习操作系统我也非常推荐去做下MIT6.828 ,实现-些线程管理、文件系统等,计算机科班不就是搞这些的么。

1.计算机网络,这个感觉相对简单,但是计网知识比较繁杂,很多同学都反映网络很难学, 一大堆的网络协议,依次学完后,还是不知道网络是怎么构成的。

这就是没有用对学习方法,导致只见树木,不见森林。

学习时,推荐你抓住一条主线「一个数据包是如何发送出去的?

带着这个问题依次去学应用层、传输层、网络层、链路层,思考这些层之间是如何串联起来的。

这就是自顶向下的思路,那自然要推荐:
●《计算机网络:自顶向下方法》

这本书从我们最常接触的HTTP、FTP、 SMTP等应用层协议讲起,可以清晰看到引入各个层的作用。

学习每层协议的时候,最好自己抓包看下, wireshark抓包遇到三次快速重传会怎么样?这样映像会更加深刻。

另外说一点,学习的时候注意收集优质的资源,并归档,比如我自己整理的电子书库,绝不是在网上那种打包下载的,而是自己需要学到某个方向知识的时候,需要看了, 去网上挨个找的,最后汇总而成。这部分我是会不断把它完善的,当成自己的小电子书库,不多, 但贵在精。

1.数据库: sq|得会写吧,这个推荐看下《SQL必知必会》, 几个范式有没有正式运用过?如何进行领域建模、数据库设计,才能够使得每次查询的开销最小?

数据库原理方面可以看看《数据库系统概念》, 这本书挺厚的,包含了从SQL到数据库设计再到数据库原理、分布式数据库都有,可以挑着看,比如关系模型、数据库设计(三大范式)、数据磁盘存储和组织方式、索引、并发控制等。

当然了整个数据库最重要的还是索引和并发控制(锁、MVCC等),这部分也是面试常考的:

索引存储结构: B树、B+树索引、Hash索引
●索引的使用:主键索引、覆盖索引、最左前缀原则、索引下推等
●锁:乐观锁、悲观锁、表锁,行锁,意向锁,读锁,写锁等等
●MySQL InnoDB MVCC实现机制
●存储引擎: InnoDB、 MyISAM等,各自的优缺点
●事务: ACID理论

我收集整理了一些资料,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你。

关注微信公众号:【软件测试小dao】免费领取
更多软件测试资源请加软件测试技术交流群:1033482984

这部分推荐两本书:

●《高性能MySQL》
●《MySQL技术内幕》

1.网络编程,后台开发基本是离不开网络编程的,其实甚 至整个后台开发也可以看做是在做网络编程。

只不过别人的框架帮我们做了协议解析、网络数据传输、解封包这些底层操作。

比如SpringBoot这种保姆级框架,基本上属于将-一个框架能干的事都干完了, 以至于我们开发业务只需要定义接收和返回包的数据格式,然后做逻辑处理就完了。

像序列化、解封包、IO 处理这种网络编程必备的脏活业务开发根本不会接触到。

但是网络编程技能还是很重要的,特别是对于Linux C++开发来说。

Linux下网络编程核心的包括系统编程和网络IO两个部分:

●进程间通信方式:信号量、管道、共享内存、socket等
●多线程编程:互斥锁、条件变量、读写锁、线程池等
●五大IO模型:同步、异步、阻塞、非阻塞、信号驱动
● 高性能IO两种模式: Reactor和Proactor (但是Linux 下由于缺少异步IO支持, 基本没有Proactor
●IO复用机制: epoll、 select、 poll (破解C10K问题的利器)

推荐几本书:

●《Linux高性能服务 器编程》
●《Unix网络编程》
●《Unix环境高级编程》

1.编程语言:虽然说语言不重要,但是总得擅长- -门语言吧?C+ +的话,那几本书( Effective三部曲,《Effective C++》、《More Effective C++》《Effective STL》、STL源码剖析、对象模型)都得过一遍吧? Java的话, JVM原理得看下吧?GC 得看下吧? JDK重要集合类库得看吧.

2.项目:说句实话,学校里接触的项目能有多高大上?如果只是用几个框架的那种,我建议不要写到简历上,不如去github.上参与开源项目, GSOC了解- -下?当然如果你的实验室很厉害,跟导师做的项目很牛逼另说。还有一条路就是上面的5 , 6, 7 ,任何一个花上半年时间去实现- -个简陋的原型(比如实现一个简单的内核) , 都是非常好的简历加分项。事实上,国外名校这些课的最后的project都是让你实现-一个原型。

3.英语:这个面试一般不会涉及到(除非是英文面试) ,但是我仍然认为英语是很重要的能力。具体的来说,就是“遇到一个撒比问题不去打扰同事自己谷歌或者bing从stackoverflow找到回答并且独立解决”或者“老板让我去接触- -个没搞过的东西我硬着头皮点开文档看了两天两页终于能解决问题”的能力。

4.信息采集能力:对于学校不太好(非C9 )的同学,这个能力其实是最关键的。最优秀的同龄人在学习些什么?我想去的公司想招聘什么样的人才?面试会问什么?春招秋招到底是什么,如何投递?实习真的很重要吗?这些问题,你去百度,去知乎搜索,去牛客网搜索,其实都有回答。为什么说这个能力重要?举个例子, BAT热门岗位留给秋招的坑寥寥无几,因为坑都被实习转正的同学占了,如果你之前不知道春招,没有去实习,能去BAT热门岗位的机会自然就很渺茫了。又比如,秋招各家公司笔试难度都明显高于面试难度,原因一-方面是筛人,另一-方面是笔试作弊现象很严重。如果你知道春招、秋招提前批是不用笔试的,是不是你的机会又多了几分?

5.社交能力:几个关键字:头条白金码、组内直推自己去牛客搜索吧。

以上是对本科研发岗的要求。算法岗和研究生的要求我不太清楚,想必只会更高。

当然,我上面说的这些要求,对于绝大多数同学来说都非常遥不可及。

但是,如果你在一个很普通的高校,不拿最高的标准要求自己,那你的结局就是和你的那些学长学姐一样,去个普普通通的公司,过普普通通的一生。

另外,如果你还是大一、大二的学弟学妹,再给几点建议:

其实这是我一-直推崇的CS科班学生的典型学习路线,基本上基础课跟着国外CS名校课程来,准没错。

能够做到50% ,应该国内BAT这种公司的offer就比较好拿了,但是问题在于,我们刚上大学的时候其实很难从一开始就有如此清晰而明确的规划。

不少同学往往是到了大三下,发现身边有同学都拿到头条、腾讯的实习offer了 ,突然意识到,好像快要找工作了。

然后才匆匆开始认真捡起来学习,而平时都是把老师布置的作业完成就好了。
所以对于还在校的CS专业学弟学妹,有几点建议:

●提高信息搜索、采集能力

做公众号这段时间,很多同学问我要xx Lab的资料, csapp的lab资料,其实我想说这些东西我去找和你去找都是一样的,打开Google ,输入对我发的那些关键字,你就能找到。

而且你找到的将会是一手资料 ,而我发给你以及诸如网盘上下载的,实都是N了。

●多看信息密度大质量高的资料

比如那些经典的书籍、课程,不要整天在CSDN、掘金这些博客平台逛,当然,我不是说这些博客都不好。

而是,你学习的资料,大概决定了你所能学到知识的上限,这些博客大多也是作者看完了其它书、专栏之后自己写的总结。

快速了解可以看博客,但是想要学得深入,不该省的时间终究是省不了的。

自己看书,虽然更费时间,但是知识会更加的系统和全面。

●要有危机意识

现在计算机很火,各种转码、跨考计算机的同学很多,竞争也很大,每年看牛客上的经验贴,都会发现,cpp primer虽然很厚,但总会有人过了两三遍,而你也许一遍还没过完,也总有人leetcode刷了七八百道,而你也许直到面试前,剑指offer还没看完呢。

想要拿到满意的offer ,就早点开始认真学习、好好准备、刷题,面向就业学习蛮好的。

●每个人都能学好计算机,你需要的是持续不断的努力

我们会在各种论坛上看到一些前辈侃侃而谈他们的经验 ,也许有很多技巧、有天赋。

但最本质的一定是他们持续不断的付出,-万小时定律我一直坚信。

换到CS专业,可以类比出”10 W行代码”定律,在本科四年,或者研究生三年,不说10w行,几万行代码总的有吧。

写代码很多情况下,就是无他,唯手熟尔。

自己粗略的统计了下,加上写的各种lab ,大学写的代码应该是接近10w行的。

燃烧秀发输出内容,如果有一丢丢收获,点个赞鼓励一下吧!

不要只做收藏从未停止,行动从未开始的人,很多事情,做着做着就无师自通了。如果在做的过程中还能稍微加点思考,稍微看一些别人的经验和做法,成长会更快,效果也会更好!加油吧,测试人!路就在脚下,成功就在明天!

BAT程序员轻轻松松拿20k?学会这些涨薪秘籍你也行!相关推荐

  1. Java程序员千千万,想要涨薪的占一半,这篇读完,跳槽涨薪有希望了!

    前言: 虽然面试套路众多,但对于技术面试来说,主要还是考察一个人的技术能力和沟通能力.不同类型的面试官根据自身的理解问的问题也不尽相同,没有规律可循.有些面试官喜欢问自己擅长的问题,比如在实际编程中遇 ...

  2. BAT程序员们常用的开发神器

    BAT程序员们常用的开发神器 黄小斜 今天 作者丨InfoQ编辑部 工欲善其事必先利其器,一个优秀的程序员除了代码写得好,善于利用各种开发工具同样可以事半功倍.以 BAT 为代表的各大厂程序员们在平时 ...

  3. BAT程序员面试小公司遭拒绝,面试官:统筹能力差,只适合流水线

    BAT,B指百度.A指阿里巴巴.T指腾讯,是中国互联网公司百度公司(Baidu).阿里巴巴集团(Alibaba).腾讯公司(Tencent)三大互联网公司首字母的缩写.你能进入BAT,那么肯定的是你绝 ...

  4. BAT + 程序员校招指南

    每一年,应届毕业生都要面对校招,对于程序员来说,进大厂是我们最大的理想.那么我们应该如何准备校园招聘,如何见招拆「招」?简历.网申.笔试.面试.offer,你会过招到哪关? 正值春招结束,此时准备秋招 ...

  5. Python程序员每月多赚20k的接私活必备网站,副业搞得那叫一个溜啊

    为什么都是程序员,就有人能多赚20k?那是因为副业搞得那么溜啊! 今天分享一些程序员搞钱必备的接私活网站,让更多程序员们在工作之余能有另外一份收入. 1.程序员客栈:proginn.com 专为程序员 ...

  6. BAT 程序员们常用的开发工具

    阿里篇 一.Java 线上诊断工具 Arthas Arthas 是阿里巴巴 2018 年 9 月开源的一款 Java 线上诊断工具. 使用场景: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 ...

  7. BAT程序员常用的开发工具

    阿里篇 一.Java 线上诊断工具 Arthas Arthas 是阿里巴巴 2018 年 9 月开源的一款 Java 线上诊断工具. 使用场景: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 ...

  8. BAT程序员常用的开发工具,建议收藏!

    今天给大家推荐一批 BAT 公司常用的开发工具,个个好用,建议转发+收藏. 阿里篇 一.Java 线上诊断工具 Arthas Arthas 是阿里巴巴 2018 年 9 月开源的一款 Java 线上诊 ...

  9. 收藏!!BAT 程序员们常用的开发工具

    阅读本文大概需要 15 分钟. 作者:infoQ来源:https://tinyurl.com/y4wohyqt 工欲善其事必先利其器,一个优秀的程序员除了代码写得好,善于利用各种开发工具同样可以事半功 ...

最新文章

  1. 【iOS 开发】iOS 10.3 如何更换 app 图标
  2. Windows操作系统产品名与内部版本号的对应(windows版本号)
  3. 2011年11月份第一周51Aspx源码发布详情
  4. 【python3的学习之路九】函数式编程
  5. yii2 behavior 排除某个方法_中学科目二 | 教学方法
  6. 20100519 学习记录:asp CreateFolder/上传附件
  7. leetcode1528. 重新排列字符串
  8. Elasticsearch 入门到高手的成长阶梯-索引的基本操作(1)
  9. QEMU模拟vexpress-a9 搭建Linux kernel运行环境
  10. 雷军微博“导购”小米8 SE:名副其实的小屏旗舰!
  11. 利用awstats分析nginx日志 简单配置
  12. win10ltsc安装后重启提示bitlocker有问题怎么办_重装系统过程中电脑意外重启?这几步彻底摆脱安装失败的尴尬!...
  13. 如何取消PPT的密码保护?
  14. 《Robust Consistent Video Depth Estimation》论文笔记
  15. 【人工智能】人脸识别系统【实验报告与全部代码】(QDU)
  16. Ubuntu 18.04安装坚果云后打开出现白板
  17. 计算机组成与系统结构(课程设计)
  18. 0-8 Vue进阶属性(directives、mixins、extends)
  19. 回忆经典,九叔教你用Python制作贪吃蛇游戏
  20. 百度地图获取发布版SHA1

热门文章

  1. MOBA移动游戏性能分析报告:渲染、UI和逻辑代码是性能头号杀手!
  2. 车管所免检测审车流程
  3. 『强烈推荐2个网站』这才是Win10官方原版正确下载姿势
  4. 曲面积分的投影法_大学数学:第一、二型曲面积分:投影、高斯公式补面挖点怎么用...
  5. 设计模式之禅【访问者模式】
  6. python中main.py是什么意思_Python的__main__.py用法
  7. u大师U盘装系统教程
  8. 青龙脚本-趣闲赚(更新)
  9. 写过的比较难受的题目
  10. thinkadmin中日期的使用