這個話題今天得提提了.技術者,話題太廣,本人也只是就自己熟悉的領域和關注的領域做些拋磚引玉的泛泛之談.有的乃屬于失敗之教訓總結,有的屬于成功的感慨,還有的則是拜讀名家之感悟處.有所感悟,愿有助于各位網有,也有可能悟錯,也請大家廣開言路,不吝賜教.
古話有"女怕嫁錯郎,男怕入錯行",推廣開來,很有道理,不管男人女人,大師小工,林林總總算來,入錯行就完蛋了.行者,有大行,小行,小小行最后落實到
自己一輩子從事的幾個領域.這就是人的一輩子的職業軌跡了,大人物小人物都一樣的.不信自己用心去體會一下.所以啊,門道很重要,門路很重要.可以很形象
的用倒掛的樹來描敘描敘,時刻檢查下自己,處于哪個分支,哪個節點,哪片葉子.是不是與自己最和諧的?不是,那對你自己無好處,對整棵樹都沒好處,因為社
會這棵樹需要的是和諧與平衡才能,枝葉繁茂,果實累累.哈哈,毛主席等把這棵數載下了,而后來的領導者的最重要的是如何保持這棵樹的和諧與平衡了,這是最
基本和最重要的大事了.國事這里暫且不談.
入行IT,只是說你進入了一個大的行當,純技術鏈來講,第一維空間,技術劃分:最低層的芯片,到板極,到OS,驅動,固件,到數據庫,各種應用程序.第2
維,從業劃分:交叉在其中的設計,實現(并列測試),維護,改進,技術支持及管理(注意,這里按貢獻價值等把管理排在最后,意在管理者需看清自己的地
位).第3維:以上各個點的全向擴展:比如,做芯片的可能有專做通用CPU的,圖形芯片的,網絡芯片的,射頻芯片的.等等....太多了.OS也一樣.從
WIN
到LINUX,到VXWORK等等各種應用行業的OS,與之匹配的系列.數據庫和各種應用軟件.包括網站什么的.越上層就表示應用口徑越大,涉及的行業越
多,交叉性越多.這幾維的劃分標準是以我目前的認知水平為基準劃分的,也許不同行業不同領域不同歷練和不同思維方式的人看法都不太一樣,沒關系,只是個坐
標系的不同而已,有人用直角坐標系,有人用極坐標系,只要定位準確,不矛盾,怎么看怎么劃分都可以.
既然劃分好了,剩下的就是定位了,那就要看你自己喜歡做什么,適合做什么,以及你認為的和諧點在哪里了.所謂和諧,不外乎一個字:爽!干的有意思:爽!拿
錢多:爽!有前景:爽!輕松:爽!......壓榨凌駕別人:爽!勾心斗角,步步高升:爽!弄虛作假,混混耗耗,虛度光陰:爽!......TMD,去
死!后面幾種是極端,但也存在.記住:你爽的同時也要讓別人爽,否則,一是你沒法享受發自內心的"爽",那叫沒真正的爽過.因為你會擔心這擔心那的,充其
只是拿這些來換點錢或權而已,何必呢?二是你可能爽得不長久.不讓領導爽和不讓手下的弟兄或者你的伙伴爽其效果是等同的,那真正的智慧就是如何讓大家一起
爽.
這點在現實面前可能有點理想化,但是只要是群明白人,都能明白這個道理.工作生活中的各方面都會做些一些適當的妥協和讓步的(除了那些驢一樣的有理不饒
人,無理絆三分的,沒眼光,沒心胸,沒本事卻自以為是的人以外).一般來講,把話講明了,把各方的勞益考慮周全了,這點很好做到.就怕這點做不好.
扯了點羅嗦話,至于如何提高自己應該有兩方面來決定:你的單位和你本人.對于一個剛出道的小毛孩來講,單位占的比重大,對于有了幾年底子的人來講,80%
在你個人,單位那點培訓可有可無.那就是說,出道一兩年就必須意識到自學的重要性且必須懂得真正的自學.否則,就甘愿被邊緣化,然后淘汰掉.基本上一兩年
就可以見分曉了.而第一份工作和你的引導者恰恰在很大程度上影響你的決定因素,除非遇到奇跡.所以:這里第一句話是:第一份工作很重要,第一二年要真正學
會自學.就我所知道的和接觸的人來講,一般都不懂怎么自學.畢竟受中國的教育的影響.但是,能上名牌的,重點的,他們的大部分比非名牌的這點要強,你可以
觀察得到的,這也許是他們厲害的一點.參透這點,就站在同一起跑線上了,就不必要妄自菲薄或者對非名牌的冷眼相待了.
什么是真正的自學:達到幾點就可以了回答了:1)這個領域里的大作你拜讀了?2)吸收并落到實處沒有?3)實驗環境你有嗎?4)悟過嗎?有哪
些?......當然,就我的體會,還有很多很多,有些也許只適合本人,就不誤導大家了.其實,只要你有點基礎,學會了自學,什么都好辦了.
還有就是一些具體的方法了:學計算機最重要的是基礎:比如CPU的架構,計算機原理啊,OS,編譯原理,網絡模型,如果有通信背景更好理解.剩下的就是C
了,這里只推薦C,還有適當的懂點匯編,把任何一款開發環境摸透,TC也好,VC也好,ADS也好,
KEIL也好,CCS也好,這些都是不同領域下不同CPU使用開發環境,CPU的體系結構可以說每個都不同,但是,在編譯器上,你會覺得一回事情.不就是
編譯,連接,加載,執行嗎?調試也一樣的,設斷點,看REG,看MEM,打印消息,設地雷找BUG等等.或者用GCC做點程序,自己寫寫
MAKEFILE,或者WIN
下的SOURCE,把這些掌握了還用學那么多語言干什么?跟風嗎?有技術含量?還是炫耀?欺名盜世?要掌握一門語法,可以說最多4周,但背后的東西
啊......實在太多。所以,別舍本求末以掌握多少多少語言語法為意淫.可以很坦率的告訴大家,我就會點C,匯編,而C++只是會一點點點點而已,C+
+也許對我有些用,也想認真搞搞,不過目前不打算,因為還有更重要的事情要做.其他的語言什么VB啊,JAVA啊,C#啊,我都不會.1是工作用不到,2
是沒時間學,3是如果有需要,一月之內一定可以做熟練運用,4是這些語言寫的程序就算我不學,也能看懂.這不就夠了嗎?見多識廣是有好處的,可以相互借鑒
嘛,可是我還是喜歡C,也許其他語言都不會去考慮了.我認為:耍那么些噱頭干嗎?還不如痛痛快快來點真格的.我平時最看不起那些裝B的鳥了.
程序及基礎只是你創造價值的基本工具而已,創造價值要需要具備別的一些知識,否則就是一個傻蛋程序員,比如各種接口協議,軟的硬的都有,根據需要而取.各
種通信協議,各種體系架構,等等,太多了,需要什么就掌握什么,其實都不難,就是開始的時候有些摸不著頭腦,我開始啃協議的時候真的是感覺自己笨啊,圖也
看不懂,概念和術語也理解不透,過程更不清晰.其實,等你啃完一兩個協議后,尤其是對某個協議做了協議分析,并實現了該協議中的某一層后,整個協議你都通
了,以后所有的協議都是類似的思想.這里隨便提幾點心得:背景,協議體系結構,關鍵術語,功能劃分,性能,層間接口,控制與處理過程,剩下的就是數據包和
格式了,再剩下的還有什么?沒了!
下面在談談設計:對于設計,LINUX之父說了:關鍵在設計.沒好的設計,狗屁的好項目.什么是好的設計:大的來講:我的體會是,選用最簡單的,最通用,
最清晰的方法實現項目的要求的設計就是好的設計.把復雜的東西搞的三歲小孩都懂,那是高高手.把一個簡單的東西搞得除了他本人能懂其他人都不懂,甚至他本
人都不懂的那是SB,或者是騙子!娘的,這樣的人要么老實呆著,屁也別放,要么滾遠點!
還有就是做事情的態度了.真想做好一件事情的,他會仔細考慮各種可能,以及在多種方案中做對比,優中選優.作到嚴謹.那么會選用很簡單,很巧妙,很清晰的設計來做.這些方面都是相互關聯的。
就具體的工程設計來講,我這點資歷是遠遠不夠的.各位看在實踐中慢慢體會,也可以看看相關的書,借鑒別人的思想.這里,提到了思想,思想很重要.
后記:
這段時間寫了這么些,剩下的也有些話題,不過不太合適寫在這里,加上最近忙一件比較大的事情,我想今天就到此結貼吧.最后,感謝各位網友的關注.喜歡與本
人交流的網友可以上本人博客.這些文章也會貼進去,算是湊到一起,方便閱讀吧.如果轉載,請注明原創是CSDN
的bottomline_01即可,謝謝.
http://blog.csdn.net/bottomline_01/