我的任务是进行我的第一次面试,并想向我们的问题提出我的问题,包括他们对我的问题的反馈以及他们的解决方案。
问题: 我有一个用户和遗留系统 文件,所有文件的信息 属于用户的是存储在 平面文件。
我想升级这个系统 将所有信息存储在数据库中,设计 表,并创建一个C#系统 将填充新的数据库以及 将文件ftp转换为新路径。
定义设计考虑因素 开发原型。
注意:我们正在寻找更多内容 设计一个会使用,为什么宁愿 比编译的代码。如果是的话 然后向你致敬,我们会给予它 更重。
@Tim C, 我确实向受访者展示了文件:
User1234.txt
UserID=1234
ParentPath=\\somewhere\nowehere\everywhere\1234
FileCount=20
File0=something0.ext
..
File19=something19.ext
答案 0 :(得分:15)
我认为一个有实力的候选人会花大量的时间来讨论更详细的问题,以便在进入设计之前收集适当的要求 。
一个好的候选人不会开始对你的要求做出假设,至少在没有确定这些假设的情况下也是如此。
答案 1 :(得分:7)
还有另一篇帖子here on SO,其中有一些关于C#问题的好信息......
我个人不喜欢你写的那个问题。您提供了一个好的开发人员应该能够通过需求而不是所呈现的设计来确定的信息。我可以这样说出这个问题......
我们有一个使用平面文件存储用户信息的传统ASP构建的遗留系统。除了在平面文件中存储用户信息之外,系统还处理通过FTP进程上传新文件,然后将路径添加到用户的平面文件,以便他们可以看到它。如果你今天要设计一个系统来取代它,那么会想到一些关键的设计考虑因素?你将如何存储数据?
答案 2 :(得分:6)
这不是一个糟糕的问题,我只是觉得它太宽泛了,无法揭示一个好的候选人。您希望从中获得什么样的信息?候选人是否提出了正确的解决方案?一个新颖的?一个实用的?自顶向下?自下而上?使用特定工具的解决方案?在这种特殊情况下有效的解决方案?适用于许多一般情况的解决方案?
我认为具体答案的问题,或者至少是一系列可接受的答案,可以提供更好的解决方案,因此我会为您的面试推荐一组不同的问题。
答案 3 :(得分:0)
嗯,在我看来,这样的问题会让人们对设计有相当实际的观点。
有些人更喜欢自上而下的解决方案,从一般的东西到具体的东西。还有很多开发人员自下而上设计,首先制作小子程序,然后将它们组合成一个大项目。您的测试将有利于第一类开发人员到第二类开发人员。因此,我会说它会有偏见。
答案 4 :(得分:0)
我猜这更像是“你解决问题X的思维过程是什么类型”而不是“你知道具体事实Y”。我们使用一个关于为一副扑克牌建模的问题,然后继续询问这将如何帮助创建一个与他们一起玩snap / 21 /扑克的游戏。
对于这种类型的主要问题,您需要知道您希望在哪里领导候选人。您应该对至少一个完整的设计有充分的了解,并提出建议,以便在候选人遇到困难时帮助他们顺利进行。优秀的候选人将涵盖您想要提及的所有要点,毫无疑问,您将采用以前未考虑过的方法。这些肯定是你想雇用的人。其他人可能会在一开始就绊倒,但只需要几点指示就可以大步前进。诀窍是获得正确的指针,而不是放弃太多。这些候选人不是一个肯定的否定,但他们需要在其他方面很好地适应或者更多的初级职位。你也会发现一些候选人从来没有“得到它”,但你的手机屏幕应该将这些保持在最低限度。当然,除非某种形式的裙带关系有助于您的下次审核,否则您不会雇佣他们!
我们花了几个月的时间面试候选人并改进了面试过程,但仍然没有达到我们100%满意的程度。乔尔的书Smart & Gets Things Done是帮助我们的优秀资源。