├── .editorconfig ├── .gitignore ├── .md_configs.data ├── .prettierignore ├── .prettierrc ├── .umirc.ts ├── LICENSE ├── README.md ├── docs ├── Article │ ├── api.md │ ├── arch.md │ ├── devops.md │ ├── index.md │ ├── network.md │ └── os.md ├── Basic │ ├── Docker.md │ ├── clang.md │ ├── git.md │ ├── index.md │ ├── java.md │ ├── jobs.md │ ├── jwt.md │ ├── os.md │ ├── test.md │ └── web.md ├── blog.md ├── community.md ├── gitbook.md ├── github.md ├── index.md ├── interview │ ├── bitdata.md │ ├── common.md │ ├── hr.md │ ├── index.md │ ├── ml.md │ ├── os-basic.md │ ├── os.md │ ├── other.md │ ├── plan.md │ └── programming.md ├── network.md ├── network │ ├── dns.md │ └── index.md └── python │ ├── GitHub.md │ ├── index.md │ └── interview.md ├── package.json ├── tsconfig.json └── typings.d.ts /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | 15 | [Makefile] 16 | indent_style = tab 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /npm-debug.log* 6 | /yarn-error.log 7 | /yarn.lock 8 | /package-lock.json 9 | 10 | # production 11 | /dist 12 | 13 | # misc 14 | .DS_Store 15 | 16 | # umi 17 | .umi 18 | .umi-production 19 | .env.local 20 | -------------------------------------------------------------------------------- /.md_configs.data: -------------------------------------------------------------------------------- 1 | {"md_template_content": "", "md_includes": "", "md_injected_css": ""} -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | **/*.svg 2 | **/*.ejs 3 | **/*.html 4 | package.json 5 | .umi 6 | .umi-production 7 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "all", 4 | "printWidth": 80, 5 | "overrides": [ 6 | { 7 | "files": ".prettierrc", 8 | "options": { "parser": "json" } 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /.umirc.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'dumi'; 2 | 3 | export default defineConfig({ 4 | title: 'Site Name', 5 | mode: 'site', 6 | // more config: https://d.umijs.org/config 7 | }); 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 codingcat 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dumi app 2 | 3 | ## Getting Started 4 | 5 | Install dependencies, 6 | 7 | ```bash 8 | $ npm i 9 | ``` 10 | 11 | Start the dev server, 12 | 13 | ```bash 14 | $ npm start 15 | ``` 16 | 17 | Build site app, 18 | 19 | ```bash 20 | $ npm run build 21 | ``` 22 | -------------------------------------------------------------------------------- /docs/Article/api.md: -------------------------------------------------------------------------------- 1 | # API 合集 2 | 3 | > 作者:简道云 链接:https://www.zhihu.com/question/32225726/answer/1341443803 4 | > 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 5 | 6 | ## 生活常用 7 | 8 | - 常见疾病查询:https://www.apishop.net/#/api/detail/?productID=215 9 | - 全国天气预报:https://www.apishop.net/#/api/detail/?productID=76 10 | - 今日热闻查询:https://www.apishop.net/#/api/detail/?productID=92 11 | - 邮编查询:https://www.apishop.net/#/api/detail/?productID=73 12 | - 实时空气质量数据查询:https://www.apishop.net/#/api/detail/?productID=83 13 | - 邮编查询:https://www.apishop.net/#/api/detail/?productID=73 14 | - 成语大全:https://www.apishop.net/#/api/detail/?productID=93 15 | - 万年历查询:https://www.apishop.net/#/api/detail/?productID=89 16 | - 二十四节气查询:https://www.apishop.net/#/api/detail/?productID=88 17 | - 节假日查询:https://www.apishop.net/#/api/detail/?productID=90 18 | - PM2.5 空气质量指数查询:https://www.apishop.net/#/api/detail/?productID=94 19 | - 标准中文电码查询:https://www.apishop.net/#/api/detail/?productID=96 20 | - BMI 计算:https://www.apishop.net/#/api/detail/?productID=104 21 | - 区号查询:https://www.apishop.net/#/api/detail/?productID=106 22 | - 简繁体转换:https://www.apishop.net/#/api/detail/?productID=121 23 | 24 | ## 文体娱乐 25 | 26 | - 笑话大全:https://www.apishop.net/#/api/detail/?productID=122 27 | - 菜谱大全:https://www.apishop.net/#/api/detail/?productID=171 28 | - 新华字典:https://apistore.eolinker.com/#/api/detail/?productID=98 29 | - NBA 赛事:https://www.apishop.net/#/api/detail/?productID=125 30 | - 周公解梦:https://www.apishop.net/#/api/detail/?productID=126 31 | - 电视节目:https://www.apishop.net/#/api/detail/?productID=129 32 | - 炉石传说卡牌:https://www.apishop.net/#/api/detail/?productID=203 33 | - 万智牌卡牌:https://www.apishop.net/#/api/detail/?productID=204 34 | - 绕口令:https://www.apishop.net/#/api/detail/?productID=127 35 | 36 | ## 电商服务 37 | 38 | - 快递物流查询:https://www.apishop.net/#/api/detail/?productID=103 39 | 40 | ## 短信服务(验证码、通知): 41 | 42 | - 淘宝热词搜索:https://www.apishop.net/#/api/detail/?productID=212 43 | - 京东热词搜索:https://www.apishop.net/#/api/detail/?productID=211 44 | - 商品评价分析:https://www.apishop.net/#/api/detail/?productID=208 45 | 46 | ## 人工智能 47 | 48 | - OCR-身份证识别:https://www.apishop.net/#/api/detail/?productID=186 49 | - OCR-营业执照识别:https://www.apishop.net/#/api/detail/?productID=196 50 | - OCR-行驶证识别:https://www.apishop.net/#/api/detail/?productID=197 51 | - 银行卡识别:https://www.apishop.net/#/api/detail/?productID=205 52 | - 名片识别:https://www.apishop.net/#/api/detail/?productID=206 53 | - 车牌识别:https://www.apishop.net/#/api/detail/?productID=207 54 | - 《机动车合格证》二维码解码:https://www.apishop.net/#/api/detail/?productID=216 55 | 56 | ## 交通出行 57 | 58 | - 公交及站点查询:https://apistore.eolinker.com/#/api/detail/?productID=77 59 | - 经纬度地址转换:https://apistore.eolinker.com/#/api/detail/?productID=78 60 | - 中国省市区查询:https://apistore.eolinker.com/#/api/detail/?productID=75 61 | - 全国油价查询:https://apistore.eolinker.com/#/api/detail/?productID=82 62 | - POI 检索:https://apistore.eolinker.com/#/api/detail/?productID=97 63 | - 公交、地铁路线规划查询:https://apistore.eolinker.com/#/api/detail/?productID=105 64 | - 车型大全:https://apistore.eolinker.com/#/api/detail/?productID=117 65 | - 火车票查询:https://www.apishop.net/#/api/detail/?productID=91 66 | - 长途汽车查询:https://www.apishop.net/#/api/detail/?productID=100 67 | - 汽车尾号限行:https://www.apishop.net/#/api/detail/?productID=194 68 | - 驾考题库:https://www.apishop.net/#/api/detail/?productID=187 69 | 70 | ## 开发工具 71 | 72 | - 四位图片验证码生成:https://www.apishop.net/#/api/detail/?productID=102 73 | - 六位图片验证码生成:https://www.apishop.net/#/api/detail/?productID=101 74 | - 中文分词:https://www.apishop.net/#/api/detail/?productID=120 75 | - 二维码编解码:https://www.apishop.net/#/api/detail/?productID=128 76 | - 网站排名查询:https://www.apishop.net/#/api/detail/?productID=214 77 | 78 | ## 金融服务 79 | 80 | - 汇率查询:https://www.apishop.net/#/api/detail/?productID=84 81 | - 虚拟货币交易行情:https://www.apishop.net/#/api/detail/?productID=182 82 | - 区块链今日快讯:https://www.apishop.net/#/api/detail/?productID=185 83 | - 银行卡信息查询(含归属地):https://www.apishop.net/#/api/detail/?productID=191 84 | 85 | ## 通讯服务 86 | 87 | - 手机号归属地查询:https://www.apishop.net/#/api/detail/?productID=72 88 | - IP 地址查询:https://www.apishop.net/#/api/detail/?productID=118 89 | 90 | ## 教育文化 91 | 92 | - 成语大全:https://www.apishop.net/#/api/detail/?productID=93 93 | - 新华字典:https://www.apishop.net/#/api/detail/?productID=98 94 | - 汉语词典:https://www.apishop.net/#/api/detail/?productID=99 95 | - 名言警句:https://www.apishop.net/#/api/detail/?productID=123 96 | - 英语名言:https://www.apishop.net/#/api/detail/?productID=124 97 | - 驾驶员从业资格题:https://www.apishop.net/#/api/detail/?productID=190 98 | - 猫咪大全:https://www.apishop.net/#/api/detail/?productID=193 99 | - 狗狗大全:https://www.apishop.net/#/api/detail/?productID=192 100 | - 小型宠物大全:https://www.apishop.net/#/api/detail/?productID=195 101 | - 水族宠物大全:https://www.apishop.net/#/api/detail/?productID=200 102 | - 爬行类宠物大全:https://www.apishop.net/#/api/detail/?productID=201 103 | - 植物大全:https://www.apishop.net/#/api/detail/?productID=199 104 | 105 | ## 聚合数据 106 | 107 | - 手机号码归属地 API 接口:https://www.juhe.cn/docs/api/id/11 108 | - 历史上的今天 API 接口:https://www.juhe.cn/docs/api/id/63 109 | - 股票数据 API 接口:https://www.juhe.cn/docs/api/id/21 110 | - 全国 WIFI 接口:https://www.juhe.cn/docs/api/id/18 111 | - 星座运势接口:https://www.juhe.cn/docs/api/id/58 112 | - 黄金数据接口:https://www.juhe.cn/docs/api/id/29 113 | - 语音识别接口:https://www.juhe.cn/docs/api/id/134 114 | - 周公解梦接口:https://www.juhe.cn/docs/api/id/64 115 | - 天气预报 API 接口:https://www.juhe.cn/docs/api/id/73 116 | - 身份证查询 API 接口:https://www.juhe.cn/docs/api/id/38 117 | - 笑话大全 API 接口:https://www.juhe.cn/docs/api/id/95 118 | - 邮编查询接口:https://www.juhe.cn/docs/api/id/66 119 | - 老黄历接口:https://www.juhe.cn/docs/api/id/65 120 | - 网站安全检测接口:https://www.juhe.cn/docs/api/id/19 121 | - 手机固话来电显示接口:https://www.juhe.cn/docs/api/id/72 122 | - 基金财务数据接口:https://www.juhe.cn/docs/api/id/28 123 | - 成语词典接口:https://www.juhe.cn/docs/api/id/157 124 | - 新闻头条接口:https://www.juhe.cn/docs/api/id/235 125 | - IP 地址接口:https://www.juhe.cn/docs/api/id/1 126 | - 问答机器人接口:https://www.juhe.cn/docs/api/id/112 127 | - 汇率 API 接口:https://www.juhe.cn/docs/api/id/80 128 | - 电影票房接口:https://www.juhe.cn/docs/api/id/44 129 | - 万年历 API 接口:https://www.juhe.cn/docs/api/id/177 130 | - NBA 赛事接口:https://www.juhe.cn/docs/api/id/92 131 | 132 | ## 百度 AI 开放平台 133 | 134 | http://ai.baidu.com/ 135 | 涵盖图像处理、自然语言、语音技术、知识图谱、数据智能、AR、视频技术和深度学习八大方面。看需选择即可。 136 | 137 | ## 人脸识别 Face++ 138 | 139 | http://www.faceplusplus.com.cn/注:申请试用的API Key 可以免费试用他上面的接口 140 | 141 | ## 各平台开放接口 142 | 143 | - 豆瓣开放平台https://developers.douban.com/wiki/?title=guide 144 | - 淘宝开放平台 http://open.taobao.com/?spm=a219a.7395905.1.1.YdFDV6 145 | - 微博开放平台http://open.weibo.com/wiki/API 146 | 147 | ## 其他接口 148 | 149 | - 讯飞语音 http://www.xfyun.cn/robots/solution 150 | - 马化腾的微信开放平台(对应的还有腾讯开放平台) https://open.weixin.qq.com/ 151 | - 融云 IM https://developer.rongcloud.cn/signin?returnUrl=%2Fapp%2Fappkey%2FPv4vYQwaxSZdfpLX5AI%3D高德地图http://lbs.amap.com/ 152 | -------------------------------------------------------------------------------- /docs/Article/arch.md: -------------------------------------------------------------------------------- 1 | # 软件架构 2 | 3 | - [30 张图解 | 面试官问我高并发服务模型哪家强?](https://mp.weixin.qq.com/s/ezjso-ISm1MDOawIzolPMg) 4 | - [高性能网关设计实践](https://mp.weixin.qq.com/s/F4W9Fmiz4Zaifj0MQUYLuA) 5 | - [最简单的 6 种防止数据重复提交的方法!](https://mp.weixin.qq.com/s/ggnnFtHHc5u_mFkkJs4gBQ) 6 | - [关于高性能的那点儿事](https://mp.weixin.qq.com/s/AJerOW5Eow99wrKmXB5SCQ) 7 | - [Redis 持久化 RDB 和 AOF 对比分析](https://mp.weixin.qq.com/s/G05wGiQ8o8UkeQlLJxlfwQ) 8 | -------------------------------------------------------------------------------- /docs/Article/devops.md: -------------------------------------------------------------------------------- 1 | # 运维开发 2 | 3 | - [如何防止删库跑路?运维堡垒机高效安全运维设计与实践落地](https://mp.weixin.qq.com/s/nLSMWBJVQaFOd1FftPAcPw) 4 | - [Keepalived 负载高可用原理](https://mp.weixin.qq.com/s/Y843YN5apWF27GxYIGYqmQ) 5 | - [常见端口渗透笔录](https://mp.weixin.qq.com/s/hAjkCdRhWOy0hdWkj2FB7g) 6 | -------------------------------------------------------------------------------- /docs/Article/index.md: -------------------------------------------------------------------------------- 1 | # 目录 2 | 3 | - 操作系统 4 | - 计算机网络 5 | - 数据库 6 | - 运维开发 7 | - 软件架构 8 | 9 | ## 文章 10 | 11 | - [Github 标星 32K,程序员最需要的网站全部在这了](https://mp.weixin.qq.com/s/HYJxa3-JQQO5mwP3w6GK9w) 12 | - [11 个 Git 面试题](https://mp.weixin.qq.com/s/Dk4a4h5aIgBkTDrNgc3YKw) 13 | -------------------------------------------------------------------------------- /docs/Article/network.md: -------------------------------------------------------------------------------- 1 | # 计算机网络 2 | 3 | - [SSH 证书登录教程](https://mp.weixin.qq.com/s/OMz1DvWRexVWmw7_m84ixg) 4 | - [学网络时,可以先落实这几款利器工具](https://mp.weixin.qq.com/s/5TnQripp4n3dDZry8v6vlA) 5 | - [计算机网络基础知识总结](https://www.cnblogs.com/maybe2030/p/4781555.html) 6 | - [TCP 协议面试灵魂 10 问](https://zhuanlan.zhihu.com/p/161970400) 7 | - [IP 基础知识“全家桶”,45 张图一套带走](https://mp.weixin.qq.com/s/BBe1GudUj90BGN-IMZ_42g) 8 | - [中断还是轮询?取个数据包真麻烦!](https://mp.weixin.qq.com/s/bDeJsS2kHhj6IH1HQjlz8g) 9 | -------------------------------------------------------------------------------- /docs/Article/os.md: -------------------------------------------------------------------------------- 1 | # 操作系统 2 | 3 | - [Linux 思维导图整理](https://mp.weixin.qq.com/s/pV2qkS_q2UJXGUrOTATjXQ) 4 | - [进程和线程基础知识全家桶,30 张图一套带走](https://mp.weixin.qq.com/s/dh_WBr2rMuQsNIwoBnoiBg) 5 | - [计算机基础知识总结与操作系统 PDF 下载](https://zhuanlan.zhihu.com/p/161622194) 6 | - [Linux 后台开发常用调试工具](https://mp.weixin.qq.com/s/xe94jhGPa4Xj1krfxyJUUw) 7 | -------------------------------------------------------------------------------- /docs/Basic/Docker.md: -------------------------------------------------------------------------------- 1 | # Docker 2 | 3 | ## 其他阅读 4 | 5 | - 只需 5 分钟,手把手教会你在 Docker 和 Kubernetes 中进行应用发布! 6 | https://mp.weixin.qq.com/s/B1vpHIEKBZkA17Z1zK4NFg 7 | -------------------------------------------------------------------------------- /docs/Basic/clang.md: -------------------------------------------------------------------------------- 1 | # C 语言学习 2 | 3 | [C 语言学习资源整理](https://zhuanlan.zhihu.com/p/23677249) 4 | 5 | [笨办法学 C 中文版](https://wizardforcel.gitbooks.io/lcthw/content/) 6 | -------------------------------------------------------------------------------- /docs/Basic/git.md: -------------------------------------------------------------------------------- 1 | # GIT 资源 2 | 3 | > Git 是一个分布式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds)创作,于 2005 年以 GPL 发布。最初目的是为更好地管理 Linux 内核开发而设计 4 | 5 | ## 资源 6 | 7 | - [Git 简明教程](http://rogerdudler.github.io/git-guide/index.zh.html) 8 | - [Git 教程 廖雪峰](http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000) 9 | - [Git Pro](http://rogerdudler.github.io/git-guide/index.zh.html) 10 | 11 | * http://blog.jobbole.com/114297/ 12 | -------------------------------------------------------------------------------- /docs/Basic/index.md: -------------------------------------------------------------------------------- 1 | # 基础 2 | 3 | ## 其他阅读 4 | 5 | - Linux 系统内存知识 https://mp.weixin.qq.com/s/ql5JRy85XYSGknbjPea-Wg 6 | - 玩转 Terminal 终端:入门指南及进阶技巧 7 | https://mp.weixin.qq.com/s/6tORm1STmORen5_HauYI5Q 8 | - 索引 https://mp.weixin.qq.com/s/ifUM69cb_53-sm9yEUyg3w 9 | 10 | - 5 月份 Github 上最热门的 Python 开源项目 11 | https://mp.weixin.qq.com/s/m88w1b0jXxY-WkxJwWu57Q 12 | - TCP/IP 拥塞控制总结 13 | https://mp.weixin.qq.com/s/fv002u07BuZYDYVrGU8HHg 14 | - 100 个网络基础知识 https://mp.weixin.qq.com/s/q7PrsIAYIKIV6VSpp5VGqQ 15 | - 在 Gitee 获 8.5k Star,微信小程序商城 https://zhuanlan.zhihu.com/p/145530857 16 | - API 接口应该如何设计?如何保证安全?如何签名?如何防重? https://zhuanlan.zhihu.com/p/145752963 17 | - chinese-poetry https://mp.weixin.qq.com/s/fTWLIoGEIinHP98qujEyBg 18 | 19 | - https://github.com/chinese-poetry/chinese-poetry 20 | 21 | - GitHub 上 100 个优质前端项目整理 https://mp.weixin.qq.com/s/Cou6TfiNjhmCbvi5mJQ0ug 22 | 23 | - Github 开源项目集 https://mp.weixin.qq.com/s/VWJCc3gCOoZzph744iOA2Q 24 | -------------------------------------------------------------------------------- /docs/Basic/java.md: -------------------------------------------------------------------------------- 1 | # Java 资源整理 2 | 3 | https://gof.quanke.name/ 4 | 5 | https://java.quanke.name/ 6 | 7 | https://dodola.gitbooks.io/gitbook/content/ 8 | 9 | ## spring boot 10 | 11 | https://qbgbook.gitbooks.io/spring-boot-reference-guide-zh/content/ 12 | 13 | http://h2ex.com/407 14 | 15 | https://www.zhihu.com/question/19851109 16 | 17 | http://ifeve.com/30590/ 18 | -------------------------------------------------------------------------------- /docs/Basic/jobs.md: -------------------------------------------------------------------------------- 1 | # 常见面试题整理 2 | 3 | - [计算机网络篇](https://zhuanlan.zhihu.com/p/24001696) 4 | - [数据库篇](https://zhuanlan.zhihu.com/p/23713529) 5 | - [操作系统篇](https://zhuanlan.zhihu.com/p/23755202) 6 | 7 | http://www.jobui.com/ 8 | -------------------------------------------------------------------------------- /docs/Basic/jwt.md: -------------------------------------------------------------------------------- 1 | # jwt JSON Web Tokens 2 | 3 | > JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties. 4 | 5 | https://jwt.io/ 6 | 7 | ## 相关 jwt 库 8 | 9 | - [php-jwt](https://github.com/firebase/php-jwt) 10 | - [Java JWT](https://github.com/jwtk/jjwt) 11 | - [node-jsonwebtoken](https://github.com/auth0/node-jsonwebtoken) 12 | - [pyjwt](https://github.com/jpadilla/pyjwt) 13 | - [jwt-go](https://github.com/dgrijalva/jwt-go) 14 | 15 | ## 相关文章 16 | 17 | - [八幅漫画理解使用 JSON Web Token 设计单点登录系统](http://blog.leapoahead.com/2015/09/07/user-authentication-with-jwt/) 18 | - [JWT 简介(译)](http://blog.qiji.tech/archives/1723) 19 | - [JSON Web Token - 在 Web 应用间安全地传递信息](http://blog.leapoahead.com/2015/09/06/understanding-jwt/) 20 | - [使用 json web token](http://www.haomou.net/2014/08/13/2014_web_token/) 21 | - [Server 端的认证神器——JWT(一)](https://zhuanlan.zhihu.com/p/27370773) 22 | - [Server 端的认证方案——拥抱 Json Web Token(一)](http://www.jianshu.com/p/7bd2f09eee39) 23 | - [python 使用 json web token (jwt)实现 http api 的加密传输](http://xiaorui.cc/2015/05/05/python%E4%BD%BF%E7%94%A8json-web-token-jwt%E5%AE%9E%E7%8E%B0http-api%E7%9A%84%E5%8A%A0%E5%AF%86%E4%BC%A0%E8%BE%93/) 24 | - [基于 python 的 json web tokens(jwt)加密认证实现](http://xiaorui.cc/2016/01/24/%E5%9F%BA%E4%BA%8Epython%E7%9A%84json-web-tokensjwt%E5%8A%A0%E5%AF%86%E8%AE%A4%E8%AF%81%E5%AE%9E%E7%8E%B0/) 25 | - [JWT (Json Web Token)入门教程](https://banzhenyu.github.io/2017/04/25/web-json-web-token/) 26 | - [JSON Web Tokens(JWT)教程](http://www.jdon.com/artichect/json-web-tokens.html) 27 | - [看图理解 JWT 如何用于单点登录](http://www.cnblogs.com/lyzg/p/6132801.html) 28 | - [什么是 JWT -- JSON WEB TOKEN](http://www.jianshu.com/p/576dbf44b2ae) 29 | -------------------------------------------------------------------------------- /docs/Basic/os.md: -------------------------------------------------------------------------------- 1 | # 操作系统 2 | 3 | 鸟哥的 Linux 私房菜:基础学习篇 第四版 4 | https://wizardforcel.gitbooks.io/vbird-linux-basic-4e/content/ 5 | 6 | ## 计算机基础 7 | 8 | Linux 下的一些指令,\$$(进程 id),$?(上一条命令退出时状态),怎么查看进程,按照内存大小,CPU 占用排序等等。 9 | 10 | Linux 的命令:pwd、ln、which 11 | 12 | Linux 线程通信 13 | 14 | hash 表是怎么实现的?有冲突的时候怎么处理? 15 | 16 | linux 文件词频统计 17 | 18 | 介绍一下 hash,怎么解决冲突。 19 | 20 | 你说一下 hashmap 的原理 21 | 22 | 内存泄露出现原因。 23 | 24 | 悲观锁乐观锁 25 | 26 | 把两个表按 id 合并怎么搞? 27 | 28 | 数据库 transaction 29 | 30 | 浅拷贝深拷贝 31 | 32 | 第二题是两题 sql ,涉及 join,group by,max,min,sum,count 等操作的结合,以及同个题目多种写法。 33 | 34 | 线程安全是什么意思?新线程什么情况下会影响原有线程? 35 | 36 | 网络基础 TCP 三次握手 37 | 38 | 计算机网络:描述他发一句 hello world 到我这边显示,中间经历了哪些过程,我从应用层开始一层层往下分析答的,主要说 http 和 tcp,网络层和链路层有些忘,但主要的几个协议和子网划分什么的也答了,面试官比较满意 39 | 40 | 词向量的推导,混合高斯,linux 硬链接,三次握手,linux inode 41 | 42 | 进程线程的区别 43 | -------------------------------------------------------------------------------- /docs/Basic/test.md: -------------------------------------------------------------------------------- 1 | # 测试相关 2 | 3 | ## robotframework 4 | 5 | > Robot Framework is a generic test automation framework for acceptance testing and acceptance test-driven development (ATDD) 6 | 7 | http://robotframework.org/ 8 | 9 | ## uirecorder 10 | 11 | > UI Recorder is a UI test case recorder like Selenium IDE 12 | 13 | https://github.com/alibaba/uirecorder 14 | -------------------------------------------------------------------------------- /docs/Basic/web.md: -------------------------------------------------------------------------------- 1 | # web 2 | 3 | ## 富文本编辑器 4 | 5 | https://trix-editor.org/ 6 | 7 | - A rich text editor for everyday writing https://github.com/basecamp/trix 8 | 9 | https://quilljs.com/ 10 | 11 | - Quill is a modern WYSIWYG editor built for compatibility and extensibility https://github.com/quilljs/quill 12 | 13 | https://ace.c9.io/ 14 | 15 | - https://github.com/ajaxorg/ace 16 | 17 | https://codemirror.net/ 18 | 19 | - In-browser code editor https://github.com/codemirror/CodeMirror 20 | 21 | https://xi-editor.github.io/xi-editor/ 22 | 23 | - A modern editor with a backend written in Rust https://github.com/xi-editor/xi-editor 24 | 25 | https://draftjs.org/ 26 | 27 | - A React framework for building text editors https://github.com/facebook/draft-js 28 | 29 | https://stackedit.io/ 30 | 31 | - In-browser Markdown editor https://github.com/benweet/stackedit 32 | 33 | - https://github.com/yabwe/medium-editor 34 | 35 | - https://microsoft.github.io/monaco-editor/ 36 | 37 | - https://github.com/atom/xray 38 | 39 | - https://macdown.uranusjr.com/ 40 | 41 | - https://github.com/ory/editor 42 | 43 | - https://github.com/pandao/editor.md 44 | 45 | - https://github.com/wangfupeng1988/wangEditor 46 | 47 | - https://github.com/mycolorway/simditor 48 | 49 | - https://github.com/lepture/editor 50 | 51 | - https://github.com/GitbookIO/editor-legacy 52 | 53 | - https://github.com/ckeditor/ckeditor5 54 | 55 | ## web 播放器 56 | 57 | - https://github.com/Bilibili/flv.js 58 | - https://github.com/videojs/video.js 59 | - https://github.com/rishabhp/bideo.js 60 | - https://github.com/jackzhang1204/sewise-player 61 | - https://github.com/sampotts/plyr 62 | 63 | ## 图片预览 64 | 65 | - http://fancyapps.com/fancybox/3/ 66 | - https://sachinchoolur.github.io/lightgallery.js/ 67 | - https://github.com/sachinchoolur/lightGallery 68 | - https://github.com/fengyuanchen/viewerjs 69 | 70 | ## 其他 71 | 72 | 《Designing Data-Intensive Application》DDIA 中文翻译 73 | 74 | - http://zulko.github.io/moviepy/ 75 | -------------------------------------------------------------------------------- /docs/blog.md: -------------------------------------------------------------------------------- 1 | # 个人博客 2 | 3 | - https://facert.github.io/ 4 | - http://qinxuye.me 5 | - http://mindhacks.cn/ 6 | - http://blog.csdn.net/xyang81/ 7 | - https://huoding.com/ 8 | - http://blog.yufeng.info/ 9 | - http://dbaplus.cn/ 10 | -------------------------------------------------------------------------------- /docs/community.md: -------------------------------------------------------------------------------- 1 | # 论坛社区 2 | 3 | - http://cocode.cc/ 4 | - http://suanfazu.com/ 5 | -------------------------------------------------------------------------------- /docs/gitbook.md: -------------------------------------------------------------------------------- 1 | # Gitbook 不错的电子书 2 | 3 | ## 程序员如何准备面试中的算法 4 | 5 | https://wizardforcel.gitbooks.io/the-art-of-programming-by-july 6 | 7 | ## How to be a Programmer 中文版 8 | 9 | https://ahangchen.gitbooks.io/how-to-be-a-programmer-cn/content/ 10 | 11 | ## 笔试面试知识整理 12 | 13 | https://hit-alibaba.github.io/interview/index.html 14 | 15 | ## Python 进阶 16 | 17 | https://eastlakeside.gitbooks.io/interpy-zh/content/ 18 | 19 | ## 操作系统简单实现与基本原理 20 | 21 | https://chyyuu.gitbooks.io/simple_os_book/ 22 | 23 | ## 数据结构与算法/leetcode/lintcode 题解 24 | 25 | https://algorithm.yuanbin.me/zh-hans/ 26 | 27 | ## 收录找到的不错的文档 28 | 29 | http://dodola.gitbooks.io/gitbook/content/ 30 | 31 | ## problem-solving-with-algorithms-and-data-structure-using-python 中文版 32 | 33 | https://facert.gitbooks.io/python-data-structure-cn/ 34 | 35 | ## MySQL 相关 36 | 37 | https://naive.gitbooks.io/database/content/ 38 | 39 | ## ddia-cn 40 | 41 | https://github.com/Vonng/ddia 42 | -------------------------------------------------------------------------------- /docs/github.md: -------------------------------------------------------------------------------- 1 | # GitHub 项目 2 | 3 | - https://github.com/QSCTech/zju-icicles 4 | - https://github.com/HT524/500LineorLess_CN 5 | -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | hero: 3 | title: 收藏家 4 | desc: 编程猫的收藏 5 | 8 | features: 9 | - icon: https://gw.alipayobjects.com/zos/bmw-prod/881dc458-f20b-407b-947a-95104b5ec82b/k79dm8ih_w144_h144.png 10 | title: 特性 1 11 | desc: Balabala 12 | - icon: https://gw.alipayobjects.com/zos/bmw-prod/d60657df-0822-4631-9d7c-e7a869c2f21c/k79dmz3q_w126_h126.png 13 | title: 特性 2 14 | desc: Balabala 15 | - icon: https://gw.alipayobjects.com/zos/bmw-prod/d1ee0c6f-5aed-4a45-a507-339a4bfe076c/k7bjsocq_w144_h144.png 16 | title: 特性 3 17 | desc: Balabala 18 | footer: Open-source MIT Licensed | Copyright © 2020
Powered by [dumi](https://d.umijs.org) 19 | --- 20 | 21 | ## 欢迎回来 22 | -------------------------------------------------------------------------------- /docs/interview/bitdata.md: -------------------------------------------------------------------------------- 1 | # 大数据 2 | 3 | 100 亿数字,怎么统计前 100 大的? 4 | 5 | 10 亿个 url,每个 url 大小小于 56B,要求去重,内存 4G。 6 | 7 | 1KW 句子算相似度(还是那套分块 + hash / 建索引,但是因为本人不是做这个的,文本处理根本说一片空白,所以就不误导大家了),之后就是一直围绕大数据的题目不断深化。 8 | 9 | Q1:给定一个 1T 的单词文件,文件中每一行为一个单词,单词无序且有重复,当前有 5 台计算机。请问如何统计词频? 10 | 11 | Q2:每台计算机需要计算 200G 左右的文件,内存无法存放 200G 内容,那么如何统计这些文件的词频? 12 | 13 | Q3:如何将 1T 的文件均匀地分配给 5 台机器,且每台机器统计完词频生成的文件只需要拼接起来即可(即每台机器统计的单词不出现在其他机器中) 14 | 15 | 一个大文件 A 和一个小文件 B,里面存的是单词,要求出在文件 B 中但不在文件 A 中的单词。然后大文件 A 是无法直接存到内存中的。 16 | 17 | 一道题目是如果有一个人注册一个 qq,如何保证这个 qq 号码和之前已存在的 qq 号码不重复呢? 18 | 19 | 扔硬币,连续出现两次正面即结束,问扔的次数期望 20 | 21 | 有 100W 个集合,每个集合中的 word 是同义词,同义词具有传递性, 比如集合 1 中有 word a, 集合 2 中也有 word a, 则集合 1,2 中所有词都是同义词,对这 100W 个集合进行归并,同义词都在一个集合当中。 22 | 23 | 有几个 G 的文本,每行记录了访问 ip 的 log ,如何快速统计 ip 出现次数最高的 10 个 ip,如果只用 linux 指令又该怎么解决; 24 | 25 | 海量数据的 topk 问题 26 | -------------------------------------------------------------------------------- /docs/interview/common.md: -------------------------------------------------------------------------------- 1 | # 常见面试题整理 2 | 3 | 数据库篇 4 | https://zhuanlan.zhihu.com/p/23713529 5 | 6 | 操作系统篇 7 | https://zhuanlan.zhihu.com/p/23755202 8 | 9 | 计算机网络篇 10 | https://zhuanlan.zhihu.com/p/24001696 11 | 12 | Python 概念篇 13 | https://zhuanlan.zhihu.com/p/23526961 14 | 15 | 优秀 Python 学习资源收集汇总 16 | https://zhuanlan.zhihu.com/p/25065277 17 | 18 | http://safehammad.com/downloads/python-idioms-2014-01-16.pdf 19 | 20 | - 浏览器输入 url 到整个页面显示出来经历的过程?能介绍多细就多细? 21 | - https 过程 22 | - cookie 和 session 23 | - 跨域怎么处理的呢?都知道什么方法?--> jsonp 和 CORS 那个更安全? 24 | - 微信扫一扫二维码网页上登陆前后端过程? 25 | - 闭包你是怎么理解 26 | - 基本的排序算法 27 | - OSI 七层协议 28 | - http 和 https 有什么区别 29 | - https 使用上有什么注意点 30 | - https 和 http 性能有什么区别 31 | - 二叉树是什么 32 | - 平衡二叉树(AVL)有什么特点? 33 | - 平衡二叉树(AVL)有什么好处? 34 | - 平衡二叉树(AVL)和红黑树的区别? 35 | - 平衡树的插入和删除的时间复杂度? 36 | 37 | ## C++、Python、编程题、智商题等 10 个方向的面试常考题型总结 38 | 39 | - Python 40 | - C++ 41 | - 智商题 42 | - 大数据 43 | - 计算机基础 44 | - 概率题 45 | - HR 常问问题 46 | - 开放题 47 | - 机器学习 48 | - 编程题 49 | - Python 50 | 51 | ### Python 的元组和列表的区别。 52 | 53 | a = [1, 2, 3, 4], b = a, b[0] = 100, 请问 print(a) 结果是什么 54 | 55 | list 是怎样实现的。 56 | 57 | list 有哪几种添加元素的方法,能否从表头插入元素? 58 | 59 | 如何提高 Python 的运行效率 60 | 61 | 如何获取 list 中最后一个元素 62 | 63 | 常用的数据结构及应用场景(list,dict,tuple) 64 | 65 | ### C++ 66 | 67 | Makefile 文件,提示未定义的引用,是什么原因(我答的是使用 C 库忘记加 extern,其实应该是没有在 makefile 指定编译顺序) 68 | 69 | STL 中 set 怎么实现的,假设有 “I like love” 三个词,如何存。每个节点是直接指向这个单词的指针吗) 70 | 71 | STL 中 vector 是怎样实现的 72 | 73 | const 74 | 75 | 虚函数 76 | 77 | c++ 如何实现一个接口?(抽象类、纯虚函数) 78 | 79 | c++ 的数据成员的可见性,继承到子类之后的可见性(这里我是分了不同继承方式讨论的),子类友原函数对父类 private 能否可见。 80 | 81 | g++ 中 - L,-I,-l 的作用,有什么区别。-l 指定链接库的时候,如何 a 库依赖 b 库,是否 a 库必须放在 b 库前面 82 | 83 | 传递一个指针进某函数体内,为什么不能对它重新分配空间,如果想要分配,应该怎么做?(指针的指针) 84 | 85 | 如何想让变量 a=100 的时候中断,如何写 gdb 代码 86 | 87 | 如何用 gdb 调试 core 文件, 88 | 89 | 对 stl 的了解程度,map 的内部实现原理,为什么选择红黑树,红黑树的由来,与平衡二叉树的区别 90 | 91 | 拷贝构造函数和重载 = 符分别在什么情况下被调用,实现有什么区别 92 | 93 | 是否有用 C++ 写过实际的工程项目。 94 | 95 | 程序有错误如何调试(回答打 log, 如何段错误,gdb 调试 core 文件) 96 | 97 | 虚函数的目的,虚函数和模板类的区别,如何找到虚函数 98 | 99 | 说一下 TreeMap 的实现原理?红黑树的性质?红黑树遍历方式有哪些?如果 key 冲突如何解决? 100 | 101 | ### 智商题 102 | 103 | 100 张牌,每次只能抽一张,抽过的牌会丢掉,怎么选出最大的牌。 104 | 105 | 36 匹马,6 条跑道,选出最快 3 匹,最少赛多少场? 106 | 107 | 5 个海盗抢到了 100 颗宝石,每一颗都一样的大小和价值连城。他们决定:抽签决定自己的号码(1,2,3,4,5)。首先,由 1 号提出分配方案(你抽到 1 号),然后大家 5 人进行表决,当且仅当超过半数的人同意时,按照他的提案进行分配,否则将被扔入大海喂鲨鱼。 如果 1 号死后,再由 2 号提出分配方案,依此类推。条件:每颗宝石都是一样的价值。海盗都想保命,尽量多得宝石,尽量多杀人。问题:你会提出怎样的分配方案才能够使自己的收益最大化? 108 | 109 | 一个人要过一座 80 米的桥,每走一米需要吃一颗豆子,他最多可以装 60 颗豆子,问最少需要吃多少颗豆子才能走完桥?证明一下为什么你给的答案是最少的?桥长 81 米呢?当桥长 n 米,最多装 m 颗的时候结果用公式怎么表示? 110 | 111 | 一个绳子烧完需要 1 个小时,假设所有绳子的材质都不一样,也不均匀,怎么取出 1 小时加 15 分钟。 112 | 113 | 把 1~9 这 9 个数填入九格宫里, 使每一横、竖、斜相等。 114 | 115 | 有 100 个黑球,100 个白球。两个桶,桶的容量无限,每个球都可以任意放在任何一个桶中,没有限制,请设计一种分配方法,使得白黑球分配到两个桶之后, 某个人从某个桶中取出的球是白球的概率最大化。(这个人去第一个桶取球的概率是 1/2, 第二个桶也是 1/2) 116 | 117 | 有 1 亿个货物,不能单个单个检测,只能通过两两对比来找出其中的次品,请设计一个算法来找出次品。 118 | 119 | 有 25 匹马 ,5 个跑道,一次只能比 5 匹马,得到跑得最快的前 3,至少需要比几次? 120 | 121 | 有 3 盏灯,房间外有 3 个开关,你只有 1 次机会进入房间,怎么判断哪个开关对应哪盏灯? 122 | 123 | 给一堆螺母和螺栓,它们可以一一对应,但是现在顺序乱了,只能用螺母和螺栓比较,将它们一一对应起来。 124 | 125 | ### 大数据 126 | 127 | 100 亿数字,怎么统计前 100 大的? 128 | 129 | 10 亿个 url,每个 url 大小小于 56B,要求去重,内存 4G。 130 | 131 | 1KW 句子算相似度(还是那套分块 + hash / 建索引,但是因为本人不是做这个的,文本处理根本说一片空白,所以就不误导大家了),之后就是一直围绕大数据的题目不断深化。 132 | 133 | Q1:给定一个 1T 的单词文件,文件中每一行为一个单词,单词无序且有重复,当前有 5 台计算机。请问如何统计词频? 134 | 135 | Q2:每台计算机需要计算 200G 左右的文件,内存无法存放 200G 内容,那么如何统计这些文件的词频? 136 | 137 | Q3:如何将 1T 的文件均匀地分配给 5 台机器,且每台机器统计完词频生成的文件只需要拼接起来即可(即每台机器统计的单词不出现在其他机器中) 138 | 139 | 一个大文件 A 和一个小文件 B,里面存的是单词,要求出在文件 B 中但不在文件 A 中的单词。然后大文件 A 是无法直接存到内存中的。 140 | 141 | 一道题目是如果有一个人注册一个 qq,如何保证这个 qq 号码和之前已存在的 qq 号码不重复呢? 142 | 143 | 扔硬币,连续出现两次正面即结束,问扔的次数期望 144 | 145 | 有 100W 个集合,每个集合中的 word 是同义词,同义词具有传递性, 比如集合 1 中有 word a, 集合 2 中也有 word a, 则集合 1,2 中所有词都是同义词,对这 100W 个集合进行归并,同义词都在一个集合当中。 146 | 147 | 有几个 G 的文本,每行记录了访问 ip 的 log ,如何快速统计 ip 出现次数最高的 10 个 ip,如果只用 linux 指令又该怎么解决; 148 | 149 | 海量数据的 topk 问题 150 | 151 | ### 计算机基础 152 | 153 | Linux 下的一些指令,\$$(进程 id),$?(上一条命令退出时状态),怎么查看进程,按照内存大小,CPU 占用排序等等。 154 | 155 | Linux 的命令:pwd、ln、which 156 | 157 | Linux 线程通信 158 | 159 | hash 表是怎么实现的?有冲突的时候怎么处理? 160 | 161 | linux 文件词频统计 162 | 163 | 介绍一下 hash,怎么解决冲突。 164 | 165 | 你说一下 hashmap 的原理 166 | 167 | 内存泄露出现原因。 168 | 169 | 悲观锁乐观锁 170 | 171 | 把两个表按 id 合并怎么搞? 172 | 173 | 数据库 transaction 174 | 175 | 浅拷贝深拷贝 176 | 177 | 第二题是两题 sql ,涉及 join,group by,max,min,sum,count 等操作的结合,以及同个题目多种写法。 178 | 179 | 线程安全是什么意思?新线程什么情况下会影响原有线程? 180 | 181 | 网络基础 TCP 三次握手 182 | 183 | 计算机网络:描述他发一句 hello world 到我这边显示,中间经历了哪些过程,我从应用层开始一层层往下分析答的,主要说 http 和 tcp,网络层和链路层有些忘,但主要的几个协议和子网划分什么的也答了,面试官比较满意 184 | 185 | 词向量的推导,混合高斯,linux 硬链接,三次握手,linux inode 186 | 187 | 进程线程的区别 188 | 189 | ### 概率题 190 | 191 | 100 人坐飞机,第一个乘客在座位中随便选一个坐下,第 100 人正确坐到自己坐位的概率是? 192 | 193 | X 是一个以 p 的概率产生 1,1-p 的概率产生 0 的随机变量,利用 X 产生 1/2 概率是 0,1/2 概率是 1 的随机变量。 194 | 195 | X,Y 均服存于 [0,1] 的均匀分布,求 X+Y。 196 | 197 | 一个国家重男轻女,只要生了女孩就继续生,直到生出男孩为止,问这个国家的男女比例? 198 | 199 | 一个有 7 个格子的环,三种颜色染色,相邻不能颜色重复,问多少种方案 200 | 201 | 一个袋子里有很多种颜色的球,其中抽红球的概率为 1/4,现在有放回地抽 10 个球,其中 7 个球为红球的概率是多少? 202 | 203 | 一枚硬币,扔了一亿次都是正面朝上,再扔一次反面朝上的概率是多少? 204 | 205 | 一道概率题,54 张牌,平均分成三堆,大小王在同一堆的概率? 206 | 207 | 一道概率题,一个六位的密码,由 0~9 组成,问你正过来看和倒过来看密码是一样的概率。 208 | 209 | 一道组合数学题。10 盏灯,灭三盏,两头的必须亮着,不能灭掉相邻的两盏灯,问组合数? 210 | 211 | 三个硬币,分别是正正,反反,正反。随机抛一个硬币,结果是正面,问选的是那个硬币 212 | 213 | 个人玩游戏,100 个球,每次挑 5 个,如何保证必胜。52 张牌,四个人抽,黑桃 A 和红桃 A 同时在一个人手里的概率。 214 | 215 | 好像是问有 70% 的人喜欢玩游戏,30% 的人不喜欢玩游戏,现在推送的资源必须是 50% 游戏,50% 非游戏。问怎么分配比较合理。 216 | 217 | 有 n 个 elements 和 1 个 Compare(A, B) 函数,用 Compare 函数作为排序算法中的比较算子给 elements 排序。Compare 函数有 p 的可能比较错。排序完取 Top m 个元素,本来就在 Top m 并被正确分在 Top m 的元素个数是 x。问 x 的数学期望。 218 | 219 | 有两个随机数产生器,R1 以 0.7 的概率产生 1,以 0.3 的概率产生 0,而 R2 以 0.3 的概率产生 1,0.7 的概率产生 0. 问如何组合这两种产生器,使新得到的随机数产生器以 0.5 的概率产生 1,0.5 的概率产生 0。随机数产生器可复用。 220 | 221 | 有两枚硬币 A 和 B,A 正面的概率为 0.6,B 正面的概率为 0.5. 现在扔了一枚硬币显示为正面,问:该枚硬币是 A 的概率是多少? 222 | 223 | 概率题:有种癌症,早期的治愈率为 0.8,中期的治愈率为 0.5,晚期的治愈率为 0.2. 若早期没治好就会转为中期,中期没治好就会变成晚期。现在有一个人被诊断为癌症早期,然后被治愈了,问他被误诊为癌症的概率是多少? 224 | 225 | 给一个函数,返回 0 和 1,概率为 p 和 1-p,请你实现一个函数,使得返回 01 概率一样。 226 | 227 | 给定一个分类器 p,它有 0.5 的概率输出 1,0.5 的概率输出 0。Q1:如何生成一个分类器使该分类器输出 1 的概率为 0.25,输出 0 的概率为 0.75?Q2:如何生成一个分类器使该分类器输出 1 的概率为 0.3,输出 0 的概率为 0.7? 228 | 229 | 问了一个概率题 54 张牌,分成 6 份,每份 9 张牌,大小王在一起的概率 230 | 231 | ### HR 常问问题 232 | 233 | 为什么不读博、对读博报以什么态度。 234 | 235 | 为什么选择百度,谷歌百度都给你 offer 你选哪个。 236 | 237 | 为什么选择跨专业学计算机? 238 | 239 | 为什么选择阿里 240 | 241 | 以后可能要学习很多新技术,你怎么看。 242 | 243 | 你平时喜欢做什么?看过哪些书?最近在看什么书? 244 | 245 | 你觉得最有挑战的项目是什么。 246 | 247 | 你觉得最难忘的事情是什么? 248 | 249 | 你认为你的优(缺)点是什么。 250 | 251 | 你还有什么想问的? 252 | 253 | 加班怎么看。 254 | 255 | 印象最深刻的事? 256 | 257 | 压力最大的情况是什么时候。 258 | 259 | 在面试过程中觉得自己那些当面有进步 260 | 261 | 场景分析题,有一个任务给你,要求一个月完成,但是以目前的能力一个月完成不了,现在你知道有一个同事擅长这部分工作,但是他有自己的活,帮助你就可能耽误他的进度,问你咋办。 262 | 263 | 大学令你觉得最不爽的事情是什么 264 | 265 | 如何学习的? 266 | 267 | 如何看待加班。 268 | 269 | 实习期间项目,在组内担任的角色,是否熟悉其他组员的工作。 270 | 271 | 家庭教育观念? 272 | 273 | 家里什么情况?独生子女? 274 | 275 | 将来的职业规划? 276 | 277 | 工作地点 278 | 279 | 工作地点的问题 280 | 281 | 平时有什么兴趣爱好。 282 | 283 | 我觉得我会先去专心钻研技术,到达一定的 284 | 285 | 最后问了一下我兴趣爱好 286 | 287 | 有什么问题问我。 288 | 289 | 有没其他 offer 290 | 291 | 有没有想过去创业公司 292 | 293 | 现在在哪里实习?实习主要做些什么? 294 | 295 | 简单介绍一下自己 296 | 297 | 聊聊 offer 情况,有什么考虑之类的。 298 | 299 | 聊聊实验室生活。 300 | 301 | 能不能来北京 302 | 303 | 自己有什么优点缺点? 304 | 305 | 自己本科生和研究生相比有哪些进步 306 | 307 | 要求用两个字评价大学生涯。 308 | 309 | 讲一下你觉得你突出的地方,有亮点的地方。 310 | 311 | 评价一下你自己的优点缺点? 312 | 313 | 详细介绍项目。 314 | 315 | 说下你的优缺点 316 | 317 | 说说你的经历。 318 | 319 | 说说你自己的性格。 320 | 321 | 说说研究生阶段最有成就的事,遇到问题具体怎么解决的。 322 | 323 | 请你说一下你对应聘该岗位的优势。 324 | 325 | 遇到的最大挫折是什么。 326 | 327 | 问你的职业规划,遇到挑战怎么处理,有没有之前和同事发生过较大分歧。 328 | 329 | ### 开放题 330 | 331 | 2016 年每个项目有个上线和下线时间段,统计每天在线的项目数量 332 | 333 | 一堆问题和答案的 pair,算它们的相关性 334 | 335 | 一面现场面,自我介绍加挑一个项目细讲,还有场景题,第一题是 QQ 添加好友按名称搜索时,怎么区别广告号,诈骗号; 336 | 337 | 为什么之前没有深度网络出现(数据量不够 + 机器性能) 338 | 339 | 为今日头条设计一个热门评论系统,支持实时更新。 340 | 341 | 从项目中在哪一方面体会最深。 342 | 343 | 假设一个文档,连续的 K 个词,认为是一个时间窗口,一个时间窗口的词有关系,如何得到所有的时间窗口。 344 | 345 | 假设你拥有一切搜索数据,问怎么在不同场景下进行推荐,具体场景忘了(核心点:共线性、语义相似度、主题聚类等等) 346 | 347 | 假设有 100W 个单词,如何存储(我答的是 trie 树,面试官问每个节点会有很多子节点,每个子节点是一个指针,占用 8 个字节,如何节省空间,我说不知道,面试官提示双数组 trie 树) 348 | 349 | 假设要对一场 nba 球赛进行自动解说,会遇到哪些困难,又该怎么解决呢? 350 | 351 | 做过哪些项目?项目中遇到哪些难点,你是怎样解决的? 352 | 353 | 关于集群调度的一些经验 trick 掌握多少; 354 | 355 | 分词时,为了提高效率,怎么存储词典?(键树)如何压缩存储? 356 | 357 | 在微信的场景下,如何判断用户的职业?开放问题 358 | 359 | 场景题如何鉴别淘宝上卖假货的商家,价格维度可以用什么策略等 360 | 361 | 如何做一个新闻推荐 362 | 363 | 如何在语料中寻找频繁出现的字串,分析复杂度。 364 | 365 | 如何用尽可能少的样本训练模型同时又保证模型的性能; 366 | 367 | 如何预测双十一支付宝的负载峰值。 368 | 369 | 对推荐算法的未来看法。 370 | 371 | 平面上有 n 个点,让你设计一个数据结构,能够返回这个这 n 个点中距离某特定点最近的一个点。一开始讲了下 kd 树,然而太复杂面试官不满意,就讲了一个类似 GeoHash 的方案。 372 | 373 | 建立一个数据结构,基于此写一段程序用于存储 sparse vector,同时编写一个函数实现两个 sparse vector 的相加运算 374 | 375 | 很多单词,如何计算单词之间的相似度(或者对单词进行分类) 376 | 377 | 怎么预测降雨量。 378 | 379 | 我只有一大批实体词, 如何对他们进行聚类(无监督聚类), 如何找出这些词中, 哪些词之间有关系, 是强关系还是弱关系, 具体是什么关系,(如刘德华和朱丽倩 属于娱乐分类, 是强关系, 关系为夫妻) 380 | 381 | 拼车软件是如何定价的以及如何优化。 382 | 383 | 推荐算法(基于用户的协同过滤,基于内容的协同过滤) 384 | 385 | 推荐系统的冷启动问题如何解决 386 | 387 | 文本挖掘中,分词算法?如何选取特征?如何进行相似度计算,文本聚类结果如何评估? 388 | 389 | 无给定条件,预测蔬菜价格。 390 | 391 | 有 100W 个集合,每个集合中有一些词,对于每个集合,找出他是哪些集合的真子集。 392 | 393 | 有一堆已经分好的词,如何去发现新的词? 394 | 395 | 比赛相关问题提特征特征选择等 396 | 397 | 海量的 item 算文本相似度的优化方法; 398 | 399 | 特征工程经验。 400 | 401 | 用两分钟介绍自己的项目,创新点在哪里。 402 | 403 | 用户给三个 item(query),如何给出查询网页。 404 | 405 | 第三题是如何鉴别实施诈骗的 QQ 用户; 406 | 407 | 第二题是微信朋友圈内容的安全鉴别; 408 | 409 | 第四题是如何做反作弊,例如公众号的刷阅读量。 410 | 411 | 系统设计题,给一个 query,如何快速从 10 亿个 query 中找出和它最相似的 (面试官说可以对每个 query 找 1000 个最相似的,存起来,每天离线更新) 412 | 413 | 线性代数:特征线性依赖,出现冗余,会导致什么问题? 414 | 415 | 给一堆数据找找到最佳拟合的直线,数据有较多噪声 416 | 417 | 给你一个系统(面试官好像是无人车部门的),后台的逻辑已经实现了,但是前端加载很慢,怎么检测。 418 | 419 | 给你两个文件 a 和 b,大小大概 100M,两个文件每行一个整数,要求找到两个文件中相同的整数,存到文件 c 里,问我怎样尽快的完成这项工作? 420 | 421 | 给出一个算法实现如何确定快递邮件上的地址,要求从国家到省市到县到乡镇的一个识别,要求效率高(有陷阱,比如有的人把县写到市的前面,有人喜欢写地域名称的省略词比如安徽省写成安徽或者皖)。 422 | 423 | 给定淘宝上同类目同价格范围的两个商品 A 和 B,如何利用淘宝已有的用户、商品数据、搜索数据、评论数据、用户行为数据等所有能拿到的数据进行建模,判断 A 和 B 统计平均性价比高低。统计平均性价比的衡量标准是大量曝光,购买者多则高。 424 | 425 | 给很多单词,统计某个子串出现次数,我给的方法还是用 Trie,只不过一个单词要分成多个插入到 Trie 数中就行了。 426 | 427 | 给很多单词,要求统计出现某个前缀出现次数。 428 | 429 | 统计全球会弹钢琴的人数,我用机器学习的思路答的,面试官还比较满意 430 | 431 | 自己项目中有哪些可以迁移到其他领域的东西。 432 | 433 | 讲了讲自己在深度学习的认识,问的问题是几个具体场景的设计,包括怎么从海量数据中提取热点问题。 434 | 435 | 设计 LRU 系统 436 | 437 | 设计一个合理的电梯调度策略,调度两个电梯 ,考虑满足基本的接送需求,满足能耗最小,满足用户等待时间最短 438 | 439 | 设计一个系统可以实时统计任意 ip 在过去一个小时的访问量; 440 | 441 | 设计一个结构存取稀疏矩阵(面试官最后告诉我了一个极度压缩的存法,相同行或列存偏差,我当时没听懂,还不懂装懂,最后还是没记住) 442 | 443 | 设计实现一个 git diff 444 | 445 | 说一下最能代表你技术水平的项目吧? 446 | 447 | 项目:具体问了特征怎么做的。 448 | 449 | (难到我了,我想的方法不好,面试告诉我了他的想法,类似于一个进程调度问题,每一时刻只可能有一个用户按按钮,把这条指令接收,判断当前电梯能否满足,能满足就执行,不能满足则放入一个队列里,实际情况还要细化) 450 | 451 | ### 机器学习 452 | 453 | Boost 算法 454 | 455 | CART(回归树用平方误差最小化准则,分类树用基尼指数最小化准则) 456 | 457 | GBDT 与随机森林比较。 458 | 459 | GBDT(利用损失函数的负梯度在当前模型的值作为回归问题提升树算法中的残差的近似值,拟合一个回归树) 460 | 461 | KKT 条件用哪些,完整描述 462 | 463 | KNN(分类与回归) 464 | 465 | L1 与 L2 的区别以及如何解决 L1 求导困难。 466 | 467 | L1 和 L2 函数。 468 | 469 | L1 和 L2 正则相关问题。 470 | 471 | L1 和 L2 正则项,它们间的比较 472 | 473 | L1 正则为什么可以把系数压缩成 0,坐标下降法的具体实现细节 474 | 475 | LR 为什么用 sigmoid 函数。这个函数有什么优点和缺点?为什么不用其他函数? 476 | 477 | LR 和 SVM 有什么区别,libsvm 和 liblinear 有什么区别。 478 | 479 | Logistics 与随机森林比较 480 | 481 | Logistics(推导) 482 | 483 | Logistic 回归的推导,怎么得到 objective function。 484 | 485 | SVM 与随机森林比较 486 | 487 | SVM 为什么要引入拉格朗日的优化方法。 488 | 489 | SVM 原问题和对偶问题关系? 490 | 491 | SVM 在哪个地方引入的核函数, 如果用高斯核可以升到多少维。 492 | 493 | SVM 怎么防止过拟合 494 | 495 | SVM 的目标函数。常用的核函数。 496 | 497 | SVM 的过程,讲了推导过程,可能表达不清晰,都是泪 498 | 499 | bagging、adaboost、boosting 500 | 501 | em 与 kmeans 的关系; 502 | 503 | k-means 的 k 怎么取等等 504 | 505 | k-means 算法初始点怎么选择?你的项目里面推荐算法是怎么实现的? 506 | 507 | kmeans 的原理,优缺点以及改进。 508 | 509 | k 折交叉验证中 k 取值多少有什么关系 510 | 511 | l2 惩罚项是怎么减小 Overfitting 的?l1,l2 等范数的通式是什么?他们之间的区别是什么?在什么场景下用什么范数?l1 在 0 处不可导,怎么处理? 512 | 513 | randomforest,GBDT 514 | 515 | rf, gbdt, xgboost 的区别。 516 | 517 | softmax 公式 518 | 519 | 为什么要做数据归一化? 520 | 521 | 主要问最优化方面的知识,梯度下降法的原理以及各个变种(批量梯度下降,随机梯度下降法,mini 梯度下降法),以及这几个方法会不会有局部最优问题,牛顿法原理和适用场景,有什么缺点,如何改进(拟牛顿法) 522 | 523 | 什么情况下一定会发生过拟合? 524 | 525 | 什么是贝叶斯估计 526 | 527 | 介绍 LR、RF、GBDT ,分析它们的优缺点,是否写过它们的分布式代码 528 | 529 | 介绍 SVD、SVD++ 530 | 531 | 会哪些机器学习算法 532 | 533 | 信息熵公式 534 | 535 | 假设面试官什么都不懂,详细解释 CNN 的原理; 536 | 537 | 决策树原理 538 | 539 | 决策树处理连续值的方法。 540 | 541 | 决策树如何防止过拟合 542 | 543 | 决策树过拟合哪些方法,前后剪枝 544 | 545 | 分类模型可以做回归分析吗?反过来可以吗? 546 | 547 | 分类模型和回归模型的区别 548 | 549 | 判别模型,生成模型 550 | 551 | 各个模型的 Loss function,牛顿学习法、SGD 如何训练。 552 | 553 | 因为面我的总监是做 nlp 的, 所以讲了很多 rnn、lstm、还有 HMM 的东西。不算很熟,但是接触过,以前稍微看过一些相关论文,所以还是勉强能聊的。 554 | 555 | 在平面内有坐标已知的若干个点 P0...Pn,再给出一个点 P,找到离 P 点最近的点。 556 | 557 | 在模型的训练迭代中,怎么评估效果。 558 | 559 | 如何减少参数(权值共享、VGG 的感受野、GoogLeNet 的 inception) 560 | 561 | 如何防止过拟合(增加数据,减少模型复杂度 -> 正则化) 562 | 563 | 对于同分布的弱分类器,求分类器均值化之后的分布的均值跟方差。 564 | 565 | 对于机器学习你都学了哪些?讲一个印象深的。 566 | 567 | 常见分类模型( svm,决策树,贝叶斯等)的优缺点,适用场景以及如何选型 568 | 569 | 归一化方式 570 | 571 | 手写 k-means 的伪代码。 572 | 573 | 手写 k-means 的伪代码和代码。(Code) 574 | 575 | 手撕 svm 硬软间隔对偶的推导 576 | 577 | 手撕逻辑回归(损失函数及更新方式推导) 578 | 579 | 接着写一下信息增益的公式。 580 | 581 | 推一下 bp 算法等等 582 | 583 | 改变随机森林的训练样本数据量,是否会影响到随机森林学习到的模型的复杂度。 584 | 585 | 数据挖掘各种算法,以及各种场景下的解决方案 586 | 587 | 是否了解 mutual infomation、chi-square、LR 前后向、树模型等特征选择方式。 588 | 589 | 是否了解线性加权、bagging、boosting、cascade 等模型融合方式 590 | 591 | 有哪些常见的分类器,简单介绍下原理 592 | 593 | 机器学习与深度学习的区别 594 | 595 | 机器学习基础(线性回归与逻辑回归区别等) 596 | 597 | 机器学习:几种树模型的原理和对比,朴素贝叶斯分类器原理以及公式,出现估计概率值为 0 怎么处理(拉普拉斯平滑),缺点; k-means 聚类的原理以及缺点及对应的改进; 598 | 599 | 梯度下降牛顿拟牛顿原理 600 | 601 | 梯度下降的优缺点。 602 | 603 | 深度学习和普通机器学习有什么不同? 604 | 605 | 深度学习有很大部分是 CNN,给他用通俗的语言解释下卷积的概念,解释下 CNN 中的优势及原因 606 | 607 | 激活函数的选择(sigmoid->ReLu->LReLU->PReLU) 608 | 609 | 然后 20 分钟内手写 k-means 610 | 611 | 牛顿法、随机梯度下降算法和直接梯度下降算法的区别? 612 | 613 | 牛顿法推导 614 | 615 | 特征选择的方法 616 | 617 | 由数据引申到数据不平衡怎么处理(10W 正例,1W 负例,牛客上有原题) 618 | 619 | 聊聊 SVM,这段说了好久,从基本的线性可分到不可分,相关升维,各种核函数,每个是如何实现升。以及出现了 XX 问题,分析是样本的原因还是其他原因。针对不同情况,采取什么解决方案较好。 620 | 621 | 自己实现过什么机器学习算法 622 | 623 | 解决过拟合的方法有哪些? 624 | 625 | 解释 word2vec 的原理以及哈夫曼树的改进。 626 | 627 | 解释一下过拟合和欠拟合,有哪些方法防止过拟合。 628 | 629 | 让我一步一步地构造决策树,怎么计算信息熵、信息增益、然后 C4.5 ID3 CART 的区别,还说了一下优缺点 630 | 631 | 详细讨论了样本采样和 bagging 的问题 632 | 633 | 说一下 Adaboost,权值更新公式。当弱分类器是 LR 时,每个样本的的权重是 w1,w2..., 写出最终的决策公式。 634 | 635 | 说了一下 bagging 跟 boosting。 636 | 637 | 说明 L1L2 正则的效果与为什么形成这种情况(L1 正则稀疏,L2 正则平滑,之后说明就是画图说明正则化) 638 | 639 | 过拟合的解决方法; 640 | 641 | 选个你熟悉的机器学习方法 ,着重介绍一下产生原因,推导公式,背后统计意义什么等等 642 | 643 | 逻辑回归估计参数时的目标函数,如果加上一个先验的服从高斯分布的假设,会是什么样。 644 | 645 | 逻辑回归估计参数时的目标函数 646 | 647 | 逻辑回归的值表示概率吗? 648 | 649 | 问了会不会 RNN,LSTM。 650 | 651 | 问了很多数据挖掘的基础知识,包括 SVM, 逻辑回归、EM、K-means 等,然后给我很多场景问我遇到这些情况我要怎么来处理数据,怎么进行建模等等,问得很细 652 | 653 | 随机梯度下降,标准梯度 654 | 655 | 随机森林和 GBDT 的区别?LR 的参数怎么求解?有没有最优解? 656 | 657 | 随机森林(Bagging+CART) 658 | 659 | ### 编程题 660 | 661 | 1~n 这 n 个数现在去掉两个,如何找到去掉的两个数。 假设去掉的两个数是 a 和 b,那么通过求和,平方和可以知道 a+b 和 a^2+b^2,然后解方程就行了。 662 | 663 | char a[4] = {1, 2, 3, 4}; char \*b = a; b[0] = 100; 请问输出 a 的结果是什么? 664 | 665 | 一个 N\*M 的矩阵,从左上走到右下最小需要(N+M)步走完,问一共有多少种走法。 666 | 667 | 一个严格递增的数组,将前缀取一部分放在后面,在修改后的数组上找到最小的数。(剑指 Offer 原题) 668 | 669 | 一个大写字符串如 ABABB(len<1000),代表游客进游乐场的顺序及从哪个入口进入,要求每个入口 (不多于 26 个入口) 从第一个游客直到该入口的最后一个游客,检票员都不能离开,问最少检票人数 K。 670 | 671 | 一个字符数组中,每个字符都出现了 3 次,只有一个出现了 2 次,如果快速找出这个出现 2 次的? 672 | 673 | 一个字符矩阵,只可能是 R,G,B 三种字符。判断是否满足某个条件。这个条件是每种符号连成一个长方体,三个长方体长宽一致, 且横着平行 674 | 675 | 一个广告,它有一个 id,一个上线时间,一个下线时间,现在我有很多这样的广告,如果现在给你一个时间,告诉我有多少个广告在这个时间在线的 676 | 677 | 一个数据流中,如何采样得到 100 个数,保证采样得到的 100 个数是随机的? 678 | 679 | 一个数组中某个数出现次数大于一半,最快找出该数。 680 | 681 | 一个数组只有一个数字是单独出现,其他出现了三次。 682 | 683 | 一个数组存着 1-1000 连续的整数,假如我取出其中一个数,怎么能快速找到(用类二分查找) 684 | 685 | 一个数组存着负数与正数,将正数放在前面,负数放在后面 686 | 687 | 一个运算序列只有 +、\*、数字,计算运算序列的结果。(Code) 688 | 689 | 一堆 ip 地址区间,不会重叠,来一个新的 ip 地址,看它在不在,在哪个区间。 690 | 691 | 一维数组,swap 其中的几对数字(每个数字只属于一次 swap 操作),实现查找(与二分有关); 692 | 693 | 一维有序数组,经过循环位移后,最小的数出现在数列中间,如果原数组严格递增或递减,如何找这个最小数; 694 | 695 | 一维有序数组,经过循环位移后,最小的数出现在数列中间,如果原数组严格递增,如何找这个最小数。 696 | 697 | 一维有序数组,经过循环位移后,最小的数出现在数列中间,如果原数组非严格递增或递减,如何找这个最小数; 698 | 699 | 一维有序数组,经过循环位移后,最小的数出现在数列中间,数组可能是递增、递减、递减后递增、递增后递减四种情况,递增递减都是非严格的,如果有转折点,返回转折点的值,否则返回 - 1; 700 | 701 | 一道题:给定一个整数数组,里面有两个数相同,其他数都是不同的,如何尽快找到这两个数(答,用 hash 表,O(N),有更好的方法么?) 702 | 703 | 一题是多位数用链表存储( e.g. 123 用 1->2->3 存储),实现相加功能函数 704 | 705 | 不创建临时产量换两个数 706 | 707 | 两个同样大小有序数组求中位数,写代码 708 | 709 | 两个大整数相乘。(Code) 710 | 711 | 两棵树相加——对应位置两棵树都有值则相加,对应位置只有一棵树有值则取该值; 712 | 713 | 中序遍历二叉树,利用 O(1) 空间统计遍历的每个节点的层次。(Bug Free Code) 714 | 715 | 中缀表达式转逆波兰表达式,逆波兰表达式求值; 716 | 717 | 为分析用户行为,系统常需存储用户的一些 query ,但因 query 非常多,故系统不能全存,设系统每天只存 m 个 query ,现设计一个算法,对用户请求的 query 进行随机选择 m 个,请给一个方案,使得每个 query 被抽中的概率相等,并分析之,注意:不到最后一刻,并不知用户的总请求量。 718 | 719 | 二分查找 720 | 721 | 二分查找,查找 target,在区间 [start,end] 之间,如果有重复元素,返回最后一个下标,其他情况返回 - 1 722 | 723 | 二叉树前序递归遍历算法(手写代码) 724 | 725 | 二叉树的前中后遍历 726 | 727 | 二叉树的文件存储,也就是序列化。 728 | 729 | 二叉树遍历,描述下层序遍历。 730 | 731 | 二维数组,每行递增,每列递增,任意交换其中的两数,发现并恢复。 732 | 733 | 二维数组,每行递增,每列递增,实现查找。 734 | 735 | 二维数组,每行递增,每列递增,求第 k 大的数。 736 | 737 | 什么样的数据结构可以满足多次插入删除,取最小数,给出时间复杂度。 738 | 739 | 介绍二叉树前序遍历非递归遍历算法(手写代码) 740 | 741 | 介绍大顶堆和小顶堆 742 | 743 | 从一组数中找出和为 sum 的三个数(leetcode 原题,先 sort 再找,并且剪枝),写代码,四个数呢?说思路。 744 | 745 | 假设有个 M\*N 的方格,从最左下方开始往最右上方走,每次只能往右或者往上,问有多少种走法,假设中间有若干个格子不能走,又有多少种走法。 746 | 747 | 允许两个元素交换一次的最大连续子序列和。 748 | 749 | 全排列 750 | 751 | 全排列。 752 | 753 | 冒泡排序 (手写代码) 754 | 755 | 写 find 函数,在目标串中匹配模式串(要考虑中文字符的情况) 756 | 757 | 写一个二叉树的非递归的后续遍历 758 | 759 | 写一个简单的正则匹配表达式 (将文本中的 123.4 匹配出来) 760 | 761 | 写个动态规划,最长公共子序列 762 | 763 | 判断一个字符串是否为另外一个字符串旋转之后的字符串 764 | 765 | 前 k 大的数 766 | 767 | 单链表的翻转 768 | 769 | 去掉连续的重复数字,输出新数组,例如:1,2,2,2,1,3,5——> 3,5。 770 | 771 | 去除字符串 S1 中的字符使得最终的字符串 S2 不包含’ab’和’c’。(Code) 772 | 773 | 合法括号匹配 774 | 775 | 在一个字符串中,找出最长的无重复字符的字串 776 | 777 | 在二叉树结点结构中加一个指针域,使其指向层次遍历的下一个结点,特别地,每一层的最后一个结点为空。(Code) 778 | 779 | 堆排序 (手写代码) 780 | 781 | 堆是怎么调整的。 782 | 783 | 复杂链表的复制。 784 | 785 | 如果给出一个二叉搜索树的后续能不能建立(可以,因为只要将遍历结果排序就可以得到中序结果)。 786 | 787 | 字符串反转(手写代码) 788 | 789 | 字符串移位,给出字符串 abc##dfg##gh,实现将所有 #移至字符串串头。输出 ####abcdfggh。 790 | 791 | 字符串转整数 792 | 793 | 字符串,给一个 url,求中间的 site 794 | 795 | 字符串,给一个 url,求中间的 site。 796 | 797 | 定义满足 $n=x^a+y^b$($x,y,a,b$ 是非负整数)的 n 是神奇数。如 $4 = 2^0 + 3^1,17 = 2^3 + 3^2$。输入 l 和 r,请求出闭区间 $[l,r]$ 里,最长的一段不含有神奇数的连续区间长度。$x,y,l,r<=10^{18},x>=2,y>=2$,如 $3 5 10 22$,在 $[10,22]$ 区间内,$x=3,y=5$ 的条件下,区间内 [14] 是神奇数,所以最长的区间是 $[15,22]$ 长度为 $8$,如 $2,3,1,10$,在 $[1,10]$ 区间内,$x=2,y=3$ 的条件下,$2,3,4,5,7,9$ 都是神奇数,所以最长的区间只有长度 $1$。 798 | 799 | 实现栈,使得 添加、删除、max 操作的复杂度为 O(1)。 800 | 801 | 对于一个字符串,请设计一个算法,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成,你需要将这些部分逆序。给定一个原字符串 A 和它的长度,请返回逆序后的字符串。 802 | 803 | 对于一个字符串,请设计一个算法,将字符串的长度为 len 的前缀平移到字符串的最后。 804 | 805 | 寻找字符串中第一个只出现一次的字符; 806 | 807 | 将字符串连续重复出现的字符删到只剩一个,这个可以用双指针,时间复杂度 n,空间复杂度 1。 808 | 809 | 常用排序算法的时间和空间复杂度 810 | 811 | 平衡二叉树是什么 812 | 813 | 归并排序 (手写代码) 814 | 815 | 快速排序 (手写代码) 816 | 817 | 快速排序 + 二分查找 818 | 819 | 手写快排 (easy) 820 | 821 | 打印数组的组合数。 822 | 823 | 打印螺旋数组; 824 | 825 | 把一个 bst 转化成一个双向链表。 826 | 827 | 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。例如 AbcDeFGhi ->bceiADFG 828 | 829 | 排序二叉树转双向链表。(Code) 830 | 831 | 描述 Dijkstra 最短路径算法 832 | 833 | 插入排序 (手写代码) 834 | 835 | 数列中找第 k 大的数字(与快排或堆排序有关) 836 | 837 | 数据解压缩,3(a4(ab)) -> aababababaababababaabababab; 838 | 839 | 数组有只有一个数出现一次,其他数都出现三次,找出那个数。 840 | 841 | 旋转数组 842 | 843 | 最少时间复杂度求数组中第 k 大的数。(Code) 844 | 845 | 最短路径代码。 846 | 847 | 最长公共子串(动态规划有关); 848 | 849 | 最长公共子序列 850 | 851 | 有一堆无向好友列表 1-2, 3-4, 2-3 之类的,问能不能把这些用户划分两组,组内都不互为好友。 852 | 853 | 有序数组寻找和为某数的一对数字; 854 | 855 | 正数数组,找三个数使积最小,问有多少种选择。 856 | 857 | 母鸡、公鸡和小鸡问题:公鸡五块一只,母鸡三块一只,小鸡一块三只,用 100 元买 100 只鸡的所有方法。 858 | 859 | 求 double 类型的二进制 1 的个数。 860 | 861 | 求二叉树最近公共祖先 (leetcode 原题) 862 | 863 | 求连续子数组最大乘积,还让考虑边界问题(最后问了:连乘有可能导致溢出,存不下了) 864 | 865 | 用一个队列,将每个二叉树的 root 先放入队列。 866 | 867 | 用数组实现队列,各操作的复杂度分析。 868 | 869 | 用速度不同的指针可以判断链表中是否有环,问两速度满足怎样的关系可以保证发现环。 870 | 871 | 直接插入排序写代码 872 | 873 | 看段代码,问输出是啥。(就是段求二进制中 1 的个数) 874 | 875 | 矩阵求最长连续递增的路径长度 876 | 877 | 矩阵求最长连续递增的路径长度。 878 | 879 | 第一题是链表倒数第 k 节点;第二题是二叉树打印路径,第三题是矩阵中将 0 元素所在行列全置 0 的最优空间解法 880 | 881 | 第二轮是写出一个算法输出二叉树的 s 序列,何为 s 序列,比如现在有个二叉树 1-2,3-4,5 6,7 这是一颗完全二叉树, S 序列输出就是按照 1237654 这个顺序输出,用两个栈就能实现比较简单。 882 | 883 | 算法题,也只记得一个了:存在一个数组,大小 98,里面的元素均为在 [1,100],且无重复, 不申请额外空间的情况下,在时间复杂度为 O(N) 情况下,找出缺失的两个元素值。 884 | 885 | 给一个 n\*n 的矩阵,矩阵中满足每行每列都是递增的,要查找矩阵是否存在某个数.(leetcode 原题) 886 | 887 | 给一个数组,只有一个元素出现了一次,其他都出现了两次,找出出现一次的数。 888 | 889 | 给一个数组,数组种存在一种数,它的左边都比它小,右边都比它大,找出所有这些数的位置。 890 | 891 | 给一个股票,n 天的价格,只能两次买入卖出,而且只能只能先卖再买,问最多赚多少钱? 892 | 893 | 给一个股票,n 天的价格,只能进行一次买入和卖出,问最多赚多少钱? 894 | 895 | 给一个股票,n 天的价格,可以买入卖出 k 次,而且只能只能先卖再买,问最多赚多少钱? 896 | 897 | 给一个股票,n 天的价格,可以无限次买入卖出,问最多赚多少钱? 898 | 899 | 给了一个链表,第 1 个结点标号为 1,把链表中标号在 M 到 N 区间的部分反转。 900 | 901 | 给你一个无重复的数组输出全排列。 902 | 903 | 给你一颗二叉树按层输出每一层输出后都换行 904 | 905 | 给出一个二维矩阵,从(0,0)出发走到右下角,只能向右或向下走,找到一条路径,是这条路径上的总和最大。 906 | 907 | 给出一段代码问代码作用(二进制数据 1 的个数) 908 | 909 | 给出一颗二叉树,两个叶节点,找到这两个叶节点互连通的一条最短路径。 910 | 911 | 给定一个数组,只有一个元素出现了一次,其他都出现了 3 次,找出出现一次的数。 912 | 913 | 给定一个数组,有两个元素出现了一次,其他都出现了两次,找出两个出现一次的数。 914 | 915 | 给定一个正整数向量,判断这个向量是否存在一个片段,使得反转这个片段后能够使该向量升序排列。如:[1, 2, 4, 3],就可以通过反转 [4, 3] 使得向量变为[1, 2, 3, 4]。 916 | 917 | 给定二叉树的先序跟后序遍历,能不能将二叉树重建(不能,因为先序:父节点 - 左节点 - 右节点,后序:左节点 - 右节点 - 父节点,两者的拓扑序列是一样的,所以无法建立) 918 | 919 | 给定循环递增数组 $a=[7,8,9,1,2,3]$ 和一个值 $k=2$, 返回该值得再数组中的下标。 920 | 921 | 给定数组 A[]={1,4,7,...} 和一个数 T。求和为 T 的 A 中的数最少要几个。A 中的数可复用。 我写了个递归,面试官不建议使用,因为效率不高。但没有反对。 922 | 923 | 给定数组,寻找 next big(堆排序有关); 924 | 925 | 给我一个数组[1,2,5,10,20,50,100],可以从里面取若干个数,要求得出和为 100 的不同取法有多少?(说出思路) 926 | 927 | 统计数列中的逆序对(归并排序有关); 928 | 929 | 编程题:实现求正整数平方根整数部分的函数(使用梯度下降) 930 | 931 | 翻转二叉树(Code) 932 | 933 | 若干个二叉树,如何按照层序遍历 934 | 935 | 设 rand ( s , t )返回 [s,t] 之间的随机小数,利用该函数在一个半径为 R 的圆内找随机 n 个点,并给出时间复杂度分析。 936 | 937 | 输入一个大长方形,长宽 ab,和一堆小长方形。选择两个小长方形,它能放进大长方形,而这个小长方形面积和最大 938 | 939 | 输入一个宿舍楼亮灯描述图,计算把所有灯关掉的最短时间,管理员起点在左下角,只能在最左或最右的楼梯往上一层,不可往下一层。每次往上一层花费 1 分钟,每次往左或往右一间宿舍花费 1 分钟,关灯不花时间。输入的高 <=15,宽 <=100。 940 | 941 | 如图: 942 | 943 | 0010 944 | 945 | 0100 从左下角开始,最短花费时间是先往右(关灯), 946 | 947 | 再往左,再上一层,再往右两次(关灯)完成:5 948 | 949 | 再如: 950 | 951 | 001000000010000010 最短时间是先往右四次(关灯),往右一次, 952 | 953 | 上一层,往左一次(关灯),往右一次, 954 | 955 | 上一层,往左三次(关灯),完成,12 956 | 957 | 输入两个正数数组,在两个数组分别选一个数,要求第一个数组选的数的下标小于第二个数组选的数的下标。使得两个数的乘积最大。 958 | 959 | 输出字符串中的所有重复子串,例如:abcab,输出: a, b, ab 960 | 961 | 连续子数组最大和 962 | 963 | 迷宫的深度搜索、广度搜索; 964 | 965 | 选取任意数据结构实现添加、删除、随机返回三个功能,分析复杂度。 966 | 967 | 选择排序 (手写代码) 968 | 969 | 链表上的快速排序。 970 | 971 | 长度为 N 的序列 Sequence=abc......Z,问有多少不同的二叉树形态中序遍历是这个。(Code) 972 | 973 | 问了一两个算法题,记不清了,只记得其中一个是:找数组中 2 个出现两次的数字,还有 3 个两次的数字 974 | 975 | 问了一个 1 的平方加到 100 的平方结果 976 | 977 | 非常经典的 0-1 背包问题 978 | 979 | http://www.sohu.com/a/166564812_690895 980 | -------------------------------------------------------------------------------- /docs/interview/hr.md: -------------------------------------------------------------------------------- 1 | # HR 常问问题 2 | 3 | 为什么不读博、对读博报以什么态度。 4 | 5 | 为什么选择百度,谷歌百度都给你 offer 你选哪个。 6 | 7 | 为什么选择跨专业学计算机? 8 | 9 | 为什么选择阿里 10 | 11 | 以后可能要学习很多新技术,你怎么看。 12 | 13 | 你平时喜欢做什么?看过哪些书?最近在看什么书? 14 | 15 | 你觉得最有挑战的项目是什么。 16 | 17 | 你觉得最难忘的事情是什么? 18 | 19 | 你认为你的优(缺)点是什么。 20 | 21 | 你还有什么想问的? 22 | 23 | 加班怎么看。 24 | 25 | 印象最深刻的事? 26 | 27 | 压力最大的情况是什么时候。 28 | 29 | 在面试过程中觉得自己那些当面有进步 30 | 31 | 场景分析题,有一个任务给你,要求一个月完成,但是以目前的能力一个月完成不了,现在你知道有一个同事擅长这部分工作,但是他有自己的活,帮助你就可能耽误他的进度,问你咋办。 32 | 33 | 大学令你觉得最不爽的事情是什么 34 | 35 | 如何学习的? 36 | 37 | 如何看待加班。 38 | 39 | 实习期间项目,在组内担任的角色,是否熟悉其他组员的工作。 40 | 41 | 家庭教育观念? 42 | 43 | 家里什么情况?独生子女? 44 | 45 | 将来的职业规划? 46 | 47 | 工作地点 48 | 49 | 工作地点的问题 50 | 51 | 平时有什么兴趣爱好。 52 | 53 | 我觉得我会先去专心钻研技术,到达一定的 54 | 55 | 最后问了一下我兴趣爱好 56 | 57 | 有什么问题问我。 58 | 59 | 有没其他 offer 60 | 61 | 有没有想过去创业公司 62 | 63 | 现在在哪里实习?实习主要做些什么? 64 | 65 | 简单介绍一下自己 66 | 67 | 聊聊 offer 情况,有什么考虑之类的。 68 | 69 | 聊聊实验室生活。 70 | 71 | 能不能来北京 72 | 73 | 自己有什么优点缺点? 74 | 75 | 自己本科生和研究生相比有哪些进步 76 | 77 | 要求用两个字评价大学生涯。 78 | 79 | 讲一下你觉得你突出的地方,有亮点的地方。 80 | 81 | 评价一下你自己的优点缺点? 82 | 83 | 详细介绍项目。 84 | 85 | 说下你的优缺点 86 | 87 | 说说你的经历。 88 | 89 | 说说你自己的性格。 90 | 91 | 说说研究生阶段最有成就的事,遇到问题具体怎么解决的。 92 | 93 | 请你说一下你对应聘该岗位的优势。 94 | 95 | 遇到的最大挫折是什么。 96 | 97 | 问你的职业规划,遇到挑战怎么处理,有没有之前和同事发生过较大分歧。 98 | -------------------------------------------------------------------------------- /docs/interview/index.md: -------------------------------------------------------------------------------- 1 | # 基础篇:操作系统、计算机网络、设计模式 2 | 3 | ## [译] Google Interview University 一套完整的学习手册帮助自己准备 Google 的面试 4 | 5 | > https://github.com/jwasham/coding-interview-university/blob/master/translations/README-cn.md 6 | 7 | http://blog.csdn.net/u011225629/article/details/46838957 8 | http://www.cnblogs.com/heyonggang/p/3172570.html 9 | https://hit-alibaba.github.io/interview/basic/arch/OS.html 10 | http://jingpin.jikexueyuan.com/article/1968.html 11 | 12 | 一:操作系统 13 | 14 | 1. 进程的有哪几种状态,状态转换图,及导致转换的事件。 15 | 2. 进程与线程的区别。 16 |  进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是 CPU 调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。 17 | 18 | 进程与应用程序的区别在于应用程序作为一个静态文件存储在计算机系统的硬盘等存储空间中,而进程则是处于动态条件下由操作系统维护的系统资源管理实体。 19 | 20 | 3. 进程通信的几种方式。 21 | 4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解) 22 | 5. 线程的实现方式. (也就是用户线程与内核线程的区别) 23 | 6. 用户态和核心态的区别。 24 | 7. 用户栈和内核栈的区别。 25 | 8. 内存池、进程池、线程池。(c++程序员必须掌握) 26 | 9. 死锁的概念,导致死锁的原因. 27 | 10. 导致死锁的四个必要条件。 28 | 11. 处理死锁的四个方式。 29 | 12. 预防死锁的方法、避免死锁的方法。 30 | 13. 进程调度算法。(周转时间 = 程序结束时间 -- 开始服务时间、带权周转时间= 周转时间 / 要求服务时间) 31 | 14. Windows 内存管理的方式(块式、页式、段式、段页式). 32 | 15. 内存连续分配方式采用的几种算法及各自优劣。 33 | 16. 动态链接及静态链接. 34 | 17. 基本分页、请求分页储存管理方式。 35 | 18. 基本分段、请求分段储存管理方式。 36 | 19. 分段分页方式的比较各自优缺点。 37 | 20. 几种页面置换算法,会算所需换页数。(LRU 用程序如何实现?) 38 | 21. 虚拟内存的定义及实现方式。 39 | 22. 操作系统的四个特性。 40 | 23. DMA。 41 | 24. Spooling。 42 | 25. 外存分配的几种方式,及各种优劣。 43 | 二:计算机网络 44 | 26. 电路交换与分组交换的区别?优劣对比。 45 | 27. OSI 有哪几层,会画出来,知道主要几层的各自作用。 46 | 28. TCP/IP 有哪几层,会画出来,知道所有层数的作用,会列举各层主要的协议名称。 47 | 29. 硬件(MAC)地址的概念及作用。 48 | 30. ARP 协议的用途 及算法、在哪一层上会使用 arp ? 49 | 31. CRC 冗余校验算法,反码和检验算法。 50 | 32. 如何实现透明传输。 51 | 33. 知道各个层使用的是哪个数据交换设备。(交换机、路由器、网关) 52 | 34. 路由表的内容。 53 | 35. 分组转发算法。 54 | 36. IP 报文的格式,格式的各个字段的含义要理解。 55 | 12.MTU 的概念,啥叫路径 MTU? MTU 发现机制,TraceRoute(了解)。 56 | 13.RIP 协议的概念及算法。 57 | 14.ICMP 协议的主要功能。 15.组播和广播的概念,IGMP 的用途。(环回地址、广播地址) 58 | 16.Ping 协议的实现原理,ping 命令格式。 59 | 37. 子网划分的概念,子网掩码。 60 | 38. IP 地址的分类,如何划分的,及会计算各类地址支持的主机数。 61 | 19.DNS 的概念,用途,DNS 查询的实现算法。 62 | 39. TCP 与 UDP 的概念,相互的区别及优劣。 63 | 21.UDP 报文的格式,字段的意义。 64 | 40. TCP 报文的格式,字段的意义。 65 | 23.TCP 通过哪些措施,保证传输可靠? 66 | 41. 三次握手,四次断开过程。 67 | 42. TIME_WAIT 状态的概念及意义。 26.滑动窗口协议 与停止等待协议的区别。 68 | 43. TCP 的流量控制和拥塞控制实现原理(会画拥塞控制的典型图)。 69 | 28.TCP 的快速重传与快速恢复算法。 70 | 29.TFTP 与 FTP 的区别。 30.阻塞方式和非阻塞方式,阻塞 connect 与非阻塞 connect。(比较难,有兴趣可以了解) 71 | 44. HTTP 基本格式。(java 程序员必须掌握) 72 | 三:设计模式 73 | 45. 各种常用模式的用途,使用方法(类图)。 74 | 46. 单例模式的双重检查实现。 75 | 47. MVC 模式 76 | 77 | 三:Linux 基本命令 78 | 79 | 1. 绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令? 80 | 2. 怎么查看当前进程?怎么执行退出?怎么查看当前路径? 81 | 3. 怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令? 82 | 4. Ls 命令执行什么功能? 可以带哪些参数,有什么区别? 83 | 5. 建立软链接(快捷方式),以及硬链接的命令。 84 | 6. 目录创建用什么命令?创建文件用什么命令?复制文件用什么命令? 85 | 7. 文件权限修改用什么命令?格式是怎么样的? 86 | 8. 查看文件内容有哪些命令可以使用? 87 | 9. 随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”? 88 | 10. 终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令? 89 | 11. 移动文件用哪个命令?改名用哪个命令? 90 | 12. 复制文件用哪个命令?如果需要连同文件夹一块复制呢?如何需要有提示功能呢? 91 | 13. 删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令? 92 | 14. Linux 下命令有哪几种可使用的通配符?分别代表什么含义? 93 | 15. 用什么命令对一个文件的内容进行统计?(行号、单词数、字节数) 94 | 16. Grep 命令有什么用? 如何忽略大小写? 如何查找不含该串的行? 95 | 17. Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的? 96 | 18. 怎么使一个命令在后台运行? 97 | 19. 利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息? 98 | 20. 哪个命令专门用来查看后台任务? 99 | 21. 把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令? 100 | 22. 终止进程用什么命令? 带什么参数? 101 | 23. 怎么查看系统支持的所有信号? 102 | 24. 搜索文件用什么命令? 格式是怎么样的? 103 | 25. 查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令? 104 | 26. 使用什么命令查看用过的命令列表? 105 | 27. 使用什么命令查看磁盘使用空间? 空闲空间呢? 106 | 28. 使用什么命令查看网络是否连通? 107 | 29. 使用什么命令查看 ip 地址及接口信息? 108 | 30. 查看各类环境变量用什么命令? 109 | 31. 通过什么命令指定命令提示符? 110 | 32. 查找命令的可执行文件是去哪查找的? 怎么对其进行设置及添加? 111 | 33. 通过什么命令查找执行命令?34. 怎么对命令进行取别名? 112 | 113 | 四:Linux 编程 114 | 115 | 1. 列举 Linux 内存管理相关的几个函数,各自有什么功能? 116 | 2. GCC 只编译的选项是什么?只进行预处理的选项是什么?在命令行定义宏的选项是什么? 117 | 3. Linux 静态库的使用,怎么创建一个静态库? 怎么使用一个静态库?静态库文件的后缀名是什么?静态库的命名规范。 118 | 4. nm 工具的作用,ldd 工具的作用。 119 | 5. Linux 动态库的使用,怎么创建一个动态库? 动态库文件的后缀名是什么?怎么使用一个动态库?动态库的命名规范? 系统默认的动态库的查找路径?动态库显示连接所使用的系统库是什么? 120 | 6. Linux 下 make 与 makefile。用什么参数指定 makefile 文件? 什么是默认的 makefile 文件。 121 | 7. 在哪个文件夹下存有进程运行时的所有信息? 122 | 8. 每个程序默认打开哪三个文件设备? 123 | 9. 操作文件描述符的读写函数是什么?打开文件描述符以及关闭文件描述符的函数? 124 | 10. Fcntl 函数主要的几个作用。 125 | 11. 创建进程的几个函数,及各自区别。 126 | 12. 父进程先结束,子进程会变为? 子进程先结束,子进程会变为? 127 | 13. 怎么使父进程回收子进程? 相关的几个函数。 128 | 14. 子进程在创建时与父进程的内存资源的复制问题。 129 | 15. 中断信号、终止信号、定时器信号的宏是什么? 130 | 16. 在程序中注册信号和发送信号用什么函数? 131 | 17. 信号的可靠与不可靠的含义。哪些信号是可靠的?哪些信号是不可靠的? 132 | 18. 信号屏蔽用什么函数? SigSuspend 的作用? Sigpending 的作用? 133 | 19. 信号处理函数处理信号时是否会被信号中断? 134 | 20. 最新版本的信号发送与处理函数?与老版本的发送与数据函数有什么区别? 135 | 21. Linux 下进程有哪些通信方式(IPC)? 136 | 22. TCP 服务器编程模型。 137 | 23. UDP 服务器编程模型。 138 | 24. TCP 编程特征,由于每次不定长数据到达,则一般使用什么选项? 139 | 25. Selected 模型是什么? 相比而言多进程实现方式有什么区别?Selected、epoll 模型、poll 模型的区别。 140 | 26. 常用的 socket 选项有哪些?利用哪个函数来设置 socket 选项? 141 | 27. 怎么发送和设置带外(OOB)数据? 142 | 28. Linux 下多线程的库是什么? 利用哪个函数创建线程?利用哪个函数强制结束线程?主线程等待子线程结束时使用的函数? 143 | 29. 线程怎样在被迫退出时能做一些善后处理?以及怎么用 linux 特有的方式处理? 144 | 145 | 算法篇:算法与数据结构 146 | 一:算法 147 | 148 | 1. 算法的几个特征是什么。 149 | 2. 算法复杂性的定义。大 O、θ、、小 o 分别表示的含义。 150 | 3. 递归算法的定义、递归算法的两要素。 151 | 4. 分治算法的思想,经典的分治算法(全排列、二分搜索、归并排序、快速排序、线性时间选择、最接近点对问题)。 152 | 5. 动态规划算法解题框架,动态规划算法的两个要素是什么?备忘录方法是什么? 153 | 6. 经典的动态规划问题(矩阵连乘问题、最长公共子序列问题、0-1 背包问题)。 154 | 7. 贪心算法的思想,贪心算法的两个要素。 155 | 8. 经典的贪心问题(活动安排问题、背包问题、装载问题、哈夫曼编码、单源最短路径、最小生成树问题)。9. 回溯法的思想,回溯法中有哪两种典型的模型。 156 | 9. 经典的回溯算法(n 后问题、0-1 背包问题、旅行售货商问题)。 157 | 10. 分支限界法思想,有哪两种分支限界法。 158 | 11. 经典的分支限界算法(0-1 背包问题、旅行售货商问题)。 159 | 160 | 二:数据结构 161 | 162 | 1. 数据结构的定义。 163 | 2. 栈的两个应用:括号匹配和表达式的计算。是怎么应用的?表达式计算用的是哪种表达方式?有什么好处? 164 | 3. 字符串匹配算法:朴素的匹配算法、KMP 算法。 165 | 4. 二叉树前序、中序、后序递归遍历算法。二叉树前序非递归遍历算法。 166 | 5. 堆,建堆算法,堆的插入和删除算法,堆排序。 167 | 6. 哈希。哈希函数的有哪些种?余数的取法? 处理冲突的方法? 闭散列方法有哪些? 168 | 7. 二叉搜索树的搜索、插入、删除。时间复杂度。 169 | 8. 二叉平衡树的插入结点的原理,有哪几种旋转方式?分别适用于哪种情况。分析二叉平衡树的时间复杂度。 170 | 9. 红黑树的定义,红黑树的性能分析和与二叉平衡树的比较。 171 | 10. 图有哪些储存表示。 172 | 11. 链表插入排序、链表归并排序。 173 | 12. 常见的有哪几种排序算法,试比较其时间复杂度,以及是否稳定,及各自使用的情形。 174 | 13. 常用分配排序有哪几种? 基数排序的定义,分类及原理。 175 | 14. 外部排序的过程。 176 | 15. B 树、B+树、Trie 的概念及用途,添加删除结点的原理。 177 | -------------------------------------------------------------------------------- /docs/interview/ml.md: -------------------------------------------------------------------------------- 1 | # 机器学习 2 | 3 | Boost 算法 4 | 5 | CART(回归树用平方误差最小化准则,分类树用基尼指数最小化准则) 6 | 7 | GBDT 与随机森林比较。 8 | 9 | GBDT(利用损失函数的负梯度在当前模型的值作为回归问题提升树算法中的残差的近似值,拟合一个回归树) 10 | 11 | KKT 条件用哪些,完整描述 12 | 13 | KNN(分类与回归) 14 | 15 | L1 与 L2 的区别以及如何解决 L1 求导困难。 16 | 17 | L1 和 L2 函数。 18 | 19 | L1 和 L2 正则相关问题。 20 | 21 | L1 和 L2 正则项,它们间的比较 22 | 23 | L1 正则为什么可以把系数压缩成 0,坐标下降法的具体实现细节 24 | 25 | LR 为什么用 sigmoid 函数。这个函数有什么优点和缺点?为什么不用其他函数? 26 | 27 | LR 和 SVM 有什么区别,libsvm 和 liblinear 有什么区别。 28 | 29 | Logistics 与随机森林比较 30 | 31 | Logistics(推导) 32 | 33 | Logistic 回归的推导,怎么得到 objective function。 34 | 35 | SVM 与随机森林比较 36 | 37 | SVM 为什么要引入拉格朗日的优化方法。 38 | 39 | SVM 原问题和对偶问题关系? 40 | 41 | SVM 在哪个地方引入的核函数, 如果用高斯核可以升到多少维。 42 | 43 | SVM 怎么防止过拟合 44 | 45 | SVM 的目标函数。常用的核函数。 46 | 47 | SVM 的过程,讲了推导过程,可能表达不清晰,都是泪 48 | 49 | bagging、adaboost、boosting 50 | 51 | em 与 kmeans 的关系; 52 | 53 | k-means 的 k 怎么取等等 54 | 55 | k-means 算法初始点怎么选择?你的项目里面推荐算法是怎么实现的? 56 | 57 | kmeans 的原理,优缺点以及改进。 58 | 59 | k 折交叉验证中 k 取值多少有什么关系 60 | 61 | l2 惩罚项是怎么减小 Overfitting 的?l1,l2 等范数的通式是什么?他们之间的区别是什么?在什么场景下用什么范数?l1 在 0 处不可导,怎么处理? 62 | 63 | randomforest,GBDT 64 | 65 | rf, gbdt, xgboost 的区别。 66 | 67 | softmax 公式 68 | 69 | 为什么要做数据归一化? 70 | 71 | 主要问最优化方面的知识,梯度下降法的原理以及各个变种(批量梯度下降,随机梯度下降法,mini 梯度下降法),以及这几个方法会不会有局部最优问题,牛顿法原理和适用场景,有什么缺点,如何改进(拟牛顿法) 72 | 73 | 什么情况下一定会发生过拟合? 74 | 75 | 什么是贝叶斯估计 76 | 77 | 介绍 LR、RF、GBDT ,分析它们的优缺点,是否写过它们的分布式代码 78 | 79 | 介绍 SVD、SVD++ 80 | 81 | 会哪些机器学习算法 82 | 83 | 信息熵公式 84 | 85 | 假设面试官什么都不懂,详细解释 CNN 的原理; 86 | 87 | 决策树原理 88 | 89 | 决策树处理连续值的方法。 90 | 91 | 决策树如何防止过拟合 92 | 93 | 决策树过拟合哪些方法,前后剪枝 94 | 95 | 分类模型可以做回归分析吗?反过来可以吗? 96 | 97 | 分类模型和回归模型的区别 98 | 99 | 判别模型,生成模型 100 | 101 | 各个模型的 Loss function,牛顿学习法、SGD 如何训练。 102 | 103 | 因为面我的总监是做 nlp 的, 所以讲了很多 rnn、lstm、还有 HMM 的东西。不算很熟,但是接触过,以前稍微看过一些相关论文,所以还是勉强能聊的。 104 | 105 | 在平面内有坐标已知的若干个点 P0...Pn,再给出一个点 P,找到离 P 点最近的点。 106 | 107 | 在模型的训练迭代中,怎么评估效果。 108 | 109 | 如何减少参数(权值共享、VGG 的感受野、GoogLeNet 的 inception) 110 | 111 | 如何防止过拟合(增加数据,减少模型复杂度 -> 正则化) 112 | 113 | 对于同分布的弱分类器,求分类器均值化之后的分布的均值跟方差。 114 | 115 | 对于机器学习你都学了哪些?讲一个印象深的。 116 | 117 | 常见分类模型( svm,决策树,贝叶斯等)的优缺点,适用场景以及如何选型 118 | 119 | 归一化方式 120 | 121 | 手写 k-means 的伪代码。 122 | 123 | 手写 k-means 的伪代码和代码。(Code) 124 | 125 | 手撕 svm 硬软间隔对偶的推导 126 | 127 | 手撕逻辑回归(损失函数及更新方式推导) 128 | 129 | 接着写一下信息增益的公式。 130 | 131 | 推一下 bp 算法等等 132 | 133 | 改变随机森林的训练样本数据量,是否会影响到随机森林学习到的模型的复杂度。 134 | 135 | 数据挖掘各种算法,以及各种场景下的解决方案 136 | 137 | 是否了解 mutual infomation、chi-square、LR 前后向、树模型等特征选择方式。 138 | 139 | 是否了解线性加权、bagging、boosting、cascade 等模型融合方式 140 | 141 | 有哪些常见的分类器,简单介绍下原理 142 | 143 | 机器学习与深度学习的区别 144 | 145 | 机器学习基础(线性回归与逻辑回归区别等) 146 | 147 | 机器学习:几种树模型的原理和对比,朴素贝叶斯分类器原理以及公式,出现估计概率值为 0 怎么处理(拉普拉斯平滑),缺点; k-means 聚类的原理以及缺点及对应的改进; 148 | 149 | 梯度下降牛顿拟牛顿原理 150 | 151 | 梯度下降的优缺点。 152 | 153 | 深度学习和普通机器学习有什么不同? 154 | 155 | 深度学习有很大部分是 CNN,给他用通俗的语言解释下卷积的概念,解释下 CNN 中的优势及原因 156 | 157 | 激活函数的选择(sigmoid->ReLu->LReLU->PReLU) 158 | 159 | 然后 20 分钟内手写 k-means 160 | 161 | 牛顿法、随机梯度下降算法和直接梯度下降算法的区别? 162 | 163 | 牛顿法推导 164 | 165 | 特征选择的方法 166 | 167 | 由数据引申到数据不平衡怎么处理(10W 正例,1W 负例,牛客上有原题) 168 | 169 | 聊聊 SVM,这段说了好久,从基本的线性可分到不可分,相关升维,各种核函数,每个是如何实现升。以及出现了 XX 问题,分析是样本的原因还是其他原因。针对不同情况,采取什么解决方案较好。 170 | 171 | 自己实现过什么机器学习算法 172 | 173 | 解决过拟合的方法有哪些? 174 | 175 | 解释 word2vec 的原理以及哈夫曼树的改进。 176 | 177 | 解释一下过拟合和欠拟合,有哪些方法防止过拟合。 178 | 179 | 让我一步一步地构造决策树,怎么计算信息熵、信息增益、然后 C4.5 ID3 CART 的区别,还说了一下优缺点 180 | 181 | 详细讨论了样本采样和 bagging 的问题 182 | 183 | 说一下 Adaboost,权值更新公式。当弱分类器是 LR 时,每个样本的的权重是 w1,w2..., 写出最终的决策公式。 184 | 185 | 说了一下 bagging 跟 boosting。 186 | 187 | 说明 L1L2 正则的效果与为什么形成这种情况(L1 正则稀疏,L2 正则平滑,之后说明就是画图说明正则化) 188 | 189 | 过拟合的解决方法; 190 | 191 | 选个你熟悉的机器学习方法 ,着重介绍一下产生原因,推导公式,背后统计意义什么等等 192 | 193 | 逻辑回归估计参数时的目标函数,如果加上一个先验的服从高斯分布的假设,会是什么样。 194 | 195 | 逻辑回归估计参数时的目标函数 196 | 197 | 逻辑回归的值表示概率吗? 198 | 199 | 问了会不会 RNN,LSTM。 200 | 201 | 问了很多数据挖掘的基础知识,包括 SVM, 逻辑回归、EM、K-means 等,然后给我很多场景问我遇到这些情况我要怎么来处理数据,怎么进行建模等等,问得很细 202 | 203 | 随机梯度下降,标准梯度 204 | 205 | 随机森林和 GBDT 的区别?LR 的参数怎么求解?有没有最优解? 206 | 207 | 随机森林(Bagging+CART) 208 | -------------------------------------------------------------------------------- /docs/interview/os-basic.md: -------------------------------------------------------------------------------- 1 | # 计算机基础 2 | 3 | Linux 下的一些指令,\$$(进程 id),$?(上一条命令退出时状态),怎么查看进程,按照内存大小,CPU 占用排序等等。 4 | 5 | Linux 的命令:pwd、ln、which 6 | 7 | Linux 线程通信 8 | 9 | hash 表是怎么实现的?有冲突的时候怎么处理? 10 | 11 | linux 文件词频统计 12 | 13 | 介绍一下 hash,怎么解决冲突。 14 | 15 | 你说一下 hashmap 的原理 16 | 17 | 内存泄露出现原因。 18 | 19 | 悲观锁乐观锁 20 | 21 | 把两个表按 id 合并怎么搞? 22 | 23 | 数据库 transaction 24 | 25 | 浅拷贝深拷贝 26 | 27 | 第二题是两题 sql ,涉及 join,group by,max,min,sum,count 等操作的结合,以及同个题目多种写法。 28 | 29 | 线程安全是什么意思?新线程什么情况下会影响原有线程? 30 | 31 | 网络基础 TCP 三次握手 32 | 33 | 计算机网络:描述他发一句 hello world 到我这边显示,中间经历了哪些过程,我从应用层开始一层层往下分析答的,主要说 http 和 tcp,网络层和链路层有些忘,但主要的几个协议和子网划分什么的也答了,面试官比较满意 34 | 35 | 词向量的推导,混合高斯,linux 硬链接,三次握手,linux inode 36 | 37 | 进程线程的区别 38 | -------------------------------------------------------------------------------- /docs/interview/os.md: -------------------------------------------------------------------------------- 1 | # 操作系统题目 2 | 3 | ## 请分别简单说一说进程和线程和协程以及它们的区别 4 | 5 | ## 进程的通信方式有哪些? 6 | 7 | ## 线程同步的方式有哪些? 8 | 9 | ## 什么是缓冲区溢出?有什么危害?其原因是什么? 10 | 11 | ## 什么是死锁?死锁产生的条件? 12 | 13 | ## 进程有哪几种状态? 14 | 15 | ## 分页和分段有什么区别? 16 | 17 | ## 操作系统中进程调度策略有哪几种? 18 | 19 | ## 说一说进程同步有哪几种机制。 20 | 21 | ## 说一说死锁的处理基本策略和常用方法。 22 | -------------------------------------------------------------------------------- /docs/interview/other.md: -------------------------------------------------------------------------------- 1 | # 一些面试 2 | 3 | 原文: https://mp.weixin.qq.com/s/qCvBGrTidijY2OtsCNAbNQ 4 | 5 | 我去年 12 月份从上一家公司离职,一直到今年 3 月份,基本上都在面试中度过来的。 6 | 7 | 先交代下背景:坐标上海,做技术开发,我本人求职的职位是 linux 服务器开发,最倾向的职位是服务器开发主程或技术经理。我本人也是上几家公司的面试官,因为接下来几年面临着成家养小孩,技术上也到了瓶颈期,虽然拿了不少 offer,但是想综合比对一下再做决定。于是投递了很多家公司。 8 | 9 | 我先后去了如下一些公司:腾讯、百度、阿里的蚂蚁金服和国际支付宝部门(两个部门,两次面试)、饿了么、爱奇艺、360、携程网、京东、华为、bilibili、上海黄金交易所、东方财富网、zilliz、掌门集团(做无线万能钥匙的那一家)、喜马拉雅听书、UCLOUD、峰果网络、华尔街见闻、万得财经、汇正财经、逗屋网络、朝阳永续,还有数家小规模的公司或创业公司吧。 10 | 11 | 为了避免引起不必要的纠纷,下面我就不说具体的公司名称了。技术面试的细节我尽量写的详细一点,希望对大家有参考价值,技术面试大致有三种情形: 12 | 13 | 一、以百度、爱奇艺等为代表的,以数据结构和算法为主,首先是简单地了解下你之前的工作经历和项目经验,然后就是算法和数据结构题目,具体涉及到以下内容: 14 | 15 | 1. 快速排序(包括算法步骤、平均算法复杂度、最好和最坏的情形),有人说校招要把算法写出来,我是社招,所以描述一下算法过程即可。 16 | 17 | 2) 写二分查找算法,这个尽管是社招,但是一般也不难,所以要求面试者写出来。但是很多公司,比如不会直接让你写算法,而是结合一个具体场景来提问,然后让你自己联想到二分查找,比如求一个数的平方根。 18 | 19 | 3. 链表,常见的面试题有写一个链表中删除一个节点的算法、单链表倒转、两个链表找相交的部分,这个一般必须得完全无误的情况下写出来; 20 | 21 | 4) 自己实现一些基础的函数,例如 strcpy / memcpy / memmov / atoi,同样的道理,这些必须完全无误且高效地写出来,比如你的实现中有动态分配堆内存,那么这道题目就算答错。 22 | 23 | 第 3 点和第 4 点的关键点一般在于考察你的代码风格、对边界条件的处理,比如判断指针是否为空,千万不要故意不考虑这种情形,即使你知道也不行,只要你不写,一般面试官就认为你的思路不周详,容错率低;再比如,单链表的倒转,最后的返回值肯定是倒转后的链表头结点,这样才能引用一个链表,这些都是面试官想考虑的重点。 24 | 25 | 5. 哈希表,对哈希表的细节要求很高,比如哈希表的冲突检测、哈希函数常用实现、算法复杂度;比如百度二面就让我写一个哈希表插入元素算法,元素类型是任意类型。 26 | 27 | 6) AVL 树和 B 树的概念、细节,比如会问 mysql 数据库的索引的实现原理,基本上就等于问你 B 树了。 28 | 29 | 7. 红黑树,这个基本上必问的一个数据结构,包括红黑树的概念、平均算法复杂度、最好最坏情况下的算法复杂度、、左右旋转、颜色变换。面试官常见的算法套路有:你熟悉 C++的 stl 吗?你说熟悉,ok,stl 的 map 用过吧?用过,ok,那 map 是如何实现的?红黑树,ok,那什么是红黑树?这样提问,红黑树就开始了。Java 的也类似。 30 | 31 | 二、以饿了么、bilibli、喜马拉雅、360、携程等为代表的,兼顾算法数据结构和其他开发技术,算法和数据结构部分上文提过了,下面提一下其他技术,大致包括以下东西: 32 | 33 | 1. 以 C++语言为例(不是 C++开发的朋友可以跳过这一点),第一类是基础的 C++问题,常见的有 C++的继承体系中 virtual 关键字的作用(如继承关系中析构函数为什么要申明成 virtual 函数,如果不申明为 virtual 会有什么影响)、在涉及到父子类时构造与析构函数的执行顺序、多重继承时类的成员列表在地址空间的排列;static 关键字的作用,static_cast / reinterpret_cast / dynamic_cast 等几个转换符的使用场景;问的最多的就是虚表的布局,尤其是菱形继承(B 和 C 继承 A,D 继承 B 和 C)时每个对象的空间结构分布,比如问 D 有几份虚表,D 中 B 和 C 的成员空间排布。 34 | 35 | 另外,如果你应聘的职位使用 C++开发,很多公司会问你一些 C++11 的东西(或者问 boost 库,基本上都一样),这个你用过就用过,没有用过就说没用过不要装 X,常见的 C++11 需要掌握的一些技术库我也列举一下吧(JAVA 及其他语言的读者可以忽略): 36 | 37 | auto 关键字、for-each 循环、右值及移动构造函数 + std::forward + std::move + stl 容器新增的 emplace_back()方法、std::thread 库、std::chrono 库、智能指针系列 38 | 39 | (std::shared_ptr/std::unique_ptr/std::weak_ptr)(智能指针的实现原理一定要知道,最好是自己实现过)、线程库 std::thread+线程同步技术库 std::mutex/std::condition_variable/std::lock_guard 等、lamda 表达式(JAVA 中现在也常常考察 lamda 表达式的作用)、std::bind/std::function 库、其他的就是一些关键字的用法(override、final、delete),还有就是一些细节如可以像 JAVA 一样在类成员变量定义处给出初始化值。 40 | 41 | 2. 网络通信问题,比如协议栈的层级关系,三次握手和四次挥手的【细节】,注意我说的是细节,比如 CLOSE_WAIT 和 TIME_WAIT 状态(bilibili 问了这样一个问题,你可以感受一下:A 与 B 建立了正常连接后,从未相互发过数据,这个时候 B 突然机器重启,问 A 此时的 tcp 状态处于什么状态?如何消除服务器程序中的这个状态? 42 | 43 | 万得问过流量拥塞和控制机制、腾讯问过 tcp 和 ip 包头常见有哪些字段),东方财富网问了阻塞和非阻塞 socket 在 send、recv 函数上的行为表现,异步 connect 函数的写法,select 函数的用法,epoll 与 select 的区别,基本上只要问到 epoll,必问 epoll 的水平模式和边缘模式的区别;一些 socket 选项的用法,nagle / keepalive / linger 等选项的区别;tcp / udp 的区别和适用场景; 44 | 45 | 通信协议如何设计避免粘包;http 协议的 get 和 post 方法的区别(问的比较深的会让你画出 http 协议的格式,参照|阅读原文|中关于 http 协议格式的讲解); 46 | 47 | 总之,网络通信问题能搞的多清楚就可以搞的多清楚,最起码把 tcp 应用层的各种 socket API 的用法细节搞清楚。 48 | 49 | 3. 操作系统原理性的东西 50 | 51 | 比如上海黄金交易所、喜马拉雅听书问了 linux 下 elf 文件的节结构,映射到进程地址空间后,分别对应哪些段,相关的问题还有,全局变量、静态存储在进程地址空间的哪里;堆和栈的区别,栈的结构,栈的细节一点要搞的特别清楚,因为一些对技术要求比较高的公司会问的比较深入,例如京东的一面是让我先写一个从 1 加到 100 的求和函数,然后让我写出这个函数的汇编代码(JAVA 开发的同学可能会让你试着去写一点 JVM 的指令),如果你对栈的结构(如函数参数入栈顺序、函数局部变量在栈中的布局、栈帧指针和栈顶指针位置)不熟悉的话,这题目就无法答对了;栈的问题,可能会以常见的函数调用方式来提问,常见的函数调用有如下**cdecl/**stdcall/**thiscall/**fastcall 的区别,比如像 printf 这样具有不定参数的函数为什么不能使用\_\_stdcall; 52 | 53 | 饿了么二面问了操作系统的保护模式实模式,中断向量表,linux 下的 CAS。 54 | 55 | 还有就是进程和线程的联系与区别,问的最多的就是线程之间的一些同步技术,如互斥体、信号量、条件变量等(Windows 上还有事件、临界区等),这些东西你必须熟悉到具体的 API 函数使用的层面上来,从另外一个角度来说,这是咱们实际工作中编码最常用的东西,如果你连这个都不能熟练使用,那么你肯定不是一个合格的开发者;这类问题还可以引申为什么是死锁、如何避免死锁;进程之间通信的常用技术也需要掌握,常用的通信方式(linux 下)有共享内存、匿名和具名管道、socket、消息队列等等,管道和 socket 是两个必须深入掌握的考察点(与上面网络通信有点重复); 56 | 57 | linux 系统下可能还会问什么是 daemon 进程,如何产生 daemo 进程,什么是僵尸进程,僵尸进程如何产生和消除(bilibili 问过)。 58 | 59 | 4. 第四类就是一个使用过的开源技术,比如代表 nosql 技术的的 redis;网络库 libevent 等等;数据库如 mysql 的一些东西。这个一般不做硬性要求,但是这里必须强调的就是 redis,熟练使用 redis 甚至研究过 redis 源码,现在一般是对做后台开发的技术硬性要求或者说不可缺少的部分, 60 | 61 | 基于 redis 的面试题既可以聊算法与数据结构,也可以聊网络框架等等一类东西。我面试的公司中基本上百分之九十以上都问到了 redis,只是深浅不一而已,比如喜马拉雅问了 redis 的数据存储结构、rehash;bilibili 问了 redis 的事务与集群。 62 | 63 | 关于 JAVA 的,阿里的蚂蚁金服问了如下一些问题(我尽量列举下我能想起来的):java.lang.Object 有哪些常用的方法,改写一个类的 toString 方法需要注意哪些问题,hashCode 方法如使用,==与 equals 的区别,线程创建的几种方法,各自的使用场景,hashmap、hashtable 的数据结构实现,java 线程同步有哪些方法、各自的优缺点,jvm 的结构,java 代码优化等等。 64 | 65 | 三、只问一些做过的业务或者项目经验,这类公司他们招人其实对技术要求不高(资深及主管级开发除外),只要你过往的项目与当前应聘职位匹配,可以过来直接上手干活就可以了,当然薪资也就不会给很多。比如游戏公司会关心你是否有某某类型的游戏开发经验、股票类公司会关心你是否有过证券或者交易系统的开发经验等。我的经验就是这类公司,能去的话可以去,不能去的话就当积累面试经验。 66 | 67 | 业务开发哪里都能找到,真正的重视技术的公司,应该是广大做技术尤其是初中级开发的朋友应该值得关心的事情。 68 | 69 | 四、不靠谱型公司 70 | 71 | 我遇到的大致有四类: 72 | 73 | 第一类:装 X 忽悠型 74 | 75 | 面试过程冗长繁琐,比如号称每一百份简历中才发一个面试邀请,号称每一个面试者发一个 offer,号称硅谷风格,我面试的有一家公司就是这个样子,先是一轮长长的电话面试,然后是五轮技术面试,前三轮是刷 leetcode 上原题,然后后几轮面试,面试官从基本的操作系统的中断、GDT、LDT、分表分页机制问到上层高并发海量数据的架构,说的不好听,真是从外太空聊到内子宫,最后问具体职位做什么时,要么遮遮掩掩要么原型毕露;或者讨论薪资时,要么面露难色要么各种画饼,但是实际就给不了多少薪水的。 76 | 77 | 第二类:佛性公司 78 | 79 | 面试下来,全程面试官面带微笑,问你的问题你回答的面试官也很赞同,但最后你就没通过,我猜测要么公司不是很缺人,想观望一下是否有合适的人才;要么招聘信息上开的薪资给不到。 80 | 81 | 第三类:老奶奶裹脚布型公司 82 | 83 | 其特点是面试周期长,往往第一轮面试通知你过了,让你回去等上十天半个月后,给你打电话通知你来第二轮面试,面试要求穿正装,带好各种证件,面试前必须先查验你的身份证、学历证学位证,甚至是四六级考试证等等,麻烦至极,即使你一路过关斩将过了终面,薪资也给不了多少。 84 | 85 | 大家都是要养家糊口的,都是忙着找工作,谁有时间和你耗上十天半个月呢? 86 | 87 | 第四类:不尊重人类型公司 88 | 89 | 我这里说的不尊重人,不是指的是面试过程中对你人身攻击,而是不根据你的工作年限和经验随意安排面试官,举个例子,比如你工作十年,你去面试一个技术总监的职位,对方公司安排一个工作不满两年的部门职员作为面试官,这个面试官如果是走过场可以理解,但是非要和你纠结一个如二进制位移、现代编译器要不要在子类析构函数前加 virtual 关键字这些技术细节就没必要了。 90 | 91 | 还有一类就是故意问一些刁钻的问题,或者全场都心不在焉、玩手机、漫不经心的面试官,比如问你 tcp 协议头有多少个字段,每个字段是干啥的。遇到这一类面试官我的经验就是要么婉拒,要么直接怼回去。 92 | 93 | 下面再说下面试中需要注意的一些细节: 94 | 95 | 第一,如果你的工作年限不长,尤其是渴望在技术方面有一定的造诣,那么你首先考虑的应该是新的单位是否能有利于你技术上的成长,而不是两份同样的工作,薪资上的上下相差的三五千、五六千。如果想转行的同学(比如从客户端转服务器,从 C++转 JAVA),不要因为薪资突然变低而拒绝这种阵痛,要把目光放长远一点。 96 | 97 | 第二,一些公司虽然招聘信息上写了最多能给到多少多少,但实际即使你全程面试下来都很完美,可能最终你也会因为薪资要求达不到不被录取。 98 | 99 | 第三,一些根本不想去的公司,如果你有时间的话,去面试积累下经验也不是什么坏事。 100 | 101 | 第四,面试的时候,同时也是你在考察面试官,一般面试官问你的问题,你能回答出来的在百分之八十左右,这样的公司可以考虑去入职,你进去的话可能才会在技术上有一些提升。如果你全场秒杀面试官的题目,你的技术天花板可能也在那里。 102 | 103 | 第五,面试的时候聊清楚你将来的职位内容,避免进去客串一些不想做的工作。 104 | 105 | 第六,遇到不会的面试题,不要直接就否定自己,可以尝试着去和面试官沟通一下,或者要求给点提示或者思路。 106 | 107 | 第七,不要轻视笔试中的一些数学智力题目,认真作答,试问算法不也是数学智力题吗? 108 | 109 | 第八,自信一点,每个人的经历和经验都是独一无二的,面试的时候,一些特定领域的问题,回答不出来也不要太在意。 110 | -------------------------------------------------------------------------------- /docs/interview/plan.md: -------------------------------------------------------------------------------- 1 | # Python 面试计划 2 | 3 | 如何面试 Python 后端工程师? - 回答作者: 罗伊 4 | https://zhihu.com/question/33398583/answer/59017861 5 | 6 | - 图解密码学 7 | - python 参考手册 8 | - 流畅的 python 9 | - python3 学习笔记 雨痕 10 | - MySQL 技术内幕 11 | - 高性能 MySQL 12 | - TCP/IP 详解 13 | - 计算机网络自顶向下 14 | - Linux 操作 15 | - 消息队列 rabbitmq 等 16 | - git 操作 17 | - redis 相关 18 | - web 安全 19 | 20 | ## Python 面试题 21 | 22 | http://www.itwendao.com/interview/python/ 23 | 24 | http://python.jobbole.com/85231/ 25 | http://blog.csdn.net/alvine008/article/details/39229057 26 | https://zhuanlan.zhihu.com/p/23526961 27 | -------------------------------------------------------------------------------- /docs/interview/programming.md: -------------------------------------------------------------------------------- 1 | # 编程题 2 | 3 | 1~n 这 n 个数现在去掉两个,如何找到去掉的两个数。 假设去掉的两个数是 a 和 b,那么通过求和,平方和可以知道 a+b 和 a^2+b^2,然后解方程就行了。 4 | 5 | char a[4] = {1, 2, 3, 4}; char \*b = a; b[0] = 100; 请问输出 a 的结果是什么? 6 | 7 | 一个 N\*M 的矩阵,从左上走到右下最小需要(N+M)步走完,问一共有多少种走法。 8 | 9 | 一个严格递增的数组,将前缀取一部分放在后面,在修改后的数组上找到最小的数。(剑指 Offer 原题) 10 | 11 | 一个大写字符串如 ABABB(len<1000),代表游客进游乐场的顺序及从哪个入口进入,要求每个入口 (不多于 26 个入口) 从第一个游客直到该入口的最后一个游客,检票员都不能离开,问最少检票人数 K。 12 | 13 | 一个字符数组中,每个字符都出现了 3 次,只有一个出现了 2 次,如果快速找出这个出现 2 次的? 14 | 15 | 一个字符矩阵,只可能是 R,G,B 三种字符。判断是否满足某个条件。这个条件是每种符号连成一个长方体,三个长方体长宽一致, 且横着平行 16 | 17 | 一个广告,它有一个 id,一个上线时间,一个下线时间,现在我有很多这样的广告,如果现在给你一个时间,告诉我有多少个广告在这个时间在线的 18 | 19 | 一个数据流中,如何采样得到 100 个数,保证采样得到的 100 个数是随机的? 20 | 21 | 一个数组中某个数出现次数大于一半,最快找出该数。 22 | 23 | 一个数组只有一个数字是单独出现,其他出现了三次。 24 | 25 | 一个数组存着 1-1000 连续的整数,假如我取出其中一个数,怎么能快速找到(用类二分查找) 26 | 27 | 一个数组存着负数与正数,将正数放在前面,负数放在后面 28 | 29 | 一个运算序列只有 +、\*、数字,计算运算序列的结果。(Code) 30 | 31 | 一堆 ip 地址区间,不会重叠,来一个新的 ip 地址,看它在不在,在哪个区间。 32 | 33 | 一维数组,swap 其中的几对数字(每个数字只属于一次 swap 操作),实现查找(与二分有关); 34 | 35 | 一维有序数组,经过循环位移后,最小的数出现在数列中间,如果原数组严格递增或递减,如何找这个最小数; 36 | 37 | 一维有序数组,经过循环位移后,最小的数出现在数列中间,如果原数组严格递增,如何找这个最小数。 38 | 39 | 一维有序数组,经过循环位移后,最小的数出现在数列中间,如果原数组非严格递增或递减,如何找这个最小数; 40 | 41 | 一维有序数组,经过循环位移后,最小的数出现在数列中间,数组可能是递增、递减、递减后递增、递增后递减四种情况,递增递减都是非严格的,如果有转折点,返回转折点的值,否则返回 - 1; 42 | 43 | 一道题:给定一个整数数组,里面有两个数相同,其他数都是不同的,如何尽快找到这两个数(答,用 hash 表,O(N),有更好的方法么?) 44 | 45 | 一题是多位数用链表存储( e.g. 123 用 1->2->3 存储),实现相加功能函数 46 | 47 | 不创建临时产量换两个数 48 | 49 | 两个同样大小有序数组求中位数,写代码 50 | 51 | 两个大整数相乘。(Code) 52 | 53 | 两棵树相加——对应位置两棵树都有值则相加,对应位置只有一棵树有值则取该值; 54 | 55 | 中序遍历二叉树,利用 O(1) 空间统计遍历的每个节点的层次。(Bug Free Code) 56 | 57 | 中缀表达式转逆波兰表达式,逆波兰表达式求值; 58 | 59 | 为分析用户行为,系统常需存储用户的一些 query ,但因 query 非常多,故系统不能全存,设系统每天只存 m 个 query ,现设计一个算法,对用户请求的 query 进行随机选择 m 个,请给一个方案,使得每个 query 被抽中的概率相等,并分析之,注意:不到最后一刻,并不知用户的总请求量。 60 | 61 | 二分查找 62 | 63 | 二分查找,查找 target,在区间 [start,end] 之间,如果有重复元素,返回最后一个下标,其他情况返回 - 1 64 | 65 | 二叉树前序递归遍历算法(手写代码) 66 | 67 | 二叉树的前中后遍历 68 | 69 | 二叉树的文件存储,也就是序列化。 70 | 71 | 二叉树遍历,描述下层序遍历。 72 | 73 | 二维数组,每行递增,每列递增,任意交换其中的两数,发现并恢复。 74 | 75 | 二维数组,每行递增,每列递增,实现查找。 76 | 77 | 二维数组,每行递增,每列递增,求第 k 大的数。 78 | 79 | 什么样的数据结构可以满足多次插入删除,取最小数,给出时间复杂度。 80 | 81 | 介绍二叉树前序遍历非递归遍历算法(手写代码) 82 | 83 | 介绍大顶堆和小顶堆 84 | 85 | 从一组数中找出和为 sum 的三个数(leetcode 原题,先 sort 再找,并且剪枝),写代码,四个数呢?说思路。 86 | 87 | 假设有个 M\*N 的方格,从最左下方开始往最右上方走,每次只能往右或者往上,问有多少种走法,假设中间有若干个格子不能走,又有多少种走法。 88 | 89 | 允许两个元素交换一次的最大连续子序列和。 90 | 91 | 全排列 92 | 93 | 全排列。 94 | 95 | 冒泡排序 (手写代码) 96 | 97 | 写 find 函数,在目标串中匹配模式串(要考虑中文字符的情况) 98 | 99 | 写一个二叉树的非递归的后续遍历 100 | 101 | 写一个简单的正则匹配表达式 (将文本中的 123.4 匹配出来) 102 | 103 | 写个动态规划,最长公共子序列 104 | 105 | 判断一个字符串是否为另外一个字符串旋转之后的字符串 106 | 107 | 前 k 大的数 108 | 109 | 单链表的翻转 110 | 111 | 去掉连续的重复数字,输出新数组,例如:1,2,2,2,1,3,5——> 3,5。 112 | 113 | 去除字符串 S1 中的字符使得最终的字符串 S2 不包含’ab’和’c’。(Code) 114 | 115 | 合法括号匹配 116 | 117 | 在一个字符串中,找出最长的无重复字符的字串 118 | 119 | 在二叉树结点结构中加一个指针域,使其指向层次遍历的下一个结点,特别地,每一层的最后一个结点为空。(Code) 120 | 121 | 堆排序 (手写代码) 122 | 123 | 堆是怎么调整的。 124 | 125 | 复杂链表的复制。 126 | 127 | 如果给出一个二叉搜索树的后续能不能建立(可以,因为只要将遍历结果排序就可以得到中序结果)。 128 | 129 | 字符串反转(手写代码) 130 | 131 | 字符串移位,给出字符串 abc##dfg##gh,实现将所有 #移至字符串串头。输出 ####abcdfggh。 132 | 133 | 字符串转整数 134 | 135 | 字符串,给一个 url,求中间的 site 136 | 137 | 字符串,给一个 url,求中间的 site。 138 | 139 | 定义满足 $n=x^a+y^b$($x,y,a,b$ 是非负整数)的 n 是神奇数。如 $4 = 2^0 + 3^1,17 = 2^3 + 3^2$。输入 l 和 r,请求出闭区间 $[l,r]$ 里,最长的一段不含有神奇数的连续区间长度。$x,y,l,r<=10^{18},x>=2,y>=2$,如 $3 5 10 22$,在 $[10,22]$ 区间内,$x=3,y=5$ 的条件下,区间内 [14] 是神奇数,所以最长的区间是 $[15,22]$ 长度为 $8$,如 $2,3,1,10$,在 $[1,10]$ 区间内,$x=2,y=3$ 的条件下,$2,3,4,5,7,9$ 都是神奇数,所以最长的区间只有长度 $1$。 140 | 141 | 实现栈,使得 添加、删除、max 操作的复杂度为 O(1)。 142 | 143 | 对于一个字符串,请设计一个算法,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成,你需要将这些部分逆序。给定一个原字符串 A 和它的长度,请返回逆序后的字符串。 144 | 145 | 对于一个字符串,请设计一个算法,将字符串的长度为 len 的前缀平移到字符串的最后。 146 | 147 | 寻找字符串中第一个只出现一次的字符; 148 | 149 | 将字符串连续重复出现的字符删到只剩一个,这个可以用双指针,时间复杂度 n,空间复杂度 1。 150 | 151 | 常用排序算法的时间和空间复杂度 152 | 153 | 平衡二叉树是什么 154 | 155 | 归并排序 (手写代码) 156 | 157 | 快速排序 (手写代码) 158 | 159 | 快速排序 + 二分查找 160 | 161 | 手写快排 (easy) 162 | 163 | 打印数组的组合数。 164 | 165 | 打印螺旋数组; 166 | 167 | 把一个 bst 转化成一个双向链表。 168 | 169 | 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。例如 AbcDeFGhi ->bceiADFG 170 | 171 | 排序二叉树转双向链表。(Code) 172 | 173 | 描述 Dijkstra 最短路径算法 174 | 175 | 插入排序 (手写代码) 176 | 177 | 数列中找第 k 大的数字(与快排或堆排序有关) 178 | 179 | 数据解压缩,3(a4(ab)) -> aababababaababababaabababab; 180 | 181 | 数组有只有一个数出现一次,其他数都出现三次,找出那个数。 182 | 183 | 旋转数组 184 | 185 | 最少时间复杂度求数组中第 k 大的数。(Code) 186 | 187 | 最短路径代码。 188 | 189 | 最长公共子串(动态规划有关); 190 | 191 | 最长公共子序列 192 | 193 | 有一堆无向好友列表 1-2, 3-4, 2-3 之类的,问能不能把这些用户划分两组,组内都不互为好友。 194 | 195 | 有序数组寻找和为某数的一对数字; 196 | 197 | 正数数组,找三个数使积最小,问有多少种选择。 198 | 199 | 母鸡、公鸡和小鸡问题:公鸡五块一只,母鸡三块一只,小鸡一块三只,用 100 元买 100 只鸡的所有方法。 200 | 201 | 求 double 类型的二进制 1 的个数。 202 | 203 | 求二叉树最近公共祖先 (leetcode 原题) 204 | 205 | 求连续子数组最大乘积,还让考虑边界问题(最后问了:连乘有可能导致溢出,存不下了) 206 | 207 | 用一个队列,将每个二叉树的 root 先放入队列。 208 | 209 | 用数组实现队列,各操作的复杂度分析。 210 | 211 | 用速度不同的指针可以判断链表中是否有环,问两速度满足怎样的关系可以保证发现环。 212 | 213 | 直接插入排序写代码 214 | 215 | 看段代码,问输出是啥。(就是段求二进制中 1 的个数) 216 | 217 | 矩阵求最长连续递增的路径长度 218 | 219 | 矩阵求最长连续递增的路径长度。 220 | 221 | 第一题是链表倒数第 k 节点;第二题是二叉树打印路径,第三题是矩阵中将 0 元素所在行列全置 0 的最优空间解法 222 | 223 | 第二轮是写出一个算法输出二叉树的 s 序列,何为 s 序列,比如现在有个二叉树 1-2,3-4,5 6,7 这是一颗完全二叉树, S 序列输出就是按照 1237654 这个顺序输出,用两个栈就能实现比较简单。 224 | 225 | 算法题,也只记得一个了:存在一个数组,大小 98,里面的元素均为在 [1,100],且无重复, 不申请额外空间的情况下,在时间复杂度为 O(N) 情况下,找出缺失的两个元素值。 226 | 227 | 给一个 n\*n 的矩阵,矩阵中满足每行每列都是递增的,要查找矩阵是否存在某个数.(leetcode 原题) 228 | 229 | 给一个数组,只有一个元素出现了一次,其他都出现了两次,找出出现一次的数。 230 | 231 | 给一个数组,数组种存在一种数,它的左边都比它小,右边都比它大,找出所有这些数的位置。 232 | 233 | 给一个股票,n 天的价格,只能两次买入卖出,而且只能只能先卖再买,问最多赚多少钱? 234 | 235 | 给一个股票,n 天的价格,只能进行一次买入和卖出,问最多赚多少钱? 236 | 237 | 给一个股票,n 天的价格,可以买入卖出 k 次,而且只能只能先卖再买,问最多赚多少钱? 238 | 239 | 给一个股票,n 天的价格,可以无限次买入卖出,问最多赚多少钱? 240 | 241 | 给了一个链表,第 1 个结点标号为 1,把链表中标号在 M 到 N 区间的部分反转。 242 | 243 | 给你一个无重复的数组输出全排列。 244 | 245 | 给你一颗二叉树按层输出每一层输出后都换行 246 | 247 | 给出一个二维矩阵,从(0,0)出发走到右下角,只能向右或向下走,找到一条路径,是这条路径上的总和最大。 248 | 249 | 给出一段代码问代码作用(二进制数据 1 的个数) 250 | 251 | 给出一颗二叉树,两个叶节点,找到这两个叶节点互连通的一条最短路径。 252 | 253 | 给定一个数组,只有一个元素出现了一次,其他都出现了 3 次,找出出现一次的数。 254 | 255 | 给定一个数组,有两个元素出现了一次,其他都出现了两次,找出两个出现一次的数。 256 | 257 | 给定一个正整数向量,判断这个向量是否存在一个片段,使得反转这个片段后能够使该向量升序排列。如:[1, 2, 4, 3],就可以通过反转 [4, 3] 使得向量变为[1, 2, 3, 4]。 258 | 259 | 给定二叉树的先序跟后序遍历,能不能将二叉树重建(不能,因为先序:父节点 - 左节点 - 右节点,后序:左节点 - 右节点 - 父节点,两者的拓扑序列是一样的,所以无法建立) 260 | 261 | 给定循环递增数组 $a=[7,8,9,1,2,3]$ 和一个值 $k=2$, 返回该值得再数组中的下标。 262 | 263 | 给定数组 A[]={1,4,7,...} 和一个数 T。求和为 T 的 A 中的数最少要几个。A 中的数可复用。 我写了个递归,面试官不建议使用,因为效率不高。但没有反对。 264 | 265 | 给定数组,寻找 next big(堆排序有关); 266 | 267 | 给我一个数组[1,2,5,10,20,50,100],可以从里面取若干个数,要求得出和为 100 的不同取法有多少?(说出思路) 268 | 269 | 统计数列中的逆序对(归并排序有关); 270 | 271 | 编程题:实现求正整数平方根整数部分的函数(使用梯度下降) 272 | 273 | 翻转二叉树(Code) 274 | 275 | 若干个二叉树,如何按照层序遍历 276 | 277 | 设 rand ( s , t )返回 [s,t] 之间的随机小数,利用该函数在一个半径为 R 的圆内找随机 n 个点,并给出时间复杂度分析。 278 | 279 | 输入一个大长方形,长宽 ab,和一堆小长方形。选择两个小长方形,它能放进大长方形,而这个小长方形面积和最大 280 | 281 | 输入一个宿舍楼亮灯描述图,计算把所有灯关掉的最短时间,管理员起点在左下角,只能在最左或最右的楼梯往上一层,不可往下一层。每次往上一层花费 1 分钟,每次往左或往右一间宿舍花费 1 分钟,关灯不花时间。输入的高 <=15,宽 <=100。 282 | 283 | 如图: 284 | 285 | 0010 286 | 287 | 0100 从左下角开始,最短花费时间是先往右(关灯), 288 | 289 | 再往左,再上一层,再往右两次(关灯)完成:5 290 | 291 | 再如: 292 | 293 | 001000000010000010 最短时间是先往右四次(关灯),往右一次, 294 | 295 | 上一层,往左一次(关灯),往右一次, 296 | 297 | 上一层,往左三次(关灯),完成,12 298 | 299 | 输入两个正数数组,在两个数组分别选一个数,要求第一个数组选的数的下标小于第二个数组选的数的下标。使得两个数的乘积最大。 300 | 301 | 输出字符串中的所有重复子串,例如:abcab,输出: a, b, ab 302 | 303 | 连续子数组最大和 304 | 305 | 迷宫的深度搜索、广度搜索; 306 | 307 | 选取任意数据结构实现添加、删除、随机返回三个功能,分析复杂度。 308 | 309 | 选择排序 (手写代码) 310 | 311 | 链表上的快速排序。 312 | 313 | 长度为 N 的序列 Sequence=abc......Z,问有多少不同的二叉树形态中序遍历是这个。(Code) 314 | 315 | 问了一两个算法题,记不清了,只记得其中一个是:找数组中 2 个出现两次的数字,还有 3 个两次的数字 316 | 317 | 问了一个 1 的平方加到 100 的平方结果 318 | 319 | 非常经典的 0-1 背包问题 320 | 321 | http://www.sohu.com/a/166564812_690895 322 | -------------------------------------------------------------------------------- /docs/network.md: -------------------------------------------------------------------------------- 1 | # 计算机网络 2 | 3 | - [白话 TCP 运输控制(一) -- TCP 的拥塞控制](https://blog.csdn.net/zxm342698145/article/details/80998692) 4 | 5 | - [关于 TCP/IP,必知必会的十个问题](https://mp.weixin.qq.com/s/qn5fw8yHvjBou6Ps2Xo9Lw) 6 | - [HTTP/2 服务器推送(Server Push)教程](http://www.ruanyifeng.com/blog/2018/03/http2_server_push.html) 7 | - [跟着动画学习 TCP 三次握手和四次挥手](https://mp.weixin.qq.com/s/pSrKbVryn71kDVIXUtpXMA) 8 | - [十分钟了解 epoll 及多线程 IO 模型](https://mp.weixin.qq.com/s/7s7INzemjLFr7pd9Rx03Ww) 9 | - [也许,这样理解 HTTPS 更容易](http://showme.codes/2017-02-20/understand-https/) 10 | - 计算机网络基础知识总结 http://www.cnblogs.com/maybe2030/p/4781555.html 11 | - 计算机网络基础知识大总汇 https://www.jianshu.com/p/674fb7ec1e2c 12 | - 计算机网络基本概念 https://blog.csdn.net/daunxx/article/details/74089959 13 | 14 | ## TCP/IP 资源 15 | 16 | - TCP 没那么难吧 https://mp.weixin.qq.com/s/zRelB6uSz07YaCoJoggZZA 17 | 18 | - TCP 协议简介 http://www.ruanyifeng.com/blog/2017/06/tcp-protocol.html 19 | - 人人都应该懂点 TCP https://www.kawabangga.com/posts/1501 20 | - TCP/IP 详解 卷 1:协议 http://www.52im.net/topic-tcpipvol1.html 21 | - 《TCP/IP 详解》学习笔记 http://www.52im.net/forum.php?mod=collection&action=view&ctid=3 22 | - TCP 的那些事儿(上)https://coolshell.cn/articles/11564.html 23 | - TCP 的那些事儿(下)https://coolshell.cn/articles/11609.html 24 | - 技术往事:改变世界的 TCP/IP 协议 http://www.52im.net/thread-520-1-1.html 25 | - 就是要你懂 TCP | 最经典的 TCP 性能问题 http://jm.taobao.org/2017/06/01/20170601/ 26 | - https://jvns.ca/blog/2014/08/12/what-happens-if-you-write-a-tcp-stack-in-python/ 27 | 28 | ## 高性能网络编程 29 | 30 | - python 下的 socket 学习,包括 select, epoll,kqueue https://my.oschina.net/u/2299936/blog/615252 31 | - Select 模型简介 32 | http://python.jobbole.com/84058/ 33 | 34 | - python 下简单实现 select 和 epoll 的 socket 网络编程 http://xiaorui.cc/2014/11/13/python%E4%B8%8B%E7%AE%80%E5%8D%95%E5%AE%9E%E7%8E%B0select%E5%92%8Cepoll%E7%9A%84socket%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B/ 35 | 36 | - Epoll 模型简介 37 | http://python.jobbole.com/84077/ 38 | - 单台服务器并发 TCP 连接数到底可以有多少 http://www.52im.net/thread-561-1-1.html 39 | - 上一个 10 年,著名的 C10K 并发连接问题 http://www.52im.net/thread-566-1-1.html 40 | - 下一个 10 年,是时候考虑 C10M 并发问题了 http://www.52im.net/thread-568-1-1.html 41 | - 从 C10K 到 C10M 高性能网络应用的理论探索 http://www.52im.net/thread-578-1-1.html 42 | - 一文读懂高性能网络编程中的 I/O 模型 http://www.52im.net/thread-1935-1-1.html 43 | - 一文读懂高性能网络编程中的线程模型 http://www.52im.net/thread-1939-1-1.html 44 | - http://www.kegel.com/c10k.html 45 | 46 | ## HTTP 47 | 48 | - HTTP 协议漫谈 http://www.imooc.com/article/3798 49 | - http://shawnz.me/posts/b10175ff/ 50 | 51 | ## HTTPS 52 | 53 | - https://imququ.com/post/enable-tls-1-3.html 54 | - https://www.jianshu.com/p/67bcb140d804 55 | - https://tech.upyun.com/article/276/1.html 56 | - http://slikel.iteye.com/blog/1677640 57 | - http://www.cnblogs.com/guogangj/p/4118605.html 58 | - https://mp.weixin.qq.com/s/U0311_AiGkIEtyuO9Uh1Rw 59 | - https://blog.cloudflare.com/rfc-8446-aka-tls-1-3/ 60 | - https://juejin.im/entry/5976d147f265da6c2d2cad1c 61 | - http://www.cnblogs.com/ttltry-air/archive/2012/08/20/2647898.html 62 | - https://klionsec.github.io/2017/07/31/https-learn/#menu 63 | 64 | ## DNS 65 | 66 | - DNS 原理入门 http://www.ruanyifeng.com/blog/2016/06/dns.html 67 | 68 | ## 网络工具 69 | 70 | - https://mp.weixin.qq.com/s/GakaPR5a8c0eqxROcSwHVQ 71 | - 如何使用 charles 对 Android Https 进行抓包 https://www.jianshu.com/p/3bbf596c9ca6 72 | - 使用 Charles 进行 https 抓包 https://www.jianshu.com/p/a83b19a36a8b 73 | - 不需要第三方服务器的 NAT 穿透 https://blog.blahgeek.com/pypwnat.html 74 | 75 | - NAT 穿透原理浅浅说(一) 76 | https://cloud.tencent.com/developer/article/1005974 77 | - http://meilbn.com/2017/10/25/VPS-build-shadowsocks-and-bbr/ 78 | - 一分钟实现内网穿透(ngrok 服务器搭建) https://blog.csdn.net/zhangguo5/article/details/77848658 79 | - https://steemit.com/cn/@shanestark/ss-ssr 80 | - https://hackernoon.com/writing-a-reverse-proxy-in-just-one-line-with-go-c1edfa78c84b 81 | - http://www.netcan666.com/2016/09/28/ssh%E9%9A%A7%E9%81%93%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E5%AE%9E%E7%8E%B0%E5%86%85%E7%BD%91%E5%88%B0%E5%85%AC%E7%BD%91%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91/ 82 | - https://coxxs.me/303 83 | - https://www.loyalsoldier.me/fuck-the-gfw-with-my-own-shadowsocks-server/ 84 | - https://medium.com/@zoomyale/%E7%A7%91%E5%AD%A6%E4%B8%8A%E7%BD%91%E7%9A%84%E7%BB%88%E6%9E%81%E5%A7%BF%E5%8A%BF-%E5%9C%A8-vultr-vps-%E4%B8%8A%E6%90%AD%E5%BB%BA-shadowsocks-fd57c807d97e 85 | 86 | ## 问答 87 | 88 | - tcp 是流的一些思考--拆包和粘包 https://michaelyou.github.io/2015/03/13/tcp%E6%98%AF%E6%B5%81%E7%9A%84%E4%B8%80%E4%BA%9B%E6%80%9D%E8%80%83-%E6%8B%86%E5%8C%85%E5%92%8C%E7%B2%98%E5%8C%85/ 89 | - 怎么解决 TCP 网络传输“粘包”问题 https://www.zhihu.com/question/20210025 90 | - tcp 粘包分析 https://blog.csdn.net/zhangxinrun/article/details/6721495 91 | - 细说浏览器输入 URL 后发生了什么 https://segmentfault.com/a/1190000012092552 92 | - https://www.itcodemonkey.com/article/8293.html 93 | - https://www.textarea.com/ExpectoPatronum/shiyong-shadowsocks-kexue-shangwang-265/ 94 | -------------------------------------------------------------------------------- /docs/network/dns.md: -------------------------------------------------------------------------------- 1 | # DNS 2 | 3 | - DNS 原理入门 http://www.ruanyifeng.com/blog/2016/06/dns.html 4 | -------------------------------------------------------------------------------- /docs/network/index.md: -------------------------------------------------------------------------------- 1 | # 计算机网络 2 | 3 | ## IP 基础知识“全家桶”,45 张图一套带走 4 | 5 | - https://mp.weixin.qq.com/s/iERtDElT8ud54p63pS1-vw 6 | - https://github.com/moranzcw/Computer-Networking-A-Top-Down-Approach-NOTES 7 | -------------------------------------------------------------------------------- /docs/python/GitHub.md: -------------------------------------------------------------------------------- 1 | # GitHub Python 资源 2 | 3 | - [Python 100 天](https://github.com/jackfrued/Python-100-Days) 4 | 5 | - [『Python 工匠』是什么?](https://github.com/piglei/one-python-craftsman) 6 | 7 | - [Cpython Internals](https://github.com/zpoint/CPython-Internals) 8 | 9 | - [python 模拟登陆一些大型网站](https://github.com/Kr1s77/awesome-python-login-model) 10 | 11 | - [Interview-code-practice-python](https://github.com/leeguandong/Interview-code-practice-python) 12 | - [关于 python 的面试题](https://github.com/kenwoodjw/python_interview_question) 13 | 14 | * [有趣的 Python 爬虫和 Python 数据分析小项目](https://github.com/Alfred1984/interesting-python) 15 | * [30-seconds-of-python](https://github.com/30-seconds/30-seconds-of-python) 16 | 17 | * [What the f\*ck Python! 🐍](https://github.com/leisurelicht/wtfpython-cn) 18 | * https://github.com/mahmoud/awesome-python-applications 19 | * https://github.com/taizilongxu/interview_python 20 | 21 | ## 算法相关 22 | 23 | - https://github.com/PegasusWang/python_data_structures_and_algorithms 24 | - https://github.com/wangzheng0822/algo 25 | - https://github.com/TheAlgorithms/Python 26 | 27 | * https://github.com/keon/algorithms 28 | 29 | ## 运维 30 | 31 | - https://github.com/yorkoliu/pyauto 32 | -------------------------------------------------------------------------------- /docs/python/index.md: -------------------------------------------------------------------------------- 1 | # Python 2 | 3 | [Python 中文学习大本营](http://www.pythondoc.com/) 4 | 5 | [笨办法学 python](https://wizardforcel.gitbooks.io/lpthw/content/) 6 | 7 | ## 文章 8 | 9 | > 5 年 Python 功力,总结了 10 个开发技巧 10 | 11 | - https://mp.weixin.qq.com/s/Yaj8mU-rg928osVtJ37prg 12 | 13 | ### Python Web framework 14 | 15 | - [Django](https://github.com/django/django) 16 | 17 | > The Web framework for perfectionists with deadlines 18 | > [https://www.djangoproject.com/](https://www.djangoproject.com/) 19 | 20 | - [flask](https://github.com/pallets/flask) 21 | 22 | > A microframework based on Werkzeug, Jinja2 and good intentions [http://flask.pocoo.org/](http://flask.pocoo.org/) 23 | 24 | - [tornado](https://github.com/tornadoweb/tornado) 25 | 26 | > Tornado is a Python web framework and asynchronous 27 | > networking library, originally developed at FriendFeed. 28 | > [http://www.tornadoweb.org/](http://www.tornadoweb.org/) 29 | 30 | - [bottle](https://github.com/bottlepy/bottle) 31 | 32 | > bottle.py is a fast and simple micro-framework for python 33 | > web-applications. [http://bottlepy.org/](http://bottlepy.org/) 34 | 35 | - [falcon](https://github.com/falconry/falcon) 36 | 37 | > Falcon is a bare metal Python framework for building 38 | > high-performance HTTP APIs, app backends, and higher-level frameworks. 39 | > [https://falcon.readthedocs.io/en/stable/](https://falcon.readthedocs.io/en/stable/) 40 | 41 | - [sanic](https://github.com/channelcat/sanic) 42 | 43 | > Python 3.5+ web server that's written to go fast 44 | 45 | - [pyramid](https://github.com/Pylons/pyramid) 46 | 47 | > Pyramid web framework [https://trypyramid.com/](https://trypyramid.com/) 48 | 49 | ### Python DateTime 50 | 51 | - [Arrow](https://github.com/crsmithdev/arrow) 52 | 53 | > Better dates & times for Python [https://arrow.readthedocs.org](https://arrow.readthedocs.org) 54 | 55 | - [pendulum](https://github.com/sdispater/pendulum) 56 | 57 | > Python datetimes made easy [https://pendulum.eustace.io](https://pendulum.eustace.io) 58 | 59 | ### Python Network 60 | 61 | - [requests](https://github.com/kennethreitz/requests) 62 | 63 | > Python HTTP Requests for Humans™ [http://python-requests.org](http://python-requests.org) 64 | 65 | - [aiohttp](https://github.com/KeepSafe/aiohttp) 66 | 67 | > http client/server for asyncio (PEP-3156) [http://aiohttp.readthedocs.io](http://aiohttp.readthedocs.io) 68 | 69 | - [httpie](https://github.com/jkbrzt/httpie) 70 | 71 | > Modern command line HTTP client – user-friendly curl alternative with intuitive UI, JSON support, syntax highlighting, wget-like downloads, extensions, etc. 72 | > Follow [https://twitter.com/clihttp](https://twitter.com/clihttp) for tips and updates. 73 | > [https://httpie.org](https://httpie.org) 74 | 75 | ### Python Learning 76 | 77 | - [python-guide](https://github.com/kennethreitz/python-guide) 78 | 79 | > Python best practices guidebook, written for Humans. [http://docs.python-guide.org](http://docs.python-guide.org) 80 | 81 | - [intermediatePython](https://github.com/yasoob/intermediatePython) 82 | 83 | > [http://book.pythontips.com](http://book.pythontips.com) 84 | 85 | - [interpy-zh](https://github.com/eastlakeside/interpy-zh) 86 | 87 | > 《Python 进阶》(Intermediate Python 中文版) [https://eastlakeside.gitbooks.io/interpy-zh/content/](https://eastlakeside.gitbooks.io/interpy-zh/content/) 88 | 89 | - [StarterLearningPython](https://github.com/qiwsir/StarterLearningPython) 90 | 91 | > Learning Python: from Beginner to Master. [http://www.itdiffer.com](http://www.itdiffer.com) 92 | 93 | - [python3-cookbook](http://python3-cookbook.readthedocs.io/zh_CN/latest/) 94 | 95 | - [Algorithms](https://github.com/prakhar1989/Algorithms) 96 | 97 | > Data Structures and Algorithms in Python 98 | 99 | - [algorithms](https://github.com/nryoung/algorithms) 100 | 101 | > An educational library of algorithms in Python 102 | 103 | - [python-patterns](https://github.com/faif/python-patterns) 104 | 105 | > https://github.com/faif/python-patterns 106 | 107 | ### Others 108 | 109 | - [awesome-python](https://github.com/vinta/awesome-python) 110 | 111 | > A curated list of awesome Python frameworks, libraries, software and resources [http://awesome-python.com/](http://awesome-python.com/) 112 | 113 | - [ITArticles](https://github.com/qiwsir/ITArticles) 114 | 115 | - [Learning-SICP](https://github.com/DeathKing/Learning-SICP) 116 | > 《计算机程序的构造和解释》公开课中文化项目。[http://www.youku.com/playlist_show/id_18958522.html](http://www.youku.com/playlist_show/id_18958522.html) 117 | 118 | ## 程序员的书籍资源 119 | 120 | https://zhuanlan.zhihu.com/p/23857699 121 | 122 | https://facert.gitbooks.io/python-data-structure-cn/ 123 | http://interactivepython.org/runestone/static/pythonds/index.html 124 | 125 | 1.首先第一个肯定是毋庸置疑的 Planet Python 这是最出名的 python 博客其中之一,快去看看,我希望你能找到对你有用的东西,昨天它还更新了呢! 126 | http://planetpython.org/ 127 | 128 | 2.第二个博客是 lucumr,博主是 flask 的创始人(一个 python micro web framework) 129 | http://lucumr.pocoo.org/ 130 | 131 | 3.第三个博客是 love-python,我不知道我是怎么被它吸引的,但是我真得很喜欢这个博客,它有很多有用的知识和代码 132 | http://love-python.blogspot.com/ 133 | 134 | 4.第四个博客是 Doug Hellmann,博主是 PYMOTW(Python Module Of the Week)成员之一,博客里面包含了很多 python library 的知识。如果你是在寻找一些实用的 python 库的话,你可以在这里找找。 135 | http://doughellmann.com/ 136 | 137 | 5.下一个博客是 Code Who Says Py,这个博客很不错。虽然它更新的不是很及时,但你仍然可以在里面找到一些非常有用的东西。 138 | http://sayspy.blogspot.com/ 139 | 140 | 6.第六个博客是 effbot,满满的都是非常有用的信息,代码和任何你能想得到的东西都在里面。机不可失哦 141 | http://effbot.org/ 142 | 143 | 7.第七个博客的作者叫做"Two Scoops Of Django",博客叫做 pydanny。这是一个主要关于 Django 的博客,但是它里面仍然有很多有用的东西。 144 | http://pydanny.com/ 145 | 146 | 8.第八个博客的作者叫 Al Sweigat,他写了很多本关于 python 的书,他最新的一本书叫做"Hacking Secret Cipher With Python" 147 | http://inventwithpython.com/blog/ 148 | 149 | 9.第九个博客就是我自己拉,freepythontips.wordpress.com 这里什么都有! 150 | http://freepythontips.wordpress.com 151 | 152 | 10.最后一个博客也是我觉得最有用的博客,他让我的 python 技术迅猛提升,这个博客叫做 Mouse Vs Python. 153 | http://www.blog.pythonlibrary.org/ 154 | -------------------------------------------------------------------------------- /docs/python/interview.md: -------------------------------------------------------------------------------- 1 | # 面试题 2 | 3 | http://www.itwendao.com/interview/python/ 4 | 5 | http://python.jobbole.com/85231/ 6 | http://blog.csdn.net/alvine008/article/details/39229057 7 | https://zhuanlan.zhihu.com/p/23526961 8 | 9 | ## Python 面试计划 10 | 11 | 如何面试 Python 后端工程师? - 回答作者: 罗伊 12 | https://zhihu.com/question/33398583/answer/59017861 13 | 14 | - 图解密码学 15 | - python 参考手册 16 | - 流畅的 python 17 | - python3 学习笔记 雨痕 18 | - MySQL 技术内幕 19 | - 高性能 MySQL 20 | - TCP/IP 详解 21 | - 计算机网络自顶向下 22 | - Linux 操作 23 | - 消息队列 rabbitmq 等 24 | - git 操作 25 | - redis 相关 26 | - web 安全 27 | 28 | ## Python 资源 29 | 30 | ## Part of my daily plan for studying Python. 31 | 32 | https://github.com/jwasham/practice-python 33 | 34 | Go vs. Python in Code Examples. Go 和 Python 对于同一种功能的实现方式。非常适合会 Python 学习 Go,或者会 Go 学习 Python 的人阅读~ 35 | 作者的博客:www.peterbe.com 36 | 37 | - http://govspy.peterbe.com/ 38 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "name": "dumi-app", 4 | "scripts": { 5 | "start": "dumi dev", 6 | "build": "dumi build", 7 | "prettier": "prettier --write \"**/*.{js,jsx,tsx,ts,less,md,json}\"" 8 | }, 9 | "main": "dist/index.js", 10 | "module": "dist/index.esm.js", 11 | "typings": "dist/index.d.ts", 12 | "gitHooks": { 13 | "pre-commit": "lint-staged" 14 | }, 15 | "lint-staged": { 16 | "*.{js,jsx,less,md,json}": [ 17 | "prettier --write" 18 | ], 19 | "*.ts?(x)": [ 20 | "prettier --parser=typescript --write" 21 | ] 22 | }, 23 | "devDependencies": { 24 | "dumi": "^1.0.8", 25 | "lint-staged": "^10.0.7", 26 | "prettier": "^1.19.1", 27 | "yorkie": "^2.0.0" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "module": "esnext", 5 | "moduleResolution": "node", 6 | "importHelpers": true, 7 | "jsx": "react", 8 | "esModuleInterop": true, 9 | "sourceMap": true, 10 | "baseUrl": "./", 11 | "strict": true, 12 | "paths": { 13 | "@/*": ["src/*"], 14 | "@@/*": ["src/.umi/*"] 15 | }, 16 | "allowSyntheticDefaultImports": true 17 | }, 18 | "exclude": ["node_modules", "dist", "typings"] 19 | } 20 | -------------------------------------------------------------------------------- /typings.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.css'; 2 | declare module '*.less'; 3 | --------------------------------------------------------------------------------