給程式設計師新手的一些建議
原文連結:enter link description here 作者:itwriter
前段時間因為實習生計劃花了很多時間做了實習生招聘的工作,產生的一些想法,寫在這裡。
這次招聘過程中,我發現我們在校的學生有下面的這些特點:
1)NB的專案。當說到自己做過的專案時,我發現他們做的事都是很NB。要麼是研究Linux的底層核心,要麼是影像識別處理,要麼是推薦演算法,要麼做高效能運算,要麼做資料探勘,要麼是移動方面的協議,還有一些很高深的課題我聽不太懂的專案。這讓我想起當年我在學校裡的實習,對比起我用Java Applet 和 HTML做作業系統的教學課件,或是在公司裡用Delphi/PowerBuilder做的那些MIS系統。讓我覺得有些汗顏。
2)OK的解決問題能力。當問到演算法題時,我發現他們的問題解決能力還OK。我一般問1到2箇中低難度的演算法題和1個基本的物件導向設計的題,都不難。我相信只要在學校裡好好學習的人都應該答得出來。無非就是一些基本的演算法和基本資料結構操作的問題,和比較基礎的物件導向設計的題,說白了就是作業題。可惜的是,只有5%不到的同學能夠在不給提示的情況下答出來,70%的人可以在給一定的提示下答出來,15%左右的同學需要提示到幾乎給出答案才能答出來,還有10%的同學怎麼給提示都答不出來。
3)WTF的編碼能力。老實說,對於解演算法題,我還是比較可以接受的,因為80%左右的同學在給予提示後都能描述出解題的演算法,於是,我讓他們把這個演算法用他們最熟悉的語言寫出來。但結果讓我出乎意料,一段在解法很清楚的情況下只需要不到30行程式碼的小演算法題,只有一個人能在10分鐘幾寫完,其它的人基本所有的需要30分鐘左右(甚至40分鐘),有2、3個人居然寫不出來。有一個比較極端的case是——有個同學花了十分鐘都寫不出從一個整型陣列中找到最小的正數的程式碼。這個事讓我覺得很驚訝,難道大家在做專案的時候不程式設計嗎?
對於這種情況,我想給大家以下後一些建議:
- 我感到我們在校的學生正如“為什麼中國的網頁這麼爛”中所說的——他們習慣於獲取大量的知識,而從不對這些知識進行思考和總結。問題不是我們知道多少東西,問題是我們在獲取這些知識的時候會不會去思考這些知識後的東西?比如:為什麼會有這麼多經典的資料結構,陣列,連結串列,樹,雜湊表,圖這些資料結構主要用來解決什麼樣的問題,他們的優勢和劣勢是什麼?沒有思考過,就不算真正的懂,沒有思考過,你將無法應對萬變的問題,沒有思考過,你將成為書呆子。
- 多多實踐而不是研究。程式設計不是在實驗室做科研搞理論啊,計算機這本就是一個實踐性很強的的學科啊,這不是數學,這需要你多多的實踐啊。我們不要真以為讀的是——電腦科學(Computer Science )就是搞理論的了,這裡面需要很多很多的Engineering的工作。(我實在是很難想像雖然有這麼多人寫一般難度的程式雖然會是那麼痛苦的事)
- 我在我的新浪微博(@左耳朵耗子)裡說的,我們不要以為做過專案,會寫程式,我們就是程式設計師了。如果你只是在按部就班地寫程式碼,你就是Coder,江湖叫“碼農”,不要把自己當成“碼農”,我們一定要對自己的程式碼,自己的設計不停地反思和總結,並精益求精,寫程式本來就是一件有價值的事,這就像寫篇作文人人都會寫,但並不是人人都能把文章寫好。程式設計和寫作都是一樣的,這都是在搞創作啊。想做“碼農”還是想做“程式設計師”?自己的決定。
- 我們的教育的確很“廢柴”,但這不是我們成為“廢柴”的原因。如果我們的學習還停留在“別人給我什麼我就學什麼”的被動學習階段,那麼你真的不懂怎麼是學習。雖然,我們的學校裡並沒有教你什麼是“Version Control”,什麼是“Coding Style”,什麼是“Refactory”,什麼是“Code Review”,什麼是“Unit Test”,也沒有告訴你一些經典的設計的和架構,等等,等等,但是這是什麼年代了?這個時代不是像我上學那時——學校機房裡上機用的電腦連記憶體和硬碟都沒有,用5寸的低密軟盤面對綠色顯示器的286時代了。我們身邊有很多很多優秀的人,網上有很多優秀的文章,書店裡也有很多不錯的書,而且我們的軟體開發日趨成熟,如果我們還學不好的話,那麼我們就是在犯罪!
最後,和大家說一下公司的實習生招聘。這個事情其實是畢業生招聘的一個組成部分,也就是說,因為我國教育的問題,再加上學生自己的問題,導致畢業生量多質次的情況很嚴重,對於公司,其很難從學校招到一個比較不錯的畢業生,這種情況已經不是新問題了,所以,也有很多公司都不招剛畢業的學生。因此,通過實習機會了解並招聘畢業生成了很多公司的畢業生招聘的手段。所以,在這裡想告訴在校的同學們,千萬不要以為實習計劃就是字面上的實習。其實,這和正式的招聘沒有什麼差別,同樣也要看你的能力的。
相關文章
- 1024 寫給程式設計師的一些建議程式設計師
- 程式設計師也要養生,給DBA和IT同行的一些建議程式設計師
- 給程式設計師“菜鳥”的6條建議程式設計師
- #給java程式設計師的10條建議,吐血推薦!Java程式設計師
- 給各位PHP程式設計師十點未來的建議PHP程式設計師
- 給迷茫的JAVA程式設計師一些中肯建議, 你還在虛度光陰嗎?Java程式設計師
- 聊聊程式設計師的職場“圍城”,給出作為過來人的一些建議程式設計師
- 給各位程式設計師的一些忠告程式設計師
- 給中級程式設計師突破瓶頸的幾個建議,收藏~程式設計師
- 給新手學習MySQL的建議MySql
- 戰神系列戰鬥設計師:給遊戲設計師的 50 條建議遊戲設計師
- Linux新手如何入門?給新手的四點建議!Linux
- Android程式設計師的Java後臺學習建議Android程式設計師Java
- 有哪些讓程式設計師受益終生的建議程式設計師
- 每個程式設計師必須掌握的常用英語詞彙分享給你(建議收藏)程式設計師
- 新手如何學習網頁設計?自我建議網頁
- 給Linux系統運維新手的四點建議Linux運維
- 給服務端小白的一些建議服務端
- 一個老程式設計師的程式設計之路,寫給年輕的程式設計師們程式設計師
- 關於要不要轉行做程式設計師的建議程式設計師
- 程式設計幾點建議程式設計
- 給程式設計師的一頓午餐?程式設計師
- 學習Java程式設計的建議Java程式設計
- 面向協議程式設計的一些思考協議程式設計
- 自學程式設計的朋友,我想給你們這 5 個建議程式設計
- 程式設計師必備基礎:改善Java程式的20個實用建議程式設計師Java
- Midway 後端程式碼的設計建議後端
- 如何自學程式設計及Java、上手真實開發及轉行程式設計師的建議Java行程程式設計師
- 新手程式設計師必備10大技能程式設計師
- 給初學者一些學習Python的建議Python
- 程式設計師買房的一些想法程式設計師
- 程式設計漫談(二十):如何自學程式設計及Java、上手真實開發及轉行程式設計師的建議Java行程程式設計師
- 給Python初學者的一些程式設計技巧Python程式設計
- 程式設計師給女友最好的禮物是....程式設計師
- 寫給新入行的程式設計師小朋友程式設計師
- 寫給前端程式設計師的命令列入門前端程式設計師命令列
- 給0基礎入門Linux運維新手的五個建議!Linux運維
- 給技術人員一些技術以外的建議
- [分享]2021 年對 React 前端程式設計師的 10 個程式碼最佳實踐建議React前端程式設計師