虽然已经找到工作了,但是这段时间面试了三个公司,几乎都会问这种问题,请问这问题是自己靠平时的意识
积累还是说得查看相关论文、书籍呢?
在武汉有次面试也够奇葩的,面试官给模拟一个业务场景(口述的),让我怎么处理这种业务,我当时也不知道他们想问什么,业务难道不是跟运营一起讨论的结果么?并且这次面试有种被鄙视
的感觉。我只是想写个 php 而已啊
1
codemew 2016-07-07 12:21:57 +08:00
没有相关经验就实话实说呗,平时自己不论是项目经验还是自主学习,积累肯定是要有的
|
2
julyclyde 2016-07-07 12:22:04 +08:00
百万级根本不需要优化啊
|
3
shuimugan 2016-07-07 12:37:20 +08:00
自己造数据,自己写自动化测试脚本去模拟
|
4
KingHL 2016-07-07 12:46:01 +08:00
我也遇到过相同的困惑,个人认为没有实际的项目经验做支撑,入职一年左右的新人很难对这种问题作出合适的解答,我现在一般都是除了在开发中总结相关经验外,就是去看下这些大的项目中会用到的成熟的开源库,无论是网络 /事件分发,还是缓存的,去搞懂这些库要解决什么样的问题,解决问题的原理和方法是什么,再往深了就读下源码了。
|
5
missdeer 2016-07-07 12:55:15 +08:00
是不是该说这种公司不去也罢,至少这面试官缺少足够的判断力,连被面试对象应该具有哪些基本素质的常识都没有,这公司也不会好到哪去。
|
6
sorra 2016-07-07 13:00:18 +08:00
年年都有人需要学习,那就学习吧! http://www.qingjingjie.com
|
7
lecher 2016-07-07 13:01:21 +08:00 via Android 2
涉及优化会有调优的要求。
PHP 就是 C 语言系的技术栈。 基础上自己用的语言框架性能瓶颈可能在哪里。 引用的环境中各个软件的性能和使用场景。 思路上多看看别人分享的架构,看看别人会用什么高性能的软件增加系统的性能、容灾性。 比如查询优化,穷尽心思在 SQL 语句上面调优可能没有加个 Redis 上多级缓存来得简单粗暴。 复杂查询上面也许只要一个 sphinx 、 elasticsearch 就可以解决复杂多变的查询需求。 至于业务上使用工具还是自己堆代码,就看经验了。 |
8
AirSc 2016-07-07 13:26:19 +08:00
@missdeer 不是每个人都有你这么强的能力,想在哪里找工作就去哪里找。而且楼主也说了,“但是这段时间面试了三个公司,几乎都会问这种问题”是一种普遍现象。况且“缺少足够的判断力”也不可能说面试要站在求职者的角度,肯定要在公司利益方面。
|
10
yuku 2016-07-07 13:31:46 +08:00 via iPhone
上次面试腾讯也是问了两三个这种问题,平时没啥积累真不好回答。
|
11
sfree2005 2016-07-07 13:34:36 +08:00 1
这个问题可以说是很大的。 查询优化是否规定必须在 mysql 之类的数据库里的查询优化呢?如果不是,范围就广了。可以和面试官聊一天, 如果你想的话。
从最底层的服务器架构说起,各种云服务器的选择和配置 数据库的选择( Sql , NoSql or both ), 配置( cluster ? 是否 shard 或者 replica ),以及和他们相配合的数据结构和查询语句的优化, 一直可以说到前端库的选择。 甚至可以把数据丢给前端,直接在前端搜索 上面的每一步都可以对查询的速度有影响。有空的时候可以看看对于哪些问题,会有哪些对应的技术解决,有些相应的了解也是不错的。 |
12
hbprotoss 2016-07-07 13:45:08 +08:00
估计是面试套方案的套路
|
13
wander2008 2016-07-07 14:05:20 +08:00 via iPhone
楼上说的蛮对,不少公司都在搞这种面试人给出可用的方案。一般来讲我就会给出个大概,然后细节,我来了你就知道了。
|
14
twtiyb 2016-07-07 14:23:26 +08:00
不问这些,你跟刚毕业的有什么区别.
|
16
harry890829 2016-07-07 14:40:36 +08:00
怎么说呢,其实给一个应聘者非常复杂的问题,是能够看到应聘者知识的储备,思考方式,思维活跃度等问题,可以判断出,应聘者是那种死写代码的人,还是有想法的人,公司会按照需要来选择
|
17
solaya 2016-07-07 14:46:43 +08:00 7
去年毕业,前几个月换工作基本都问这些,然而进去之后,并发量用手数。
|
18
3dwelcome 2016-07-07 14:51:25 +08:00 via Android
哈哈、顶楼上的并发量用手数。脱离实际的伪需求都是耍流氓。
Mysql 默认最大连接数并发就 152 、也没见有人吐槽。 |
19
fakefish 2016-07-07 15:05:11 +08:00
我觉得这类问题离不开缓存,加 redis ,静态化,高并发用 node , openresty 之类去解决一部分,站在前端角度看。
|
20
winglight2016 2016-07-07 15:14:32 +08:00
如果是招聘中高级程序员,我也喜欢问这种开放性问题——很容易看出面试人平时的积累和技术深度
|
21
SlipStupig 2016-07-07 15:37:29 +08:00
简单一句话特别能忽悠:“分而治之!”
|
22
wy315700 2016-07-07 15:38:50 +08:00
百万级别基本上索引做好就没问题了
|
23
boyhailong 2016-07-07 16:05:36 +08:00
@jayki 猛一看 还以为是我自己 醉
|
25
HarveyDent 2016-07-07 18:11:41 +08:00
就是问问而已,你答不上来才好给你砍价啊。
|
26
wdlth 2016-07-07 23:08:14 +08:00
先问问他们买不买得起百兆独享,用不用得起按带宽收费的 CDN ,烧不烧得起 SSD 阵列?
如果他们只买台 1 核 1G1M 的〇〇云,那还是快走吧。 |
27
publicAdmin 2016-07-08 03:36:14 +08:00
换个角度想想,其实这一套流程里面涵盖的技术项真心很多,也算是对求职者本身技能储备的一个考量吧,个人理解是这样。不一定说每个公司都会有这种场景存在,但是如果有自主学习,就当目前互联网应用居多的现状下,确实这算是一个很热门的话题。就好比很多年前,去每个公司,开口闭口就是谈谈 SSH ,谈谈 MVC ,谈谈设计模式。
|
28
zlawliet 2016-07-08 07:42:15 +08:00 via iPhone
说明你简历有问题或者面试公司招聘岗位不对口
|
29
sunshinez1128 2016-07-08 08:55:27 +08:00
其实这种问题应该是面试者想考验应试者的综合处理和分析问题的能力,以及基础知识是否熟练,他们想要的是你的分析问题的思路,比如高并发情况下问题到底出在哪里,业务系统瓶颈,后台瓶颈,网络瓶颈,然后分不同的场景给予一定的解决方案就可以了,并不一定要求你做过,比如后台瓶颈的话,要先分析用户的访问规律以及业务特性,然后考虑缓存是否可行,等等,你只要把思路说清楚就行
|
30
customer 2016-07-08 09:04:41 +08:00
|
32
Jakesoft OP @sunshinez1128
@publicAdmin @customer @sfree2005 @lecher 感谢你们提供的一些见解,从你们的 reply 中我也总结了些浅显的经验,即,不要被一些你觉得陌生的问题、哪点唬住,中高级开发者这些问题就算没有遇到过,但至少听别人谈论过,那么至少可以自己模拟这种场景,自己想出解决办法; 做一个有准备的人。 不要满足于现状。 |