2008-11-21 90 views
1

關於編程工作面試中將提出什麼問題有幾個主題,但實際上沒有人談論一些公司想要的小問題:示例程序。訪談計劃示例

我的問題是基於我上一份工作申請,我被要求創建一個簡單的程序併發送給他們。

那麼,這提出了幾個問題:

  • 我應該寫什麼樣的程序?
  • 我應該實施什麼?
  • 我應該用什麼作爲技術展示的東西?

,大多重要(一直是讓檢查代碼的那個人的用戶)是什麼公司期待?

我目前的想法是用創建一個簡單的博客,使用XML文件來存儲數據,如果需要的話,用add/edit/delete函數構建一個簡單的ASP.NET頁面,並創建一個窗體表單一個命令行應用程序,可以做同樣的事情。

的事情,我應該忌:

  • 評論所有的代碼
  • 使用區域劃分代碼
  • 創建類對象的 「博客」

使用我應該:

  • 使用接口?
  • 使用virtual並覆蓋一些方法(例如myBlog.ShowPost())?
  • 應用任何設計模式?
  • 使用助手/實用程序類?
  • 使用DAL和BLL?

「shipping」應該如何...

  • 使用MSI(證明我可以建立很好的安裝程序)
  • 只發送代碼作爲Visual Studio項目

一個簡單程序的任何想法,究竟應該在什麼代碼是極大的讚賞:)

回答

2

利用這個機會向他們展示你知道如何對待客戶。就重要的事情開始對話,他們希望如何交付,時間表是什麼,他們需要一份文件等等。

如果他們不想給你任何特別的問題來解決,試着寫一個與他們主要產品領域相關的程序。或者至少堅持他們使用的一些技術。

確保您提供給他們的任何東西都足夠完整,並且包含源代碼和部署包。確保你有足夠的文檔,以便技術人員能夠用最多兩個簡單的步驟成功地建立你的程序。使部署包足夠簡單,以便非技術人員可以快速運行您的程序。它不一定是MSI,只要它是一個命令,一個複製所有文件的批處理文件就足夠了。

確保您的代碼組織良好並進行了評論。避免編寫模糊的代碼黑客和不必要的優化。找到一套很好的編碼準則(SO在這個主題上有幾條線索)並堅持下去。

避免突擊隊模式。 :-)使用您感覺舒適的設計模式。在適當的地方使用接口,繼承,抽象和適當的架構層。

換句話說,編寫代碼以便一個技能比你低的程序員能夠打開並維護它。

只要你確定他們知道這一點,在你的程序中使用外部代碼就沒問題。清楚代碼來自哪裏以及它下面發佈了什麼許可證。

作爲一個方面說明,爲您的代碼添加一個許可證,禁止爲商業目的重新發布或重用。

以上所有內容聽起來都有些複雜,但這就是專業開發人員所做的 - 他們不只是編寫代碼,而是提供產品。

2

問他們想要什麼客戶,不用猜

你寫一個XML博客程序,他們說:「這很好,但我們做桌面DEVE lopment這裏」

你寫了一個優化的非關係型並行數據庫,他們說:‘這很好,但我們做金融的網絡應用程序在這裏’

+0

通常我會申請.NET無論如何,這就是爲什麼我提到「如果問建立一個winform和命令行」:) – balexandre 2008-11-21 05:36:40

+0

或誰知道他們甚至可能試圖撕掉你。 – wprl 2008-11-24 17:20:42

0

簡單的程序,這將是我的建議:

1)看在重構給出關於電影租賃例子涉及客戶,電影,出租,人們可以指定出一些尺寸的例子來說明他們能做什麼。

2)FizzBu​​zz是另一個簡單的程序理念,在各個地方都被討論過。

3)一些簡單的字符串函數,如反轉字符串或給定的整數返回多少個位。

不要忘記你應該記錄下你的算法的複雜性(時間和空間),你在代碼中做出的假設,你做了什麼測試來驗證你的代碼,以及可能的一般README幫助任何繼承代碼的開發人員。

1

對我來說聽起來很腥。他們希望你爲他們免費寫一個完整的示例應用程序,看看他們是否想聘用你?這是一個永久的職位還是一個諮詢演出?

我不會這樣做。在我看來,如果你是絕望的話,那麼你的時間最好花在適合面試的其他公司上。