作者 | javinpaul

译者 | 大鱼

编辑 | 一一

出品 | AI 科技大本营

进入 BAT 这样的巨头企业工作,无疑是很多程序员的梦想。但事实上,能通过这些公司高难度编程面试的只是一小撮人,大多数人因为理论知识和项目实践的匮乏导致在面试后很快被淘汰,没有为面试提前做好扎实的准备工作。

年后是程序员扎堆跳槽的高峰时段,如何准备好这些大公司的编程面试?应该先准备哪些方面?需要解决哪些问题?如何解决编程中出现的文因以及其他相关技术问题?

尤其对计算机专业的毕业生而言,这些问题对他们来说无所适从,仅依赖于课本中的编程语言和数据结构来准备面试,很明显远远不够。

程序员 javinpaul 对此深有体会,早年间他面临同样的困境,也因此错失了 Microsoft 和 Amazon 的工作机会,所以他在博客上分享了自己多年来总结的课程学习经验,以帮助程序员在编程面试中做好准备。

他给出的编程面试“法宝”中,不仅有专门针对于编程面试的书,如《Crack the Coding Interview Questions》,还有线上课程和编程训练营,来帮助程序员准备编程面试。

《Crack the Coding Interview Questions》:https://www.amazon.com/Cracking-Coding-Interview-6th-Edition/dp/0984782850/?tag=javamysqlanta-20

线上课程:

https://www.udemy.com/data-structure-and-algorithms-analysis/?ranMID=39197&ranEAID=JVFxdTr9V80&ranSiteID=JVFxdTr9V80-D7xMS63xqgQEy4yY4.nrNA&LSNPUBID=JVFxdTr9V80

虽然训练营可以学习方法论、重点总结以及严谨练习,但它的费用有点高,并不是每个学生都能负担得起。另一个选择是如《Software Engineer Interview Unleashed》这样的线上课程,既便宜又能提供类似编程训练营里面的互动指导。

Software Engineer Interview Unleashed:

https://www.udemy.com/software-engineer-interview-unleashed/?ranMID=39197&ranEAID=JVFxdTr9V80&ranSiteID=JVFxdTr9V80-XBOd9Wf4.vpVOmaGgzxwjA&LSNPUBID=JVFxdTr9V80

在诸如 Udemy 和 PluralSight 这样一些流行的线上课程网站上,有很多可供大家选择的编程面试课程,而你要选择合适自己的课程。

Udemy:

http://javarevisited.blogspot.sg/2018/01/top-10-udemy-courses-for-java-and-web-developers.html

PluralSight:

https://javarevisited.blogspot.com/2017/12/top-10-pluralsight-courses-java-and-web-developers.html#axzz53viuJDer

十门针对编程面试的数据结构与算法课

javinpaul 分享了一些有助于准备编程面试的优质课程,你可以根据个人的经验和技能,从中选择一到两门课,从而去准备下一次工作面试。

这些课程的大部分都侧重于数据结构与算法,这是所有编程面试中最重要的话题,但它们也会教你如何解决问题以及工作面试中其他方面的知识,如关于编程语言的问题,Java、C++、数据库、SQL 概念及 Linux 命令等。

一旦你完成了任何一门在线培训课程,就会具备足够的知识去开始下一次面试,同时也会更清楚未来的努力方向。

一、数据结构与算法分析 -- 求职面试

对于 Java 程序员来说,这可能是最好的编程面试课程。然而该课程对编程语言没有要求,如果你不了解 Java,作者会教你。在该课程中,你会学习到算法分析,如查找、排序及其他一些算法,还可以学习如何降低代码的复杂度等技能。另外,你会学习到不同类型的数据结构,以及如何选择合适的数据结构来解决不同问题。

要记住,选择合适的数据结构能够大大提升 CPU 和应用程序的内存性能。比如用集合来解决重复元素问题会容易很多。

你也会学习到如何求每种数据结构的复杂度。

最后,你可以写出运行更快且内存使用率低的代码,也能学习如何使用被许多程序员忽略的技术来分析问题。

该课程适合所以程序员,特别是 Java 程序员。如果你正在寻找关于 Java 的优质编程面试课程,这就是你要找的。

