程序员的成功面试技巧

程序员的成功面试技巧,第1张

程序员的成功面试技巧

程序员的成功面试技巧,程序员在近几年来是很热门的一个职位,因为在很多人眼里程序员的收入是很高的,程序员想要工资高在面试的时候也是很讲究技巧的,下面分享程序员的成功面试技巧?

程序员的成功面试技巧1

1、给自己写一份非常专业的简历

我的建议是,如果你想增加自己的入选机会,那最好还是花点钱制作一份专业的简历。相较于你将来可能得到的巨大收获,这真的只是一个小小的投资。

2、研究面试官

当我联系程序员来面试的时候,我总是会事先发电子邮件给他,并附上我的名字和博客地址。但是让我惊讶的是,当我给他面试的时候,他竟然对我还是一无所知。

再举个正面的例子,我在面试时也碰到过这类开发人员,甚至能对我以前写的一篇博客或者做的教学视频上面的内容侃侃而谈。

你说我会推荐哪个?

面试官也是人,也会有人性的弱点和特点。Dale Carnegie曾说过,要让别人对你感兴趣,最简单的方法就是你先表达出对对方的兴趣。

不管这种方法是否有欠公正,但是如果你想面试成功,那么我建议你事先最好先好好研究一下你应聘的这家公司和面试官(如果知道的话)。

当今社会的信息是如此的发达,我们完全可以在Facebook、Twitter、微博、博客上找到任何人的资料。即使你只是大致浏览一番,也会让你受益良多。

3、获得内部推荐

知道找工作最简单的方法是什么吗?那就是获得内部推荐。

这不但可以增加面试机会,还能提升40%的录用几率。

前阵子,我找到了一家心仪的公司。然后直接投简历?NONO,猜猜我是怎么做的吧?

首先我找到一名和我有共同想法和意见的开发人员,然后开始关注他的博客。

接着我在他的博客中留言、发表建议,并且表现出对他的工作和公司非常感兴趣的想法。最后我成功拿到了这个宝贵的内部推荐资格。

很多程序员会说,“可是,某某某公司里面的人我一个也不认识啊”。如果你想就此放弃,那当我什么也没说,如果你愿意试试,我敢打赌,你总能想出一种方法达到你的目的。

不过这有个秘诀,那就是首先你得在网上创建自己的“名片”——让别人有了解你的机会,所以do it now吧。

4、 学会解决算法问题

这是每一个开发人员都应该具备的重要技能,而且真要掌握起来也并非那么难。

在很多面试中,都会有这样的问题,要求你在白板或者电脑上解决编程问题,但是许多程序员,即使是那些非常优秀的程序员,都会一下子大脑一片空白,完全理不出思路来。

如果你能花时间学会如何解决这种类型的面试问题,那么下次再碰到这种场景,就不会这么紧张了。

我们会紧张其实和怯场无关,主要是因为我们不熟悉这些问题,也没有自信能解决这种问题。

在这方面建立起自信之后,你就再也不会紧张了。

5、活力洋溢地回答问题

只用一个字或者一句话,照本宣科平平无奇地回答问题,或许在技术上是正确的,但是你忘了应该借此机会好好展示自己的激情——这才是一个开发人员能带给团队的最大正能量。

举个例子说,如果我问你什么是多态性,我不是要你按照课本中的定义重复给我听,我希望你能就这个主题阐述一下,然后我们可以更深入地聊一聊。

6、小心“陷阱”问题

你为什么换工作?

说说你最大的优点和缺点。

最近一次你是如何解决和同事之间发生的技术分歧的?

在回答问题之前,你最好明白面试官问这些问题的目的,掌握如何回答这类问题的技巧。

就先说说第一个问题吧“你为什么换工作?”

在大多数情况下,面试官想知道的是你是否是一个爱说三道四、惯于诽谤抨击雇主的人。所以千万不要上当。

7、永远不要撒谎

最糟糕的事就是在面试的时候撒谎。

知之为知之,不知为不知,如果你确实不知道,千万不要自作聪明来编造问题的答案。

相反,你应该诚实地说,你不知道或者你并不是100%肯定,但是你愿意尝试一下,然后再讲讲自己的想法。讲完之后也可以问面试官正确答案是什么,以显示你对此非常感兴趣。

实话告诉你,大多数面试官问的问题都是他们知道的问题,不然如果你滥竽充数给你通过的话就会显得他们像个傻瓜。所以千万不要抱着侥幸心理,一旦发现你在撒谎,面试官马上就会质疑你的人品。

8、不要太诚实

很多程序员会过多地透露自己的信息,不要以为诚实和完全透明就是最好的政策,殊不知过犹不及。

第7条所说的不可撒谎诚然不错,但是我们也没必要将自己所有生活的细节和所有缺点都告诉给面试官。

有个性是好的,但是如果暴露了性格缺陷就坏事了。

