华为技术面试编码题

Technical coding interviews are notoriously difficult — almost borderline quiz-like for those unprepared. It can sometimes be a daunting task to navigate all the technical coding preparation resources available online, and one might ask: is there a single book/resource that best prepares for technical coding interviews?

众所周知,技术编码面试非常困难-对于那些没有准备的人,几乎像是边界测验。 浏览所有在线可用的技术编码准备资源有时可能是一项艰巨的任务,并且有人可能会问: 是否有一本书/资源最能为技术编码面试做准备?

Best, is relative of course in this case. If you’re looking for a book that will teach you how to solve any coding question, guides you on how to design something like Instagram that scales to a billion users, and makes your sandwich while you’re at it, then this book definitely isn’t it.

最好 ,在这种情况下当然是相对的。 如果您正在寻找一本可以教您如何解决任何编码问题的书,并指导您如何设计可扩展至十亿用户的Instagram之类的东西,并在您使用时做三明治,那么这本书绝对是是不是

But for polishing your technical chops and making sure you’re well prepared to face the programming challenges in an interview, this book comes darn close to it.

但是,为了完善您的技术知识,并确保您准备好在面试中面对编程方面的挑战,这本书可真是天花乱坠。

In today’s book review, I go over in detail the good and the bad of one of the top-selling books on Amazon for technical coding interviews: Elements of Programming Interviews (a.k.a EPI, and it’ll be referred to as such in the rest of this article).

在今天的书评,我去了详细 ,对亚马逊最畅销书的技术编码采访一个的 : 元素编程访谈 (又名EPI,它会在剩下的被称为这样的本文)。

这本书是关于什么的? (What is this book about?)

EPI is a book that focuses on preparing for technical software engineering interview questions that are commonly asked at tech companies. If you’re looking for a position as a software engineer, this book will have something for you.

EPI是一本书,着重于准备技术软件工程面试问题,这些问题在技术公司中经常问到。 如果您正在寻找软件工程师的职位,这本书将为您提供一些帮助。

EPI was written by 3 folks who’ve worked across some of the best-known tech companies in the world, the likes of Facebook, Google, Uber, and Microsoft. The authors have very strong technical backgrounds, and this is evidenced by the technical focus in the contents of the book.

EPI由3个人共同撰写,他们曾在全球一些最知名的科技公司工作过,例如Facebook,Google,Uber和Microsoft。 作者具有很强的技术背景,本书内容中的技术重点证明了这一点。

The book itself is highly technical in nature and deep dives into fundamental computer science. The types of technical coding questions vary widely from string manipulation to graph traversals. The book also offers concrete tips and tricks for solving specific types of coding problems, and includes a cheatsheet to help ace technical questions.

该书本身具有很高的技术性,并且深入研究了基础计算机科学。 从字符串处理到图形遍历,技术编码问题的类型千差万别。 该书还提供了解决特定类型的编码问题的具体技巧和窍门,并提供了一份备忘单,以帮助解决一些技术问题。

善良 (The Good)

In short: EPI is a highly technical book that is well-suited for anyone looking to prepare for technical coding questions that revolve around data structures and algorithms.

简而言之:EPI是一本技术性很强的书,非常适合希望为涉及数据结构和算法的技术编码问题做准备的任何人。

The things that I particularly enjoyed:

我特别喜欢的东西:

  • has many questions (300+) with detailed answers, compared to another popular book (Cracking The Coding Interview) that only has 170+与另一本只有170+的热门书籍(《 Cracking The Coding Interview》)相比,有很多问题(300+)都有详细的答案
  • comes in 3 different versions: Java, Python and C++. Suitable for people who want to use the language of their choice共有3种不同版本:Java,Python和C ++。 适合想要使用自己选择的语言的人
  • has a great cheatsheet (Chapter 4) that summarizes all the techniques and data structures you’d need有一个很棒的备忘单(第4章),总结了您需要的所有技术和数据结构
  • covers in detail every single data structure you need, algorithms you should know, and techniques you should know in a simple, understandable format以简单易懂的格式详细介绍了您需要的每个数据结构,应了解的算法以及应了解的技术
  • covers relevant technical topics you might get asked in a coding interview, like what is TCP/IP, how the Internet works, and how to capture relationships between different entities in schema design涵盖您可能会在编码访谈中被问到的相关技术主题,例如什么是TCP / IP,Internet如何工作以及如何在模式设计中捕获不同实体之间的关系

