?菜鳥程序員須知(1)
在賣鐵殼混了這么些年,拋開那些看起來唬人的title,俺其實就是一個靠寫代碼維持生計的程序員。雖然好為人師,但是真的要俺講那些個云山霧罩的前衛(wèi)新名詞,還真講不出啥。我們所處的這個行業(yè),真真的日行千里,變幻莫測。不過,還在這么多年的實際經(jīng)歷用事實證明,那些都是術(shù),真正的道一直都沒有變。要說須知,可以說很多。
1》雙基是所有學(xué)問起點
雙基就是基本概念和基本操作。雖然名稱上叫基本,其實要熟練并不容易。五路那個行業(yè),只要雙基搞定80%,就足以PK掉80%以上的同業(yè)競爭者。俺面試過很多人,C# 都會問什么是面向?qū)ο??什么是繼承封裝多態(tài)?Oracle 就會為DBMS_Profiler 的用途?這算是非?;A(chǔ)的東西吧?事實上能夠說得清楚的鳳毛麟角。都在說現(xiàn)在競爭非常激烈,其實在俺看來好像并非如此。雙基搞定,就可以拿到俺的Offer,而且基本到同等經(jīng)驗的75分位。當(dāng)然,也可能是俺們公司并非什么大廠,來面試的都是些小蝦米吧。
2》英語是基礎(chǔ)中的基礎(chǔ)
每年都會有一批大專生到公司實習(xí),絕大多數(shù)都是計算機專業(yè)的。專業(yè)修養(yǎng)先不說,但是英語是真的爛到家。但是寫程序的,證明能不懂英語了?寫的代碼都是英文?。《仪叭藢懙拇a,特別是一些大牛寫的,都是英文。甚至連注解都是英文。你英文不行,寫程序就是事倍功半。俺想出了一個所謂小紅點計劃,要求他們每天工作學(xué)習(xí)遇到的英文單詞都記在有道云詞典的單詞本里,然后每天消滅提示復(fù)習(xí)的小紅點。這種辦法看起來有點Low,如果可以嚴格按照這個來作業(yè),痛苦個半年到一年,自己這個行業(yè)的英文至少都熟悉,混口飯吃還是沒啥大問題的。做到這個程度,至少遇到問題,會用英文查資料,而這是區(qū)別一個程序員水平的重要標(biāo)志!
3》計算機基礎(chǔ)不大重要
以前俺的部門叫MIS(資訊管理部),現(xiàn)在改為IIC(資訊創(chuàng)新中心)。這種部門的IT,雖然叫程序員,其實算是工程師而已。工程師玩的這些東西,都不是什么高科技。但是在學(xué)校是絕無可能學(xué)到的。從這個意義上上講,在學(xué)校學(xué)的那些計算機基礎(chǔ),真心不重要。俺自己是工業(yè)工程專業(yè)的,在學(xué)校的時候,寫程序最多算是業(yè)余愛好?;爝MIT這一行之后,也遇到正經(jīng)軟件專業(yè)的同事,但是感覺壓力大的不得了。現(xiàn)在回頭看,其實當(dāng)時大家都在一個水平線上,都很菜鳥,都是啥都不會,都是從頭開始。當(dāng)然,如果在大學(xué)期間,有實際參與到一些真刀真槍的軟件項目的話,就另當(dāng)別論。這里說的不太重要的計算機基礎(chǔ),是指學(xué)校老師教的那些。好多老師也是打混而已。如果在學(xué)校踏踏實實的把數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng)原理,PC原理,數(shù)據(jù)庫原理這些基礎(chǔ)知識學(xué)得非常扎實,那么在入職時候是非常有用的,很多人會被你降維吊打!
4》數(shù)學(xué)最好能高數(shù)及格
在參加工作后很長一段時間,都沒有意識到數(shù)學(xué)的重要性。當(dāng)然,讀書那段時間,俺數(shù)學(xué)還是可以的。直到某一年,跟人合作搞一款MSA軟件,才發(fā)現(xiàn)真是吃力。程序語言說到底,只是一個工具而已。即使很多算法,也是工具而已。用戶真正要解決的問題,可能只是簡單的加減法,也可能是涉及到高深的數(shù)學(xué)。以俺目前接觸到的,高數(shù)至少要可以即可。否則,很容易在實戰(zhàn)中被人蹂躪。學(xué)數(shù)學(xué)不大容易的,因為你很難靠百度一下,看幾篇博文就真正解決問題,需要一整段的時間持續(xù)投入才能有點效果。所以最佳時間段是在上學(xué)的時候就搞定。參加工作后就很難有機會了。人生的每個階段一定要把該做的事情做好,否則可能一步差,步步差。
5》普通智商也可以登峰
其實不光是程序員這一行,在絕大多數(shù)行業(yè)中,都很少有機會光靠智商能夠碾壓其他人。因為企業(yè)IT,接觸到的都是大規(guī)模商用的技術(shù),基本不需要什么智商,否則這種技術(shù)怎么可能大規(guī)模使用了?就像俺們用的C#這種語言工具寫程序,你需要多高的智商嗎?需要的是積累。不斷的總結(jié)最佳實踐,然后不斷的實戰(zhàn)操練,都會做出不錯的成績。其實學(xué)會一兩門程序語言,真的只不過是職業(yè)生涯的開始,持續(xù)學(xué)習(xí),深入學(xué)習(xí),不斷總結(jié),不多做知識螺旋,才是可行之道!
6》學(xué)會百度也學(xué)會谷歌
在寫代碼的過程中,經(jīng)常會遇到一些陌生的東西。微軟官方的C# Guide,動輒幾十萬頁,幾乎涉及到整個程序世界的方方面面。而用戶提需求,可不會管理懂不懂。所以,遇到看不懂的東西,非常正常。何況,隨著MS的開源戰(zhàn)略日益深入人心,各種各樣的新東西層出不窮。即使是行業(yè)中的老鳥,也可能完全陌生或者一知半解。這個時候百度一下或者Google一下,就特別重要了。但是這有個前提,就是你的English,特別是本行業(yè)的English 要過關(guān)。Google很強大,但是要查到有價值的東西,至少要給她一個Key word吧。當(dāng)然,由于某些原因,俺們這嘎達Google不大能用。不過,這對于一個程序員,應(yīng)該不算是什么問題吧?
當(dāng)然,還有很多其他的經(jīng)驗。后面有時間再慢慢講!
