首页 > 杂项资源, 程序设计, 职场生涯 > 挑战无处不在

挑战无处不在

2012年4月17日 发表评论 阅读评论 33,574 人阅读    

面试过一些应聘者,当我问到为什么换工作的时候,他们都会告诉我,现在的工作没有挑战,无聊,所以想换一个有挑战的工作。于是我问了一下他的工作情况,发现那些有挑战的东西他还没有搞懂。我总是为有这样的认识的朋友感到惋惜,因为我总是认为有挑战的东西无处不在啊,不能因为工作上没有,自己就放纵了自己。比如,面试过一个做地图的工程师,他的工作是做计算地图上任意两点的最短或最优路径的一部分功能。我觉得这个事很有挑战,也有难度,应聘者说,没什么挑战,因为他做的东西只是调用相关的算法库。他在这个项目干了2年了,当我问他有没有看过算法库,知不知道地图是怎么存储的?他却告诉我,因为没有去做,所以就没有去了解,等做的时候再了解(我希望有这样想法的人都去看看程序员的谎谬之言还是至理名言?)。这样的例子很多,很多应聘者在面试中不能和我一起解决某个问题的时候,比如:OOD,数据库设计,系统设计,等,他们都会告诉我,不好意思,因为没有做过相关的事情,所以就不懂了,所以,他需要一个像我们这样的项目来学习和锻炼。我并不要求你能解决你所不擅长的问题,但毕竟数据库,OO,系统设计都是软件开发的基础知识,多少要懂一些吧。

但另外一方面,他们都会告诉我他们对技术充满和热情和兴趣,有着很强的学习能力,也有很能吃苦的态度。这也许是某面试宝典上看来的,面经上可能都会说,如果面对不能作答问题,可以说一下自己的态度和决心。可惜的是,我并不这么想的,我在我的两篇关于招聘的文章里(我是怎么招聘程序员的再谈我是怎么招聘程序员的)都说过一些我对如何择人的想法。这里重点说明一下其中两个观点:

  • 关于热情和态度,说白了就是不要给自己找借口。比如:“工作忙事多没时间学所以可以不懂”,“工作中没用到所以可以不懂”,“工作没有挑战,一直没有遇到合适的项目”等等。时间可以挤,工作之余可以学,随时随地去思考,挑战是无处不在的…… 想想那些你有热情的事,你会发现,几乎没有什么可以阻止你去做那些事。
  • 对于某些事情,如果以前没有在你身上发生过,那么这个事情在未来也不会发生。如果你以前没有对你接触过的东西去学习,去深挖,去思考,去改善,那么我不会相信你会在未来面对新的东西的时候也会有这样的态度;如果你以前没有用业余时间学习一些项目之外的东西,那么我也不会相信你会在未来会这样做;如果你以前没有把你的热情和态度转换成你的知识,经验和成果,那么我也不会相信你会在未来能做到。

这两个观点可能太刻薄了,但是,当我回想我自己的经历的时候,观察程序员的成长过程的时候,我发现,优秀的程序员都是相似的,当他们还在是一个菜鸟的时候,就已经有各种成为高手的苗头了,这些苗头就是——他们热爱思考,喜欢解决难题,对新鲜事物非常好奇,总是找人讨论,可以用自己的业余时间狠命研究很多和工作无关的技术,会在业余的时间里写些有趣的小程序,或是会把自己的思路书写下来,等等,等等

一些问题

我这样说,大家可能会觉得“挑战无处不在”这句话太虚了,而且可能不明白什么叫“热爱思考”,这里,我把我的或别人的思考的东西罗列一下,这些问题,有的会让我思考推敲,有的会让我疯狂地查资料,问人,或是找人讨论,询问。大家不妨可以跟着我一起思考一下。

酷壳上有一些小问题,比如:火车运煤问题赛马问题,这些问题都不够实际,我觉得也这些问题有点无聊,我们不妨观察一下我们身边的东西,我们就可以看到很多有挑的战的东西,对于这些问题,如果是你来做,你会怎么做呢?

0)许多年前,当我看到珊瑚虫QQ把IP转成地实际地址的时候,我就在思考,如果我有一个IP网段的数据(全球IP地址数据),我怎么来完成这个功能呢?比如:某地点的IP网段是:10.10.1.* – 10.10.5.*。我要有一个IP地址是:10.10.3.20,我怎么匹配这个网段?用Hash表吗?好像有问题。把IP字串转成整型?排序+二分法,好像更容易解决一些,但是如果有一些修改的话好像有点不方便。用树型结构(森林)会不会更好一些呢?如果我要通过地点反查IP段呢?

