每個程序員1小時內必須解決的5個編程問題
每次我發(fā)布軟件工程師的崗位工作要求,各種求職申請就會紛至沓來,接踵而至。但每每讓我困惑的是,似乎總有那么幾位應聘者完全不明白所謂“編程”的意思。
當然,他們另有想法。
而我認為,如果你應聘的是“Web前端開發(fā)”崗位,那么你只懂jQuery也可以勝任,那么,“軟件工程師”是不是就意味著會HTML、JavaScript和CSS這些必備技能就行了呢?
(我覺得那些聊起XML、JSON、XSLT、SOAP、HTTP、REST、SSL和200多個首字母縮寫詞來頭頭是道,但卻不會區(qū)分整型和浮點型數據類型的家伙很有意思。呵呵)
你真的會寫代碼嗎?
對于應聘程序員的求職人員,我,作為用人單位,首先希望的是你會寫代碼。我指的是真正的代碼:我給你一個問題,你使用任何你覺得舒適的編程語言給出它的解決方案。
你真的能做到這一點嗎?
策略:如果你不能在1小時以內解決以下5個問題,那么你首先要做的是重新審視自己。的確,或許你各方面的工作都干的不錯,但是我依然覺得你現(xiàn)在還不配“軟件工程師(或程序員,計算機科學專家,甚至是“開發(fā)人員”)”這個頭銜。不要自欺欺人,先花點時間來調整你的重點吧。
5個問題
問題1
使用for循環(huán)、while循環(huán)和遞歸寫出3個函數來計算給定數列的總和。
問題2
編寫一個交錯合并列表元素的函數。例如:給定的兩個列表為[a,B,C]和[1,2,3],函數返回[a,1,B,2,C,3]。
問題3
編寫一個計算前100位斐波那契數的函數。根據定義,斐波那契序列的前兩位數字是0和1,隨后的每個數字是前兩個數字的和。例如,前10位斐波那契數為:0,1,1,2,3,5,8,13,21,34。
問題4
編寫一個能將給定非負整數列表中的數字排列成***數字的函數。例如,給定[50,2,1,9],***數字為95021。
Ps:點擊這里,閱讀我的解決方案。
問題5
編寫一個在1,2,…,9(順序不能變)數字之間插入+或-或什么都不插入,使得計算結果總是100的程序,并輸出所有的可能性。例如:1 + 2 + 34 – 5 + 67 – 8 + 9 = 100。
Ps:如果你不知道的話,點擊這里,閱讀我的解決方案。
如果你能力超群,上面這些問題對你而言只是小菜一碟,1小時之內解決完全綽綽有余的話,請將我的慷慨陳詞當作是在放屁。
不過,如果你覺得本文對你很有幫助的話,歡迎分享,并留下您寶貴的見解。Thank for reading。