每個程序員1小時內必須解決的5個編程問題
英文原文:Five programming problems every Software Engineer should be able to solve in less than 1 hour
每次我發布軟件工程師的崗位工作要求,各種求職申請就會紛至沓來,接踵而至。但每每讓我困惑的是,似乎總有那么幾位應聘者完全不明白所謂“編程”的意思。
當然,他們另有想法。
而我認為,如果你應聘的是“Web 前端開發”崗位,那么你只懂 jQuery 也可以勝任,那么,“軟件工程師”是不是就意味著會 HTML、JavaScript 和 CSS 這些必備技能就行了呢?
(我覺得那些聊起 XML、JSON、XSLT、SOAP、HTTP、REST、SSL 和 200 多個首字母縮寫詞來頭頭是道,但卻不會區分整型和浮點型數據類型的家伙很有意思。呵呵)
你真的會寫代碼嗎?
對于應聘程序員的求職人員,我,作為用人單位,首先希望的是你會寫代碼。我指的是真正的代碼:我給你一個問題,你使用任何你覺得舒適的編程語言給出它的解決方案。
你真的能做到這一點嗎?
策略:如果你不能在 1 小時以內解決以下 5 個問題,那么你首先要做的是重新審視自己。的確,或許你各方面的工作都干的不錯,但是我依然覺得你現在還不配“軟件工程師(或程序員,計算機科學專家,甚 至是“開發人員”)”這個頭銜。不要自欺欺人,先花點時間來調整你的重點吧。
5 個問題
問題1
使用 for 循環、while 循環和遞歸寫出 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。
譯文鏈接:http://www.codeceo.com/article/5-problems-programmer-1-hour.html
翻譯作者:碼農網 – 小峰