今天上午又去招聘了,加上前面一段時間的招聘經驗,有些話不吐不快,我們希望找到能幹活的人,就是能編程序的人,但是我感覺現在剛畢業的人裡面,包括名校的,能幹活的人比例非常的低,大概不超過百分之一。
很多人都說,沒有參加過實際的項目,沒有經驗,希望能夠在工作過程中學習等等,開始的時候我也這樣認為,隨著面試的人的增多,手下新人的增多,我的看法逐漸變了。
不談個人主觀能動性方面的種種問題,我想談談我心目當中的科班出身編程序選手的及格線。
如果你希望編程序為生的話,那麼,大學才是你最重要的經驗積累地點,相反,工作單位能夠積累的東西很少,或者說絕對是第二位的。
大學裡面,最重要的課程有兩門,一門是編譯原理,一門是數據結構,這兩門課的課程都不重要,重要的是課程設計,也就是老師讓你上機做的題目,就我這段時間面試的上百人來說,我認為其中的九十九個,這兩門課的課程設計要麼是直接複製別人的,要麼是矇混過關的[只碰到一個真刀真槍作過的],其實,這兩門課是你大學裡所有學習內容當中對編程序的能力進行訓練的最根本內容,也是你在社會上永遠碰不到的學習機會,任何,不論多貴的培訓機構,也不可能給你提供這兩門課的訓練深度,我見過太多的畢業之後又花一兩萬塊參加各種形式的培訓機構培訓一年的選手了,你學會一萬種框架的配置方法,也不如你大學的時候把這兩門課上好有意義。
編譯原理的課程設計,一般來說要求做一個詞法分析器或者語法分析器,最屁要你做一個數學公式的逆波蘭式解析,我個人看法詞法分析器或者語法分析器都可以,單作逆波蘭式,則最好能夠做到支持各種類型的運算的地步,比如邏輯運算等等,這門課的課程設計如果能夠獨立完成,可以在你的大腦裡面創建一個整體化的計算機思考方式,最重要的是,這個過程能夠讓你學會面對一個複雜問題的時候,如何通過各種計算機語言來解決問題,好處不再列舉,其實你畢業之後參加的任何培訓,其演算法複雜程度都不可能和這門課程相比。
數據結構的課程設計,關鍵點在於兩個,一個是數據結構和演算法本身,這裡需要理解和學習的主要內容是循環和遞歸等等,其實如果你上面一個做得好,這些都不是太大問題了,學習一下各種數據結構的應用還有些意義;第二個最重要的訓練目的,就是如何在計算機當中表達問題的問題,很多人跟我說,我的課程設計是二叉樹排序,輸入就是我自己輸進去一堆數字,輸出就是把這些數字排好了再輸出到屏幕上、、、faint,暈倒,講一個漢諾塔的例子吧:
漢諾塔本身的演算法只有二十幾行,不太好理解,但是也不難理解,那麼,如果希望做一個東西,把漢諾塔表達一下,應該考慮什麼東西呢?
首先,需要考慮清楚幾個塔,個個盤子,應該用什麼表達,用什麼數據結構表達?這個是一個關鍵問題,需要能夠把塔和盤子和數組以及數組裡面的元素對應起來思考問題,不要看這一點簡單,實際上太多人根本就沒有辦法在大腦裡面完成這個轉換。其次,要考慮清楚其中有哪些元素可能發生變化,盤子的數目是最簡單的變化元素了,有沒有其它的了呢?
有,移動的速度,如果你移動得太快,那麼誰也看不清楚,你等於什麼也沒做、、那麼,至少兩個元素要可變,一個是移動速度,一個是盤子數目。
好,輪到表達方式了,你要是牛的話,就畫成棍子上面穿著有洞的盤子,不行的話就豎線上面穿橫線,移動的過程,牛的話做成動畫??不行的話就演示每個步驟地結果既可好,該怎麼畫出來呢,這個時候你就要弄明白如何在屏幕上劃線,這個簡單,重要的是如何擦掉一條線,還不能把棍子的那個點擦掉,這就有點問題了。
好了,上面問題都解決完畢之後,用什麼語言編程序就很次要了,c也好,pascal,java,任何語言,一個帶兩個參數的動畫演示漢諾塔的東東就出世了。
數據結構的學習過程中,如果能夠在四五個題目上面做到上面的深度,相信你絕對受歡迎。
以上兩個課程設計,如果都能夠獨立完成,一般來說畢業後兩三年內收入必然超過五千,如果在北京上海,應該可以肯定超過一萬。(文章僅代表作者個人立場和觀點) --版權所有,任何形式轉載需看中國授權許可。
很多人都說,沒有參加過實際的項目,沒有經驗,希望能夠在工作過程中學習等等,開始的時候我也這樣認為,隨著面試的人的增多,手下新人的增多,我的看法逐漸變了。
不談個人主觀能動性方面的種種問題,我想談談我心目當中的科班出身編程序選手的及格線。
如果你希望編程序為生的話,那麼,大學才是你最重要的經驗積累地點,相反,工作單位能夠積累的東西很少,或者說絕對是第二位的。
大學裡面,最重要的課程有兩門,一門是編譯原理,一門是數據結構,這兩門課的課程都不重要,重要的是課程設計,也就是老師讓你上機做的題目,就我這段時間面試的上百人來說,我認為其中的九十九個,這兩門課的課程設計要麼是直接複製別人的,要麼是矇混過關的[只碰到一個真刀真槍作過的],其實,這兩門課是你大學裡所有學習內容當中對編程序的能力進行訓練的最根本內容,也是你在社會上永遠碰不到的學習機會,任何,不論多貴的培訓機構,也不可能給你提供這兩門課的訓練深度,我見過太多的畢業之後又花一兩萬塊參加各種形式的培訓機構培訓一年的選手了,你學會一萬種框架的配置方法,也不如你大學的時候把這兩門課上好有意義。
編譯原理的課程設計,一般來說要求做一個詞法分析器或者語法分析器,最屁要你做一個數學公式的逆波蘭式解析,我個人看法詞法分析器或者語法分析器都可以,單作逆波蘭式,則最好能夠做到支持各種類型的運算的地步,比如邏輯運算等等,這門課的課程設計如果能夠獨立完成,可以在你的大腦裡面創建一個整體化的計算機思考方式,最重要的是,這個過程能夠讓你學會面對一個複雜問題的時候,如何通過各種計算機語言來解決問題,好處不再列舉,其實你畢業之後參加的任何培訓,其演算法複雜程度都不可能和這門課程相比。
數據結構的課程設計,關鍵點在於兩個,一個是數據結構和演算法本身,這裡需要理解和學習的主要內容是循環和遞歸等等,其實如果你上面一個做得好,這些都不是太大問題了,學習一下各種數據結構的應用還有些意義;第二個最重要的訓練目的,就是如何在計算機當中表達問題的問題,很多人跟我說,我的課程設計是二叉樹排序,輸入就是我自己輸進去一堆數字,輸出就是把這些數字排好了再輸出到屏幕上、、、faint,暈倒,講一個漢諾塔的例子吧:
漢諾塔本身的演算法只有二十幾行,不太好理解,但是也不難理解,那麼,如果希望做一個東西,把漢諾塔表達一下,應該考慮什麼東西呢?
首先,需要考慮清楚幾個塔,個個盤子,應該用什麼表達,用什麼數據結構表達?這個是一個關鍵問題,需要能夠把塔和盤子和數組以及數組裡面的元素對應起來思考問題,不要看這一點簡單,實際上太多人根本就沒有辦法在大腦裡面完成這個轉換。其次,要考慮清楚其中有哪些元素可能發生變化,盤子的數目是最簡單的變化元素了,有沒有其它的了呢?
有,移動的速度,如果你移動得太快,那麼誰也看不清楚,你等於什麼也沒做、、那麼,至少兩個元素要可變,一個是移動速度,一個是盤子數目。
好,輪到表達方式了,你要是牛的話,就畫成棍子上面穿著有洞的盤子,不行的話就豎線上面穿橫線,移動的過程,牛的話做成動畫??不行的話就演示每個步驟地結果既可好,該怎麼畫出來呢,這個時候你就要弄明白如何在屏幕上劃線,這個簡單,重要的是如何擦掉一條線,還不能把棍子的那個點擦掉,這就有點問題了。
好了,上面問題都解決完畢之後,用什麼語言編程序就很次要了,c也好,pascal,java,任何語言,一個帶兩個參數的動畫演示漢諾塔的東東就出世了。
數據結構的學習過程中,如果能夠在四五個題目上面做到上面的深度,相信你絕對受歡迎。
以上兩個課程設計,如果都能夠獨立完成,一般來說畢業後兩三年內收入必然超過五千,如果在北京上海,應該可以肯定超過一萬。(文章僅代表作者個人立場和觀點) --版權所有,任何形式轉載需看中國授權許可。
- 關鍵字搜索:
- 計算
看完那這篇文章覺得
排序