今天大鹏请来一位大厂有 4 年工作经验的服务端资深工程师,在2020年多事之秋的节点,跟大家谈一下跳槽感悟,分享一下自己的面试经历
由于我之前在滴滴做的偏业务多一些,这次找的是一个技术方向,所以有点”转行”的感觉,说下这次找工作的几点感悟
不管做业务还是技术,有一点是相同的,就是一定要从一个方向负责人的角度去看问题。比如方向当前存在哪些技术/业务痛点,方向未来半年或者一年的技术/业务规划是什么,能够解决什么问题,业界目前有哪些优秀的系统可以参考并应用到当前方向内。其实这是让我们习惯从一个更高的角度去看问题,而不是别人安排我们做什么,我们就去做什么。
不要忽视平时的每一次努力,比如刷几道leetcode,学一套国外大学的公开课,写一篇技术文章。这些付出可能不会立即看到效果,但是一定会在未来的发展中起到作用。我2年前业余时间学的机器学习,就在这次面试中用到了。乔布斯在大学时旁听的一门课,10年后应用到了苹果电脑的设计中。有时间的同学可以看看乔布斯在斯坦福的这个演讲[1]
不管要不要换工作,每年都可以出去面面试。一是看看自己的水平如何,在市场上是一个什么价格,二是熟悉熟悉面试题,扩充自己的面试题库,三是看看自己当时的知识网络里有哪些薄弱点,可以查漏补缺。
对于做业务的同学,最好在工作中,挖掘几个可以写在简历上,或者是值得当做项目技术难题说给面试官听的点。这也回到了第一点,要有主动思考的能力。而且比较现实的一个问题是:即使我们做的业务很重要,但是如果说不出来技术难点,那也很难轻易打动面试官。
落袋为安。口头offer,或者hr谈完薪资,千万不要放松,就觉得自己找工作就结束了。因为谁拿谁当备胎,这都说不准。
心态。如果几次面试不过,千万不要气馁。可以安慰自己,不是自己不行,只是不适合。当然找完工作后,一定要清醒过来,可能真的是自己不行,平时要多努力 : )
平平无奇
C++
- 智能指针的实现原理
- 多态的实现原理[2]
- C++11新特性[3]
- memory-copy是什么[4]
- unique_ptr实现原理
- 介绍下boost库
计算机网络
- nagle算法[5]
- time_wait过多怎么解决[6]
- close_wait过多怎么解决[7]
- 拥塞算法[8]
- HTTPS执行过程[9]
- TCP 状-态机[10]
- Dijkstra算法[11]
- tcp no delay[12]
- HTTP2.0[13]
golang
- golang once实现
- waitgroup实现
- nocopy[14]
- mutex设计思想[15]
- mutex实现与演进[16]
- mutex详细源码注释[17]
- 为什么锁不能复制[18]
- 结构体方法使用使用value和pointer[19]
- silce实现[20]
- atomic实现
- golang调度
- golang sync包
- goroutine大致原理
- golang垃圾回收
- golang内存分配
计算机基本概念
- 为什么计算机用2的补码[21]
- 浮点数[22]
操作系统
- 多核cpu和内存数据如何更新[23]
- 自旋锁[24]
- epoll[25]
- cpu 伪共享[26]
- 线程同步[27]
- 进程同步[28]
- CAS原理[29]
- 内存屏障[30]
- 伙伴系统[31]
- epoll[32]
- epoll 边沿触发和水平触发[33]
- cpu load average[34]
- 进程不同状态
- 为什么L1 cache比L2 cache快
- I/O多路复用,这个复用指的是什么[35]
算法
- [螺旋数组] https://leetcode-cn.com/problems/spiral-matrix/
- treap树
- mutex 唤醒队列
- 红黑树
- LRU[36]
- innodb lru[37]
- LRU-K
- bloom filter[38]
- cuckoo filter[39]
- KMP算法
- LSM tree
- 排序算法[40]
- AVL树[41]
- 快速排序[42]
- 时间复杂度LOGN[43]
- 堆排序[44]
- 大数排序 TOPN[45]
- HashedWheelTimer[46]
- geohash[47]
- m*n棋盘,多少种走法[48]
- 倒排索引
- mark-sweep垃圾回收算法[49]
- 两个栈实现一个队列[50]
- 单调栈[51]
- trie树[52]
- 单链表合并[53]
- 删除链表倒数第K个节点
- 线段树
- 合并二叉搜索树[54]
- 倒排索引 如何merge返回结果
- 找出无序数组的中位数[55]
系统设计
- 分布式事务[56]
- 限流算法[57]
- 一致性hash[58]
- zookeeper[59]
- zookeeper选举
- CAP[60]
- 如何判断死锁存在
- 朋友圈设计[61]
redis
- rehash[62]
- kedis codis[63]
- 跳跃表[64]
- ziplist[65]
- zset[66]
- 如何保证数据不丢失 AOF RDB[67]
收藏、点赞在看和转发四连击
参考资料
[1]演讲: https://www.bilibili.com/video/BV1Us411i7Ym?from=search&seid=119698512329459514
[2]多态的实现原理: https://www.zhihu.com/question/58886592
[3]C++11新特性: https://www.cnblogs.com/lidabo/p/7241381.html
[4]memory-copy是什么: https://www.cnblogs.com/scut-linmaojiang/p/5283838.html
[5]nagle算法: https://www.jianshu.com/p/f3840c0ca15e
[6]time_wait过多怎么解决: https://coolshell.cn/articles/11564.html
[7]close_wait过多怎么解决: https://blog.huoding.com/2016/01/19/488
[8]拥塞算法: https://blog.csdn.net/liaoqianwen123/article/details/25429143
[9]HTTPS执行过程: https://github.com/zhangyachen/zhangyachen.github.io/issues/31
[10]TCP 状-态机: https://coolshell.cn/articles/11564.html
[11]Dijkstra算法: https://www.jianshu.com/p/c9b27617502e
[12]tcp no delay: https://blog.csdn.net/u014532901/article/details/78573261
[13]HTTP2.0: https://www.zhihu.com/question/34074946
[14]nocopy: https://medium.com/@bronzesword/what-does-nocopy-after-first-use-mean-in-golang-and-how-12396c31de47
[15]mutex设计思想: https://zhuanlan.zhihu.com/p/75263302
[16]mutex实现与演进: https://www.jianshu.com/p/ce1553cc5b4f
[17]mutex详细源码注释: https://colobu.com/2018/12/18/dive-into-sync-mutex/
[18]为什么锁不能复制: https://eli.thegreenplace.net/2018/beware-of-copying-mutexes-in-go/
[19]结构体方法使用使用value和pointer: https://golang.org/doc/faq#methods_on_values_or_pointers
[20]silce实现: https://halfrost.com/go_slice/
[21]为什么计算机用2的补码: https://www.ruanyifeng.com/blog/2009/08/twos_complement.html
[22]浮点数: https://github.com/zhangyachen/zhangyachen.github.io/issues/131
[23]多核cpu和内存数据如何更新: https://juejin.cn/post/6844904013628964872
[24]自旋锁: https://zhuanlan.zhihu.com/p/40729293
[25]epoll: https://zhuanlan.zhihu.com/p/115220699
[26]cpu 伪共享: https://colobu.com/2019/01/24/cacheline-affects-performance-in-go/
[27]线程同步: https://cloud.tencent.com/developer/article/1129585
[28]进程同步: https://cloud.tencent.com/developer/article/1129585
[29]CAS原理: https://zhuanlan.zhihu.com/p/34556594
[30]内存屏障: https://zh.wikipedia.org/wiki/%E5%86%85%E5%AD%98%E5%B1%8F%E9%9A%9C
[31]伙伴系统: https://coolshell.cn/articles/10427.html
[32]epoll: https://zhuanlan.zhihu.com/p/93609693
[33]epoll 边沿触发和水平触发: https://zhuanlan.zhihu.com/p/93609693
[34]cpu load average: http://www.ruanyifeng.com/blog/2011/07/linux_load_average_explained.html
[35]I/O多路复用,这个复用指的是什么: https://zhuanlan.zhihu.com/p/115220699
[36]LRU: https://juejin.cn/post/6844903982779875335
[37]innodb lru: https://blog.csdn.net/u013164931/article/details/82423613
[38]bloom filter: https://juejin.cn/post/6844903992749735950
[39]cuckoo filter: https://coolshell.cn/articles/17225.html
[40]排序算法: https://www.cnblogs.com/sunriseblogs/p/10009890.html
[41]AVL树: https://blog.csdn.net/qq_25806863/article/details/74755131
[42]快速排序: https://www.jianshu.com/p/a68f72278f8f
[43]时间复杂度LOGN: https://juejin.cn/post/6844903481191432206
[44]堆排序: https://www.cnblogs.com/chengxiao/p/6129630.html
[45]大数排序 TOPN: https://blog.csdn.net/chikoucha6215/article/details/100855222
[46]HashedWheelTimer: https://my.oschina.net/u/2457218/blog/3104605
[47]geohash: https://blog.csdn.net/universe_ant/article/details/74785989
[48]m*n棋盘,多少种走法: https://blog.nowcoder.net/n/b920bc564fdc41b1b7a7bfed2995d130
[49]mark-sweep垃圾回收算法: https://blog.csdn.net/asd397325267/article/details/52668537
[50]两个栈实现一个队列: https://www.cnblogs.com/wanghui9072229/archive/2011/11/22/2259391.html
[51]单调栈: http://www.zhuoerhuobi.cn/single?id=45
[52]trie树: https://blog.csdn.net/forever_dreams/article/details/81009580
[53]单链表合并: https://www.cnblogs.com/guweiwei/p/6855626.html
[54]合并二叉搜索树: https://blog.csdn.net/qq_33240946/article/details/82421882
[55]找出无序数组的中位数: https://blog.csdn.net/u010325193/article/details/87594895
[56]分布式事务: https://coolshell.cn/articles/10910.html
[57]限流算法: https://blog.biezhi.me/2018/10/rate-limit-algorithm.html
[58]一致性hash: https://github.com/zhangyachen/zhangyachen.github.io/issues/74
[59]zookeeper: https://www.jianshu.com/p/c7e8a370117d
[60]CAP: https://blog.csdn.net/qq_28165595/article/details/81211733
[61]朋友圈设计: https://www.jianshu.com/p/3fb3652ff450
[62]rehash: http://redisbook.com/preview/dict/incremental_rehashing.html
[63]kedis codis: https://www.cnblogs.com/wuwuyong/p/11774679.html
[64]跳跃表: https://juejin.cn/post/6844903446475177998
[65]ziplist: https://www.cnblogs.com/yuanfang0903/p/12165394.html
[66]zset: https://www.cnblogs.com/yuanfang0903/p/12165394.html
[67]如何保证数据不丢失 AOF RDB: https://www.cnblogs.com/chenliangcl/p/7240350.html
本文使用 👉mdnice 排版