java面试编程面试题_为什么针对编程工作的面试问题如此困难?

java面试编程面试题

I have to say I hate programming interview questions. Why they are so difficult?

我不得不说我讨厌编程面试问题。 为什么他们这么难?

If you ever used a tool like HackerRank or read a coding interview questions book, you’ll probably agree with me. Yes, there’s a whole industry around coding interview and preparation for them.

如果您曾经使用过HackerRank之类的工具或阅读过编码面试问题书,那么您可能会同意我的看法。 是的,整个行业都围绕着编码面试和为其准备工作。

I hate those. Not everyone agrees with me, on the Internet. Seems that many want to continue this “tradition”.

我讨厌那些。 在互联网上,并非所有人都同意我的看法。 似乎许多人希望继续这种“传统”。

A couple years ago I decided I had enough with contracting / freelancing and I went through the hiring process of many different companies.

几年前,我认为我在合同/自由职业方面已经足够了,并且经历了许多不同公司的招聘过程。

This was before I realized that I am basically unemployable, but this is another story. And by unemployable I mean I just cannot work for anyone else except for me, to build my own products and assets rather than building someone else’s.

这是我才意识到,我基本上都是无业 ,但这是另一回事。 通过失业,我的意思是我只能为我以外的任何人工作,以建立自己的产品和资产,而不是建立别人的产品和资产。

About half of the companies I applied to had an initial screening with a practical “take-home” project.

我申请的公司中,大约有一半是通过一个实际的“带回家”项目进行初步筛选的。

No one asked me to implement FizzBuzz, or other algorithms that are often described as “required knowledge”.

没有人要求我实现FizzBu​​zz或其他通常被称为“必需知识”的算法。

We might get tricked into thinking that every hiring process is like the one you’d experience at Google. I read about people spending one year just to prepare for the Google interview, only to be rejected when they applied. Sad.

我们可能会误以为每个招聘过程都像您在Google所经历的那样。 我读到有人花一年时间准备参加Google面试,但申请时遭到拒绝。 伤心。

There are countless small and medium companies that never hire using a rigorous and sterile technical interview on topics like algorithms and data structures. At a whiteboard. Without Google and (gasp!) Stack Overflow.

有无数的中小型公司从未雇用过像算法和数据结构这样的主题的严格而无菌的技术面试。 在白板上。 没有谷歌和(天哪!)堆栈溢出。

Sure, it’s great to know those topics inside out, and I think you really should.

当然,很高兴能完全了解这些主题,我认为您确实应该。

And I get the underlying thinking: the problems are basically all the same, with 10-20 variations. Implement bubble sort. Ok, I can do that. They just want to listen your reasoning on the subject. How you approach it. But in reality, it’s explaining what you remember of a problem you memorized. If the candidate is a fresh graduate, they might even remember it well. If the candidate is a person with 5 years of real work experience, they might not remember that.

我得到了潜在的想法:问题基本上都是相同的,只有10到20种变化。 实现气泡排序。 好的,我可以做到。 他们只想听听您对此主题的推理。 您如何处理它。 但实际上,这是在解释您对所记住的问题的记忆。 如果候选人是应届毕业生,他们甚至可能会记住它。 如果候选人是具有5年实际工作经验的人,他们可能不会记住这一点。

FizzBuzz would be more reasonable. It’s not taught in school, the problem can be explained in 3 minutes, and you can reason about it.

FizzBu​​zz会更合理。 它不是在学校教授的,可以在3分钟内解决问题,您可以对此进行推理。

But if I was to organize the hiring for my company, perhaps as a CTO, I would never ever put the person in front of a white board, and ask them to implement FizzBuzz. Why? First, it’s completely useless - you will never have to implement that in the real world.

但是,如果我要组织公司招聘,也许是作为CTO,我将永远不会把这个人放在白板前,并要求他们实施FizzBu​​zz。 为什么? 首先,它是完全没有用的-您永远不必在现实世界中实现它。

Second, there’s so much stress on the applicant. A lot of people underperform under those conditions. Me included. I could show off perhaps 10% of my value, just because I can’t function well in such an environment alien to me.

