Today, Dapeng invited a big factory has 4 years of experience in the service side of the senior engineer, in 2020 eventful autumn node, with you to talk about the feeling of job-hunting, to share their interview experience


As I have done more business in Didi before, this time I am looking for a technical direction, so I feel a little “change of career”. Here are my thoughts on this job search

  1. Regardless of business or technology, one thing is the same, that is, we must look at the problem from the perspective of the person in charge. For example, what are the current technical/business pain points in the direction, what are the technical/business plans for the next six months or one year, what problems can be solved, and what are the outstanding systems in the industry that can be referred to and applied to the current direction? It’s about getting used to seeing things from a higher perspective, rather than just doing what someone else tells us to do.

  2. Don’t neglect every effort you make, such as brushing up on leetcode, taking a set of foreign university courses, writing a technical article. These efforts may not see immediate results, but they will definitely make a difference in the future. I learned machine learning in my spare time two years ago, and I used it in this interview. A course That Jobs dropped in on in college was applied to the design of apple computers a decade later. Those of you who have time can check out this Stanford talk by Steve Jobs [1]

  3. Go out for an interview every year, whether you want to change jobs or not. It is to see oneself level how, in the market is a what price, 2 it is familiar with interview question, expand oneself interview question bank, 3 it is to see oneself in the knowledge network at that time what thin weakness, can check a leak to fill a deficiency.

  4. For business students, it’s best to find a few points at work that you can put on your resume or that are worth mentioning to the interviewer as technical problems of the project. Which brings us back to point number one, the ability to think on your own. And a more realistic problem is that even if the business we do is important, it is difficult to impress the interviewer without mentioning the technical difficulties.

  5. Fall the bag for safety. After an oral offer or salary negotiation, don’t relax and assume that your job search is over. Because you never know who’s going to take who as a backup.

  6. State of mind. Don’t be discouraged if you fail a few interviews. Can comfort themselves, not their own not, just not suitable. Of course, after looking for a job, we must wake up, maybe it is really not their own, usually more efforts:)

plain


C++

  • The realization principle of intelligent pointer
  • The realization principle of polymorphism[2]
  • C + + 11 features[3]
  • What is the memory – copy[4]
  • Implementation principle of unique_PTR
  • Introduce the Boost library

Computer network

  • Nagle algorithm[5]
  • Time_wait is excessive[6]
  • How to solve the problem of excessive close_wait[7]
  • Congestion algorithm[8]
  • HTTPS Execution Process[9]
  • TCP – state machine[10]
  • Dijkstra algorithm[11]
  • tcp no delay[12]
  • HTTP2.0[13]

golang

  • Golang once implemented
  • Waitgroup implementation
  • nocopy[14]
  • Mutex design idea[15]
  • Mutex implementation and evolution[16]
  • Mutex detailed source notes[17]
  • Why can’t locks be copied[18]
  • Struct methods use value and pointer[19]
  • Silce implementation[20]
  • Atomic implementation
  • Golang scheduling
  • Golang sync package
  • Goroutine general principle
  • Golang garbage collection
  • Golang memory allocation

Basic Concepts of computer

  • Why do computers use the complement of two[21]
  • Floating point Numbers[22]

The operating system

  • How are multi-core CPU and memory data updated[23]
  • spinlocks[24]
  • epoll[25]
  • CPU pseudo Shared[26]
  • Thread synchronization[27]
  • Process synchronization[28]
  • The CAS theory[29]
  • The memory barrier[30]
  • Partner system[31]
  • epoll[32]
  • Epoll edge trigger and horizontal trigger[33]
  • cpu load average[34]
  • Different process states
  • Why is L1 cache faster than L2 cache
  • I/O multiplexing, what does this multiplexing mean[35]

algorithm

  • [Spiral array] https://leetcode-cn.com/problems/spiral-matrix/
  • Treap tree
  • Mutex wakes up the queue
  • Red and black tree
  • LRU[36]
  • innodb lru[37]
  • LRU-K
  • bloom filter[38]
  • cuckoo filter[39]
  • KMP algorithm
  • LSM tree
  • Sorting algorithm[40]
  • AVL tree[41]
  • Quick sort[42]
  • Time complexity LOGN[43]
  • Heap sort[44]
  • Large number sort TOPN[45]
  • HashedWheelTimer[46]
  • geohash[47]
  • M by n, how many ways[48]
  • Inverted index
  • Mark-sweep garbage collection algorithm[49]
  • Two stacks implement a queue[50]
  • Monotonous stack[51]
  • Trie tree[52]
  • Single linked list merge[53]
  • Delete the KTH last node of the linked list
  • Line segment tree
  • Merge binary search trees[54]
  • How does merge return results
  • Find the median of an unordered array[55]

The system design

  • Distributed transaction[56]
  • Current limit algorithm[57]
  • Consistency of the hash[58]
  • zookeeper[59]
  • They are elected
  • CAP[60]
  • How can I tell if a deadlock exists
  • Circle of Friends Design[61]

