g*******y 发帖数: 1930 | 1 write clean code很重要
变量名可以用缩写,或者有些时候简单的a,b,p,n,m这些
注释一般不需要了,你口头跟面试官讲出来就好了,当然你也可以事先跟他说好“为了
省些时间就只讲解
不写注释” |
|
j*****g 发帖数: 223 | 2 大哥,
1)能不能用点通俗的变量名?haystack/needle俺看不懂
2)matchdots,你是不是肯定text和dstr的长度一样?一个简单的字符串比较写成这样
,会不会out of bound and access violation呢?
3)strstrwilddots没有error/NULL checking
4)matched好像一直在++,怎么后面的比较都是matched == 1?
5)你的解答好像有点文不对题?说的是一个pattern能不能match整个string, 不时一
部分.
不过大概的意思我看懂了,是这个贪心算法. |
|
j********x 发帖数: 2330 | 3 变量名上单词就好了,缩写容易搞混,面试官打字的速度应该都够快。。。 |
|
M*****e 发帖数: 568 | 4 这个变量名已经说得很明确了,
ones就是所有出现过一次的,所以每次更新用xor (注意后面去除了三次的)。
twos就是出现过两次的,更新的意思就是如果当前数b[i]在ones中存在, b[i]&ones,
就加到twos里面。
three就是一次和两次都出现过的,所以要从ones和twos中每次去除, & not_threes |
|
h**k 发帖数: 3368 | 5 那个是变量名,一般只是为了使用/记忆方便,没有实际意义。 |
|
E*******0 发帖数: 465 | 6 输入n=2^k,变量名是input.Text
首先,我用递归得出矩阵A,然后把它打印出来。
我再来写个n*m矩阵的打印。 |
|
o***d 发帖数: 313 | 7 看板上的总是不同种的说法,我觉得起个变量名挺好的 |
|
p******9 发帖数: 47 | 8 这题可以转化成 在N个数的环形数组中取不相邻的N/3(上取整),使这些数和最大。我
们可以证明任意这N/3个不相邻的数,必然能对应一种符合原题的取法。
可以用数学归纳法证明这个问题,为了方便,重新定义一下变量名,另M为我会取得到
的比萨数,则N有三种情况,即N=3M - 2 , N = 3M - 1, N = 3M,我们只证明N = 3M -
2这种情况,因为这个时候若能取到,N= 3M - 1或N = 3M 的时候肯定能取到。
(1)基础条件:若M <= 3,我们可以枚举证明以上命题成立。
(2)假设M的时候成立,我们证明M + 1的时候也成立。在M + 1的时候,将会有N = 3
(M + 1) - 2= 3M + 1块比萨。而此时M + 1块比萨之间互不相邻,则在这M + 1块比萨
间将会有M + 2个槽(考虑到比萨时环形的),我们将剩余的2M块比萨放到这M + 2个槽
里,因为M >=3,基于鸽笼原理,必定会有两个比萨落到这个槽里。此时整个序列的形
状如下所示:...PXPXXP... 。我们取定中间的那个P,则对手取定旁边的两个X,形状
变成...PXP...。这个时候问题变... 阅读全帖 |
|
d**********o 发帖数: 11 | 9 那电面的时候写起来不是很丑吗?
特别是变量名,会被自动文本检查当成拼写错误,下面给加上波浪线,看着难受。 |
|
z****e 发帖数: 54598 | 10 增长太快了
list吃不消了
你把以前所有的string全部记录下来是为了什么?
我的imac可以跑到33个
另外变量名不要大写开头,大忌
follows: |
|
d***n 发帖数: 832 | 11 我觉得一个主要原因是现在网上搜到的
面试题的解法大部分是在学校的同学写的
有工作经验的写code牛的如版上几位大牛
要么没时间,要么有时间公布的code也有限
在这种大环境下很容易走向学院派
这种code给有经验的面试官的印象都会比较差
觉得你就是刷题出来的,别的都不会
我顺便提一个学院派风格特点,就是变量名用单字母 |
|
z****e 发帖数: 54598 | 12 rule of thumb
变量名大写开头一样可以编译通过
但是便于他人阅读
大写开头留给最重要的Class
没有任何一个东西重要性超过类本身
没有类就没有oop |
|
m****i 发帖数: 15 | 13 找工作期间在本版潜水两个月,收益良多,发一下最近面经和经验作为回馈。
本人背景:美国不错学校电子PHD即将毕业,专业是EDA做电路设计算法优化。因为EDA
已经是一个很稳定的工业,没什么太大的前景,随想转到前沿的tech公司。本专业只投
了一家现在最大的公司,拿到offer。别的投了Google, Facebook, Rocket fuel,
Twitter, Linkedin, Yahoo, Amazon, Box, Oracle. 除了box别的都找人refer了, 在
此感谢板上大哥们的热情帮忙. 除了GFR别的都没理我,可能背景差太大了。
因为之前是学算法的,mit算法书以前就看过两遍,基础还可以,前期8月份刷了遍
leetcode。然后9月初投出简历。两个星期刷Career cup 150, 最后面试期间一直查缺
补漏。到现在尘埃落定大概两个月。 最后GFR全挂,总结下惨痛经历:
1. Facebook电面
面试官做distributed cache infrastructure的,先问我最难的project,没怎么好好
准备过behavior,胡乱说了一通。但是因为做的是电... 阅读全帖 |
|
m****i 发帖数: 15 | 14 找工作期间在本版潜水两个月,收益良多,发一下最近面经和经验作为回馈。
本人背景:美国不错学校电子PHD即将毕业,专业是EDA做电路设计算法优化。因为EDA
已经是一个很稳定的工业,没什么太大的前景,随想转到前沿的tech公司。本专业只投
了一家现在最大的公司,拿到offer。别的投了Google, Facebook, Rocket fuel,
Twitter, Linkedin, Yahoo, Amazon, Box, Oracle. 除了box别的都找人refer了, 在
此感谢板上大哥们的热情帮忙. 除了GFR别的都没理我,可能背景差太大了。
因为之前是学算法的,mit算法书以前就看过两遍,基础还可以,前期8月份刷了遍
leetcode。然后9月初投出简历。两个星期刷Career cup 150, 最后面试期间一直查缺
补漏。到现在尘埃落定大概两个月。 最后GFR全挂,总结下惨痛经历:
1. Facebook电面
面试官做distributed cache infrastructure的,先问我最难的project,没怎么好好
准备过behavior,胡乱说了一通。但是因为做的是电... 阅读全帖 |
|
|
w*******u 发帖数: 10 | 16 一月初申请的,一天后就有回复。
好不容易得到的面试机会,没有立刻book店面(本人高能物理PHD,还没毕业,去年下
半年决定找马工工作;自己觉得博士期间科研干得不错,也做很多coding和大数据处理
,可惜只有FLG理我,而且由于初期准备不足,都挂了)。
上周第一次店面,和面试官聊得很好,题目比较简单,水过。 具体如下:
1. leetcode那道soduku solver
2. 写个数据结构,完成各个member function,什么set, get, insert,delete啊
面试完基本上十分钟内就收到回复,说进入第二轮。
第二轮是一个女面试官(他家就那么几个人,只能说这么多了)。google-hangout老连
接出问题(不得不抱怨,更新后的g-talk不给力啊!),折腾了半天,原计划4点开始
的店面拖到4:20。后来无奈之下转投skype,开始:
1. 聊了半天我得背景。前两天刚看别人经验贴,说是要好好利用暖场时间,于是
就聊开了;从后来结果来看,在这个上面花时间有点长了,不如直接上题。
2. 给一个文件,中间有若干A,B string,找... 阅读全帖 |
|
p***e 发帖数: 111 | 17 就我一外行来看,你这个不是dp呀。这个不就是O(n^2)的暴力解法嘛。不能因为变量名
字是dp,就叫dp算法吧。
>=><= i;="" j++)="" {="" :="" if="" (dp[i-j]="" &&="" (dict.find(s.substr(
i-j,="" j))="" !="dict.end()))" {="" :="" dp[i]="true;" :="" break;="" :=""
}="" :="" ...................="">=> |
|
f******h 发帖数: 45 | 18 也找工作了一段时间了,从版上学了很多,上周G家面完了,求个bless。
之前的一些都挂了,还在继续找其他的。等定下来之后一定发面经回报本版。
谢谢大家啦!!
1. http://www.mitbbs.com/article_t/JobHunting/32005597.html
1) Implement a simple calculator (+,-,*,/);
2) Implement "+1" for a large integer;
3) How to match Ads to users;
4) How to extract useful information from a forum webpage (list all
kinds of useful signal you can think of)
5) How to detect the duplicate HTML pages (large scale);
6) Find all the paths between two places on Google map;
7)... 阅读全帖 |
|
q****F 发帖数: 51 | 19 多谢了,很有道理,还有我发现变量名起短一些也比较好。 |
|
s**x 发帖数: 7506 | 20 差不多,numDigit1 变量名太长,面试只写最后那个函数就够了,如果用pointer
reference 代码可能更短些。 |
|
c*****w 发帖数: 50 | 21 来自主题: JobHunting版 - G电面面经 变量名没用好,这里的x y不对应原题的x y
[发表自未名空间手机版 - m.mitbbs.com] |
|
j*******p 发帖数: 73 | 22 除非你c/c++/java已经用的很纯熟,或者被要求用,否则我建议用简洁的语言,比如
python或ruby。已经遇到不少面试者由于语言繁琐或不熟而浪费时间和错误百出,本来
可以在规定时间写完的,结果越到后面越慌。
比如hash和tree等是非常容易用到的数据结构,如果是python都用一个dict就解决了,
不用像c++一样去考虑模板、指针、定义struct、初始化等等,更不像c连hash都没有。
我们公司对面试的要求是白板上的代码能直接编译通过,所以每个语法细节都要注意,
包括每个符号、缩进。最好别写pseudo code,除非面试官允许。但写python要特别注
意缩进,实在不行用虚线align一下。简单而繁琐的函数可以留到后面来写,先完成最
重要的主干。
此外,命名也很重要,不要都是foo、bar、a、b,而是一看就明白的函数变量名,可以
缩写,如curr_node, revertStr,写一点注释肯定有帮助。 |
|
n******n 发帖数: 12088 | 23 上面的代码也就那样。可笑的是小印电面时直接抄上面的答案,只改变量名,代码更烂
了。 |
|
n******n 发帖数: 12088 | 24 这个版本好得太多。如果直接用iterator,变量名更可读,那就更好了。 |
|
t*********r 发帖数: 387 | 25 现在人面试的都懒得刷题了,不熟的人找REFER的时候都好意思直接张口要题库
怪不得现在tech interview都是八股文,出个题人家搜搜搜给你一字不差的把题库原答
案给你背出来。有点自觉的还给你变个变量名什么的,有的奇葩还把注解给你原汁原味
的秀出来
下个趋势会不会是要面试之前一天找面试官送红包请吃饭什么的 |
|
x*******1 发帖数: 28835 | 26 抓了好几个直接google抄答案的了, 经理答复都是永不录用。 改变量名没啥用。 |
|
j******n 发帖数: 8 | 27 其中一个bug是变量名搞错了, 我在查bug的时候面试官很nice的提醒了一下, 找到后纠
正. 另外一个是少了一个null check, 自己找到的bug, 但是面试官有提醒有bug |
|
w******e 发帖数: 1621 | 28 人种
(1) 烙印是真多,不过还没有和烙印有过太多交流,
(2) 一个巴基斯坦人(当我mentor)挺挫, 完全没看过的paper和我说的时候装成专家,
露馅之后,转身就敢去忽悠别人,扯“他的”发现, 而且爱舔manager
(3) 加拿大人人品差,几年前去加拿大玩留下的映像 被重新体验了下
(4) 老中还是好,但是外F真是不把自己当中国人
工作
(1) coding style就是个joke.培训狂强调的东西, 到了实战完全不存在. 一个file里
放1万行spaghetti code, 几乎没有comment, 变量名大多是 c, f, s 之流, global
function放几百个, global variable放几百个. 不知道这种问题普遍么, 应该是组里
水平不行。
(2) 被分到的一个project貌似是个破皮球,有人进组就丢给他。两个月前,老巴进组
的时候丢给了老巴,现在丢我了。
(3) 新人被排挤, 好几次3人一起讨论问题,进组早的(也就是个小兵)根本不鸟你 要说
啥都是通过老巴传话。当你只听得懂咖喱英语一样 |
|
g******n 发帖数: 10 | 29 你是说 timestamp, ip, thread_id 这些变量名后面加括号吗?这个就是个伪代码,看
看就好了 |
|
d********w 发帖数: 363 | 30 http://zhuanlan.zhihu.com/donglaoshi/19949853
笔者之前在LinkedIn做技术工作同时,也花了不少时间在招聘上,成为了当时LinkedIn
前三的面试官,包括挖掘候选人,参与校园招聘,草拟面试题,电话面试,Onsite面试
,填写反馈,和最后决定是否发放Offer,都有完整的流程和经历,我就按问答形式给
大家借鉴。这里也推荐一下我的新书:程序员面试白皮书(An Ultimate Guide to
Coding Interviews),有任何建议意见,请不吝赐教:)
问题:硅谷公司的招人的渠道有哪些,跟国内有何不同?
一般公司都有自己的Refer和面试系统,HR人员寻找候选人,在LinkedIn上就有丰富全
面的简历库,通过对毕业学校,就职公司的过滤去挖掘潜在员工。还有一些高水平的学
术会议,工业界愿意支持和参与,像SIGMOD,VLDB顶级数据库大会;也喜欢举办公开技
术讲座,邀请社会各界参加,注册时留下联系方式。或者写一些技术博客,开源产品,
通过他们做的有意思的项目来间接吸引人才。有时也举办一些hackathon比赛,24小时
做出一个... 阅读全帖 |
|
m*******e 发帖数: 361 | 31 今下午面了个小印,uiuc的cs本硕,按理背景不错
用在线编程软件做的,可选语言,需要编译
他选了c#,第一小问相当简单,结果先想了O(n)的,提示过才知道可以log n
第二小问比较复杂,用c#鼓捣了十分钟就要求换到c++,我感觉很奇怪,template加上他
自己代码50行了,谁会浪费这时间。我没有c++ template,但是他有如神助啊,敲代码
跟聊天一样。实在忍不住上个厕所回来,他已经敲完了。
我就奇怪了,刚才还磕磕碰碰现在怎么这么猛。看到个变量名很有个性,于是直接搜索
这一行,哈哈马上在yahoo answers找到了,全部是抄的
我故意装作不知道,让他编译。这下难道他了,抄的代码缺点细节,就是通不过。他很
牛啊,说这是在线工具的问题,我都给他指出语法问题了,他还是改不完。最后她写不
完,我给了strong no。面我们fraud组居然作弊,品格就不过关
大家以后电面可要擦亮眼睛 |
|
m**e 发帖数: 150 | 32 aaa 写成 aa不算bug,尤其是变量名很长的时候,写错一个字母没有人会在意。
如果需要经常从头删除,从一开始就要避免用数组,或者在数组尾部操作,否则你写的
bug free也fail了。
:1。写程序时应该先保证运行结果正确,还是应该先保证算法高效?
:比方说我用数组a实现一个队列,我可以让队列的头在a[0],然后用index |
|
c*******0 发帖数: 162 | 33 别客气,没错。真不是个好习惯,就算平时工作,边写边调试也不是好习惯。另外,
mage说把aaa写成aa不算bug, 因为面试官可能也看不出来。我不这么认为,有些公司是
在线系统,需要你运行程序。显然写错一个变量名肯定是通不过的。 |
|
M***6 发帖数: 895 | 34 那万一人家就是那种从小被欺负到大,然后工作很努力,结果还是被放pip的呢?
刚开始对一个系统不熟悉,会不会有些方面没有详细的文档,或者code不规范,比如你
猜不到他这个变量名或者函数要干个什么,还必须得问人的情况?
你说的这种人当然有,但我觉得CS且找到了工作的里面这样的女生应该不多。 |
|
u***8 发帖数: 1581 | 35 改变量名,这个reviewer之前也做过类似的事情哦。 |
|
e*******s 发帖数: 1979 | 36 我一直觉得牛人到哪里都牛的看法
不能说完全不对 但是大多数牛人 都还是牛在自己的那一小块砖上
经济学的教授搞砸公司屡见不鲜 cs phd写代码像一坨翔也俯拾皆是
(这里特别说明下关于cs phd, 比如之前在看一些deep learning的code
J Hinton的学生写的代码 就有特别想扇他耳光的冲动 满屏幕都是xxx做变量名
反观比如caffe的代码, 一个人写出的十几万行, 简洁明了, 架构清晰,
他的作者现在好像就在G做马工)
同样是PHD 说不清楚谁能更牛 但是去开公司说不定都不行 |
|
l****u 发帖数: 1764 | 37 typo应该没有问题,比如你把变量名start拼成了stat,只要大意没错,面试官应该不
会挂了你
但如果你把i写成j了,可能就有问题了
况下 |
|
c********t 发帖数: 5706 | 38 typo肯定没关系。变量名还是简单点好,白板写得慢,空间又少。
况下 |
|
d****e 发帖数: 13 | 39 当年实习的时候看一位三哥仁兄写的代码,变量名一律a1 b1 c1,
几年过去了,不知道这么三哥仁兄能不能成长到20分。 |
|
t***9 发帖数: 5 | 40 也许不相关。。。
内推过一个朋友的朋友进自己的组,进组之后,作为组里不多的两个中国人,加上内推
的关系,经常要解决他的各种不过大脑的问题,帮忙debug半小时发现是变量名typo之
类的,不胜其烦。。。我还有自己的东西要做。。。
确实没啥难的,我也不是不愿意帮忙,但是人家就是不想好好学有啥招。。。经验教训
,以后不是特别知根知底的绝不内推刀自己的组 |
|
p*********g 发帖数: 2998 | 41 做完了可以再刷一遍, 是否最优解, 是否可以在15分钟里, bug free写完, 是否可以用
不同方法实现, 变量名是否合乎规范,等等 |
|
t*******r 发帖数: 22634 | 42 哈哈,程序 OK 了。接小孩去了。。。
写了两个变量名的 typo,导致 debug 两次,不过还好,一小时搞定。。。 |
|
t*******r 发帖数: 22634 | 43 说句大实话,惨烈多半是对 peer pressure 高的父母而言。美帝无论公立
私立小学,都不提倡考试成绩的攀比,私立小学尤其不喜欢攀比。
高中不知道,可能为了考大学,也不能一点压力都没有。。。
娃做错题目,跟娃讲讲不就完事了。大人写算法就不犯错么?俺随便写个简单
graph 算法,死循环死递归三次是常有的事,敲错个变量名,写反一个条件
啥的,破机器就死在那里。。。自己都这样,也不好意思要求娃啥。。。当然,
本版有数学牛人。。。另说。。。 |
|
T****i 发帖数: 15191 | 44 【 以下文字转载自 Military 讨论区 】
发信人: Demchugdongr (希賢), 信区: Military
标 题: 技术领域搞年轻化,是中国特有国情
发信站: BBS 未名空间站 (Thu Apr 20 05:03:32 2017, 美东)
技术领域搞年轻化,是中国特有国情
比如华为的研发,就被业内称作 一靠买 二靠偷
买回来 偷回来,加班熬夜拼命改
改么,毕业生就可以干这个活,其实华为最早搞程控交换机,就是一帮毕业生改,
改的是私下途径弄来的
这种情况下,确实不需要有经验的技术老员工
============================
华为搞网络通信路由器,买(偷)了cisco的源代码,然后北研所的一帮毕业生通
宵达旦的改出来
比如把cisco改成huawei,把文件名改,把函数名称改,把变量名改
事隔多年后,北研所所长写文章承认了这件事情
==============================
谷歌是个年轻的公司
但谷歌里面50多岁 60多岁的工程师比比皆是
一个公司在技术领域搞年轻化
只能说明,它的核心技术,不是买来的,就是偷来的
比如阿里巴巴的核... 阅读全帖 |
|
y*j 发帖数: 3139 | 45 芯片设计也抄,大家引以为豪的天河超级计算机的国产芯片用的是Dec alpha, 和Sun
SPARC 免费开源的芯片设计。估计中国一边用,一边笑话美国人都是大傻瓜。
:【 以下文字转载自 Military 讨论区 】
:技术领域搞年轻化,是中国特有国情
: 比如华为的研发,就被业内称作 一靠买 二靠偷
: 买回来 偷回来,加班熬夜拼命改
: 改么,毕业生就可以干这个活,其实华为最早搞程控交换机,就是一帮毕业生改
,改的是私下途径弄来的
: 这种情况下,确实不需要有经验的技术老员工
: ============================
: 华为搞网络通信路由器,买(偷)了cisco的源代码,然后北研所的一帮毕业生通
:宵达旦的改出来
: 比如把cisco改成huawei,把文件名改,把函数名称改,把变量名改
:.......... |
|
y*j 发帖数: 3139 | 46 腾讯的QQ当年也是偷来的。
:【 以下文字转载自 Military 讨论区 】
:技术领域搞年轻化,是中国特有国情
: 比如华为的研发,就被业内称作 一靠买 二靠偷
: 买回来 偷回来,加班熬夜拼命改
: 改么,毕业生就可以干这个活,其实华为最早搞程控交换机,就是一帮毕业生改
,改的是私下途径弄来的
: 这种情况下,确实不需要有经验的技术老员工
: ============================
: 华为搞网络通信路由器,买(偷)了cisco的源代码,然后北研所的一帮毕业生通
:宵达旦的改出来
: 比如把cisco改成huawei,把文件名改,把函数名称改,把变量名改
:.......... |
|
k******s 发帖数: 506 | 47 尼玛学生有代码一模一样就只换了个名字的,这TM真不能忍。把变量名删掉几个字母都
懒得算抄袭。 |
|
|
u****e 发帖数: 175 | 49 在PHP中可以这样:
print ${'var'.$number};
?> |
|
p**2 发帖数: 613 | 50 单纯从你说的情况来说,应该是3个方面的问题
#1 你写的不够好。
#2 别人写的不够好,没有对你产生的exception做处理,所以才会被你的模块影响到了
#3 最重要一点是你们的leader developer做得不够好,居然允许模块之间互相可以影
响到。
相对书籍来说,我个人感觉还是参考别人代码速度更快。
但是对新手来说,有一种常见情况
就是拿别人的代码过来,在没有100%理解的情况下
改改变量名,添加几个功能,UI改改就上了。
那就很危险了。。。
我个人建议不是看书籍,
而是你参考任何人的代码的时候,都要彻底理解所有的代码,以及他为什么这么写的意
图。
举个例子,
比如码农A做项目A的时候,把所有数据都拉出来带着走。
然后你一看真方便,随时可以用,不用老去I/O。
然后你做项目B的时候,你也学他,把所有数据都拉出来带着走。
结果项目B毁了。。。
也许你们俩都没错,
但是项目A可能是内部应用,一共就10个人用,
码农A为了节约时间,不搞那么多防范措施,也没有做traffic的控制
然后项目B是一个popular的public app,
然后你就被kick ass了。。
再说得通俗一... 阅读全帖 |
|