程序员需要达到什么水平才能顺利拿到20k无压力?
2021 届本科,从我和身边同学拿到的offer来看,去一二线大厂的普遍能拿到30w以上,月薪20k上下,甚至有更高的 。说实话,现在技术岗(主要指后端(Java、C、Go........)之 。能做到以下几点,拿到一二线大厂offer 20K 上下的薪资非常容易:算法题,技术面试笔试都考这个,所以Leetcode至少得刷两三百道吧,《剑指offer》所有题目过一遍,搞过ACM当然更好,不刷题的话,那只有挂等着你了,毕竟现在很卷,面试官也只能通过算法题来加大筛选 。
在这里也送大家一本帮助我拿到BAT 等一线大厂 offer 的算法笔记,是一位阿里大神写的,对于算法薄弱或者需要提高的同学都十分受用,算法一定是计算机学习的重中之重:BAT面试官编写的leetcode刷题笔记,看完秒杀80%的题目数据结构,不要求你手写红黑树,但是 AVL 哈希表 堆这些简单的数据结构得自己实现过;链表、线性表必须熟悉到不能再熟悉,语言的标准库实现得了解下吧?什么 Java hashmap,Cvector 你得知道实现吧 。
计算机系统知识,内存、堆栈、函数调用、数的表示等等,至少《CSAPP》得过一遍吧?(PS:这本书真的很适合程序员补齐计算机基础 。操作系统,这些东西你总得知道吧:操作系统由哪些构成、进程的状态、切换、调度进程间通信方式(共享内存、管道、消息)、进程和线程的区别、线程的实现方式(一对一、多对一等)互斥与同步(信号量、管程、锁)、死锁检测与避免并发经典的问题:读者写者、哲学家就餐问题为什么需要虚拟内存,MMU 具体如何做地址转换的内存为什么分段、分页、页面置换算法文件系统是如何组织的、虚拟文件系统(VFS)是如何抽象的最好再结合Linux实现看下,推荐《Linux内核设计与实现》,比如linux中就没有线程和进程的区分,就是一个task_struct另外,学习操作系统我也非常推荐去做下 MIT6.828,实现一些线程管理、文件系统等,计算机科班不就是搞这些的么 。
计算机网络,这个感觉相对简单,但是计网知识比较繁杂,很多同学都反映网络很难学,一大堆的网络协议,依次学完后,还是不知道网络是怎么构成的 。这就是没有用对学习方法,导致只见树木,不见森林 。学习时,推荐你抓住一条主线 「一个数据包是如何发送出去的?」带着这个问题依次去学应用层、传输层、网络层、链路层,思考这些层之间是如何串联起来的 。
这就是自顶向下的思路,那自然要推荐:《计算机网络:自顶向下方法》这本书从我们最常接触的 HTTP、FTP、SMTP 等应用层协议讲起,可以清晰看到引入各个层的作用 。学习每层协议的时候,最好自己抓包看下,wireshark抓包遇到三次快速重传会怎么样?这样映像会更加深刻另外说一点,学习的时候注意收集优质的资源,并归档,比如我自己整理的电子书库,绝不是在网上那种打包下载的,而是自己需要学到某个方向知识的时候,需要看了,去网上挨个找的,最后汇总而成 。
这部分我是会不断把它完善的,当成自己的小电子书库,不多,但贵在精 。我整理的这些书大家可以在这里获取,对于学习计算机的同学学习以及校招复习帮助非常大,且十分系统:书单:计算机必看经典书单数据库:sql得会写吧,这个推荐看下《SQL必知必会》,几个范式有没有正式运用过? 如何进行领域建模、数据库设计,才能够使得每次查询的开销最小?数据库原理方面可以看看《数据库系统概念》,这本书挺厚的,包含了从 SQL 到数据库设计再到数据库原理、分布式数据库都有,可以挑着看,比如关系模型、数据库设计(三大范式)、数据磁盘存储和组织方式、索引、并发控制等 。
推荐阅读
- C语言开发工具,c语言开发工具
- 初学QT怎么学,怎么学习
- sherry桶,olor
- 宠物学习班要多少钱,青岩古镇旅游攻略
- 猎头工作流程中的操作技巧,猎手u聘怎么发招聘
- 神创天下哪吒需要什么道具,「学习在线」《哪吒》火了
- 高中要怎么才能学好,高中怎么学习才能学好
- 高中应该怎么学才高效,高中怎么学习
- 高中学的不好怎么办,高中学习不好怎么办
- 多领域交叉学科,机器学习