1)网上短网址服务,你有想过这个短网址生成的算法是什么,如何能做到能最短?怎么查询?你也许觉得会用key-value的NoSQL。那么,如果对于同一个URL,如果要重用已生成的短网址,你怎么用key-value的NoSQL来解决?

英汉词典的检索和这个很相似,如果通过英文查汉语,又通过汉语查英文?如果是N多种语言的互相翻译呢?你的数据存储和检索如何做呢?

2)当我看到Dropbox这样的云同步的软件的时候,我不知道你是否会和我一样会去思考,在多个设备间的文件同步是怎么做的?如果网盘上有几万,甚至几百万个文件,当要和我的本地数据同步时,他如何比较经济地知道哪些文件更改了?需要向服务端同步或是向客户端同步。更进一步,你有没有想过没有中心结点的文件同步问题?你有没有想过,文件冲突的问题?

3)我们的新员工入职的时候,有一些公司会给新员工的帐号生成一个随机口令,然后新员工可以在登录后修改口令(我一直在想我们的银行应该为用户生成一个随机口令,而不是设置一个6个0或是6个8的初始口令)。那么,对生成随机安全口令的算法知道怎么做吗?如果你写出这个算法来了,你怎么证明这个算法是足够随机,生成的密码强度足够大的?(你会发现,测试口令是否随机是否安全的程序,会比生成器更难写)

4)关于动态密码RSA SecurID(如下图),这个小设备上的6位数字会每60秒变一次,在你登录的时候,需要输入这6位数字,服务器上会认证这6个数字,那么这个事怎么做?再试想一下,这样的小设备我要发给我的客户,我希望我的每个客户都使用不一样的随机算法,就算是算法一样,算法的种子也不能一样。那么,如果我的客户一共有百万甚至千万,我的服务端怎么管理这些用户的SecurID?

5)看看我们的网银或是ATM的用户登录功能,如果你登录时输错口令超过3次以上,你的帐号就会被冻结,需要去柜台重置口令。这个功能看上去很安全,因为可以防止黑客在线尝试破解你的登录口令。不过这又带来了另一个问题,如果有一个恶意用户知道你的卡号,他就上网或是造个卡故意输错你的口令,导致你的帐号被冻结,让你一次又一次地去银行排队重置。面对这样的情况,你该怎么解决?

6)当你在网上购物的时候,你会去一些电子商务的网站,这些网站都会对他们的产品进行分类,有大分类有子分类。你进到分类后,你可以通过不同的属性来过滤不同该分类下的商品,注意,不同分类下的商品的过滤属性不一样,如,手机分类和电视分类的属性都不一样。试问,你如何设计你的数据库表结构?

7)当你在泡各种论坛或SNS社区的时候,你会看到,用户在互相回复的时候存在一个问题,尤其是用户量很大的时候,大家的回复完全交织在一起什么 也看不清楚。以前有的论坛使用树形列表来解决这个问题,树形列表好是好,但是把一棵大树放在那里还是很难看。Twitter.com给了一个非常不错的解决方式,就是所有人的回复或是回复的回复都按时间线放在一起,如果你要查看某回复的上下文的话,点击一下这个回复就可以看到了(我在我在“国内微博和Twitter的最大不同”中批评过这个事)。新浪微博在禁评论事件后也开发出了这个功能。你知道这个事怎么做吗?

更进一步,新浪微博的设计上有很多的缺陷,单说新开发的“查看评论”功能这个事来说,还是不完美,因为某些评论会随着转发带到别的地方去,他的“查看评论”功能只能看到当个贴子下的东西,不能把所有转发出去的贴子的评论一起综合起来。虽然这对于用户使用来说没有什么在不了的,但是对于软件设计来说,我们不妨做一个练习,可以思考一下,怎么样设计会更好。

再举一反三,有时候,我发现多个网友会提出同样的问题,我很想用一个回复同时回复他们。如果有这样的功能的话,我们的回复就会从一个树形变成另外一种形状了,我们又该如何设计才能支持这样的功能呢?

