<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                200X年12月23日的一次面試經歷(共六輪),至此9-X周年之際,和各位朋友分享,希望對各位朋友有用,有些自己的答案貼出來也僅僅是拋磚引玉,希望各位朋友不吝賜教,說句老實話,面試的時候時間很緊,很難考慮最優算法。 起因是朋友推薦我去W公司應聘Senior SDE這個職位,應該算是內部推薦了,下面是招聘要求 Title: Senior SDE (高級軟件開發工程師) 1. 本科學歷,計算機相關專業 2. 英語CET4,能熟練閱讀英文文檔 3. 工作經驗4年以上 4. 優秀的邏輯分析能力,良好的溝通能力 5. 豐富的ASP.NET 、C#、 SQL Server的經驗 6. 有豐富的項目開發、測試經驗 7. 獨立帶領小組完成項目的能力 應該還算吻合,自己很久沒有被面試了,也想去找找面試的感覺,而且對方也是個大公司,也比較期待。 下了地鐵,由于地方不熟,打車又打不上,居然晚了了15分鐘才找到公司(后來發現是通知我面試的MM沒說清楚,但自己沒有問清楚是最不應該的),先去找WC解決一下,然后準備面試。 進門和前臺MM說明了一下遲到的理由,帶我到會議室,給了一套筆試題目,一共七道,沒有說明多久需要做完 第一輪筆試 算法題:可以使用c,c#和java 1. 已知m和n是已經排序好的數組,從小到大,現在要合并這兩個數組內的數到一個數組,仍然要求是從小到大排序 2. 使用遞歸求n的階乘 3. 有1,2,2,3,4,5六個數,要求輸出他們組合的全排列,4不能在第三位,5和3不能相鄰 4. 請解釋HTTP,Cookie和Session 5. 請解釋視圖,存儲過程,左連接 6. 請簡單描述三層架構 7. 寫一段HTML頁面完成注冊功能 看了題目,沒有給答題紙,只能在背面寫了, 先從第四題開始寫起,寫HTTP協議的時候心里有點嘀咕,他不會等會真問我HTTP協議的細節吧。Cookie和Session先講了最重要的,都是Web應用程序中保存特定用戶信息的。Cookie信息存放在客戶端(大小限制4K,只能存放string類型,不安全,但可以考慮使用加密和驗證),Session信息在服務器端(安全性好,占服務器資源,除InProc方式存放的對象需要可序列化),然后簡單說明臨時Cookie和永久Cookie,Session的三種存放方式(InProc、StateServer、SQLServer) 第五題,分別說明視圖和存儲過程的概念/優點/可能使用它們的主要場景 第六題,簡單地描述三層架構,從代碼重用/團隊協作/系統維護/測試等上面說了下,網上相信能找到很多更好的答案。 第七題,寫標記的時候盡量按照xhtml的規范來寫,表單的提交,簡單的樣式和javascript驗證的代碼 這時有人進來,我趕緊又要了一張紙(后面的算法題肯定需要),這4個題目的答案大概寫了A4紙的1面。 回過來寫了算法中最簡單的第二題: ~~~ public static int Func(int n) { if (n < 0) { throw new ArgumentException("不能小于0"); } if (n == 0 || n == 1) { return 1; } return n * Func(n - 1); } ~~~ 看了一下第一題和第三題,還是感覺第一題更簡單,盡量考慮了算法的復雜度,但這個不是本人的強項,不過常識是算法題只應該用一個循環,當時大致寫的代碼如下: ~~~ public static int[] Func(int[] SLm, int[] SLn) { if (SLm == null || SLn == null) { throw new ArgumentException("傳入數組不能為空"); } int[] result = new int[SLm.Length + SLn.Length]; int mIndex = 0; int nIndex = 0; for (int index = 0; index < result.Length; index++) { if (mIndex >= SLm.Length && nIndex >= SLn.Length) { break; } if (mIndex >= SLm.Length) { result[index] = SLn[nIndex++]; continue; } if (nIndex >= SLn.Length) { result[index] = SLm[mIndex++]; continue; } if (SLm[mIndex] < SLn[nIndex]) { result[index] = SLm[mIndex++]; } else if (SLm[mIndex] > SLn[nIndex]) { result[index] = SLn[nIndex++]; } else { result[index] = SLm[mIndex++]; nIndex++; } } return result; } ~~~ 寫第三題到一半的時候MM過來問了一下是否做完,估計自己應該能寫出來,就說還要一回就好。現在已經忘記當初具體怎么寫的了,不過肯定是完成了功能,還記得當時判斷5和3不能相鄰時用的技巧是:相鄰的兩個數字之和不能等于8。下面這個版本是根據http://blog.csdn.net/qianling3439/archive/2008/08/07/2781041.aspx 修改的C#版本: ~~~ public static void Main() { char[] number = new char[] { '1', '2', '2', '3', '4', '5' }; Func(number, 0, number.Length - 1); Console.WriteLine(list.Count); foreach (String s in list) { Console.Write(s + " "); } } public static List<string> list = new List<string>(); public static void Func(char[] n, int beg, int end) { if (beg == end) { string result = new string(n); if (result[2] == '4') return; if (result.Contains("35") || result.Contains("53")) return; list.Add(result); return; } for (int i = beg; i <= end; i++) { Swap(n, beg, i); Func(n, beg + 1, end); Swap(n, beg, i); } } public static void Swap(char[] n, int a, int b) { char temp = n[a]; n[a] = n[b]; n[b] = temp; } ~~~ **第二輪面試** 答完題目之后,一個年輕人(25歲左右)給我面試,根據我的經驗估計對方應該是項目小組中的技術骨干 1. ASP.NET頁面生命周期 這個問題我本身比較熟悉,出門前還看過 :)。 說了幾個自己認為比較重要的PreInit、LoadViewState、 LoadPostData、Load、RaisePostDataChangedEvent(所有實現了IPostBackDataHandler接口的控件)、RaisePostBackEvent(實現 IPostBackEventHandler 接口的控件,如 Button, LinkButton等)、PreRender、SaveViewState。當然包括每個事件主要做什么,尤其是LoadViewState和SaveViewState是實現ASP.NET了保持狀態的假象。 (相信這個問題回答的超出對方想象) 2. 母版頁的作用 這個問題比較簡單,簡單介紹并提及自己不喜歡用母版頁,用javascript找控件比較麻煩,對方頗有同感。 3. 簡單查詢,考勤表id(PK int) name(varchar) time(datetime),求遲到次數最多的員工的最后一次遲到時間 答案就不貼了 4. 經典的第M條到第N條記錄 先問了一下要SQL Server 2000還是SQL Server 2005的版本,對方馬上笑了,說還是SQL Server 2000的吧,給了一個top的版本 (我的blog上寫過類似的東東http://blog.csdn.net/amandag/archive/2008/07/14/2646472.aspx) 5. 算法:最長升序降序序列,7 5 6 8 10 7 9 3 8 7 4 1 8 9 4,則最長的升序序列為5, 6, 8, 10,最長的降序序列為8,7,4,1 個人的答案是用了一個循環,這里就不貼了。 順便提一句,手寫算法題的時候,對方會一直盯著看,壓力比平時寫程序大很多 6. 無限級分類數據庫設計及節點查找 最近寫了一篇類似的blog,當時的思想也差不多是這樣 http://blog.csdn.net/amandag/archive/2009/12/16/5021126.aspx 7. 二叉樹查找 個人感覺由于前面的問題回答的還不錯,后面的這兩個問題對方也只是要求我說了一下思想,并未寫具體的代碼 **第三輪面試** 面試官是一個年約28~29的女孩,問了一些關于我做的項目的問題,個人感覺她的技術不如前面一個面試官,而且表達思路也不是很清楚,略聊了一會對方告訴我下面會有項目經理面試。 **第四輪面試** 面試官應該是個技術性的PM,問了一下網站架構的問題,和其聊了一會數據處理中需要考慮的問題(并發、索引、安全、分布式、緩存、海量數據)。 做技術的還是比較坦誠,他認可我的技術水平(這點讓我頗為開心),并建議我應聘PM的崗位(其實對方招聘的時候只有SDE、Senior SDE這兩個崗位),此時我也意識到如果僅僅應聘Senior SDE看來并不匹配。 **第五輪面試** 面試官應該是個部門經理,很能聊,主要談了兩個問題 1. 如何控制項目管理中的風險(主要提到了項目進度的控制和客戶的交流) 2. 如何打造一個高效的開發團隊、如何評估你的團隊開發人員 針對我的回答又問了些相關問題,說句老實話,對方顯然很有經驗,這輪不知深淺。 這輪結束后對方說公司的副總大概18:30左右會過來,問我是否介意等,我當然不介意。 **第六輪面試** 對方顯然更有經驗,感覺不到對方在問問題,基本就是在聊天,他的回答經常是笑著說"我了解了"或者"我明白了",我也只能見招拆招了,最后對方問了一下薪資的問題,我努力踢過去一個皮球,被對方輕易地踢了回來,只好先翻底牌了。 今天的面試總計用了大約6個小時。 **結語** 很多朋友很關心最終面試是否成功,要讓大家失望了,最終我沒有去這家公司,如果去了,怕也未必會發這個帖子。 沒有去的原因有些不便說,可以提及的說一下。 面試結束后對方并沒有給我回音,由于我有W公司另一個人事的MSN,所以托其問一下,對方給了回應,和我預期的情況差不多,薪資沒談攏(和我預期的有不少差距),我考慮再三(上班的車程大約要1個半小時,而我現在只需要40分鐘),最終還是放棄了。 另:我咨詢了一個朋友(Z公司的副總),講述了一下我面試的經過,問下有何問題,朋友給我的解釋也可能是為了安慰我,內容大致如下: 1. 對方本來沒有打算招PM,但顯然 Senior SDE和我并不匹配,所以我這個屬于隱形招聘需求,對方最需要的并不是PM。 2. W公司現在招人是為了有可能接上政府的單子,項目還沒接上,這個PM對W公司并不著急。 **歡迎各位朋友對上述問題不吝指教!所有分數將給提出有價值的答案或者建議的朋友,謝謝!**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看