求職者看面試官:和不懂技術的人談技術
上午9點半,如約來到面試地點,特地還噴了點阿迪男士香水。到地了,先填表。OK,大概填了一下,字寫的我自己都不認識。然后就是常規筆試,看了看題目類型(C#高級),題目大概如下:
1.
1.1寫出一個單鏈表的結構體定義
1.2根據定義寫于一個插入操作,假設鏈表是有序的(忘了是升序還是降序了),原型為BOOL Insert(Node* pHead, int value)
1.3 根據你寫出的方法,寫出所有的測試用例
2.給出一個函數 Char* Revert(Char* pStr),將字符串pStr逆序,然后返回逆序后的字符串
以上是編程題,是給的C++原型,可以用C#或JAVA作答。
底下的都是小題,就記得不清楚:
怎么調試ASP。NET程序?
怎么防止類被繼承?
在子類中怎么訪問父類的成員?
怎么判斷一個dataset是不是空的?
給你一個dataset,怎么在datagrid上顯示出來?
ref和out是啥?有什么區別?
viewstate保存頁面的狀態存在什么地方?
在ASP。NET中Redirect和Transfer有什么區別?(這個還真不會)
怎么從一個company表中選出address以“Beijing”開頭的結果?
如果有用戶信息,用什么方法可以最快的取出來?請寫出你存儲和獲取User信息的方法。
給一個用戶表,用XML格式表達出來。
大概就記得這么多,基本上不怎么難,相信園子里好多兄弟都能得滿分。
下面就是面試,是一個HR MM。
先巴拉巴拉介紹自己,說了兩分鐘。
這位HR MM就開始考我的技術了。
附上招聘需求:
1、大學本科或以上學歷,計算機及相關專業畢業,3年以上工作經驗。
2、豐富的上C#/.Net開發經驗。
3、精通Windows程序設計,精通VS.NET。
4、熟悉TCP/IP網絡和多線程編程。
5、熱愛技術工作,具有鉆研應用新技術、新知識的能力,責任心強。
6、熟悉軟件設計流程,具備良好的軟件工程思想,對UML/設計模式等有一定了解。
7、有良好的溝通、協調、表達能力,能夠獨立完成工作,有敬業精神,具備良好的團隊精神。
8、較強的英文聽說讀寫能力優先。
9、有WPF/WCF經驗者優先。
以下為大概的對話過程:
HRMM:你用過VS嗎?
ME:哦。。。。用過
HRMM:你用的是幾?是2005嗎?
ME:繼續。。。。。哦,都用過,2003,2005,2008.
HRMM:您用過TCP/IP和多線程編程嗎?
ME:哦,這個真沒有。TCP/IP是協議,這個知道些。多線程沒有這么針對過,因為多線程編程不好控制和調試,所以基本上項目里不怎么提倡用。但是.NET里許多調用,像異步調用都是多線程的。還有基本上如果UI里有些比較耗CPU的操作,這樣的話才會考慮多線程。(相信很多兄弟都知道,網絡編程C++一直是***啊;多線程的話,因為比較難以調試,需要控制很精確,像大型項目里很少用到,反正我是沒用到過)
HRMM:那你對新技術了解嗎?比如。NET 3.5.
ME:哦,了解一些。微軟的產品升級太快,今年年底就出4.0了,新技術一般我都是稍微了解。
HRMM:那你了解WPF和WCF嗎?
ME:哦,首先這兩個是3.0版本就有的技術,不是3.5。我因為沒做過相關的項目,所以基本上就是了解大概的原理。
WCF就是集合了以前集中分布式通訊的方法,打包封裝成新的WCF。我看過他們的幾種服務類型,也就是跟WSE,MSMQ類似。(WPF其實就是綜合了MS的幾種圖形技術嘛,2D,3D,流媒體等。說的不對的地方,大家幫我指正。)
HRMM:那就是沒有相關經驗了,對嗎?
ME:哦,是的。
HRMM:你熟悉設計模式嗎?(終于到重點了)
ME:哦,稍微知道一些,都是軟件開發里一些經驗的總結嘛
HRMM:那你都了解哪些模式?
ME:單鍵和抽象工廠。像在。NET 的類庫里就有很多的設計模式的應用,但是基本上這種東西都用在框架設計方面,我作為技術開發人員,比較少參與。
HRMM:不是這樣吧,開發模式不僅能用在框架設計方面,在很多方面都有應用吧。
那你平時在項目里主要的工作是coding是嗎?
ME:(我很無奈)是的。(偶在一30+人的組里coding,而且項目都是EADS的,研發近20年的產品)
HRMM:你會觀察者模式嗎?
ME:這個我真不會。
HRMM:那就不好了,我們對這個還挺看重的。如果給你個問題,你用觀察者模式能解決嗎?
ME:這個都是些經驗的總結,有很多設計模式的書講這個。但是不是每個項目一定都適合觀察者模式,這個得綜合考慮。
HRMM:那假如適合觀察者模式呢?
ME:我。。。。,
HRMM:你覺得你今天的題答的怎么樣?
ME:這題出的一般,我估計我能得70分吧。
HRMM:不見得,以我的經驗,估計不會那么高。好多人都覺得這題出的簡單,但是都分不高。
ME:主要是吧,計算機這東西有些紙上是寫不出來的。可能有人善于寫程序,但是寫在紙上卻不行。這是有很多“軟”能力在里面的。
HRMM:那你覺得你的長處在什么地方呢?技術上。
ME;你這個卷子是給高級開發人員出的,出基本的就不合適了。這套卷子有很多應用的東西在里面,做過的人都知道。像有些代碼,我確實不知道;知道也忘記了,太細了。
HRMM:你還有什么問題問我嗎?
ME:沒有。
OK ,在繼續寫點。
1.coding是程序員基本的能力
不論什么級別的程序員,我想coding都是***位的。但是coding就真的那么簡單嗎?我卻不這么認為,小到一個變量的命名,大到一個功能的實現,沒有扎實的coding能力,難保不會出bug?bug出在自己的測試部門還好,要是出了自己部門,那可是丟面子,還有績效的。
2.HR 基本都是照本宣科
我沒有抱怨什么,也沒有責怪這位HRMM。就是跟一個不會技術的人談技術,我很別扭。不知道說什么?
就是寫出來,記錄一下。我可沒有責怪任何人啊。
3.設計模式
DP是很多面試必問的題目,但是這個東西不是那么容易掌握的。你在一個地方應用了某種模式,不見得下次在同樣的場景下還能正常應用?而且我認為沒有幾個大項目的鍛煉。而且你確實得負責需求到功能的設計,才能對其有所領悟。我們畢竟不能因為模式而模式吧?而且我個人確實也不喜歡DP,純個人習慣。
【編輯推薦】