8)说到新浪微博,我就想多说几句,我最近观察到了两个事:

  • 一个是验证码的事,如果你在你的帐号设置里设置了“登录需要验证码”,你会发现,在登录新浪微博的时候,仅当你输对了口令后,系统才会提示你输入验证码。为什么呢?因为,这个“登录需要验证码”这绑定在你的帐号设置里的,所以,要取这个设置,就需要你登录成功(?!),老实说,这个功能在设计上有点二(中国特色)。如果是你,你怎么设计呢?
  • 另一个事情是新浪微博或Twitter的用户名修改后,被他人@过的信息就再也链接不到你这里来了。我们来试想一下,如果是你,你怎么解决这个问题?(我的我的微博里讨论过这个事,不一定对,供大家参考)

9)我有时候我会发一些快递,有时候是一些小东西,有时候是一些大包裹,有时候近,有时候远。我发现一个有趣的现象,就是快递员来收件的时候,快递的价格都是快递员自己说了算的,我还可以和他们砍价。我观察到他们会以距离,重量大小来订价。于是我在想如果你要运营一个物流公司,你作为这个物流公司的程序员,你需要开发一个软件来标注快递价格,你会怎么做?比如,这个快递公司会说,在北京五环以内是一个价,以外是一个价,出省后,上海以北是一个价,上海以南是一个价,等等,这只是北京的,如果把全国的各个城市到别的城市的价格都考虑进来,还要受到重量,体积,价格,是否加急等等因素的影响,你的数据库设计要怎么做呢?

A)国内的水军太恐怖了。他们活动的刷排名,刷信用,刷积分,刷粉丝等等地方,你是否想过如何解决这个问题?还有广告联盟的欺诈问题,等等。这些东西,有的还是可以通过技术手段进行限制和计算的,你有思考过应该使用什么样的方法吗?

B)说到水军就不能不提垃圾邮件和垃圾短信。你有没有想过邮件系统怎么过滤垃圾信息的?

C)关于推荐功能,这必然是一个热点,这是软件产品从request -> response的被动方式到主动方式的进化。微博上有推荐关注者的功能,电商有推荐商品的功能,豆瓣上有推荐影片音乐书籍的功能。不同的领域的推荐算法各不相同,你有没有思考过,如果是你来做推荐算法的时候,你会怎么做吗?更进一步,推荐通常伴随着学习和匹配,学习用户的行为,匹配相似的东西,你想过怎么学习用户的行为,怎么匹配相似的东西了吗?

D)关于微博,某名人有几千万的粉丝,当这个名人发一个微博的时候,需要通知这几千万个粉丝,这个在系统架构上应该怎么做?如果某天这个名人与人发生口角,和人吵架,拼命的刷微博,那么,系统架构要怎么设计才能支持这样的事呢?

E)想想火车票的分段卖票的方式,现有的解决方案是为每个站点预留票,于是我们可以看到火车始发时,有很多空坐,这些空坐都是留给下一个站点的,我们能否开发出一个系统来,可以把一条线上的这些这站上那站下的旅客统筹规划一下,制定出一个最经济的方式,让火车运行得更有效。

F)对于地铁公交网络,我们希望这个网络既能有更多的覆盖,又能节省路线,你能不能设计出一个系统,当我们输入一些数据(如:站点,是否终点或起点站,该站的下一站可能方向(多个),该站是以上车为主,还是下车为主,等等),你的系统能自动安排出各种线路吗?

这样的问题实在是太多了,都是可以让我们去思考的,并不一定有经济效益,但是至少可以让你锻炼一下怎么去分析问题,怎么去思考,怎么去解决问题

总结

综上所述,我想说的是:

1) 只要你想,挑战是无处不在的。那怕是你现有的觉得无聊的东西,只要你想做到极致,那怕是一个简单的功能(比如用户登录的功能)也会让你充满挑战。

2)观察身边的事物,去思考,去调查,举一反三,这才是你成长的源泉。不要把你的成长推给客观原因。

3)我的软件开发的三重门中说过,第三重门是解决实际问题,让你的业务处理更为的智能,更为地强大。我不知道为什么这一两年,我们的圈子里所有的人都在关注着“云”,“海量数据处理”,“高性能架构”这样的东西,尤其是那些性能调的高性能的东西并不很难,而这些更为实际问题更有挑战性,也更有前景。

(全文完)

(转载本站文章请注明作者和出处 酷 壳 – CoolShell.cn ,请勿用于任何商业用途)