Those are some of the top-level points I enjoyed about the book. What I really enjoy is that the answers are very, very well constructed.

这些是我喜欢这本书的一些顶级要点。 我真正喜欢的是答案的构造非常非常好。

The answers often take a brute force/simplistic approach to the problems. The authors then provide concrete examples of how you can improve on the brute force approach. With each iteration, the authors point out where the limitations are and how you can solve them with incremental optimizations.

答案通常采用蛮力/简单的方法来解决问题。 然后,作者提供了有关如何改进蛮力方法的具体示例。 在每次迭代中,作者指出了限制在哪里以及如何使用增量优化来解决它们。

For example, EPI explains how to detect a cycle in a linked list. The first approach: use a hash map to store every node you traverse, and then check against the hash map to see if you’ve seen it. This does the job, albeit it takes additional space (so-called O(N) space complexity and O(N) time complexity).

例如,EPI解释了如何在链表中检测循环。 第一种方法:使用哈希图存储遍历的每个节点,然后对照哈希图检查是否已看到它。 尽管这样做需要额外的空间(即所谓的O(N)空间复杂度和O(N)时间复杂度),但这样做确实可行。

The book then points out that the additional space is not required, and suggests that detecting cycles in a linked list can be done without additional space by manipulating the pointers instead.

然后,该书指出不需要额外的空间,并建议通过操作指针来检测链接列表中的循环而无需额外的空间。

It takes that same approach in explaining almost all the questions, so everyone can understand how to get from a rough solution to an optimized one.

几乎所有问题都采用相同的方法进行解释,因此每个人都可以理解如何从一个粗略的解决方案过渡到一个优化的解决方案。

For someone who’s rusty and looking to start preparing for interviews, EPI does a great job — every chapter starts off with a summary of the data structure or algorithm that you will learn, why the data structure is special, what are the strengths/weaknesses of said data structure and what you need to take note of.

对于一个生疏且想要准备面试的人,EPI做得很好-每章都以您将要学习的数据结构或算法的摘要开始,为什么数据结构特别,该方法的优点/缺点是什么?数据结构以及您需要注意的内容。

In short, EPI is the notebook I wished I had when I was preparing for technical interviews. This is the book I’d give a friend who’s looking to prepare for technical interviews — aside from my best-selling interviewing course (Acing The Tech Interview), which prepares any candidate for the entire interview experience from resume preparation, behavioral questions to how to solve coding problems creatively. Classes fill up fast, so book your slot here today.

简而言之,EPI是我准备进行技术面试时希望拥有的笔记本。 除了我最畅销的面试课程 (Acing The Tech Interview)之外,这本书是我送给一位希望为技术面试做准备的朋友的书,该课程为从面试准备,行为问题到如何进行面试的所有候选人做准备创造性地解决编码问题。 上课时间很快,所以今天就在这里预订您的位置。

坏人 (The Bad)

EPI has its downsides as well. Being a highly technical book, this means the book has its focus set on coding questions.

EPI也有缺点。 作为一本技术性很强的书,这意味着这本书的重点是编码问题。

This, inadvertently, means that the book falls short in terms of other aspects of the technical interview process which are, arguably, just as important — offer negotiation, how to write a persuasive resume, what to do when you get an offer, how to handle behavioral questions etc.

这无意间意味着这本书在技术面试过程的其他方面都达不到要求,这些方面可以说是同样重要的-报价谈判,如何写有说服力的简历,获得报价时该怎么做,如何处理行为问题等

In addition, the book goes into deep detail with data structures and algorithms, but only provides a high-level overview, to the point of being confusing due to lack of context, of various other important concepts like SQL, NoSQL, how to design a proper schema for a simple application and more.

