標籤:android style blog http java os strong io
引言
本篇博文接著許久之前的一篇博文《淺談程式猿的職業規劃,看你如何決定自己的未來吧。》,繼續探討一下程式員行業相關的內容。
行業的選擇不僅對於程式員來說非常重要,對任何一個人來說都是一樣的。只不過對於程式員來說,行業更容易被忽略。從程式員每天熱議的話題就能看出來,大部分的熱議話題都是C#和Java哪個更牛B,或者IOS和Android哪個掙得錢多,很少看到程式員去討論兩個行業誰更有發展前景。
鑒於此,今天我們就來著重討論一下程式員行業的選擇,行業和語言一樣,沒有誰優誰劣,只是一種選擇罷了。
另外在這裡向猿友們彙報一下,上次博文中提到的艱難的項目已於8.1日按照預期上線,儘管LZ得到了CTO的好評,但LZ也非常清楚LZ付出了什麼。後續LZ將盡全力保障項目的穩定運行,並在之後申請經費帶著期間加班的同事一起happy一下,緩解大家之前加班的怨氣。但就像LZ所說的,事情終歸是辦成了,所以LZ也算沒有讓猿友們失望,成了功臣而不是罪魁禍首。
淺談行業知識的重要性
行業知識一直以來都是程式員非常容易忽略的,這主要跟程式員這個群體的普遍性格有關。
程式員的性格是什嗎?宅,悶騷,偏執,厭惡約束,有點自負,有點自卑等等一系列的特徵,如果你不具備以上當中的任何一條,LZ只能說,“請聯絡我!”。
有不少猿友都對技術有一種偏執,也正是因為這種偏執,讓一部分人成為了優秀的程式員,但也往往讓他們失去了一些東西。作為一名程式員,技術自然是紮根之本,但只修內功,不修外功也是不行的。
以前LZ覺得程式員的內功是基礎知識(比如演算法,設計模式,電腦系統知識,網路通訊協定等等),而外功則是解決各個問題的具體技術(比如解析excel需要poi,製作統計報表需要jfreechart等等)。現在想想,這樣的劃分其實是有問題的,像poi,jfreechart這類具體的解決問題的方式是沒有資格稱為外功的,它們只是像eclipse,pl/sql這類東西一樣,最多算是一種工具。更形象的比喻應該是基礎知識就是九陽神功,具體的技術就是乾坤大挪移,只要學好九陽神功,乾坤大挪移只需要在洞裡花費幾天就能學會。因此,如果你現在還沉迷於修鍊九陰白骨爪,葵花寶典等各類頂級的雜牌武學,現在是時候醒悟了。
那麼真正的外功是什麼呢?真正的外功其實正是行業知識。
不少人肯定都看過武俠小說或者電視劇,內功與外功(或者叫招式)是相輔相成的。內功越強,同樣的招式就會威力越大。更重要的是,外功越強,更能將內功發揮的淋漓盡致。
對於程式員來說,內功就是技術底蘊,外功就是行業積累。技術底蘊越強,當你帶著同樣的行業積累與別人談判時,就會越具有衝擊力。行業積累越深,就越能將你的技術底蘊徹底的發揮出來。
舉一個不太恰當的反面教材。在LZ的公司裡,有著這樣一群人,他們被尊稱為架構師,他們每個人都有著深厚的技術底蘊,但卻只能每天無所事事,不痛不癢的插手著各個項目組的技術架構,技術體系,系統設計。
究竟是什麼導致了他們尷尬的境地?相信現在不用LZ說,各位猿友也能猜到一二。正是因為他們整天處於一個相對來說比較純淨的技術環境,一些必要的行業知識或者說業務知識實在是太貧乏了,對系統當前要做的事情以及將來要做的事情缺乏深入的瞭解。因此哪怕內功再深厚,沒有招式的話,是無法發揮出威力的。
或許有的猿友會說,不是無招勝有招嗎?是的,沒錯。但是無招可不是說沒有招式,而是要自己創造招式。
有不少程式員都會忽略甚至抵觸行業知識,包括以前的LZ。LZ一度覺得,瞭解行業知識或者說業務知識就是浪費生命,原因很簡單,如果換一家公司,不同的行業,那學習那些行業裡的業務知識豈不是白瞎了嗎。
現在想想,這個結論其實是有很大誤解的。對於跳槽來說,如果是同行業的,那麼在技術底蘊同等的條件下,更多的行業積累會讓你的價值增加幾倍甚至數十倍。就算到時候你真的換到了不同的行業,在之前的公司,通過你內外功兼修的方式,你也會更加容易擠入到更高層裡,這樣在換行業的時候,你的職位定位本身就會高出一些檔次。況且,換工作本身就是一件重頭再來的事,你最白瞎的是你在公司的積累,比如貢獻的積累,人脈的積累等等,而不是其它別的東西。
以上結論都基於LZ到現在才認清的一個現實,那就是一般情況下,稍微大點的公司裡,從來都不缺技術人才或者業務人才,但都缺技術和業務雙雙兼備的人才,因此這樣的人在公司裡是很容易得到重用的。
總之,成為一個技術大神固然是好的,但深入瞭解公司業務,讓你的技術能力充分發揮,才能讓你和你的公司更好的實現雙贏。
淺談面試中的行業選擇
討論完行業知識的重要性,我們來談談LZ最近面試的經曆。最近LZ的項目組內,被LZ開掉了幾位外包同事,因此需要一批內部員工補充進來。至於為什麼要開掉這些人補充內部員工,這裡LZ就不多做解釋了,這些更多是管理方面的內容,與本文關係不大,這裡只簡單說說LZ面試的經曆。
由於有了不少招人的指標,LZ也開始在繁忙之中抽時間篩選了大量的簡曆。LZ面試的人比較雜,從初級開發到研發經理都有,LZ問的問題也是千奇百怪。不過有一點是基本上不會變的,那就是只要是中程或中程以上層級的,LZ基本上都會問到一個問題,就是“你對我們公司是怎麼看的”。
其實LZ問這個問題的目的很簡單,就是考驗面試者對行業以及未來的思考。如果拋開公司規模、公司性質(比如外企,私企,國企)等等這些屬性,每一個公司最重要的屬性就是它的行業。不過令LZ失望的是,真正能體會到行業選擇重要性的面試者寥寥無幾,甚至有6、7年經驗的猿兄在回答這個問題的時候竟然跟LZ談公司環境挺不錯的,著實讓LZ汗顏。
不過也有極個別的面試者對此有深入的思考,會著重強調選擇我們公司是因為行業,而且會解釋一下為何會選擇這個行業。這種面試者會給人一種善于思考,目標清晰的感覺,就這一個問題就加分不少。
對於初級程式員,LZ一般不會問這個問題,因為初級程式員大部分情況下的原則是逮著一個工作就好,不太會也沒必要去思考行業,而且也不一定有資格自由選擇。這一點在之前職業選擇的博文裡LZ也提過,程式員剛入行的時候,行業並不是那麼重要,除非你特別討厭某個行業。但對於工作了三年以上的程式員來說,行業就是個人必須考慮的問題了。當然了,三年只是取個平均值,具體何時該考慮,也是因人而異的。
如果你現在正在準備面試,不妨對自己將要去面試的公司做一個簡單的瞭解,或許會有不一樣的收穫。
淺談程式員常見的幾種行業類型
現在世界上現存的行業已經數不清了,但對於程式員來說,無非也就是幾種類型。接下來LZ給各位猿友羅列一下這些類型的行業。特別要說一下的是,這些行業與語言一樣,沒有明顯的好壞之分。
類型一:互連網
互連網分為傳統互連網和移動互連網,激情與創新是互連網行業的代言,機會與風險也充斥著互連網行業。
程式員是一群喜歡激情與創新的人,因此互連網行業往往被程式員所青睞。或許真的是這樣,互連網公司的氣氛與文化可能與程式員更加契合一點,但凡事都有兩面性,加班也是互連網行業的專利,因為時效性在互連網行業是非常講究的。
互連網行業的代表公司也是大家耳聞能詳的,比如著名的BAT。進入這些公司往往是大多數程式員的夢想,但事實上或許是因為得不到的才是最好的,很多時候,一旦得到了,或許一切並沒有自己想象中的那麼美好。總之,蘿蔔白菜,各有所愛,孰好孰壞,誰又能說的清呢。
類型二:甲方
甲方與乙方是相對的,一般這麼叫是因為合約上的叫法。這裡簡單普及一下,甲方一般就是指軟體的買方,乙方自然就是軟體的賣方。兩者是純粹的利益關係,一切按照合約辦事。但不管怎麼說,買方的地位相對來說會比賣方高一些,因此甲方與乙方的專案經理往往完全是兩種概念。
甲方公司一般充斥著各個行業,比如金融,物流等等。有的時候是直接購買乙方已經做好的軟體,有的時候則是軟體定製,也有的時候是直接外包給乙方開發等等。甲方的特點是客戶的容忍度較高,畢竟是給自己公司做的,但缺點就是由於需求變化的代價非常低,因此甲方的程式員往往會面臨頻繁的需求變更。
這類公司的代表公司很多,比如LZ所在的公司,比如申通這類物流公司,都屬於這一類。在這類公司裡,一般能對某一個行業深入瞭解,但一般技術上的要求會低一些。
類型三:乙方
乙方就是賣方,一般定位在軟體行業。乙方由於一般是根據合約內容服務於甲方,因此相應的需求變更會少一些,畢竟甲方的需求變更一般是需要加錢的。但缺點就是,由於按照合約辦事,因此項目必須按期交付,否則尾款就成了問題。因此在乙方上班的話,或許加班會非常頻繁。這一點上,甲方相對來說會輕鬆一些,但都是相對來說,並不是絕對的。
乙方的代表公司一般就是一些軟體公司或者外包公司,比如金蝶,華為,瑞友等等。在這類公司裡,一般能瞭解到各個行業,對技術上的要求會高一些,因為要應對各個行業各式各樣的需求,但很難對某一行業進行深入瞭解。一個是因為要跟著客戶走,一個是因為一些核心的業務一般是不會讓乙方來做的。
類型四:遊戲
遊戲行業又分網遊,手遊等行業,遊戲也算是一個類型的行業,總體來說,遊戲行業與互連網的特點非常相似。相對於甲方乙方的這種公司來說,遊戲行業和互連網行業中,程式員的地位會更高一些。但遊戲行業與互連網一樣,暴利之下隱藏的是巨大的風險,一旦失敗,往往面臨的只有倒閉,沒有生還的可能。
遊戲行業的程式員待遇相對來說會高一些,但也要看情況。凡事都不是絕對的,以某幾個公司的工資水平來衡量一個行業,是有些不太合適的。遊戲行業的代表公司也比較多,比如盛大,網易等等。
小結:
以上這幾種類型只是LZ對程式員常見行業的大體劃分,沒有任何官方依據,只是LZ自己的思考而已。本文所說的行業知識的重要性,主要針對目前在甲方和乙方的猿友們,在這類公司當中,行業知識是相當重要的。對於完全一樣的技術水平來說,你對目前所做項目所處行業的瞭解程度,基本上能直接決定你的地位與作用,也就是說,很大程度上,可以決定你在公司的發展。
對於互連網和遊戲行業來說,靠譜的創意可能更重要一些。這就需要你瞭解市場環境,瞭解福士需求,瞭解盈利模式等等。如果你能在技術修鍊的基礎上,加入這類知識的修鍊,或許能讓你在這兩個行業裡混的更加風生水起,比如讓你去開發DOTA2,你最起碼得天梯2000分以上吧。
總的來說,不論身在何處,技術都不是最重要的,或者說不是唯一重要的。這麼說,有點自黑的嫌疑,但事實確實如此,LZ也不得不面對這個現實。除非你可以創造出一種新的科技,比如當年第一台電腦。
或許LZ這裡會打擊到一些新手們對技術的積極性,但猿友們也需要瞭解這些,可以少走一些彎路。技術始終是在為人服務,所以瞭解這個世界,瞭解這個社會,瞭解人,才能真正創造出有意義有價值的技術。LZ這裡無意評論行業的好壞,也沒有這個資曆去評論,只是為了提醒猿友們,好好鑽研技術是好的,但切勿把技術當作你的全部,這樣你會失去很多其它重要的東西。
程式人生
程式員的一生特別像玄幻小說中的修鍊者。開始的時候,要先學會內力(技術)才能進入修鍊者(程式員)的行列。隨著內力慢慢精進,就需要招式(行業知識,或者與此相似的非技術知識)來增加戰鬥力(工作能力)了。開始的時候,一招一式都會大大增加自己的戰鬥力,慢慢的,隨著招式越來越強,需要的內力也越來越多,內力逐漸顯現出不足(技術跟不上需求要求)。此時,又需要全力修鍊內力。如此反覆,整個人就會從初級武士(初程)逐漸升到進階武士(高程),直到打破瓶頸,成就武神(專案經理或者研發經理等等)。
原本以為到了武神就到了武之最高境界了,誰曾想在成為武神之後,飛升來到了另外一個世界。原來,這個世界上還有神域(到了新的層次會接觸到更高層的領導,比如其它專案經理或者部門經理,CTO等),這裡最低的等級都是武神,自己開始所在的,只不過是最低等的人間罷了。後來會發現,武神修鍊的不再是內力和招式,而是神力(能力,比如辦事能力,交際能力,也包括技術能力)和天道(個人素質,個人修養,個人天賦等軟技能)。
於是,你會忽然醒悟,原來之前的內力(技術)只不過是神力(能力)當中的一種罷了,外面的世界非常之大,內力只是讓你接觸這個世界(社會)的開始而已,絕不是你的全部。