——=== 访问 酷壳404页面 寻找遗失儿童。 ===——
好烂啊有点差凑合看看还不错很精彩 (51 人打了分,平均分: 4.86 )
Loading ... Loading ...
  1. ALiang
    2012年4月18日22:14 | #1

    非常认同,今天正好遇见一个
    我们的web工程师要做一个Android手机品牌和型号联动供用户选择,数据量比较大
    有一个现成的网站提供了比较全的数据 这个http://d.958shop.com/topic/android/
    他丢给我们Android组让我安排人帮他复制粘贴一下,弄成成他html js里需要的格式,像这样
    品牌0
    品牌1
    品牌……

    ["品牌0型号a","品牌0型号b","……"],
    ["品牌1型号A","品牌1型号B","……"],
    我,勒个去 这么枯燥的事最讨厌了,于是叫来了新招进来的2人,给他们安排了下
    于是半小时不到,第一个人完了,他用jquery读取html元素值的方式,第二个人写正则替换,我比较矬,写了个java读行替换

    所以呀 挑战无处不在,程序猿总这么小快乐。
    也正是看了陈浩老师之前的文章深受启发才招到这两个有趣的新人

    • 2012年4月18日22:34 | #2

      Java 搞文本处理很不爽的,要是用Python曾至Linux下的Shell会快得多得多。呵呵。Cool。

  2. 2012年4月18日22:17 | #3

    赞同,挑战无处不在

  3. ALiang
    2012年4月18日22:27 | #4

    < >
    < >
    ‹ ›
    /
    ‹ ›

  4. ALiang
    2012年4月18日22:33 | #5

    <option>品牌0</option>
    <option>品牌1</option>
    <option>品牌……</option>
    这样
    @ALiang

  5. AlexZhou
    2012年4月18日22:40 | #6

    楼主讲的很对,一般情况,我们没有这样的意识,所以无论什么样的工作,刚进公司的时候充满激情,一段时间后就觉得不过如此,再过一段时间就觉得浪费青春。到另一家公司也是如此,技术没有很好的沉淀,待遇跟不上,内心空虚,于是乎几年后怨天尤人,最后仰天长骂:fuck,苦逼的程序员,最终转行。好公司其实有很多,如果有能力人人都能上,你不上别人就上了。如果公司很坑爹,骂都不用骂它,直接走人,如果智商不是太低,其实最保险也一定能成功的做法就是:选一个不是太不靠谱的方向,坚持下去,一定能成为这行业的专家级人物。
    一个行业新人此刻的感悟~

  6. AlexZhou
    2012年4月18日23:17 | #7

    点击下方“订阅评论”的时候,出现了这个错误:
    This page contains the following errors:

    error on line 34 at column 16: PCDATA invalid Char value 8
    Below is a rendering of the page up to the first error.

  7. kenwell
    2012年4月18日23:42 | #8

    每个人看问题的点不同,你喜欢关注细节,但有的人就不一定。

  8. 老男孩
    2012年4月19日00:21 | #9

    我赞同博主的观点:挑战无处不在,但世上未知的事物是无限的,但你的精力是有限的,你把有限的精力奉献在无限的未知事物上,最终只有“精尽人亡”这一条路可走。所以我们做事要找准自己的方向,约束自己的思想,这样才能在某一点上发散出夺目的光芒。

    • 2012年4月19日10:16 | #10

      我也没说要挑战全世界,只是你在你喜欢的方向上或多或少是要面对挑战的,不是吗?!

  9. 老男孩
    2012年4月19日00:23 | #11

    @老男孩
    啊,少编辑掉一个“但”字

  10. 肥德勒
    2012年4月19日10:59 | #12

    还是喜欢听皓哥聊技术,好多要学习的啊,真不容易,哈哈

  11. 2012年4月19日11:45 | #13

    有道理,突然发现自己没事爱瞎想也是有好处的.
    不过我还要把想过的认为好的记录下来,不然忘了就可惜了

  12. crazysnail
    2012年4月19日11:53 | #14

    挑战确实无处不在,
    有技术上的,规范上的, 制度上的,人事上的
    那些常把没挑战挂嘴边得,是不是仅仅只是因为所谓的挑战并不是他所感兴趣的方面而已。。
    :)

  13. shuiren
    2012年4月19日13:43 | #15

    钻研是钻研,换工作是换工作。
    博主也提到了因兴趣去钻研,个人以为,钻研的动力无非就两点:兴趣 或 利益
    前者离不开新鲜感,感兴趣的领域很爽的去钻研,就是所谓的“挑战”
    任何领域任何环境都有挑战,话是不错,不过等于没说。因为同时,任何人对任意的一个领域,都可能确实完全没有兴趣。
    对于一个正在做着自己不喜欢的工作的人,想去换一份能做自己感兴趣的事情的工作,在博主看来就是不努力,不喜欢思考,看不到工作中“挑战无处不在”,在我看来,这太正常了,你怎么指望一个人在完全没有兴趣的领域里,去兴致勃勃的发现挑战?哪怕是有人根部不知道自己喜欢什么,那也不能对所有人,不管不问,直接扣个帽子“不喜欢思考”,扯淡不是。

    并且博主举得一堆的例子,其实范围相当的广了,有很多人的兴趣点其实很窄。现实中,有人就不喜欢写sql,不喜欢搞web,但就在苦逼的做网站;有些人只关注算法的理论,有些人只关注图形的技术,但现实中第一份工作还找了个做网站的,研究的东西同时不懂,管理层不理,在公司屁用没有,这样的例子多了去了。因兴趣练就的技能和才华施展不了,想换个有挑战的工作,怎么了?

    博主本篇中的思维,很中国特色。包括一些评论也是,“人要适应环境”,呵呵,所以,这片土地,总也出不了真正的大师,之篇文章,也算是能对这个现象做一个管窥吧

  14. 2012年4月19日15:40 | #16

    醍醐灌顶。别找借口了。一切皆有因。挑战无处不在。我现在遇到的挑战可能比较实际。就是部门间接口调用时的各种沟通问题。因为发布接口的那个人根本就不理解接口是怎么回事。希望皓哥能写篇文章分析一下。关于程序员的沟通问题。

  15. 小杨
    2012年4月19日17:18 | #17

    @陈皓
    同感,第一感觉就是怎么不用python呢

  16. 老男孩
    2012年4月19日19:56 | #18

    @shuiren
    说的不错,我前面要表达的就是这个意思,不过没你这么直白

  17. simonliu
    2012年4月19日21:10 | #19

    有同感。

    我也面到一些人,说遇到瓶颈了,学不到东西了,但是随便问问就知道,只是了解了一点公司技术体系的一些皮毛而已。

    我现在的公司规模不大,技术上也不是很赶时髦,但是我仍然发现,我可以在每天的工作中学习到很多。

  18. elusive
    2012年4月20日05:27 | #20

    @Yunfei1982
    你要是觉得自己可以做比这有意思的工作,那就转行。即使不转行,你平时没事的时候思考下这些问题练练分析能力不也挺好,又没让你把这些东西一个一个写出来。要是连这点觉悟都没有,那你还是老老实实每天处理文件,然后上网抱怨老板吧

  19. elusive
    2012年4月20日05:42 | #21

    @shuiren
    看文章都不仔细的人,说你什么才好。没有兴趣和没有挑战是一回事吗?你说的东西跟文章有半点关系吗?
    做什么不是最重要的,重要的是多问为什么。哪怕你只是个清洁工,上面的那些问题你也可以想想大概是什么原理。要是没有这样的好奇心,不肯动手,那你做什么都是这德行了,换100个工作也不过如此。

  20. IterZebra
    2012年4月20日10:44 | #22

    求推荐去亚马逊工作。QQ:642829312。

  21. kero
    2012年4月20日12:35 | #23

    ALiang :<option>品牌0</option><option>品牌1</option><option>品牌……</option>这样@ALiang

    正则式是绝对之选!!

  22. shuiren
    2012年4月20日13:38 | #24

    elusive :
    @shuiren
    看文章都不仔细的人,说你什么才好。没有兴趣和没有挑战是一回事吗?你说的东西跟文章有半点关系吗?
    做什么不是最重要的,重要的是多问为什么。哪怕你只是个清洁工,上面的那些问题你也可以想想大概是什么原理。要是没有这样的好奇心,不肯动手,那你做什么都是这德行了,换100个工作也不过如此。

    嗯,你看得仔细,你扫着地,想着上面的问题,还真都想明白了,然后想去换个做上面问题的工作,问你为什么,你说,”算了,扫地也可以挑战it难题,我不做it了“

  23. wehelpwe
    2012年4月20日21:58 | #25

    @陈皓
    Python + Beautifulsoup, 搞定很快。

  24. steven0lisa
    2012年4月21日13:44 | #26

    @陈皓
    用java加上jsoup还是很轻松处理的

  25. 2012年4月21日14:19 | #27

    挑战是无处不在,但我们需要做有意义有价值的挑战。
    如果某种挑战违背了人生观,价值观,那么他也就不在挑战范畴了。
    作者不能单纯从字面意义来理解面试人员的表达,他的话语中可能贯穿着更多人生观、价值观的更深层的含义。

  26. anfernee
    2012年4月21日16:56 | #28

    一个更正,twitter更改昵称,仍然可以在@中找到以前的tweet的。

  27. gqjjqg
    2012年4月21日19:35 | #29

    看到那个优秀程序的判断,我心中一乐。。。原来我还是有热情去学习其他事情的,,

  28. 至尊宝
    2012年4月23日14:44 | #30

    1

  29. arnold1024
    2012年4月23日22:05 | #31

    看到博主举的例子,感觉自己的生活浑浑噩噩,泛泛地活着,不过思路一下子打开, 原来还可以这样思考!
    把小事做好,认真钻研,还是很有成就感的!

  30. brainmix
    2012年4月25日17:20 | #32

    @wehelpwe
    python+PyQuery 更爽。

  31. neversellmysoul
    2012年5月6日12:34 | #33

    之前一直想诠释“挑战无处不在”这句话,不知从何说起,博主一下子就拨云见日了。佩服!

  32. 2012年5月7日05:59 | #34

    面试问题“你为什么要跳槽”本身就是一个让人撒谎的问题,而“我喜欢有挑战的工作”就是被面试者能给出的最好的回答,为什么呢?为什么跳槽?无非就是老板不好公司没发展前途工资太低之类的,如果被面试者如实说了,面试官一定会觉得被面试者这样那样的不是,一样被找出很多问题。
    这边我倒是很想问问博主陈皓先生,根据你的简历,你也跳槽几次了,不知道你面试的时候有没有被问题类似问题,如果被问到,你怎么回答。当然,不需要说最近这次,因为你在博客中已经说过了,是想从研发转向做网络业务。我想知道的是你换第一份工作的时候,别人问你,你怎么回答。同时,如果有一个被面试者的回答是“我想从研发转向网络业务”,你会不会因为这个人没有网络业务经验而拒绝他,或者觉得这个人没有持之以恒地做研发。
    另外,我非常赞同shuiren。

  33. zdx3578
    2012年5月12日11:42 | #35

    博主思想很好,看了很多回复,还是有不少不同的声音,
    换工作的确是个综合因素的结果,没有项目锻炼,找一个更好的环境,有更多志同道合之人,发展可以更快的环境,更好地待遇;
    自己钻研可以到达yufeng水平的能有几个?人毕竟是不同的;
    面试本身就可以有可能推动一个人回去继续挑战,面试本身也是挑战,也是寻找挑战,勇气,自信,坚持;面试也是学习,
    本人也在纠结,具体的挑战和更高的眼光,也许有人更需要到大环境得到更好的视野,卓有成效的管理者一书提到,要影响一个人谈话至少要一小时多。
    对具体的人,是继续在这个环境自己努力,还是换个环境有更多因素推动自己成长,都是自己的判断,挑战的确无处不在,更好地环境有更好的挑战,机器扫大街不是每个人都适应的挑战,改进马桶也不是每个人都喜欢的挑战,呵呵;
    其实面试就是找适合自己团队的人。
    博主招聘程序员文章里说到:
    重要的不是知识,重要的是其查找知识的能力
    重要的不是那个解题的答案,而是解题的思路和方法,有一个定律说,一个人说的足够多都会出现矛盾,呵呵。

    博主的观点对任何人都有激励作用,估计被拒的人回去大都会继续挑战的。谢谢博主分享。

  34. 2012年5月16日15:12 | #36

    没有挑战是借口,没有兴趣是实情,兴趣来自于每个个体的天性和后天的正向激励。
    不是所有人都适合做算法研究,所以也不是所有人都适合做外观设计一样。
    面试官最重要的责任就是,分辨哪些人在该职位上有发展潜力,如果一个应聘者不喜欢这个工作却来迫于生计来应聘这份工作,那么结果从长远来看是双输的,所以长痛不如短痛,换下一个应聘者吧….

  35. coooooooder
    2012年5月17日16:14 | #37

    赞同shuiren的观点。

  36. coooooooder
    2012年5月17日16:18 | #38

    名字太长了 显示不了。下次换个短点儿的。

  37. dypublic
    2012年5月19日00:59 | #39

    ”用树型结构(森林)会不会更好一些呢?如果我要通过地点反查IP段呢?“
    可能用树形结构来查比较好,见路由查找算法。反查的问题,用地点做key,ip段做value的某种map来做。这样就需要两个数据结构了。

  38. lazyball
    2012年5月27日14:42 | #40

    不觉得这个问题是个需要人撒谎的问题,我觉得面试就和找男女朋友一样,目的都是要找个适合自己的。你坦诚的告诉对方自己与上家的矛盾,让对方早早了解你的期望,才能更快的让对方知道双方是不是合适。不合适就不要浪费彼此的时间和精力了。@Snap

  39. 2013年1月2日18:34 | #41

    没看一篇就感觉好有收获,但是还是感觉自己无法表达出来。强大的叙述能力亟需练就。可能看的多了,东西才能够沉淀下来,才能够叙述出来。

  40. BinaryTree
    2013年4月2日09:11 | #42

    大部分人换工作,不会只是因为工作内容没有挑战而已吧
    薪酬、团队氛围、上下级关系、家庭问题等等,大多会与之结合在一起
    面试官,何必那么当真呢?第一层是用来问的,第二层是用来聊的

  41. donny
    2013年4月12日16:38 | #43

    微博验证的问题,我想了想,用户输入用户名后ajax获取下是否需要验证,将验证码输入框注入到dom。不知这思路是否可行呢?皓哥。

  42. lumm
    2013年4月19日09:26 | #44

    可能是我能力不足吧,要不然我试着用你的方法去做,但是似乎不行。

  43. 2013年6月28日13:58 | #45

    您的博文,都太给力……无论技术上,还是思想上~~赞~~我是菜鸟,努力中~~

  44. ran9er
    2013年7月10日00:49 | #46

    第四个问题比较感兴趣:

    看起来这个小设备是不能联网的?也就不能向服务器发送用户 ID 了

    假设一、如果登录时需要填写用户ID,这个设备中也有用户ID:

    通过用户的ID 和 timestamp(精确到分钟) 作种子,服务器端在用户登录时,根据用户 ID 和当前时间,直接生成密码;同时这个设备根据用户 ID 和当前时间,动态更新密码,作为用户登录时提供的密码,如果与服务器生成的密码匹配,则通过身份验证。

    假设二、登陆时不填用户ID,只填这个密码:

    如果通过用户的ID 和 timestamp(精确到分钟) 作种子,那么每分钟都要为所有用户重新生成一遍密码,再散列到表中,这种显然不合适,因为用户太多

    如果用密码中固定的位数来表示用户ID,也不太好,因为本来就够短的了

    如果生成一个很长的密码,然后再以分钟作偏移量,依次取6个数,也不太合适,因为反向查找出用户比较困难

    应该是设计一种新的数据结构?

  45. 2013年10月23日01:16 | #47

    其实博主所说的挑战已超出工作范畴,已经变成了对自己的挑战和超越。从这个意义上来讲,换不换工作、换什么工作、甚至是否工作都和是否有挑战没有直接关系。
    所以,对于应聘者而言,他所指的是工作任务上的挑战。
    当然,也不可避免有把挑战拿来当借口的,但我之前换工作时确实是想找一份更有挑战性的工作。不光是自己把问题搞清楚,更要把它运用到生产工作中,才是意义所在。

  46. 2013年10月23日10:14 | #48

    部分观点同意,部分观点不敢苟同。提个小小建议,咱这网站的字体可以改改不?(大小,字体类型,排版……)
    文章的内容写的比较充实,但有点文不对题的感觉。开篇讲的是面试问题,面试者把兴趣挑战混为一谈。他原本没兴趣做的事情,说成是没有挑战。再简单的工作,一直重复着,一点错误都没有,能做到这一点也不是那么容易。就像当年的骗术,从1写到100,依然有那么多人出现错误。一项工作,有兴趣可以做的很有挑战,没兴趣可以做的简简单单。有些事情会不会发生在其他人身上,我不敢确定,这和人的个性有关吧。一个人通过听觉、视觉、触觉、嗅觉、味觉、直觉来认识和学习这个世界,你的各种觉有限,但世界能带来这些觉的东西无限,说不定某些东西就可以延伸一个人的知识。后面的部分,不知道作者是在写什么?挑战?兴趣?从我的角度理解应该是兴趣吧,不知道你这些思考有多少已经拿来亲自验证过。我感觉有些是真的验证不了,因为你没有这样的机会。这也说明有些面试者是真的没有实施报复的机会。你却一概而论,难道你自己没有遇到过这样的问题?

    纯属个人观点,欢迎来喷。

  47. darkjune
    2013年10月23日16:17 | #49

    面试回答的挑战,不一定是真实答案,80%为了薪水,20%上一个工作不如意,挑战估计也就在第二位。 当然作为一个人的个人修养,主动的人可以从各种条件自学, 被动的人在什么条件下都没什么收获

  48. samsong
    2013年12月12日18:18 | #50

    最烦“时间是挤出来的”这句话
    是的,时间是可以挤出来的,但不是无限挤的
    如果工作范围内的事情都要忙到回家就要睡觉的话,实在没有可挤的时间了
    所以果断换工作了

  49. 潘小明
    2014年1月22日10:36 | #51

    过两天就离职了,现在也没什么活干,看起来很有意思我就玩了玩。
    短网址服务,数据上看是KEY-KEY的配对,985cn的没有什么算法,只是按顺序给。给之前可能会验证输入的网址是否能访问
    大多数服务商不允许自己家的短网址当做原网址来要新的短网址,但是允许别人家的短网址当做原网址来要。百度的限制比较严格,其他服务商提供的短网址都不能再当做原网址去百度用。

    我想到个玩法。
    先拿一个长网址去服务商A获取一个短网址,然后用这个短网址作为原始网址去服务商B获取另一个,获取以后,再拿这个去服务商C获取一个。。。如此往复 最后拿X给出的短网址去服务商A去获取新的短网址。。循环了 就算他们测试是否有效也没用 因为的确有效 如果测试了反而给他们自己添加服务器的压力 而且越到后面压力越大
    这样我自身的机器不用存储任何我已经发过的网址信息 但又能及时获取足够的新的可用的网址 我自己的机器也不会炸掉 我还可以开1000个进程一起来 哈哈哈 一定很好玩 过年这两天就玩这个了!!!