此外,本书深入介绍了数据结构和算法,但仅提供了高层次的概述,以至于由于缺少上下文而使其他重要概念(如SQL,NoSQL,如何设计一个适用于简单应用程序的适当模式等等。

The book sort of covers SQL design by explaining how to structure tables to capture entity relationships, but it does not explain more about JOINs or how to query the tables properly. I think understanding the what (SQL tables) is just as important as the how (queries).

本书通过解释如何构造表以捕获实体关系来涵盖SQL设计,但并未详细介绍JOIN或如何正确查询表。 我认为了解什么 (SQL表)与如何 (查询)同等重要。

EPI also has a chapter on systems designs, but the chapter does not cover distributed designs. I would’ve liked it better if the book had described in more details what distributed systems are or where to find more information about these.

EPI还有一章涉及系统设计,但该章未涵盖分布式设计。 如果本书更详细地描述了什么是分布式系统或在哪里可以找到有关这些的更多信息,我会更喜欢它。

这对我来说是一本好书吗? (Is this a good book for me?)

If you have ~$40 to spare and a big appetite to learn, I’d say so.

如果您有40美元的积蓄和足够的学习兴趣,我会这样说。

The book sells for $36 on average (there are 3 versions). This book is highly rated on Amazon.com, with an average of 4.53 stars across all 3 versions. The stats are as follows:

该书平均售价为36美元(共有3种版本)。 这本书在Amazon.com上获得了高度评价,在所有3个版本中平均获得4.53星。 统计信息如下:

On Amazon.com:

在Amazon.com上 :

3 versions (as of March 12):

3个版本(截至3月12日):

  • Python: 169 ratings 4.3 avePython:169评分4.3平均
  • Java: 203 ratings 4.6 aveJava:203评分4.6平均
  • C++: 436 ratings 4.7 aveC ++:436评分4.7平均

In aggregate, there were a total of 808 reviews.

总计,共有808条评论。

Some of the reviews:

一些评论:

“.. the best algorithm/data structure I ever took”

“ ..我曾经尝试过的最佳算法/数据结构”

“the code is of high quality, using meaningful variable names”

“代码质量高,使用有意义的变量名”

“this is a must-have book”

“这是一本必不可少的书”

现在,你应该买吗? (Now, should you buy it?)

I think that EPI is one of the best resources to prepare for technical coding interviews, bar none. Regardless of your experience level, there’s something in there for you. I particularly enjoy reading the book for its clear and concise explanations, and I use this book as a reference in my programming course.

我认为, EPI是准备技术编码面试的最佳资源之一无所不包。 无论您的经验水平如何,都有一些适合您的东西。 我特别喜欢阅读本书,以获得简洁明了的解释,并且在本书编程课程中将其用作参考。

If you want all the data structures, algorithms you need to know in a single, easy-to-read book, then EPI is the book for you.

如果您希望在一本简单易读的书中需要了解所有的数据结构和算法,那么EPI是适合您的书。

For distributed systems designs, I recommend looking elsewhere. A good start is Designing Data Intensive Applications.

对于分布式系统设计,我建议在其他地方查找。 设计数据密集型应用程序是一个好的开始。

I love it for the depth and insights, and I recommend it to many students who are taking my courses as well.

我喜欢它的深度和洞察力,并且向很多正在学习我的课程的学生推荐它。

我推荐的资源 (Resources I Recommend)

Designing Data Intensive Applications — great resource for learning about distributed systems and how large-scale systems work.

设计数据密集型应用程序 -学习分布式系统以及大型系统如何工作的绝佳资源。

Acing The Technical Interview — my best-selling personal coaching course on how to ace technical interviews. We cover resume review, technical coding interview, behavioral questions and more.

进行技术面试 -我最畅销的关于如何进行技术面试的私人教练课程。 我们涵盖简历审查,技术编码面试,行为问题等。

Acing The Distributed Systems Design Interview — my personal coaching course on designing large scale distributed systems. Learn about how to design features like Instagram Stories, Groupon, movie streaming sites like Netflix at scale.

接受分布式系统设计访谈 —我的个人指导课程,设计大型分布式系统。 了解有关如何大规模设计Instagram Stories,Groupon和Netflix等电影流媒体网站的功能。

翻译自: https://www.freecodecamp.org/news/is-this-the-best-book-for-coding-interview-preparation/

华为技术面试编码题

华为技术面试编码题_最佳技术编码面试准备书相关推荐

  1. 保研面试 算法题_百度软件工程师面试经验

    面试过程: 首先介绍一下笔者的背景.笔者是某苦逼工科专业不想考研又保研无望的孩纸,虽然本科不是计算机专业的,但好歹也做过几个小项目(这里感激一下现在充斥着生活各处的编程,让笔者虽然不是计算机专业的学生 ...

  2. 2022华为Android面试真题,腾讯安卓面试

    一.java相关 java基础 1.java 中==和 equals 和 hashCode 的区 <Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义> An ...

  3. 前端填空题_一年前端面试总结|入职字节|2020.8

    站在未来看现在 你当像鸟飞向你的山 前言     普通本科,软件工程专业,2019年毕业进入奇安信集团(前360企业安全),实习期间遇到一群可以一起嗨的朋友,感觉很幸福,也很庆幸能够遇到hin nic ...

  4. 数据结构面试题编程题_您下次编程面试时应该了解的顶级数据结构

    数据结构面试题编程题 by Fahim ul Haq 通过Fahim ul Haq Niklaus Wirth, a Swiss computer scientist, wrote a book in ...

  5. 高电压技术思维导图_钢铁技术:钢铁行业板坯连铸结晶器振动常见故障思维导图...

    钢铁虾:(您距离钢铁虾只差关注) 结晶器是连铸机的心脏,其振动偏差直接危及连铸过程的生产安全,其振动精度也往往与铸坯表面裂纹等缺陷息息相关. 国内外常见板坯连铸结晶器振动形式有: ①机械式振动: ②双 ...

  6. 学编程面试通不过_我从编程面试中学到了什么

    学编程面试通不过 by Edaena Salinas 由Edaena Salinas 我从编程面试中学到了什么 (What I Learned from Programming Interviews) ...

  7. 最新Java面试300题:腾讯T4面试+美团+京东+拼多多(文末答案附赠)

    数据库原理 MYISAM与innodb搜索引擎原理MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址.其采用索引文件与数据文件,索引文件只存放索引,叶子节点存放数据 ...

  8. 今日头条面试真题及答案——软件测试工程师面试秘籍

    2018年今日头条面试真题及答案 试题1.在浏览器地址栏里输入一个网址,接下来会发生什么? 答案:发生的操作如下. (1)浏览器查找该网址的IP地址. (2)浏览器根据解析得到的IP地址向Web服务器 ...

  9. 字节跳动面试真题:15个经典面试问题及回答思路,在线面试指南

    代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功 ...

最新文章

  1. 在.NET中实现Actor模型的不同方式
  2. 【专栏】好Leader和差Leader的8个区别
  3. 疯狂android源码中文乱码无gbk,我的Android进阶之旅------Android使用cmd窗口进行adb logcat时出现中文乱码问题的解决办法...
  4. Leet Code OJ 21. Merge Two Sorted Lists [Difficulty: Easy]
  5. windows linux 子系统折腾记
  6. [css] height和line-height的区别是什么呢?
  7. java数值精度问题
  8. css 商城 两列_css大法之使用伪元素实现超实用的图标库(附源码
  9. Mysql 求时间 between 昨天 and 上个月的今天 等时间函数
  10. 今日恐慌与贪婪指数为73 贪婪程度有所上升
  11. 教你如何恢复U盘里的中毒文件
  12. 【技巧】谷歌Chrome浏览器清理缓存的两种方式
  13. 关于职业发展:一篇不错的文章分享
  14. 一般家用路由器买多大的合适_家用路由器选多少M(兆)的合适
  15. 输入日期判断这一年的第几天
  16. Visual Studio 6.0下载地址
  17. Springboot母婴店购物系统9j5v8计算机毕业设计-课程设计-期末作业-毕设程序代做
  18. Oracle查询优化改写2.0 第二章:给查询结果排序
  19. google pay(谷歌支付) 开发者账号配置的坑
  20. spring之SpEL表达式

热门文章

  1. atlas单机模式代码_用代码玩太无聊,这样玩海盗游戏《ATLAS》单机模式才是正确玩法...
  2. 【蓝桥java】递归基础之计算共多少种走法
  3. CSS之布局(盒子模型—边框)
  4. Swift中NSRange和Range的转换
  5. lua的table+setfenv+setmetatable陷阱
  6. 微信小程序开通腾讯云开发实践流程附详细图解
  7. iOS 实现点击微信头像效果
  8. Javascript - prototype、__proto__、constructor
  9. 区分BundleVersion和BundleShortVersionString
  10. 【Kubernetes】两篇文章 搞懂 K8s 的 fannel 网络原理