有几个主题是关于在编程工作的访谈中会提出什么问题,但实际上没有人讨论一些公司想要的小问题:示例程序。
我的问题是基于我上一份工作申请,我被要求创建一个简单的程序并将其发送给他们。
嗯,这提出了几个问题:
,最重要的是(曾经是SO的几位用户,那个审核代码的人)公司期望的是什么?
我目前的想法是使用XML文件创建一个简单的博客来存储数据,如果需要,可以使用添加/编辑/删除功能构建一个简单的ASP.NET页面,并创建一个窗口窗体以及可以执行相同操作的命令行应用程序。
我应不避免的事情:
我应该:
virtual
并覆盖某些方法(例如myBlog.ShowPost()
)?我应该如何“运送”...
任何关于简单程序的想法,以及代码应该在代码中的内容都非常感激:)
答案 0 :(得分:2)
询问客户他们想要什么,不要猜测
你写了一个xml-blog程序,他们说“这很好但我们在这里进行桌面开发”
你写了一个优化的非关系型并行数据库,他们说“这很好,但我们在这里制作金融网络应用程序”
答案 1 :(得分:2)
利用这个机会告诉他们您知道如何对待客户。开始讨论什么是重要的,他们希望如何交付,时间表是什么,他们想要文档等等。
如果他们不想解决任何特定问题,请尝试编写与其主要产品域相关的程序。或者至少坚持使用他们使用的一些技术。
确保您提供的任何内容都足够完整并包含源代码和部署包。确保您拥有足够好的文档,以便技术人员能够通过最多两个简单步骤成功构建您的程序。使部署包足够简单,以便非技术人员可以快速运行您的程序。它不一定是MSI,只要它是一个命令就可以复制所有文件就足够了。
确保您的代码组织良好并发表评论。避免编写模糊的代码黑客和不必要的优化。找到一套好的编码指南(SO有关于该主题的几个主题)并坚持使用它们。
避开突击队模式。 :-)使用您感觉舒适的设计模式。在适当的地方使用接口,继承,抽象和适当的架构层。
换句话说,编写代码,以便技能低于您的程序员能够解决并维护它。
只要您确保他们知道这一点,就可以在您的程序中使用外部代码。清楚任何代码的来源以及发布的许可证。
作为旁注,请在代码中添加许可证,禁止为商业目的重新发布或重复使用。
上述所有内容听起来有点过于复杂,但这就是专业开发人员所做的事情 - 他们不只是编写代码,而是提供产品。
答案 2 :(得分:1)
我不会这样做。在我看来,如果你绝望的话,那么你的时间会更好地用于其他有更多合适面试的公司。
答案 3 :(得分:0)
简单的程序,这将是我的建议:
1)看一下重构中给出的关于电影租赁示例的示例,该示例涉及客户,电影和租赁,人们可以指定一定长度来展示他们可以做些什么。
2)FizzBuzz是另一个简单的程序构思,在各个地方都有讨论。
3)一些简单的字符串函数,如反转字符串或给定的整数,返回多少个位。
不要忘记你应该记录算法的复杂性(时间和空间),你在代码中做出的假设,你为验证代码做了哪些测试,以及可能有帮助的一般自述文件。任何继承代码的开发人员。