试想一下,要是你说自己喜欢赌博或者沉迷于魔兽世界,我敢打赌,面试官肯定会重新审视你。所以在说自己信息的时候一定要慎重,因为这不但会暴露你的缺陷,还会显得你缺乏应有的.判断力。

9、掌握计算机科学的基础知识

是的,很多程序员在面试的时候,甚至理直气壮地说,他们不知道链表和堆栈,因为他们没有受到正规教育或者早就还给老师了。

我也承认我们在工作的时候是用不到那些深层次的计算机科学概念的,但是作为一个专业的软件开发人员,你至少应该知道一些基本知识。

举个例子说吧,你请电工来重新给你家的房子布线,但是这电工一点也不知道任何电气工程的基本知识,你还请他干不?同理,我们也是如此。

10、关于经验

这是最后一点,但并非最不重要的,很多开发人员,特别是刚进入这一行的新手,往往缺乏相关的经验,也不知道如何增加所谓的工作经验。

这有点像是鸡和蛋哪个先出现的问题。

那么又该如何增加经验呢?

关键是要用创造性的方式。有很多方法都可以获得工作经验,但是却不必真正去一家公司上班。

给你点提示:

参加开源项目

启动开源项目

做一个移动app,放到App Store里

写一个小型的Web应用程序

参与代码交流和用户组

这些方式都可以作为工作经验写到简历中去,只要自己有想法,不愁没经验。

希望这些技巧能对各位有所裨益。如有不同想法,也请不吝赐教。

程序员的成功面试技巧2

程序员的中年危机是什么

中年程序员危机

近日,中兴网信员工欧某打开26楼办公室窗户纵身跃下,结束了42岁的生命。

目前有多种说法,有说因股份转让价过低和人事部产生分歧,有说疑因内部宫斗被离职,甚至还有消息说欧有精神方面的问题。

尽管具体原因仍待进一步的核实,但却由此引发网上一波关于中年职场危机,特别是中年程序员危机的讨论。

一般来说,一个行业的收缩导致人员数量与结构的调整,大致可以用一个简单的模型来描述:行业规模缩减,行业人员减少,公司数量减少或规模缩减,进而导致管理层岗位变少,原本的管理层,被迫降至转入下一级岗位。

这种降岗机制层层传递,高层降为中层,中层降为基础管理岗,基础管理岗降为一线员工。与此同时,由于行业规模的缩减,一线员工数量也在减少。

于是,一线员工失业,同时,停止招收该行业的新毕业生。在这个模型中,一般来说,即便行业收缩,中层也不用愁就业,仍可留在本行业中,最坏也不过是降岗。

中年人学习能力下降明显

不过,在程序员行业中,有一些特别的因素,导致了其不同于一般行业的现象。

35-45岁的中年人,学习能力下降明显。与此同时,这是一个新技术不断涌现的时代。

一个人进入职场初期的技能、概念,过了20年后,已经完全不一样了。程序员这个行业,更是把这个特点发挥到极致。

此外,精力明显下降,不能熬夜,加之家务琐事缠身,高强度工作即便有意愿也很难付诸行动。

如果说其他行业的中层人员降级后仍可游刃有余的话,这个行业的中层降岗后,会不如自己新岗位上的同事。

所以,程序员密集的IT、通讯行业,很多中层员工就处于一个很尴尬的地位。即便勉为其难地接受,也会面临收入大幅度下降的心理适应问题。

如果考虑到资产配置中较高的按揭比例,当资金链断掉,这就成为不可承受之重。

题目:请阐述Mysql Innodb引擎的4个隔离级别

难度:三星

面试频率:五星

这道题真的是一道数据库的高频题,数据库题除了索引的原理之外就是这道题的面试频率最高。

1.Read uncommitted(读未提交):,最低的隔离级别,可以一个事务读到其他事务没有提交的数据,也称脏读,这个隔离级别很少人用

2.Read committed(读已提交):相比于读未提交,这个隔离级别只能读到其他事物已经提交了的数据,这个隔离级别用得比较多。但是不是Mysql默认的隔离级别

3.Repeatable read(可重复读): 在读已提交隔离级别中,2次读取同一个变量如果其他事务修改了它的值,会读到的不一样。而在这个隔离级别中,顾名思义,一个事务开始读了。多次读到的值可以保证是一样的

4.Serializable 序列化 在这个隔离级别下,所有的事务都将串行 *** 作,是隔离级别最高的也是效率最低的,很少人用

面试官追问:Innodb引擎默认隔离级别是哪个

答:可重复读

面试官追问:可重复读的实现原理

答:使用了MVCC多版本控制(类似乐观锁),Innodb引擎会给每一行数据加一个版本号信息,当一个事务修改一个数据时会增加它的版本号+1,当一个事务开始的时候会缓存下此时的版本号,后面读取的时候只会读取这个版本号的数据,因此别的事务提交了修改数据的版本号大于它,因此不会被读到

面试官追问:事务的隔离级别如何设置:

答:在Mysql命令行下调用命令 set global.tx_isolation,但这样Mysql重启失效,修改my.cnf来永久设置

面试官追问:可重读读有什么问题

答:会出现幻读,幻读是指事务读取到一个值无法准确继续后续 *** 作。例如读取一个值,没有则插入,但是等插入的时候其他事务已经插入了,这就会导致插入失败,解决办法:sql语句显示加锁 :select xxxx for update,其他事务修改数据则会阻塞

技术方面的技巧

第一:ABC(Always Be Coding)。

一力降十惠,说的多不如做的多,所有工作都是这样,程式也不例外。你写过的程式越多,你的能力也就越高。但是,你必须做到有目的的程式,在写程式之前做到心中有数,明白自己的短板并且加强训练,坚持不懈的挑战自己的极限,努力使自己在各方面都很优秀。我强烈建议你把自己做过的每个项目——不管是否完成——都整理成作品集,在这里推荐GitHub,非常专业的程式分享社区,你可以把自己的作品集放到这。

第二:精通至少一种多重范式程式语言。

精通一门诸如C++这样的语言能让你从根本上理解程式,因为这类语言风格多样,如何写程式完全取决於你自己的风格,你能在一种语言里体会到不同风格的程式在执行上的差别,同时要达到这样的水平还需要大量的实战与练习。而且这类语言通常在各个社区中也是最活跃的板块,你可以很容易就找到志同道合的朋友来分享经验。其他也支持多风格程式的语言还有C#、Java、PHP、Python及Ruby。

关於C++ 的题外话:有一个跟著名的面试题,许多面试官都喜欢问,是这样:“如果把C++ 分为十个等级,1 为最低,10 为最高,你认为你自己处在哪一级?”希望上帝保佑那些回答9 或者10 的人,Bjarne Stroustrup 估计也只会给自己打到8 分甚至更低(此人为C++ 之父)。主要原因是这个语言经过这麼多年无数大能的不懈努力,已经超级复杂,被称为主流设计语言中最复杂的一款也不为过。

第三:熟悉各种算法的优劣。

先看看这份关於各种算法的对比图,确定都理解了之後,试著把这些算法都用自己的方式写一遍。这样你就会对各种算法有更深刻的理解。面试的时候这几乎是必考题哦。

第四:熟悉所有常用函数。

你最好把所有的常用函数都用自己使用的语言写一遍,不要依赖於现成的函数库,这样会加深你对各个函数以及语言本身的理解。试著快速写出下列函数:向量(动态数组)、鍊表、堆栈、队列、哈希映射、集合、优先级队列等等。

第五:要更务实。

临时抱佛脚早就没有用了,踏踏实实的打好基本功才是王道,花更多的时间去解决各种程式中遇到的问题,这里推荐多去TopCoder看看,那里有很多不错的资源。里边有各种案例可供学习,试著学习里边的思考方式来解决自己遇到的问题。我当初花了整整两个礼拜在TopCoder上,到最後我都能闭著眼一只手写出迪科斯彻算法,几乎能解决所有的图形问题。所做的不过是不断重复程式。这可能是Google最终要我的原因之一吧。Eric Schmidt说:“重复从不青睐祈祷者。”

第六:程式是最简单的。

这麼多年的工作经验使我明白了一条,写程式是一个工程师所有工作中最简单明确的一部分。我常挂在嘴边的一句话是:“简单的就像写段程式一样。”我相信对於一个工程师来讲,事前准备和事後维护才是更艰难的工作。比如说,你需要在程式前计划好你需要写什麼以及确保写好的程式能顺利运行。尽量让面试官知道,你不是一个只懂写程式的呆子。

需要注意地是,在别人面前写程式可能会略为彆扭,最好提前做些这方面的练习,可以参考下我前任同事Dan写的这篇《Whiteboarding》。

非技术方面的技巧

需要提前说明的是我在这方面并不专业,仅供参考而已。

第一:明白你为什麼选择这个公司这分工作。

不管大公司还是小公司,还是极度饥渴的创业公司,都不会要一个连公司是乾嘛的都不知道的人,哪怕这个人技术牛到一塌糊涂也不行。

第二:一定要满怀激情。

程序猿是一种没有固定工作时间的动物,如果你只是想找一份朝九晚五、有固定工资、只在偶尔加加班的工作,你还是别乾这行的好,你一定要爱程式,不管什麼时间什麼地点,只要有需要,就能随时投入工作。爱一行,乾一行,对於程式设计师来说尤其如此。

第三:不懂就问。

面试的时候如果碰到没有听明白的问题,一定不要不懂装懂,我曾经见过有些面试的人花了老牛鼻子的劲去解决根本没问过的问题,这不只是浪费你的时间,也是浪费我的时间。

第四:保持微笑。

所有面试宝典上都有这条,但是,不要做太过了,适当的微笑能产生很大的效果。我有时候会在面试完一个人後特别受打击,但是下一个面试者简单而真诚的微笑能让我一下子心情好起来。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11000374.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存