评论分页
1 2 7048
  1. 2012年4月17日13:17 | #1
  2. 2012年5月15日09:51 | #2
  3. 2012年5月15日12:00 | #3
  4. 2012年5月15日19:06 | #4
  5. 2012年6月2日18:23 | #5
  6. 2012年6月18日16:18 | #6
  7. 2012年6月20日16:15 | #7
  8. 2012年6月22日13:50 | #8
  9. 2012年8月22日13:21 | #9
  10. 2012年8月29日03:11 | #10
  11. 2012年12月31日22:28 | #11
  12. 2013年1月28日03:26 | #12
  13. 2013年3月11日08:25 | #13
  14. 2013年3月11日13:21 | #14
  15. 2013年3月12日14:11 | #15
  16. 2013年3月20日21:02 | #16
  17. 2013年3月22日23:47 | #17
  18. 2013年4月10日15:35 | #18
  19. 2013年4月11日11:34 | #19
  20. 2013年4月12日14:44 | #20
  21. 2013年4月19日09:43 | #21
  22. 2013年4月20日09:49 | #22
  23. 2013年4月29日23:28 | #23
  24. 2013年5月19日12:59 | #24
  25. 2013年5月19日16:31 | #25
  26. 2013年7月7日17:38 | #26
  27. 2013年7月26日17:01 | #27
  28. 2013年7月28日21:29 | #28
  29. 2013年9月20日15:09 | #29
  30. 2013年11月3日19:49 | #30
  31. 2013年11月10日16:25 | #31
  32. 2013年11月10日16:57 | #32
  33. 2013年11月13日08:51 | #33
  34. 2013年12月16日11:21 | #34
  35. 2013年12月20日12:21 | #35
  36. 2014年1月14日21:40 | #36
  37. 2014年3月7日03:18 | #37
  38. 2014年3月8日18:53 | #38
  39. 2014年4月13日19:38 | #39
  40. 2014年5月26日13:24 | #40
  41. 2014年5月27日12:45 | #41
  42. 2014年6月2日12:30 | #42
  43. 2014年6月2日20:39 | #43
  44. 2014年6月2日21:40 | #44
  45. 2014年6月2日22:36 | #45
  46. 2014年6月3日01:21 | #46
  47. 2014年6月3日22:02 | #47
  48. 2014年6月18日12:24 | #48
  49. 2014年6月21日20:20 | #49
  50. 2014年6月23日01:12 | #50
  51. 2014年6月23日21:53 | #51