Coding Interview University学习

转自作者:约翰·沃斯塔姆, 简介:https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu

代码仓库地址: [jwasham/coding-interview-university](https://github.com/jwasham/coding-interview-university)

技术菜鸟的进阶

(一)、为何要用到它?

从底层去了解数据结构以及编程语言的运作原理。

作者原话引用:当我开始这个项目时,我不知道堆和栈的区别,不了解时间复杂度(Big-O)、树,或如何去遍历一个图。如果非要我去编写一个排序算法的话,我只能说我所写的肯定是很糟糕。一直以来,我所用的任何数据结构都是内建于编程语言当中。至于它们在背后是如何运作,对此我一概不清楚。此外,以前的我并不需要对内存进行管理,最多就只是在一个正在执行的进程抛出了“内存不足”的错误后,才会去找解决方法。在我的编程生涯中,虽然我有用过多维数组,也用过关联数组成千上万次,但我从来没有自己实现过数据结构。

这是一个漫长的计划,以至于花费了我数月的时间。若你早已熟悉大部分的知识,那么也许能节省大量的时间。

(二)、不要觉得自己不够聪明(特别符合现在我的心境)

作者原话引用:大多数成功的软件工程师都非常聪明,但他们都有一种觉得自己不够聪明的不安全感。(当然排除我)

[天才程序员的神话](https://www.youtube.com/watch?v=0SARbwvhupQ )

[不要单打独斗:面对技术中的隐形怪物](https://www.youtube.com/watch?v=1i8ylq4j_EY)

(三)、 面试过程 & 通用的面试准备

[ABC:不要停止编程(Always Be Coding)](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)

- [ ] [白板编程(Whiteboarding)](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)

- [ ] [揭秘技术招聘](https://www.youtube.com/watch?v=N233T0epWTs)

- [ ] 如何在科技四强企业中获得一份工作:

- [ ] [“如何在科技四强企业中获得一份工作 —— Amazon、Facebook、Google 和 Microsoft”(视频)](https://www.youtube.com/watch?v=YJZCUhxNCv8)

- [ ] 解密开发类面试第一集:

- [ ] [Gayle L McDowell —— 解密开发类面试(视频)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)

- [ ] [解密开发类面试 —— 作者 Gayle Laakmann McDowell(视频)](https://www.youtube.com/watch?v=aClxtDcdpsQ)

- [ ] 解密 Facebook 编码面试:

- [方法](https://www.youtube.com/watch?v=wCl9kvQGHPI)

- [问题演练](https://www.youtube.com/watch?v=4UWDyJq8jZg)

- [ ] 准备课程:

- [ ] [软件工程师面试发布(收费课程)](https://www.udemy.com/software-engineer-interview-unleashed):

- 从前 Google 面试官身上学习如何准备自己,让自己能够应付软件工程师的面试。

- [ ] [Python 数据结构,算法和面试(收费课程)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):

- Python 面试准备课程,内容涉及数据结构,算法,模拟面试等。

- [ ] [Python 的数据结构和算法简介(Udacity 免费课程)](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513):

- 免费的 Python 数据结构和算法课程。

- [ ] [数据结构和算法纳米学位!(Udacity 收费纳米学位)](https://www.udacity.com/course/data-structures-and-algorithms-nanodegree--nd256):

- 获得超过100种数据结构和算法练习以及指导的动手练习,专门导师帮助你在面试和职场中做好准备。

- [ ] [探究行为面试(Educative 免费课程)](https://www.educative.io/courses/grokking-the-behavioral-interview):

- 很多时候,不是你的技术能力会阻碍你获得理想的工作,而是你在行为面试中的表现。

(四)、为你的面试选择一种语言

目前来看我所使用的语言有,python、java、go、scala,需要为面试需要选择一种语言(目前选择java)

(五)、面试准备

[Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/)

[Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)

(六)、额外的选择

[Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)

[Elements of Programming Interviews in Python](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)

Elements of Programming Interviews (Java version)

https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/

[配套项目──书中每个问题的方法和测试用例](https://github.com/gardncl/elements-of-programming-interviews)

(七)、其他语言选择

[额外编程语言的精选资源](https://github.com/jwasham/coding-interview-university/blob/main/programming-language-resources.md)

(八)、书籍资源

### C++

[Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/)

[Algorithms in C++ Part 5: Graph Algorithms](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/)

[Open Data Structures in C++](https://opendatastructures.org/ods-cpp.pdf)

### Java

[算法(Sedgewick 和 Wayne)](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)

[第一部分](https://www.coursera.org/learn/algorithms-part1)

[第二部分](https://www.coursera.org/learn/algorithms-part2)

[Java 数据结构和算法](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)

### Python

[Python数据结构和算法](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)

读书报告:[startupnextdoor.com/book-report-data-structures-and-algorithms-in-python](https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/)

[Open Data Structures in Python](https://opendatastructures.org/ods-python.pdf)

(九)、使用抽卡

[记住计算机科学知识](https://startupnextdoor.com/retaining-computer-science-knowledge/)。

[学习如何学习](https://www.coursera.org/learn/learning-how-to-learn)。

[抽认卡页面的代码仓库](https://github.com/jwasham/computer-science-flash-cards)

[我的抽认卡数据库 ── 旧 1200 张](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham.db)

[我的抽认卡数据库 ── 新 1800 张](https://github.com/jwasham/computer-science-flash-cards/blob/main/cards-jwasham-extreme.db)

有一点需要记住的是,我做事有点过头,以至于卡片都覆盖到所有的东西上,从汇编语言和 Python 的细枝末节,到机器学习和统计都被覆盖到卡片上。而这种做法,对于要求来说是多余的。

**在抽认卡上做笔记:** 若你第一次发现你知道问题的答案时,先不要急着把其标注成“已知”。反复复习这张抽认卡,直到每次都能答对后才是真正学会了这个问题。反复地问答可帮助你深刻记住该知识点。

这里有个替代我抽认卡的网站 [Anki](http://ankisrs.net/),很多人向我推荐过它。这个网站用同一个字卡重复出现的方式让你牢牢地记住知识。这个网站非常容易使用,支持多平台,并且有云端同步功能。在 iOS 平台上收费25美金,其他平台免费。

这是我用 Anki 这个网站里的格式所储存的抽认卡资料库: ankiweb.net/shared/info/25173560 (感谢 [@xiewenya](https://github.com/xiewenya))

Coding Interview University学习相关推荐

  1. Google Interview University - 坚持完成这套学习手册,你就可以去 Google 面试了

    作者:Glowin 链接:https://zhuanlan.zhihu.com/p/22881223 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 原文地址:Goo ...

  2. [译] Google Interview University 一套完整的学习手册帮助自己准备 Google 的面试

    [译] Google Interview University 一套完整的学习手册帮助自己准备 Google 的面试 十一七天乐,看池博的github,发现这个markdown,转过来mark一下 原 ...

  3. Google Interview University | 坚持完成这套学习手册,你就可以去 Google 面试了

    Google Interview University 一套完整的学习手册帮助自己准备 Google 的面试 原文地址:Google Interview University 原文作者:John Wa ...

  4. 渣基础:比照Hawstein学Cracking the coding interview(1)

    <C++ Primer 第五版>书实在是太长,太厚了.总是看了十几页就看累了,坚持不了多久,想了想还是别勉强自己,决定把它当工具书查看,或者积累足够的C++经验后再翻阅一遍. 目前的打算是 ...

  5. [Free] Cracking the Coding Interview 6th Download

    [Free] Cracking the Coding Interview 6th Download 推荐给有梯子的童鞋们! https://www.pdfdrive.com/cracking-the- ...

  6. Cracking the coding interview

    转自:http://hawstein.com/posts/ctci-solutions-contents.html Cracking the coding interview--问题与解答 March ...

  7. 经典算法题目:Cracking the coding interview 问题与解答

    Cracking the coding interview--问题与解答 March 14, 2013 作者:Hawstein 出处: http://hawstein.com/posts/ctci-s ...

  8. Coding源码学习第二部分(FunctionIntroManager.m)

    接上篇.上篇有一个细节忘了写,在Coding_iOS-Info.plist 里面添加了一个key 是 Status bar is initially hidden  Value 是 YES,在appl ...

  9. ##################### Coding相关的学习网站推荐【2016/12/16更新】

    一 代码阅览类 http://androidxref.com/     android系统源码极速搜索 https://source.codeaurora.org/   qcom开源Android S ...

最新文章

  1. linux 节点信,DOM 节点信息
  2. stm32cubemx生成不了keil工程文件_STM32CubeMX系列教程03_创建并生成代码工程
  3. 2017.7.6 linux 搭建ssh服务器 scp
  4. 根据表名如何查找使用它的程序名、接口等
  5. Spring Bean的作用域及生命周期
  6. 有哪些大数据处理工具?
  7. InetAddressSocket使用总结
  8. 从零开始编写自己的C#框架(18)——Web层后端权限模块——菜单管理
  9. JS基础_流程控制语句
  10. perl java远程调用函数调用_如何从Java调用Perl?
  11. WPF MVVM模式 带CheckBox的树形图
  12. 自制网站服务器主机,自制服务器主机迷你
  13. 关于SharePoint中文翻译的吐槽
  14. Android Room框架使用
  15. HarmonyOS 系统架构
  16. cookie、sesion
  17. 搭建通过路由器连接到光猫的服务器
  18. 计算机等级考试——三级网络技术
  19. idea下载源码失败 cannot download sources
  20. 牛血不小心污渍了被子或者衣服,怎么洗干净?

热门文章

  1. 转:沪江小d每日一句一周详解(1.26~2.1)
  2. JS运动从入门到兴奋1
  3. JAVA技术交流(学习群):51194570;JAVA技术交流(应用群):51194804
  4. 判定重大风险有哪几种_安全风险分为哪几个等级
  5. 拖拽功能之水平拖动图片
  6. 【Cxinny】数据结构与算法
  7. Solr - DIH详解(上卷)
  8. 常见开放api平台-OpenAPI
  9. Linux终端Terminal常用快捷键
  10. html根据PC手机设置不同背景图,Html-根据不同的分辨率设置不同的背景图片