qvq
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # Interview && Experience ## Tencent 1 online test, 2 screen interview, 1 hr interview ### Keen Security Lab #### Security Development - 1. CTF related stuff:Your contribution to your team, your expereience with CTF, thought about online vs offline CTF - 2. Binary Analysis Stuff:The attribute and uniquness of different IR,the full LLVM architecture and how does it process compiling - 3. If we want to encrtpy a string and decrypt it for displaying, how should we do in llvm - 4. reverse enginerring:backtrace implememntation in gdb,how does c++ structures virtual pointer,malloc's low level detail,x86/arm calling convention, how does GOT and PLT organize in ELF(and some ELF related question) - 5. Linux kernel attack surface, how to design a kernel fuzzer? #### Reverse Engineer - 1.C++多态是什么? google - 2.C++虚函数是什么? 就是用virtual定义的函数,基类中用virtual定义的函数在派生类中可以被重新定义使用 - 3.class和struct编译出的结果有什么不同? - 4.got表的前三项是什么? dynamic,linkmap,dlruntimeresolve - 5.main函数之前执行是什么? libc_start_main - 6.r12到r15寄存器哪些不要恢复? wiki请 - 7.从虚拟内存到物理内存的映射方法 - 8.malloc的具体操作 CTF wiki - 9.具体IO_FILE的溢出利用 ctf wiki - 10.byte alignment 内存对齐,也称字节对齐,它主要是指数据存储在内存中时,应该放置在地址是数据项大小的整数倍的内存位置上。 - 11.gdb断点实现方法 软件/硬件断点谷歌 - 12.怎么获取x86的pc指针 call然后出栈(猜的) - 13.静态链接文件中怎么识别一些其他库的函数 制作ida signature文件,使用bindiff - 14.逆向有没有碰到过类里面很多虚函数的情况 会有一个虚表 - 15.定义一个结构体一个char一个int占用多少 要对齐,所以是8 #### 网页开发 - 1. react和vue的区别 - 2. react probs和state的区别 - 3. go rountine 实现 - 4. 锁 - 5. 你能展示展示你的xxx项目吗 - 6. vue 里面css的scoped是怎么实现的 - 7. css的flex布局简单实现 - 8. 数据结构:大数据,多数据的快速获取,插入 ## Alibaba ### Chaintin Tech 一轮面试一轮hr #### Security * 1. 描述 libFuzzer fuzz 一次要的流程 * 2. x86/arm 调用预定(我这次复习了233) * 3. 访问一次百度要经过啥?(就是 network 基础) * 4. 然后继续字符串加密。。。我当时忘了具体问题是啥了然后绕了大半圈杨博士决定跳这个问题2333 * 5. 印象最深的 CTF 题目,说说解题过程 * 6. 证书加密/密钥交换过程(我跳了,不大会密码学) * 7. 逆向花指令(继续跳,还是不会) * 8. 程序从编译到链接经历了啥 * 9. gdb怎么实现断点的 ## Baidu ## Facebook ### Front-end Intern (LONDON) 一轮技术,两轮做题,我大概到此为止了TAT。其实题蛮简单,主要是完全复习歪了。前端别刷leetcode,完全无关。 #### Round 1 **Experience** **What is a Closure?** A **closure** is the combination of a function bundled together (enclosed) with references to its surrounding state (the **lexical environment**). In other words, a closure gives you access to an outer function’s scope from an inner function. In JavaScript, closures are created every time a function is created, at function creation time. To use a closure, define a function inside another function and expose it. To expose a function, return it or pass it to another function. The inner function will have access to the variables in the outer function scope, even after the outer function has returned. You can’t get at the data from an outside scope except through the object’s **privileged methods**. **JavaScript** JavaScript is a client-side language prototype-based language ``` string, number, undefined, null, boolean, and symbol ``` ** DOM ** **What is dom** DOM is document object model and it allows the accessing of the documents like HTML and XML. It allows a platform to be language neutral and provide an interface that allows the **dynamic usage** of the scripts and programs to access the content. It also provides a way to update the content, structure and style of the document and a way to represent it in any language. It is used with the language and used to create the objects that can be used as a model to allow the interface to be developed with ease. - **Window object** − Top of the hierarchy. It is the outmost element of the object hierarchy. - **Document object** − Each HTML document that gets loaded into a window becomes a document object. The document contains the contents of the page. - **Form object** − Everything enclosed in the <form>...</form> tags sets the form object. - **Form control elements** − The form object contains all the elements defined for that object such as text fields, buttons, radio buttons, and checkboxes. Here is a simple hierarchy of a few important objects − ![HTML DOM](https://www.tutorialspoint.com/javascript/images/html-dom.jpg) **Class** A JavaScript class is a type of function. A **constructor function** is initialized with a number of parameters, which would be assigned as properties of `this`, referring to the function itself. **Var Let Const** **`var` variables can be re-declared and updated** **`let` is block scoped** **`let` can be updated but not re-declared.** let don't allow same variable to be declared in different scopes **`const` declarations are block scoped** **`const` cannot be updated or re-declared** **Apply and Calls** The difference is that `apply` lets you invoke the function with `arguments` as an array; `call` requires the parameters be listed explicitly. use `apply` if you don't know the number of arguments you will be passing **Queue & Stack** what is queue and stack? what is the easiest implementation of queue and a stack? **How to know whether a image is loaded?** #### Round 2 1. clearAllTimeOut() A function that can clear all functions that were set timeout before 2. subscriber design pattern ``` var emitter = new Emitter(); var sub1 = emitter.subscribe(evet1, callback); var sub2 = emitter.subscribe(evet2, callback); emitter.emit(event1, arg1, arg2) emitter.emit(event2, arg1, arg2, agr3) sub1.release() ``` ### Software Engineering Intern (LONDON) #### Round 1 - 1. Verify the two strings are equivalent Example: aaaabbbcdaaa and a4b3cda3 - 2. Compressed Trie Tree ## Google ## Microsoft ## Jane Street ### SDE AFAIK, two online two on-site Jane Street question is less leetcode but more tricky and focused on **BUG-FREE**. The questions so far I knew: - implement a quick sort - implement a Tetris ### Quant Statistics and mental arithmetic ## Optiver ## IMC ### Sydney Office #### Hardware Engineering Intern ##### Online Video Interview - 1. A level-to-pulse converter is used to produce a single cycle pulse every time the input signal goes high. Please describe (in words) the logic required. - 2. A source module can write 80 words per 100 clocks into a FIFO and a sink module can read 8 words per 10 clocks from it. Describe a method to calculate the depth of the FIFO so that no data is dropped. - 3. Consider a doubly linked list containing sorted integers. Describe the steps required to add a new integer to the list where it will remain sorted. Assume the new integer will end up somewhere in the middle. - 4. What critical advice you have received from the others (professor, team member, supervisor)? What did you do? - 5. What do you want to do as a hardware engineer at IMC? ## 网易互娱 ### 前端开发工程师 #### 笔试 (四题编程)过了 - 1. 九进制float加法 数据范围超int - 2. 一条数学题:有n个人和n个任务,每个任务有t的要求,只有人的能力>=t才能做这项任务,问一共有多少解 - 3. 游戏匹配系统:n个职业 每个职业m个人 每队要有各种职业有且只有一个 玩家名称为a-zA-Z(最多52个) 然后有一些人有特殊要求比如A一定要和B在一起,不和j在一起之类的。需求输入无序,最后输出唯一解。 - 4. dp 大盒子里套小盒子 不翻转 求最多能套多少个盒子 第3题输入很复杂 最后也没搞出来 ac 3题 收到面试通知 #### 一面 (Queenie)挂 - 1. vue 数据之间传递的方法有哪些:我说了父到子 子到父 vuex 他还继续问我还有呢 我也不知道了 - 2. vue 数据双向绑定原理 - 3. js有哪些基本类 - 4. 浏览器缓存 - 5. js里的sort是哪种算法 - 6. vue2.0到3.0有哪些更新 - 7. 如何做一个精准的倒数器 我说setInterval(count, 1000ms) 他说这个会准确吗 - 8. js运行逻辑是什么样的:stack和heap那些 - 9. 项目中有遇到过跨域问题吗,是如何解决的 - 10. infinity scroll down怎么处理数据太多的问题呢?我说了可以用个queue,多的去除加入新的。他说可以用一个虚拟的滚动条 - 11. 项目中图片上传的组建是自己写的吗?有了解过其中的原理吗?这我就老实说了就是直接用的material ui的组件,既然有很多好用的轮子了我也没自己造过。以后会去了解一下的 - 12. 爬虫有多少了解 - 13. 如何使得网页加载速度更快,用户体验更加顺滑?我讲了按需加载,讲了图片的处理:尽量使用svg,也可以用一些thumbnail图片。讲了vue-if和vue-show的使用。还扯了什么我也不记得了 - 14. 最后我又和他讨论了一下倒数器的问题,为什么会不准确,他跟我说了一下同步异步的问题,我说那可以对着实际时间校准这样呢,他说这样会比较好,然后具体说了一下怎么实现。 - 15. 因为我完全不知道浏览器缓存的知识所以也问了他一下,他说这个是个很大的一块让我多去学学。 - 16. 最后问了一下还有几次面试他说最少三次吧。。我。。。问他面试形式会有变化吗,他说主要看面试官。不排除手写代码的情况QAQ 总体是一次比较愉快的面试,问js内部逻辑实现和网页应用优化比较多,纯的html,css这些很前端的知识都没有问。面试官还挺好的,一开始看出来我比较紧张让我慢慢想不着急。 #### 一面(Tina) - 1. get和post请求的区别 - 2. Ajax是什么 - 3. vue比原生js有什么优点 - 4. 原生js中对dom元素的操作有哪些 - 5. 事件冒泡是什么?什么时候会用? ## ByteDance ### 客户端开发(校招提前批)已拿招聘意向书,九月十月开正式offer #### 一面 - 1. 自我介绍 - 2. 线程和进程的区别 - 3. 你说进程之间不共享变量,那进程之间是如何通信的? - 4. 锁了解吗,死锁是什么? - 5. 如何避免死锁? - 6. Hashmap的实现原理? - 7. Hashmap为什么高效?(我说不需要线程安全,然后超过多少会转化为红黑树,他说逻辑不对,不需要线程安全不能保证快,应该是答用位运算那个。无数次提示之后我后来说出来了) - 8. 了解TCP吗?为什么要三次握手?(可能问了tcp和udp区别?我也不记得了,比较基础) - 9. 为什么四次挥手?为什么不是6次? - 10. HTTP3.0有什么新的feature知道吗? - 11. (我说不知道,没学过3.0)那1.0和2.0呢? - 12. 滑动窗口了解吗,这是干什么的? - 13. 流量控制和拥塞控制了解吗? - 14. 写题:连续最大子序列和 可能有遗漏或者记混了的……面完让我在线上等一下,过了几分钟二面面试官来了。 #### 二面 - 1. 自我介绍 - 2. TCP三次握手 然后他发现上一面问过了就没继续 - 3. 说说对JAVA的了解 (然后我就提到啥他问问这样) - 4. 为什么选择客户端开发 - 5. 前端有什么经验 - 6. hashmap concurrentHashmap之间关系 - 7. JVM的结构(没答出来) - 8. 强引用若引用之间关系 - 9. 会用命令行吗,会用git吗,常用命令哪些?了解git branch原理吗?(我其实不太清楚git branch原理,我直说了不是很确定,但我觉得应该是balabala,后来发现好像他们蛮喜欢这种?就是不一定要全都会,但是有自己思考的) - 10. 今后的规划是什么 - 11. 写题:第一题写二叉树的高度,第二题是水平面上两个机器人,他们不知道彼此的存在但是知道这块地有没有被对方经过,只能往左,右走,或者jump到任意位置。共用同一套命令,然后设计一套命令让他们相遇。(我说一开始都往右走,记录走的步数n,发现脚下的地被走过了就往右跳n步。他说跳转不能规定位置 我就懵了。但是他说思路没问题,就问我有没有别的问题。然后问我过半个小时有没有时间,我说我有课 但他还是让我在线上等一下) - 12. 你说你在自学安卓开发,你是怎么学习的? 一面二面会有一些重复,问的都不算难。但也没完全答上来。觉得问我今后规划的时候答得最差(捂脸)。 #### 三面 - 没问我自我介绍,直接说我看到你简历上有一个垃圾分类的项目,是对图像处理的,了解图片格式的区别吗?(我说了png,jpg和svg以及在自己的项目中怎么选择应用的) - 知道xxx图片格式吗(我真的没听过,他说是比较新的一种,压缩率比较高) - java垃圾回收机制了解吗(其实我不了解,我就拿二面问的强引用弱引用之类的扯了一下,顺便说了说C的指针,这边稍微聊了一些。主管纠正了我一些内容) - JVM结构?(聪明的我二面结束看了一眼 这回答出来了) - 设计模式有了解吗,知道哪些?我说我有学过,但是时间有点久,说了几个。 - 平时项目里有用过吗?(如实回答) - 怎么快速自学,完成开发需求的?(如实回答) - 写题: - 1. 一堆数字,没有任何数据结构,拿走一个怎么找出。(异或,这个很搞笑,我当时突然就忘了异或叫什么,拼命给面试官比划那个符号。) - 2. 写个线程安全的单例吧。(一直在拼命回忆但是还是没写出来。唉。最意难平的点) - 3. 一个数组,长度n,其中有个数字出现了超过n/2次。找出这个数。我没想出只遍历一次的写法) - 最近在看什么书 - 职业规划 - 为什么选择安卓开发 - 考虑读研吗(我说不考虑,比较想工作。澳洲研究生比较的水。现在突然意识到这是不是陷阱啊,如果我说我要读是不是就凉了。) - 有什么问题想问(我问了怎么在开发中使用design pattern。有时候感觉不是很会用。也知道项目设计架构有问题,但是不是很会改。 - 以及最后那题到底怎么写orz) 三面结束之后就让我早点休息了,也没说多久有结果。。我觉得自己凉了。等了半周内推我的学长说好像有了。然后又等了快一周hr才联系我告诉我前面通过了,他们最后审核一下。然后过了一个周末跟我要了身份证号,邮件发了意向书。

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully