对于SQL和C#应用程序开发作业,面试官通常使用纯C和指针询问有关树、图和链接列表遍历的问题。在我工作的三年里,我从来没有真正的
查找到给定节点右侧的第一个节点的路径,该节点是给定节点的倍数。
例如
我可以看到,在需要编写编译器、驱动程序和在操作系统内核上工作的作业中,可能会用到这些技能。除此之外,这些技能还在哪里使用呢?
发布于 2014-05-10 14:37:12
下面读一下乔尔的一些答案。
特别要注意一些像施密尔这样的画家。在工作中,您可能永远不必重写链接列表,但您当然应该知道它是如何工作的,这样您就可以避免Schmiel了。
基本上,如果你要去看医生,你会希望那个医生学过解剖学。尽管她只是给你开了一些AntiHistamine,但医生在医学院会发现,某些药物对那些患有“股骨下端慢性分裂症”或其他症状的人是有害的。这种对该专业的所有知识的深入了解有时会使生与死,以及信息技术中产品的生死或工作之间的区别。
http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
http://www.joelonsoftware.com/articles/fog0000000319.html
"...spend至少要接近机器一个学期,否则您将永远无法用更高级别的语言创建高效的代码。“
“.在我看来,你是基于迷信来编程的:一个不懂基本解剖的医生,根据医药销售婴儿说的会起作用的东西来分发处方。”
http://www.joelonsoftware.com/articles/CollegeAdvice.html
发布于 2014-05-10 19:54:33
警告:这是对@MainMa的回答的(某种程度上)的评论,但它太长,不适合于评论;2)我认为它在建设性问题上增加了一些不同的观点,因此它本身就是一个真正的答案。
在他的回答中,@MainMa分类了“.NET 4.5的新特性是什么?”作为一个“好”问题。
我不敢苟同。按照他的说法,这充其量是一个相当平庸的问题。一个好的问题更像是:“你今天编写的代码与N年前编写的代码有何不同?”(对于比简历上列出的年资少一些的N值,最好在3到5年左右)。
正如他所说的,问题是关于记忆的。这位候选人是否完全记住了特征列表?正确地说,引用微软名单中最准确的人应该是赢家。
你应该关心的是他的编程。这对他的代码有什么影响?他真正使用的是哪些功能?更重要的是,他是否能很好地判断何时使用哪一种新功能,以及什么时候旧的功能就足够了?
仅仅是能说"LINQ“就可以告诉你对候选人几乎没有任何用处。能够说:"LINQ帮助我的代码更加紧凑和可读性更强,因为我可以清晰和直接地表达概念X、Y和Z,在这里,我以前必须跳过下面的燃烧环来完成这些事情。“(或类似的东西)告诉你很多关于候选人,他写什么样的代码,他的判断,灵活性,等等。它还为你提供了更多的机会来跟进这个人如何思考问题、编写代码、思考代码等等的问题。最后,它给你一个更好的想法,这是一个候选人谁真的有N年的经验,或谁有一年的经验,重复N次。
摘要:能够引用几年前的功能列表是没有用的,并且很少告诉你候选人可能有任何真正的用处。候选人作为程序员的进展可能会引起更多的兴趣,所以更直接地询问这个问题要好得多。
发布于 2014-05-10 15:04:39
现实是,大多数开发人员在职业生涯中做的大部分日常任务都是琐碎的;这意味着你在求职面试中遇到的一些问题在现实中可能永远不会面对你,但这并不意味着没有必要问这些问题。
假设你的公司里有个空缺职位,你现在正在面试人。您已经有20-30个开发人员在队列中。那么,你将如何选择最佳人选担任该职位?假设他们在这个工作中要做的最具挑战性的任务是从文件系统打开一个文件,逐行读取数据,稍微修改它,然后将它放回原来的文件中。
你要问他们你怎么打开文件?我敢打赌你看不出答案之间有多大的差别。因此,您必须想出一个解决方案来区分只知道如何打开文件的开发人员和那些如何开发糟糕的实时应用程序的开发人员。即使是那些你不希望他们建立这样的应用程序,但你仍然想雇用最好的候选人。
就像我们生活中的任何其他事情一样,有些地方你意识到你需要去学习更多。如果你不知道什么是链接列表,对我来说,作为一个程序员,这实际上意味着你还没有真正达到你的职业生涯中,你觉得你需要去学习的具体事情。为什么?仅仅是因为你从来没有参与过一个大到要求你把你的技能提高到那个水平的项目。如果你在初级阶段,你可以说我没有任何工作经验,但如果你知道,这意味着你有足够的自我激励,使自己至少高于平均水平。
https://softwareengineering.stackexchange.com/questions/238604
复制相似问题