一切从一道面试题开始:怎样用编程发现在链表里有一个环。
我在kabam的艺术气息的面试厅里接受面试,被问到了这样一个问题。其实我知道答案,设置一个p指针,一个q指针,指向链表的前两个元素,一个后一个步进为1,前一个步进为2,如果南辕北辙依然可以相遇,说明地球是圆的。我没有说话,因为心里已经有一些反感,因为已经是第二次听到同样的问题,上次是zynga,而在实际项目工程中是没有任何应用价值的。我回答说遍历,于是fail了。
交流>能力
简单的说,大牛并不一定适合所有团队,其实不难从一个公司的面试中看出这个公司的团队凝聚力,好的团队会倾向于先把你作为团队的一份子,尽量模拟你作为团队成员的情况看你的表现会否让团队失望,比如提出一个经验里或者团队最近遇到的技术问题,用讨论的方式来和你探讨,没有绝对的答案,但是如果应试人可以层出不穷的从这些问题中给出新的点子和思路,则会获得加分。亦或提出最近团队立项的一个大工程,看看你的思路,然后通过实际工程走向运作来提出如果这样走的话会有哪些新的问题看面试者如何回答,如果对方可以跟上节奏,并且保持新的点子的冒出,则基本不会有太大的差错。
大公司vs小公司
上述的问题很多时候会在去初创公司的时候遇到,一个大的成型的公司也许各个部门的工作职能细化的更加明显,所以招聘一个职业岗位的时候,基本需要确定的是,不求有新的发展,只求不要出乱子,所以他们问的基础问题会更多,细化到一个链表排序,二叉树,或者虚函数的等基础知识的掌握,对于一个中等难度的带异步通信或者进程间协作代码架构的实现方式,设计模式。当然去大公司还是小公司是需要想好的,小公司成长速度更快,而大公司更需要时间来成长,更多的时候需要处理的是部门关系和一些公司规模引起的冗余劳动,你可以一下子拿到一个稳定的相对较高的薪水,但是在接下来的时间里也许这个薪水提升的幅度不会太大。更多的时间里需要积攒人脉,拓展视野,因为你会有更少的时间去加班,小公司则没有太多时间拓展人脉,可以大幅度的提高自己的技术水平。
务实
也许这是一个永远的悖论,我们工作的目的是什么,赚钱,亦或实现梦想,最好兼而有之,但是世界总是不完美的,经历2-3年工作经验的人自然会面临这样的选择题,我时常和同事开玩笑的讨论这样一个问题:给你十万月薪你愿意去扫厕所吗?多数人选择愿意,也许是因为生活的压力,现在的月薪直接决定着大家的社会地位,这样一个数字的比较已经渐渐深入到了大学实习生里,欲速则不达,这其实又回到了先磨刀还是先砍柴的问题,大学无用论也是很多人心里默认的规律,但是实际情况是,至少在大公司里,拉开距离的正是对当年在大学里学到东西的理解。书本里的东西,是这个行业几代人各种试错得来的经验,有人能站在巨人的肩膀上,从比你高的地方起飞,为何要聘请另一个背景平庸的人呢?
是的,我们已经不在象牙塔里了,学到的许多只是将作为解决实际情况的工具而潜移默化的应用着。混职场的确是一条出路,但是信息逐渐对称的今天,这样的机会其实并不多。老学究是不受欢迎,但是没有技术底子到处忽悠是最不受欢迎的,特别是当一位技术经理坐在你面前的时候,面试其实是一个双向选择的问题,在软件行业,找到工作的机会并不难,缺少的是一个“好”工作。而好公司并不意味着好工作,很多时候人比一个公司重要。而一个公司面试的根本目的不是强,而是合适。作为科技公司,最反感的就是平庸,如果面试中被对方贴上了这个标签,基本一个面试就失败了大半了,所以,非常合适的氛围就是让对方不断惊喜,哇,原来这些你都懂。为了这个目标,试着打牢基础,准确的表达,积累经验,说到做到是最受人欢迎的特质,然后,别再想一些比如薪水要达到几万的目标,订一个更加务实的吧,君子日三省呼己,其实很多的目标都是走着走着逐渐发现出来的。
舒适区
每个人都有舒适区,别在意,这是大家都有的本性,炎炎夏日,你在空调房里不想出去,凛冽寒风,周日的早上躲在被窝里就是爬不起来。公司是很矛盾的地方,可能三成的时间需要你为公司创造财富做出贡献,只要你随时准备好,而其他七成的时间,这个大环境只是在用各种方式稳住你,我们每个人都是天才,公认的天才只是在机会来临的时候,撇下舒适区,敢于冒险去博弈一次罢了,当然博弈就有可能输,害怕输的心理会让你和目前的处境产生暧昧,不如把选择拖到最后一刻,我的方式是,每次遇到这种情况,不如告诉自己,那我就做一个最烂的结果吧,但是结果出来的时候,往往都出乎你的意料。
指标
这就说道了指标,指标一般都是上级定给你的,有人试着自己主动要一个任务并且定出一个指标吗?yes,如果你也笑了,那么也许你听懂了我的话,经理的距离也许就不远了,努力。