有關“非電腦專業如何轉行做程式員”的一點思考_程式員

來源:互聯網
上載者:User

今天老夫半夜爬起來等著看世界盃預選賽法國vs西班牙的比賽,在新浪微博裡看到@程 序員的那些事 發的一封粉絲來信如下:

XXXX:員員好,我是12屆的大學生,讀了一所還可以的大學,但所學專業我很不喜歡,我因為性格較內向同時又感歎編程的神奇,所以很想進入這一行,但 我去面試幾家後發現就算是實習崗位也需要一些基礎,雖說大學學過C語言但感覺也基本不會用,那些面試單位是建議我去學習這方面知識再去找他,但我又對這些 培訓機構不太放心,怕花費了一大筆學費結果卻不好,現在我有些迷茫不知道該去找找其它工作(人才市場很多都是些銷售和工廠的一些崗位)還是去學習,希望廣 大的員員們給我些指導,非常感謝。

看完還是有一些感觸的。作為一個科班電腦系畢業,第一份工作就是軟體開發,然後又在諮詢和銷售領域工作了很多年,再迴歸到開發領域的老碼農,老夫對於該同學的糾結心情是非常理解的。但是,要把一份工作持續地做下去,光有熱情是不夠的,如果你總是不能把事情做得比你身邊的人更好,你的熱情就會慢慢地消退,會開始懷疑自己的決定是否正確,自己的堅持是否有意義。所以,我的建議是給自己一段時間打好基礎,也藉此過程驗證自己的決定是否明智,就算最後的答案是否定的,學會一些編程的技術也會對培養自己分析問題的思路有所協助。

好了,說到正題,非電腦專業的同學如何為成為一個程式員打基礎呢。我建議走如下的步驟: 1. 學會一門程式設計語言。隨便什麼語言都可以,其實python很適合初學者,有本書叫《與孩子一起學編程》用的就是它。不過考慮到步驟2,還是選個流行的教學語言吧,比如C++或者Java。 2. 非常非常非常非常非常非常認真地學習《資料結構》這門課。你作為程式員功力幾何,很大程度上取決於你在這方面的造詣。 3. 學好離散數學,重點是高等代數、數理邏輯、集合論、圖論,最好再學會機率論。電腦科學的本質是離散數學,不掌握這些知識你如何能真正理解向量、邏輯運算、最短路徑、塗色演算法這些概念呢。 4. 自己做一個小項目,儘可能把你學會的東西都用上。這不僅能向招聘者展示你的功力,也是一個把所學知識融會貫通的過程,只有做了一個項目,你學的知識才真正變成為了你掌握的技術。

有人看到這裡可能要說了,碼農對程式設計語言熟悉就行了,學那麼多不相干的又何必呢。

老夫打個不太恰當的比方,離散數學和資料結構就像一個武林高手的內功,程式設計語言則是招式。內功不行,就算會很多招式,可以嚇唬嚇唬武功一般的人,但是碰到打硬仗這些花拳繡腿就不管用,會死得很慘。可惜現在很多人不重視內功,不少電腦專業畢業生連堆棧和隊列是怎麼回事都不知道,更別提二叉樹、鏈表、圖結構了。不管碰到什麼需求,上來就定義幾個大數組,你能指望他編出多高效的代碼。比如現在互連網熱門的大資料,演算法效率是核心問題,如果誰整出個O(n^2)的演算法,信不信老闆分分鐘砍死他。

再說遠一點,學會一門程式設計語言容易,精通很難,難就難在理解它的精髓。有很多開發人員熱衷於最新潮的技術,今天玩玩NoSQL,明天搞搞Html 5,說起來頭頭是道,但是都深入不下去,從來沒有真正沒有理解這些技術的精髓,也就做不出一個能發揮出它們真正優勢的產品來。這往往就是因為內功不行而心態又很浮躁。(補充一篇文章:《葉正盛:再次寫給我們這些浮躁的程式員》)但是程式員是靠代碼說話的,只是善於對某個技術侃侃而談沒有任何價值。Linux和Git之父Linus Torvalds說過:“Talk is cheap. Show me the code.”(空談無價值。拿你的代碼來看看。)所以老夫要說,作為一個程式員,不先練好內功就寫不出優雅的代碼,這樣是走不遠的。

怎麼學呢。這些不需要花很多錢去培訓機構,而且從我面試過的很多培訓學校學員的表現來看,絕大部分人學完了連MVC的概念都沒搞明白,花半年時間就學會了if…else,何必去糟蹋這錢呢。現在一些大學有旁聽的學分課程,花幾百塊錢就可以聽一門課,還可以交作業做實驗(比如:http://zhidao.baidu.com/question/245256206.html)。建議你儘可能去選最好的學校,不僅僅是老師水平高,關鍵是同學的高水平會促使你對自己有更高要求,這和培訓學校的氛圍是完全不同的。

如果你在以上4步都做得很好,那麼你應該可以在碼農這個行業獲得一些機會,剩下的就看你在工作中的表現和積累了。碼農的修行是一個長期過程,電腦領域每年都有新技術出現。做了碼農,就得活到老學到老,註定一輩子苦兮兮的。如果你喜歡這種感覺,那麼你的選擇可能就是正確的。

 

文章作者:@老碼農的自留地

文章連結:http://blog.jobbole.com/36918/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.