你可以从零开始学习它,也可以在面试前先更新脑中的知识储备。

课程链接:

https://www.udemy.com/data-structure-and-algorithms-analysis/?ranMID=39197&ranEAID=JVFxdTr9V80&ranSiteID=JVFxdTr9V80-jaUlNTlHjE8FidX6ZEWLYw&LSNPUBID=JVFxdTr9V80

二、助力软件工程师面试

该课程是由一位前 Google 面试官制作,是最棒的编程面试课程之一。如果你是一位软件工程师,正在寻找 Google、Facebook、SnapChat 或 Airbnb 等科技巨头公司的工作机会,那么这门课程很适合你。

该课程也特别适合那些正在寻找在大型科技公司和创业公司工作机会的大学毕业生及初级开发人员。

你不仅可以学习数据结构和算法以及其他面试的技术知识,也将有机会感受真实的电话和现场面试实例,从而看到面试官的评估标准。

课程链接:

https://www.udemy.com/software-engineer-interview-unleashed/?ranMID=39197&ranEAID=JVFxdTr9V80&ranSiteID=JVFxdTr9V80-MqLfTpFyEr28tyHtGFvpJw&LSNPUBID=JVFxdTr9V80

三、为工作面试做准备

这是另一门有关准备技术工作面试的优质课程。该课程的导师是 John Sonmez,同时也是畅销书《Soft Skills: The software developer’s life manual》的作者,这本书讲解了要通过编程面试的要素。

该课程中,你不仅可以学到如何现场解决编程题目,也可以学习如何回答面试官提出的有关复杂度和优化方面的棘手问题。

课程还包含非常火爆的训练营内容,覆盖了数据结构、算法、位操作和并发等计算机科学问题。总之,对准备软件工作面试来说,这是个大礼包。

《Soft Skills: The software developer’s life manual》:

https://www.amazon.com/Soft-Skills-software-developers-manual/dp/1617292397?tag=javamysqlanta-20

课程链接:

https://www.pluralsight.com/courses/developer-job-interviews?clickid=yju2AGwpe06fQ030%3A1xskw0BUkgWkKXuYRMpRE0&irgwc=1&mpid=1193463&utm_source=impactradius&utm_medium=digital_affiliate&utm_campaign=1193463&aid=7010a000001xAKZAA2

四、编程面试训练营:算法 + 数据结构

该课程的作者花费了很多时间研究 Google、Facebook 和 Amazon 的面试题,并分享了自己解决这些问题的经验。这门课中,你会看到大量的常见算法问题,覆盖了从“翻转字符串”到“查找二叉树的叶节点”等问题。

该课程也介绍了面试中最重要的数据结构,如列表、集合、map、堆、队列、树等。对一些新手来说,在设计一个实际系统方面可能缺乏经验,该课程则给出了一些系统设计面试中的实用建议。

课程链接:

https://www.udemy.com/coding-interview-bootcamp-algorithms-and-data-structure/?ranMID=39197&ranEAID=JVFxdTr9V80&ranSiteID=JVFxdTr9V80-5lrxVmGjQSPbnBklVGdUeg&LSNPUBID=JVFxdTr9V80

五、突破:编程面试

对于 Java 和 C 语言程序员来说,这是一门比较优质的入门课程。和之前课程类似,这门课涵盖了一些基本概念,如指针、字符串、链表、排序、位操作、数据结构和系统设计。

大多数的解决方案都是基于 C 语言,还有部分基于 Java。对于那些想要在面试之前,温习数据结构和算法概念的新手工程师和资深程序员来说,这是一门很棒的课程。

课程链接:

https://www.udemy.com/break-away-coding-interviews-1/?ranMID=39197&ranEAID=JVFxdTr9V80&ranSiteID=JVFxdTr9V80-omgKGVJwkV5ppmX_dzonwA&LSNPUBID=JVFxdTr9V80

六、动态规划介绍 —— 编程面试的准备工作

如果你了解动态规划,那么很多编程问题就很容易解决,但许多开发者对此并不了解,包括一些有经验的开发者。