第二,申请人压力很大。 在这种情况下,许多人表现不佳。 我包括在内。 我可能会炫耀自己价值的10%,只是因为我在这种陌生的环境中无法正常工作。

DHH (David Heinemeier Hansson, creator of the super popular Ruby on Rails framework) once said: “I would fail to write bubble sort on a whiteboard”

DHH(超级流行的Ruby on Rails框架的创建者David Heinemeier Hansson) 曾经说过 :“我不会在白板上编写冒泡排序”

It’s awful and perhaps only good at stress-testing the nerves of an applicant. Which is a completely different thing than testing the abilities to provide value to the company, like programming if I’m hiring a programmer.

这太可怕了,也许只擅长对申请人的神经进行压力测试。 这与测试为公司提供价值的能力完全不同,例如,如果我要聘用程序员,则需要编程。

No problem you can solve in a traditional whiteboard interview has any correlation with the actual job of a programmer.

您在传统的白板面试中无法解决的问题与程序员的实际工作没有任何关系。

I must think about when was the last time I spent some time deciding which algorithms to use, let alone implement a brand new algorithm. So why people are continuously asked about those things?

我必须考虑一下我上一次花时间决定使用哪种算法,更不用说实现一个全新的算法了。 那么,为什么人们不断被问到这些事情呢?

This is a tweet pointing that also big companies are moving in a better direction:

这是一条推文,表明大公司也在朝着更好的方向发展:

We’ve updated the wording we send to the Front End Engineer candidates to better reflect the Facebook interview process for that role. I hope this helps folks prepare for their interviews! pic.twitter.com/EvTyKbugYT

— Dan Abramov (@dan_abramov)

我们更新了发送给前端工程师候选人的措辞,以更好地反映该职位的Facebook面试过程。 我希望这可以帮助人们为面试做准备! pic.twitter.com/EvTyKbugYT

-Dan Abramov(@dan_abramov) February 12, 2019 2019年2月12日

Practical knowledge. Ask us for this.

实践知识。 要求我们这样做。

I remember one cool question I got at an interview: describe me what happens when you do a Google search. It was open ended, and was the start of a conversation on network protocols and the little things that happen. This was an intelligent question.

我记得我在一次采访中遇到一个很酷的问题:描述我在执行Google搜索时会发生什么。 它是开放式的,是关于网络协议和发生的小事情的对话的开始。 这是一个聪明的问题。

There was no whiteboard because it was a remote Zoom call.

没有白板,因为它是一个远程Zoom呼叫。

Another interview was based off a coding challenge I implemented using React, offline. I had 7 days of time (not that the actual coding took 7 days, 3 hours was enough). The rest of the hiring process was based on the work I did on this code.

另一个采访是基于我使用离线React实施的编码挑战。 我有7天的时间(不是实际的编码需要7天,3个小时就足够了)。 其余的招聘过程基于我在此代码上所做的工作。

So, my answer the question “why interview questions for programming jobs are so difficult?” is probably “because the company hiring process is broken” and you should perhaps think “do I really want to work there?”.

因此,我的问题是“为什么编程工作的面试问题如此困难?” 可能是“因为公司招聘流程中断了”,您也许应该考虑“我真的想在那里工作吗?”。

Wouldn’t it be better to skip the interview altogether? The best thing to do would be to have a company contact you to work for them. You can do this in various ways: networking being one of the classic. In person at conferences, on Twitter, on GitHub.. there are many ways. Once you know and stay in touch with one or more employees of a company, the next time there’s an opening you can definitely be on the list for the position. Especially if they know and appreciate your value.

完全跳过面试会更好吗? 最好的办法是让公司与您联系为他们工作。 您可以通过多种方式执行此操作:网络是经典之一。 亲自参加会议,在Twitter上,在GitHub上..有很多方法。 一旦您知道并与公司的一名或多名员工保持联系,下一次有空缺职位就一定会出现在该职位列表上。 特别是如果他们知道并欣赏您的价值。

All, as usual, in my humble opinion.

按照我的愚见,一切都和往常一样。

翻译自: https://flaviocopes.com/interview-questions/

java面试编程面试题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值