redis

  • rehash[62]
  • kedis codis[63]
  • Jump table[64]
  • ziplist[65]
  • zset[66]
  • How to ensure that data is not lost AOF RDB[67]

Favorites, likes and forwards in a four-pronged attack


The resources

[1]

Address: https://www.bilibili.com/video/BV1Us411i7Ym?from=search&seid=119698512329459514


[2]

Polymorphism of principle: https://www.zhihu.com/question/58886592


[3]

C + + 11 features: https://www.cnblogs.com/lidabo/p/7241381.html


[4]

What is the memory – copy: https://www.cnblogs.com/scut-linmaojiang/p/5283838.html


[5]

Nagle algorithm: https://www.jianshu.com/p/f3840c0ca15e


[6]

Time_wait too much how to solve: https://coolshell.cn/articles/11564.html


[7]

Close_wait too much how to solve: https://blog.huoding.com/2016/01/19/488


[8]

Congestion algorithm: https://blog.csdn.net/liaoqianwen123/article/details/25429143


[9]

The HTTPS implementation process: https://github.com/zhangyachen/zhangyachen.github.io/issues/31


[10]

TCP shape – state machine: https://coolshell.cn/articles/11564.html


[11]

Dijkstra algorithm: 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 design idea: https://zhuanlan.zhihu.com/p/75263302


[16]

Mutex implement and evolution: https://www.jianshu.com/p/ce1553cc5b4f


[17]

Mutex detailed source notes: https://colobu.com/2018/12/18/dive-into-sync-mutex/


[18]

Why can’t lock copy: https://eli.thegreenplace.net/2018/beware-of-copying-mutexes-in-go/


[19]

Structure method using the use value and pointer: https://golang.org/doc/faq#methods_on_values_or_pointers


[20]

Silce implementation: https://halfrost.com/go_slice/


[21]

Why computer use 2’s complement: https://www.ruanyifeng.com/blog/2009/08/twos_complement.html


[22]

Floating point Numbers: https://github.com/zhangyachen/zhangyachen.github.io/issues/131


[23]

How multi-core CPU and memory data update: https://juejin.cn/post/6844904013628964872


[24]

The spin lock: https://zhuanlan.zhihu.com/p/40729293


[25]

epoll: https://zhuanlan.zhihu.com/p/115220699


[26]

CPU false sharing: https://colobu.com/2019/01/24/cacheline-affects-performance-in-go/


[27]

Thread synchronization: https://cloud.tencent.com/developer/article/1129585


[28]

Process synchronization: https://cloud.tencent.com/developer/article/1129585


[29]

CAS principle: https://zhuanlan.zhihu.com/p/34556594


[30]

The memory barrier: https://zh.wikipedia.org/wiki/%E5%86%85%E5%AD%98%E5%B1%8F%E9%9A%9C


[31]

Partner system: https://coolshell.cn/articles/10427.html


[32]

epoll: https://zhuanlan.zhihu.com/p/93609693


[33]

Epoll edge-triggered and level trigger: 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 multiplexing, what is this reuse: 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]

Sorting algorithm: https://www.cnblogs.com/sunriseblogs/p/10009890.html


[41]

AVL tree: https://blog.csdn.net/qq_25806863/article/details/74755131


[42]

Quick sort: https://www.jianshu.com/p/a68f72278f8f


[43]

Time complexity LOGN: https://juejin.cn/post/6844903481191432206


[44]

Heap sort: https://www.cnblogs.com/chengxiao/p/6129630.html


[45]

Sort of large number 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 chessboard, how many kinds of games: https://blog.nowcoder.net/n/b920bc564fdc41b1b7a7bfed2995d130


[49]

Mark – sweep garbage collection algorithms: https://blog.csdn.net/asd397325267/article/details/52668537


[50]

Two stack to achieve a queue: https://www.cnblogs.com/wanghui9072229/archive/2011/11/22/2259391.html


[51]

Monotonous stack: http://www.zhuoerhuobi.cn/single?id=45


[52]

Trie tree: https://blog.csdn.net/forever_dreams/article/details/81009580


[53]

Singly linked lists with: https://www.cnblogs.com/guweiwei/p/6855626.html


[54]

Combination of binary search tree: https://blog.csdn.net/qq_33240946/article/details/82421882


[55]

Find a disorderly array: https://blog.csdn.net/u010325193/article/details/87594895


[56]

A distributed transaction: https://coolshell.cn/articles/10910.html


[57]

Current limit algorithm: https://blog.biezhi.me/2018/10/rate-limit-algorithm.html


[58]

Consistency 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]

The friend circle design: 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]

Jump table: 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]

How to ensure that data is not lost AOF RDB: https://www.cnblogs.com/chenliangcl/p/7240350.html

This article is formatted using 👉 MDnice