这门课程会教你有关动态规划的知识,以提高算法水平,并为软件工程师的编程面试做准备。你也会学到一维和二维的动态规划问题,以及如何推导递归关系,并写出一个递归解法,然后在几分钟内完成编程。

这门课覆盖的几个动态规划问题如下:

  • 爬楼梯

  • 股票最佳买卖时间

  • 0/1 背包问题

  • 最长公共子串

  • 最长公共子序列

总之,这是一门学习动态规划的绝佳课程。即使你不需要准备编程面试,你依然可以上这门课,以提高你在动态规划和算法方面的知识储备。这门课使用了 Java 和 Python,所以它对使用这些语言的开发者很适用。

课程链接:

https://www.udemy.com/dynamic-programming/?ranMID=39197&ranEAID=JVFxdTr9V80&ranSiteID=JVFxdTr9V80-0rYrbMACaYa1Kd_tkHT3dA&LSNPUBID=JVFxdTr9V80

七、面向数据结构、算法和面试的 Python 课程

这是一门特别为 Python 开发者设计的数据结构、算法及编程面试课,它侧重于如何利用 Github 和 LinkedIn 来打动招聘者。

该课程也可以帮你创建优秀简历,这一点很容易被大多数程序员忽略。要记住,是简历给你面试的机会,如果你的简历不够好,那很难有好的面试结果。

该课程中,你不仅可以学习所有重要的数据结构和算法,还包括有关虚拟面试的内容。对 Python 程序员来说,这是最好的编程面试课程之一。

课程链接:

https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/?ranMID=39197&ranEAID=JVFxdTr9V80&ranSiteID=JVFxdTr9V80-fOz25XXf53jVhfaGb92blw&LSNPUBID=JVFxdTr9V80

八、11 个重要的面试编程问题 + 编程练习

直到你可以解决大多数面试中的常见问题,才能说你做好了面试准备。这门课程介绍了如何一步步解决 11 个常见问题。该课程很短,建议你配合其他课程一起学,但它很利于学习如何基于现有的数据结构与算法知识去解决一个全新问题。

课程链接:

https://www.udemy.com/11-essential-coding-interview-questions/?ranMID=39197&ranEAID=JVFxdTr9V80&ranSiteID=JVFxdTr9V80-F4bvNQmD1SG9LXaAk9DL3Q&LSNPUBID=JVFxdTr9V80

九、200+ 个 SQL 面试问题

编程面试中,有关 SQL 查询语句和数据库的问题十分常见,因此对一个计算机科学专业的毕业生或程序员来说,提前准备 SQL 问题很重要。这门课提供了 200 多个有关 SQL 语句的编程面试问题。

课程链接:

https://www.udemy.com/sql-interview-questions/?ranMID=39197&ranEAID=JVFxdTr9V80&ranSiteID=JVFxdTr9V80-lL2z7mtHccWgSMPKhoKlPQ&LSNPUBID=JVFxdTr9V80

十、200+ 适用于初学者的 Java 面试问题

该课程是特别为正在找 Java 开发工作的 Java 程序员或开发者设置的。由于 Java 的内容太多,所以不可能准备得面面俱到,尤其在比较短的准备时间内,这也是这门课的亮点。

该课程提供了 200+ Java 面试问题,涵盖了 Java 的各个方面。对于你可能在实际面试中遇到的 Java 问题来说,这个合集是极具代表性的。

以上是一些有关准备编程面试的优质课程。作者认为,对于求职面试来说,致胜的关键点是思考问题和实际编程的能力。

你需要付出许多努力才能达到这个境界。幸运的是,有许多可以供你使用的刷题网站。

一旦你学习过这些课程中的某一门,你就可以尝试解决列表中的 50 个编程问题了。

现在你已经做好参加编程面试的准备了

有许多有关准备编程面试的优质课程。它们会教你数据结构和算法的知识,帮你在面试中很好的表现。

作者在博客上分享过许多编程面试问题,如果你对此感兴趣,可以去搜索查看。如果你想要通过任何公司及任何水平的求职面试,就需要搞懂常见的编程、数据结构和算法问题。

博客链接:http://java67.com/

如果你正在找编程或软件开发工作,则可以从这个算法列表和求职面试课程开始。对于成功的编程面试来说,完备的数据结构及算法知识储备至关重要,这是你应该集中精力的部分。

最后,给出其它的编程面试资源:

  • 50+ 数据结构和算法问题:

    https://hackernoon.com/50-data-structure-and-algorithms-interview-questions-for-programmers-b4b1ac61f5b0

  • 30+ 编程面试中的链表问题:

    http://javarevisited.blogspot.sg/2017/07/top-10-linked-list-coding-questions-and.html#axzz4xXS86IVo

  • 30+基于数组的编程问题:

    http://javarevisited.blogspot.sg/2015/06/top-20-array-interview-questions-and-answers.html#axzz4tUeeQOAU

  • 10 个编程面试的常见语句:http://www.java67.com/2013/04/10-frequently-asked-sql-query-interview-questions-answers-database.html

  • 50+ 电面编程问题:https://javarevisited.blogspot.com/2015/02/50-programmer-phone-interview-questions-answers.html#axzz5C5tt0mTL

  • 数据结构与算法 —— 深入 Java:

    https://www.udemy.com/data-structures-and-algorithms-deep-dive-using-java/?ranMID=39197&ranEAID=JVFxdTr9V80&ranSiteID=JVFxdTr9V80-uIAsXo8oee5pDf1btLL9Bw&LSNPUBID=JVFxdTr9V80

  • 每个程序员都应该读的 10 本书:

    http://www.java67.com/2015/09/top-10-algorithm-books-every-programmer-read-learn.html

  • 适用于 Java 开发者的数据结构与算法书 Top 5:

    http://javarevisited.blogspot.sg/2016/05/5-free-data-structure-and-algorithm-books-in-java.html#axzz4uXETWjmV

  • 从 0 到 1 —— 基于 Java 的数据结构与算法:

    https://www.udemy.com/from-0-to-1-data-structures/?ranMID=39197&ranEAID=JVFxdTr9V80&ranSiteID=JVFxdTr9V80-t5PMt80qbjGYhd3O5t8_Yw&LSNPUBID=JVFxdTr9V80

原文链接:

https://hackernoon.com/10-data-structure-algorithms-and-programming-courses-to-crack-any-coding-interview-e1c50b30b927

*本文为 AI科技大本营编译文章,转载请联系微信 1092722531


 热 文 推 荐 

☞ 难逃寒冬裁员的“大追杀”,30 岁女码农该何去何从?

☞ 刚发布!这类应届程序员毕业就拿 50 万年薪,你怎么看?

☞ 滴滴否认上海团队解散;雄安超前布局 5G;小米拆分独立品牌 | 极客头条

从倾家荡产到身价百亿,这个85后只用了8年

☞ 难逃寒冬裁员的“大追杀”,30 岁女码农该何去何从?

☞ OpenStack 2018 年终盘点

拼多多黄峥给陆奇“兼职”,欲挖掘这类AI人才

☞ 老程序员肺腑忠告:千万别一辈子靠技术生存!

print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!\n");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"

点击“阅读原文”,打开 CSDN App 阅读更贴心!

喜欢就点击“好看”吧!

年后跳槽 BAT 必看,10 种干货帮你 Offer 拿到手软!相关推荐

  1. 年后跳槽BAT必看:10种数据结构、算法和编程课助你面试通关

    作者 | javinpaul 译者 | 大鱼 编辑 | 一一 出品 | AI 科技大本营 进入 BAT 这样的巨头企业工作,无疑是很多程序员的梦想.但事实上,能通过这些公司高难度编程面试的只是一小撮人 ...

  2. 萌新必看—10种前端存储哪家强,一文读尽!

    作者:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者.原文链接:https://segmentfault.com/a/1190000040147911 点击上方 程序员成长指 ...

  3. 萌新必看——10种客户端存储哪家强,一文读尽!

    转载请注明出处: 葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 数据持久 数据持久指将内存中的数据模型转化为存储模型,和将存储模型转化为内存中的数据模型这一过程的统称.在 ...

  4. 明年iPhone或支持双卡双待;刘强东:若十年后还是BAT,对国家是种不幸|ServiceHot一周热闻

    又是一周过去了,一起来看看近期有什么热闻~ 刘强东:若十年后还是BAT,对国家是种不幸 刘强东认为,以前的互联网是野蛮生长的,很难看到清晰的规则,这两年情况有所好转,但两极化越来越严重,流量越来越集中 ...

  5. 新手必看的编程介绍,帮你推荐学习方案!

    新手必看的编程介绍,帮你推荐学习方案! VB是什么? ) y0 {6 G# G; j3 B VB 是Visual Basic编程语言 * B. O2 G# z) O1 |- g8 `4 ^ 编写计算机 ...

  6. 2020年,iOS开发面试跳槽(必看攻略)

    1.引言 每年的3.4月份都是求职高峰时期,目前已进入5.6月份了,你已经成功换工作了吗? 这次我们想聊的,就是程序员跳槽这件事儿,我打算从三个方面来说: 1)程序员什么时候该跳槽? 2)跳槽前你需要 ...

  7. 上周面试回来后写的Java面试总结,想进BAT必看

    上周陪同之前一起工作的同事去面试(乔治,小袁,鹏飞(面试人)),第一站是去深圳,第二站上海,第三站杭州.面试什么公司我在这里就不多说了,你们知道是一线公司就行.其实本来真的没打算写这篇文章,主要是自己 ...

  8. SAP License:SAP一个成功的案例之跳槽者必看

    两年前,有一个上海的女生,当时27岁毕业5年,做的是某合资SD(SUPPLYDEMAND)的分析工作,当时年入7万的样子,由于这方面的人较少,而她毕业后一直做的是这个方向,所以当某500强企业需要这方 ...

  9. java跳槽原因_跳槽求职必看:Java程序猿面试失败的5大原因!

    四月,又到了应聘跳槽高峰期了,而应聘程序员的要求更是越来越多了.如今的企业不仅要程序员做的了专职码农,还要你有一定的工作经验和过硬的技术,不仅找的到bug还能搞的定产品,不仅逻辑思维细密还要能抗压力, ...

最新文章

  1. Rethinking the inception architecture for computer vision的 paper 相关知识
  2. 寄存器位查看小工具.exe
  3. PHPsession工作机制以及销毁session
  4. eks volumn s3_威客电竞 深渊联赛S3欧洲区总决赛,Secret成就八连冠
  5. 仅仅有人物没背景的图片怎么弄_五分钟写作课 人物篇 人物的出场是个关键时刻...
  6. 大话Linux内核中锁机制之原子操作、自旋锁【转】
  7. 自动驾驶——SimpleNet的学习笔记
  8. C语言实验——简单排序
  9. PL3368C电源管理IC是什么,充电器电源IC用ASEMI-PL3368C
  10. 【转】《与MySQL的零距离接触》第四章:操作数据表中的记录 (4-2:MySQL 插入记录INSERT)
  11. Python爬虫爬取表情包
  12. 【猛料】腾讯前总监受贿侵占数百万获刑9年
  13. 【20180615】【射频通信】RF、IF、Baseband的区别,PLL和VCO的定义,I/Q信号的定义
  14. c++中引用变量的使用
  15. arw是什么格式?arw格式用什么软件打开?arw格式怎么转换成jpg
  16. ImageLoader 修改个人头像
  17. Github从账号创建到上传项目
  18. 清华“差生”10年奋斗经历:只写事业,不写女人
  19. UE4开发PSVR游戏的常见问题
  20. 概率论重修笔记 11矩估计和极大似然估计.md

热门文章

  1. twisted python_Python爬虫Scrapy框架之Hello Word
  2. java实现linux变量替换_linux java 配置 含环境变量 | 学步园
  3. 【OpenCV】绘制简单图形
  4. Material Design基础
  5. 蔬菜刀行业调研报告 - 市场现状分析与发展前景预测
  6. 2021年中国制药机械市场趋势报告、技术动态创新及2027年市场预测
  7. C语言TCP客户端获取时间
  8. android命名管道创建使用
  9. 作为 Web 开发人员我踩过哪些技术的坑?
  10. 官宣!DolphinScheduler 毕业成为 Apache 软件基金会顶级项目