距離上一次主動找工做,快到5年了,到如今的東家,是差很少3年前獵頭挖過來的,而當時東家剛剛被歐洲一家有百年曆史的跨國企業集團收購,因此我也就有幸成了一名「外企員工」,可是集團保留原東家人馬,一切制度照舊,所以我只能算一個「僞外企」員工了。不過,很快就到了「雞飛狗跳」之年,公司挖來了一個世界500強公司的Java背景的高管,一切惟KPI馬首是瞻,只看結果不看過程,難怪總部的各個級別的員工都稱呼本身的直屬領導「老闆」,之前就常聽在外企的朋友說本身的領導是老闆,如今終於明白了這種稱呼的含義了。習慣了之前還比較人性化的工做模式,一會兒以爲「鴨梨山大」,難以適應,因而打算看看有沒有合適的地方,在年後加入了求職大軍,本覺得憑藉10年架構經驗找個工做不是難事,沒想到慘遭滑鐵盧--大限到了!html
瀏覽各大招聘網站,好比前程無憂,智聯招聘,獵聘網,普通開發工程師偶爾有寫年齡30如下,而高級開發工程師、開發經理/技術經理,有至關部分寫明35歲如下了,架構師,技術總監,也有很多寫明35歲如下,最高的就是40歲。其它未明確註明年齡限制的,可能不是不註明,而是HR手工篩選簡歷的時候設置了,而那些註明了年齡限制的,人才網站後臺自動就給篩選了,根本進入不了HR視野。因此,各位程序猿看官,看清楚木有,看清楚木有,看清楚木有.....重要的話說三遍,程序猿的大限,就是年齡在40歲!!!前端
因此,這多是個人簡歷在沒有購買人才網的簡歷置頂服務的狀況下,1個月時間在3大人才網站被查看次數很低的緣由,到底有多低,本猿很差意思說,由於你們可能會以爲我簡歷很渣,我也以爲個人確只是一個普通的猿,不是明星猿,不是網紅猿,只是一名在軟件行業摸爬滾打了10多年的老猿...(捂臉)程序員
週末跟一個某技術羣的朋友聊起這個40歲大限的話題,朋友諫言:面試
儘早籌備本身的產品,不要到大限之日才奮發圖強。掌握其餘業務知識,走專業領域路線。
這位朋友說的很對,而且也不止一位朋友對我說過要有本身的產品了,而且很多朋友真折騰出了一些本身的產品,好比啥OA,CMS等,而後用這些產品接個外包,也能賺些錢,因此纔有人說,「人無外財不富,馬無夜草不肥。」sql
可是不是每一個人都有這種機會,我深刻了解後發現,這些有本身產品的程序猿,大都是利用工做積累出來的,最主要的,跟原來公司的客戶保持着聯繫,本身鼓搗出的產品容易有銷路。因此,與其說積累產品,不如說在積累人脈,積累資源。相信這類程序猿朋友,有人已經作了老闆,或者在將來作老闆的路上。數據庫
顯然,這條路不是每一個猿猿都有,我也沒有。編程
做爲70後老猿,我感受吃「軟飯」,比別人要更艱辛。小程序
我出生在素有天府之國稱呼的的南方的一個小山村,家裏面只有一畝二分地,也許我出生的時候遇上了好時代,改革開放來了,沒有哥哥姐姐他們那麼苦,印象中打小天天吃飽了就和大院子裏面的一大羣小夥伴山前山後處處玩,捉蟲打鳥,戲水抓魚,騎牛吹牛,很幸福的童年。小時候媽媽問我長大了理想是什麼,那時候正好看到哥哥的課本上有建設四個現代,計算機是很厲害的東西,因而我就說我長大了要當「計算機科學家」!我爸爸就說這孩子未來有出息,不讓他幹農活,好好讀書吧!後端
那個時候,做爲人口第一大省,「讀書」是一件很不容易的事情,並且那個時候正是計劃生育的前幾年,遇上人口出生的最高峯,一到了大清早,公路上上學的孩子絕對比大人多得多,可是沒有足夠的學校容納,因此有很多同窗4年級就輟學了,等到了6年級,從各個村小學到了鎮的中心完小,發現一共有8個畢業班,但聽說只招收2個初中班,因此那個時候考上初中,都要在村子裏面貼紅榜,就像如今考上大學同樣。幸運的是,雖然我沒有認真複習,考試前一天都在玩,竟然順利的考到了前面幾十名;而不幸的是,跟我一塊兒玩到大最要好的幾個小夥伴,他們都沒有考上,其中有一個走關係復讀了一年仍是沒有考上,因此自初中開始,我與院子裏面的其餘小朋友就走向不一樣的命運了,如今想起來真是殘酷!瀏覽器
後來,我順利的考上了市裏面不錯的中學,到了這個時候,我發現家裏面爲了供我讀書,加上哥哥姐姐到了成家的年紀,經濟上很是拮据,因此我只好要最少的生活費,但每次老爸都問夠不夠,我說夠了。然而這個時候,正好遇上了「教育市場化」改革,高校「並軌」,不少大學的學費比起以前漲了很多,對於咱們家的狀況來講去上大學實在是很奢侈的事情。看到跟我一塊兒長大的院子裏面的小夥伴,在東南沿海城市打工風光的樣子,我內心面想的,只是早點畢業去打工,爲家裏面減輕一點經濟負擔,但老爸堅定要求我要去上大學,說讀書才能改變命運。因爲內心面的抗拒加上高中階段巨大的學業壓力,雖然在理科重點班讀書但成績並不那麼好,而那個時候不像如今這樣是先考試後填報志願,有2類大學學費比較低,一個是師範類院校,一個是農業類院校,當時我想若是填了這類學校就沒有理由不去上大學了,因而隨便寫了一個後來被人們認爲「很不科學」的專業的學校。考完試公佈了成績和錄取狀況,班主任找到我說你怎麼寫了這樣的一個學校的專業啊?你回來跟其它沒有考上重點大學的同窗一塊兒再復讀一年,我保證大家明年都考上重點,我說不用了老師。
後來仍是固執不過父親,堅定讓我去上學,說沒有錢但保證可以從親戚朋友那裏借到。爲此父親拉着我去省會城市走訪一個日常都不怎麼來往的親戚,父親老早就抱怨這親戚看不起「泥腿子」,因此印象中除了很小的時候去過這個親戚家後來再沒有去過。父親怎麼跟親戚談的有沒有向親戚借到錢沒有跟我說我也不敢問,來這一趟我想父親都是拉不住臉皮的。
不過,答應父親來上學我後來仍是後悔了,由於不久就聽到同窗們都在談論如今並軌後也不包分配了,而且這個「很不科學」的專業出去基本上找不到工做,惟一的路徑就是繼續讀研再讀博,而這對於我來講顯然不現實,因而來學校第二年我就開始自學計算機 相關的專業,還參加了全國計算機等級考試,甚至買了本清華的人工智能教材自學,爲兒時的那一點快要破碎的夢想補上一點點火光,預備未來有機會去搞計算機,雖然不能當科學家了但畢竟仍是本身最感興趣的事情。
(PS:如今回想起來那麼早就瞭解人工智能AI方面的東西了,解到人工智能包括專家系統,機器學習,模式識別等,爲此還學習了幾天Lisp,Prolog這種教材欽定的AI語言,而且認定未來必定是AI的時代,惋惜沒有堅持下來深刻研究學習,後悔啊!)
現實比較無情,不包分配了,畢業即失業,找不到工做,就在家裏面幹農活,5月的麥田,烈日、麥芒與汗水,真切的體會到了農民的艱辛(PS:如今國家成立了農業農村部,但願這是一個好的開始),以前以爲讀書很苦,如今比起來都不算什麼了,爲什麼父親不讓我早點體會下呢....在家幹活雖然不徹底算是「肯老」,但相親們議論紛紛老父親臉上也掛不住啊,不管如何得找份工做。還好這個時候已是90年代末,小縣城也有了電腦城,因而去找了一個裝機的活,跟着師兄學了兩天,也能鼓搗着獨立裝機了。之前學的都是軟件設計編程方面,如今可以真切的跟計算機的實際硬件接觸,也加深了我對計算機的理解,不過我更感興趣的,仍是寫程序,如今終於有機會在閒暇的時候,利用老闆的電腦,裝個VB6,寫點小程序了,好比寫個小小的電腦配件管理程序,記錄下每種配件的價格和性能參數,那是還不會用SQL數據庫,外面流行的是Foxbase這種,因而直接用隨機文件來當「數據庫」使用,也算方便。
一個偶然的機會,老闆發現了個人編程能力。小縣城有幾所中專技校,到了期末經常有人來問能不能幫忙寫個畢業設計小程序。我說能夠,鼓搗個一天就寫好了,老闆很欣喜,說這不要本錢就能賺錢啊,路子不錯啊!因而乎,後來老闆利用關係去接了另一個小縣城工商局的系統,要求不只僅要進行常規的信息管理,還得有電子地圖,在地圖上進行相關的信息管理。老闆屁巔屁顛的就接了,但跟我說只有3萬塊,我說這個活比較複雜,靠我一我的是不可能完成的,因而老闆讓我去找外面的人外包出去看看,結果外面開價低於30萬沒人幹。老闆這下着急了,工商局得罪不得啊。既然總體外包公司作不行,那就找私人作吧。最後多方聯繫,從省城來了幾個朋友表示願意試試,他們說他們公司總部在北京,是專業作地圖數據的,而且還說他們4我的有2個都是研究生,技術絕對沒有問題。老闆一看這個陣容不錯,就跟他們私下去談了,具體多少錢我不知道,但最後他們只願意作管理系統,不肯意作電子地圖這部分。我挺身而出的說,老闆,這塊功能我來作吧。老闆說,好,最近你就不用來這裏裝機了,給你一臺電腦回去加班作。就這樣,拉起一支三五我的的隊伍開幹了。
對於電子地圖,我想的比較簡單,就是加載一個地圖照片,以它爲背景,在上面畫一些區域來表示每一個鎮的管轄範圍,而後再標記上每一個鎮的工商所和企業位置,用一個個圖片按鈕來作。這裏面最困難的是每一個鎮的顏色標記填充,因爲都是不規則的圖形,如何填充顏色廢了很大腦筋,最後終於鼓搗出來了。爲了可以動態的修改地圖上的信息,又搞了一個地圖編輯器。後來,客戶要求在IE瀏覽器上也要可以查看,因而利用VB的ActiveX控件,開發了一個電子地圖瀏覽器。除了我本身負責的電子地圖部分,我還須要常常跟遠在省城的夥伴聯繫項目工做事宜,瞭解到他們的管理系統使用的技術是ASP+SqlServer。就這樣過了3個月,項目的雛形終於有了,客戶初步看了下,對電子地圖沒有提意見,但對於管理系統不滿意,說很差看,因而把省城的夥伴叫過來,老闆請吃了一頓飯,其中一個朋友說小夥不錯,竟然把地圖搞出來了啊!最終通過幾回改版,項目終於交付了,但老闆不高興,他說虧錢了,不只沒有給我一分錢獎金,還埋怨我爲什麼當初說能夠接這個單(¥%#,我只是說技術上可行,項目到底多少錢我怎麼知道)。後來客戶的負責人又過來講準備作2期,但不了了之,可能老闆上次真虧錢虧大了。又過了幾年,我才知道,原來我作的這個電子地圖,跟「地理信息系統」(GIS)很類似啊!
項目作完了,也算第一次瞭解到了有ASP這種動態網頁的網站,之前本身都只會作個靜態頁面啥的,因而對ASP有了點興趣,不過我很快了解到ASP代碼是解釋性的性能沒有VB這樣編譯型的程序執行快,因此對VB6的Web工程項目很感興趣,甚至對VB6的DHTML項目也感興趣,開發客戶端動態效果的網頁很強大,代碼是編譯的,比直接寫JS即安全又高效。惋惜我當時並不熟悉Web開發的知識,甚至對於HTML都不太瞭解,而對VB又情有獨鍾,沒有深刻學習ASP或者其它Web開發語言,好比Java,PHP.我當時對桌面開發更感興趣。
後來證實,我專一VB的桌面開發這個方向錯了,Web開發愈來愈流行,處處都在據說建一個企業網站多少多少錢,一個域名多少錢,託管一個服務器多少錢,Web開發技術人員如何搶手。因而被電腦城的一個老闆忽悠去幫他開公司作企業建站的生意,風風光光的大量招聘人去拉單子,結果卻很糟糕,沒有拉到像樣的單子,在咱們這個小縣城大部分人對互聯網根本沒有概念,只有咱們IT圈子的這很小一部分人在談論這個貌似很火的東西。不到半年,老闆的一個親戚說如今互聯網泡沫都破裂了,大家還搞什麼,因而老闆把公司關閉了,我再次失業了。後來我才知道,此次互聯網泡沫破裂影響很大,只不過咱們這裏IT比較落後,沒起什麼波瀾而已。
幸運的是,經過以前建站搞網站的過程,我知道了人才網這種網站,因而抱着試一試的想法去人才網投了一份簡歷,沒想到很快就接到了一個在線旅遊網站的電話,問1500元願意來負責網站程序維護和開發不。接到這個電話高興壞了,次日就去省城這家公司報道。當時這家網站公司很小,跟另一家公司合租的辦公室,加上老闆一共才5我的,因此我是惟一的程序員,和一個Web前端同事一塊兒工做,另一個前臺和一個商務推廣。當時幾乎身無分文,來到公司第一次吃上免費的工做餐,老闆還安排了住宿,感受真是運氣太好了遇到了一個好老闆,必定要努力工做。來公司第一天的任務就是解決「共享上網」的問題,當時上網費很貴,就用163撥號上網,而後用Sygate這個軟件共享上網。因爲只有這樣一個破解版的共享上網軟件,並且仍是英文的,而且頭一次使用,多是破解的緣由吧,按照教程一步步配置下來就是不穩定,一下子又斷了,又必須從新進行一次繁瑣的配置。終於搞到凌晨2點,辦公室的幾臺電腦都能上網了。按照老闆的囑咐,這臺共享上網的電腦不能關機,一關機又得進行好屢次繁瑣的配置才能上網。對於一個在線旅遊網站來講,上網是多麼重要的事情,第一次發現,網絡問題並不比寫程序簡單。
在公司第一次「出色」的完成了任務,我就有了一個監職角色:網管,以致於老闆家裏面幾臺電腦共享上網,每次出現問題都要找我去幫忙解決。不過,在老闆家我知道了老闆和老闆娘都在玩「聯衆遊戲」 這種東西。。後來公司搬遷到了一個比較大的辦公地點,從電腦採購,到網絡佈線,到弱電設計,服務器託管,十足一個網管的工做。說到遊戲,一年後你們都去玩QQ遊戲了,包括公司前臺沒事都在玩,老闆也在玩,但我對遊戲並不感興趣,只想着把工做作好。後來網絡遊戲大紅大紫,成爲互聯網公司最賺錢的業務,再次錯失行業熱點!
來到省城安頓好後,我跟以前一塊兒在老家縣城作項目的朋友打了一個電話,朋友問好啊,你也來這裏了,仍是這裏空間大啊,你如今用什麼語言作Web開發呢?我說ASP。朋友說,咱們都用Java了。這不算是第一次據說Java這種東西,以前在電腦城,就常聽一個老客戶說他家親戚在深圳用Java作很大的項目,可是,我對此並無概念,不曉得從這個時候,一種叫Java的語言跟大項目老是有某種聯繫,而且用的人會愈來愈多,而我仍然認爲,ASP這麼好用,作Web開發多方便啊。這期間,我也瞭解到了還有PHP這種開發Web網站的語言,初步瞭解後認爲,這跟ASP沒有本質區別吧,只不過它經常在Linux系統上使用而已。這樣,我又錯過了使用PHP這種「最好的(Web開發)語言」。因而,在工做閒暇之餘,常常去動網論壇逛,經過學習動網論壇的源碼,使得本身對ASP開發高性能網站有了更加深刻的瞭解,跟Web前端同事配合,可以很輕鬆的開發出網站各類功能,有了更多的時間去了解旅遊相關的業務知識,和老闆一塊兒討論設計網站的功能。慢慢的,網站功能愈來愈多,用戶量也愈來愈大了,網站一直平穩運行,對ASP這種Web開發技術感受仍是不錯的,好比開發效率方面,老闆讓我抄襲一我的才網出來,我差很少1個月時間從功能設計到程序開發就作完了,上線後很快就吸引了近一萬用戶。後來,老闆找到科大的2個研究生,讓他們給從新設計下,他們對我說準備用Java來作,可是最後不知道什麼緣由不了了之,可能老闆的主要注意力放到可以快速賺大錢的「3721網絡實名」上去了。很快2年過去了,網站壓力變得大起來,從一臺服務器增長到了2臺服務器,因而老闆請來了一個顧問幫忙看看有沒有問題,顧問說說他都在研究 .NET了。這是我第一次據說.NET,初步瞭解了下,說.NET是微軟爲將來10年的世界準備的平臺。也許,與.NET的緣分,就是從這裏開始的。
不久,一個朋友說他們北京的公司要招人,而且說北京是全國IT最好的地方。之前在老家電腦城裝機的時候,就經常談論北京的中關村,如今有機會了,天然想去看看,因而就被朋友忽悠到了北京。到了才知道,公司要作一個互聯網信息監控產品,簡單說就是作一個爬蟲去互聯網搜索包含指定關鍵詞的網頁而後提純入庫,聚類分析,用來走輿情監控,商業競爭情報分析等。這中間比較關鍵的技術是URL和內容排重,中文分詞和聚類分析。我對這個項目很感興趣,但是負責項目的老大不久就離職了,介紹我來的哪一個朋友也離職了,因此產品要怎麼作沒人知道,老闆也不怎麼過問,只有我來接這個坑了,因此中文分詞和聚類分析無法真正去作。開發一共就2我的,還有一個監職的測試,另一個開發實際上是沒有太多經驗的妹子,只會寫點ASP,因此主要的工做都是我在作,那麼在技術選擇上,決定嘗試一下.NET開發,那個時候仍是 .NET 1.1剛出來,用的VS2003,不過比起我以前用的VS6.0已經好了不少;開發語言上我選擇了VB.NET,不用說VB是個人看家本領,而且寫了幾年ASP,對VBScript也至關熟悉,天然選它了,因此產品的最終架構是B/S端使用ASP,C/S端使用VB.NET。大概過了3個月,產品雛形就出來了,老總看了比較滿意,而後慢慢優化改進,半年後老總帶着我去看了客戶負責人,某市公安局負責網絡信息監察的主任,聽到對方談論最多的是如何監控QQ視頻聊天和其它視頻聊天裏面的不法行爲。當時候視頻應用仍是至關少見,這些視頻聊天軟件我歷來都沒有用過,咱們的互聯網信息監控徹底就不對路子,如今想起來在10多年前就有網警了,並且仍是超前的視頻監控,對咱們警察蜀黍的業務能力仍是至關敬佩的。回到項目的話題上來,天然是後來合同一直沒有簽下來,而後工資開始發不出來了,我看狀況不對趕忙辭職找新工做,在我辭職半年後,這家公司果真倒閉了。固然這個項目我最大的收穫就是經過VB.NET進入了.NET的世界,與後來的C#比起來,VB公整的語法和規範的格式,智能的編輯器,至今都是我業餘寫程序的首選。
辭職後到了一家互聯網社交網站,算是山寨的美國臉書網站吧,創始人就是從美國硅谷回來的,我用ASP作些模塊。按道理來講開發ASP這是輕車熟路了,可是天天早九點晚九點,甚至10點,每週6天的工做模式讓人高度緊張,效率不升反降,多年後你們都在談論互聯網公司的996工做制,才知道當年我在這裏也是這種模式。我喜歡寬鬆一些的工做環境,因此尚未過試用期,跳槽到了一家作GIS應用的公司。不知道這樣辭職離開互聯網,離開後來大紅大紫的互聯網社交應用圈子值不值,但那種工做節奏,實在是受不了。
到了這家作GIS應用的公司,是我在北京印象比較深入的公司,不只工做時間比較長,最重要的是跟同事們相處的關係算是有史以來最好的,可能由於這是一家純技術公司吧,同事之間沒有什麼利益爭鬥,跟我在後面那些呆過的公司徹底不一樣。面試的時候,老總說喜歡個人拼搏精神,可以從小縣城一路來到北京,老總河南人,性格比較耿直,也許他說這句話是真的。公司老闆是南方某註明大學GIS專業出身,倒是公司主要的業務員,GIS技術上是北京某大學的一個博導負責,他給公司拉了很多政府項目,固然,也常常會拉幾個他的學生--博士研究生來公司工做,而咱們就跟這幾個博士一塊兒作項目和產品,有時候博導也來指導咱們的技術,在公司3年,沒有以爲博士跟咱們有不一樣的地方,他們都很謙虛,還經常向咱們請教一些程序開發方面的問題;可是他們研究的東西,我一點也不懂,不過我也知道他們使用的GIS技術,比我幾年前搞得那個電子地圖,是一個在天上一個在地上。公司產品主要的業務在房產,公路和礦山方面,當時用的是ArcGis和AutoCAD等。博士們用C++作這些產品的應用開發,而咱們用.NET作這些客戶的外圍管理系統開發,C#語言,ASP.NET WebForms,我第一次正式項目使用C#語言,也是第一次正式使用ASP.NET,感受WebForms除了它的那些服務器控件的使用和自定義服務器控件的設計開發以外,開發模式跟WinForms特別類似,因此沒有遇到特別大的障礙。後來給東北一個客戶作房產產權產籍管理系統,來了一個老大,在這個項目上我學到了不少東西,包括服務器控件的使用,自定義服務器控件開發,ORM,SQL配置文件,IOC,工做流,報表中間件等。老大常常說作完這個項目就要去美國斯坦福大學讀書,但項目尚未作完他就辭職了,因此這許多東西,都只有我本身來研究。
項目中的ORM並無使用知名的ORM組件,也不知道是誰寫的,那個時候知名的ORM組件尚未大量面世,因此也比較原始粗糙,依賴於反射來處理實體類生成查詢的,而且每次只能查詢出實體類的所有屬性,不能指定查詢某些屬性字段,這對於有不少字段的大表查詢效率不高,因此大部分時候,仍是以寫SQL查詢到DataSet中使用爲主。這裏就遇到一個亮點,它的SQL並非寫在程序中,而是寫到一個XML配置文件中,以必定的規則解析使用。不過,這些XML格式的SQL配置文件寫起來仍是很費事,好處就是SQL都在一個地方集中編寫使用,維護比較方便。後來才知道,iBatis框架(MyBatis的前身)使用的就是這種思想。後來,這種ORM和SQL配置文件的開發方式,又在其它幾個項目中使用,ORM查詢的不靈活,效率不夠高,和SQL配置文件的繁瑣,成爲我一直思考的問題,將個人一些思考和設計在CSDN上與同行進行交流,逐步有了成熟的方案,好比ORM部分設計了ORM查詢語言--OQL,可以指定查詢的字段和更新的字段,SQL配置文件部分改進了解析功能,而且設計了一個代碼生成器自動根據SQL的XML配置文件生產DAL層代碼,這就是PDF.NET開發框架的誕生背景,2006年10月發佈了1.0版本,而且以後將公司項目裏面使用的智能數據控件也包括了進去,能夠實現數據收集,呈現,驗證的功能,大大簡化頁面CRUD的開發過程。
然而,我總結的這個框架尚未來得及在公司推廣使用,2007年上半年微軟就放出來了Linq2SQL這種技術,咱們有同事就嚐鮮在項目裏面開始試用了,到了2007年年末C# 3.0正式發佈,.NET 3.0框架正式支持Linq技術,Linq2SQL得到社區普遍支持。Linq以其強大的表達能力和廣受歡迎的程度讓我以爲個人PDF.NET框架的OQL技術實在是不值得一提,一個是大學級別的東西,一個是小學級別的東西,一度想放棄PDF.NET框架的繼續開發。當時在公司,咱們主要的客戶使用的數據庫是Oracle,Linq2SQL不能支持,因此這個項目引入了iBatis.Net。由於那個時候並無找到iBatis的C#代碼生成器,SQL語句和配置文件所有要手寫,而後再手工寫相關代碼去訪問SQL配置文件,因爲項目比較着急,查詢量比較大,寫這種配置文件和相關代碼簡直累的吐血,發誓之後不再用這種東西。固然,作這個項目也有收穫,就是我基本上閱讀了當時iBatis.Net的所有源碼,發現這貨底層使用了Hibernate的一些東西,因此將iBatis和Hibernate 的一些優勢和設計思想借鑑到了PDF.NET框架,逐漸PDF.NET的SQL-MAP功能和ORM功能本身以爲用的比較順手了,正準備在公司推廣使用的時候,微軟又放出了 Entity Framework,官方說明它正式支持Oracle數據庫了,咱們同事決定在下一個項目中使用它,時間正好在2008年奧運會先後。
我在這家公司這個時候已經滿3年了,除了上面數據框架的故事,還得說說我與JavaScript的一些小插曲。公司裏面有不少項目的JS代碼都是我在寫,當時沒有很成熟的前端JS框架,jQuery也沒有大量流行,好多功能都是本身手寫的,固然如今看來這些功能都不值得一提,好比一個能夠在頁面新增行刪除行修改數據的表格控件啥的,當時我有一次請年假了,回來後聽同事悄悄對我說,老總前幾天發火了,說這些JS功能除了XX(「我」)就沒有人會了嗎?當時流行的是ASP.NET WebForms,大部分同事都是用服務器控件的,JS寫的好的同事的確很少。可是到了2008年,社區開始流行ASP.NET MVC框架了,它跟WebService和如日中天的Ajax技術結合的更好,大量的社區文章都在討論Ajax,一些互聯網社區網站開始火起來,Ajax的局部更新技術使得網頁呈現動態功能更加容易,因此當時主流技術媒體大肆宣揚Web2.0時代來了。假如我這個時候迴歸互聯網,也許可以遇上這班車。當時公司老總找了幾個國外的ASP.NET WebForm與Ajax相結合的一些資料讓我研究,然而我認爲將來是MVC的時代,並且Ajax技術我在來北京第一個公司就曾經山寨了一版了,沒什麼新意,因此對老總的安排不是很重視,我說我更喜歡後端開發,這在老總看來頗爲不解,但他不知道我糾結的是PDF.NET框架如何發展的問題。
說到這裏,我不得不跟這家GIS技術公司作別了,緣由有2個,一方面是當時很要好的同事要麼跳槽了,要麼轉行了,好比一個很牛的同事轉去作售前了;另外一方面在公司三年薪資上沒有明顯提高,公司比較小不怎麼賺錢,不太可能花更多薪水挽留我,而且這個時候我已經結婚老婆剛生了小孩,之後家庭須要更多的資金支出,不得不考慮去薪水更高的地方。離職後的幾年,咱們原來公司的這幫同事還聚會了幾回,你們都說像咱們這麼好的同事關係在別的公司很少見的。也許是公司氛圍真的很好吧,一個公司的氛圍可能取決於老闆的風格,有幾個公司的老技術人員在公司工做了很長時間,其中有一個由於家庭緣由回東北後還一直兼職作公司的技術顧問。不知道是否是技術出身的老闆的固有問題,這家公司直到如今仍然是一家小公司,還在原來的地方辦公,祝願它可以繼續發展下去。
08年奧運會後,我來到一家作銀行業務的公司,其實這家公司是2008年金融危機後差點倒下的一個股票證券類諮詢公司,如今被它的東家,一家在香港上市的專門作銀行系統的公司接管了,因此我也就這樣第一次進入了一家「上市公司」。集團公司旗下的咱們這家公司主要作銀行核心交易系統,用C++和Java作大型機的軟件,而咱們是整個集團惟一用.NET的開發部門,天然只能作銀行邊緣的增值業務系統。公司雖然名頭大,但對咱們,仍然像是一個小做坊,期間正好有一本書《走出軟件做坊》,來描述咱們當時的狀況很像--大公司小做坊,軟件研發一點不正規,而公司也派出了專業的項目管理團隊來管理咱們的軟件研發項目,整了一個很高大上的名詞:PMO。因此,我跟他們學到了一些項目管理方面的東西,終於有機會擔任一個產品的項目經理。這個項目很特別,部門經理是項目裏面的開發人員,老總新招聘了一個架構師,因此團隊成員有4個是部門經理的老人,另外是隨着架構師一塊兒招聘的4個新人。產品是一個C/S軟件,在客戶端使用SQLite這種嵌入式數據庫,架構師費盡口舌在項目裏面推廣WPF和Entity Framework,說這兩個東西是微軟平臺的將來, 部門經理拉着一幫老人抵制架構師的方案,要用WinForm和手寫SQL,吵架吵到老總那裏,老總說大家分紅2個組,作一樣的功能來比比開發效率和程序運行速度。在2010年以前那個時候不少客戶端裝的仍是XP系統,機器配置低,加上架構師一派都是新人,這幾個新人水平比較差,這樣的比賽結果天然是架構師完敗。但架構師是老總招聘的架構師的意見仍是有份量的,因此最後項目的技術方案就是一個混合妥協的方案:在產品啓動頁和首頁,由於要用比較絢麗效果,用WPF開發,其它地方用WinForm開發;在產品須要大量查詢可能有性能問題的地方,使用手寫SQL查詢,其它地方使用Entity Framework。
這個項目產品前期需求分析討論和產品設計大概花了6個月時間,可是給的開發時間只有3個月,從組建開發團隊到部門經理與架構師的技術框架之爭,又花費了1個月,另外計劃的是這3個月還包括1個月的測試時間,因此真正留給開發的時間差很少只有1個月。熬過這1個月緊張的開發,時間原本不夠外加團隊裏面兩個技術派的懟怒,磨合很差,進度嚴重滯後,外加上層領導的催促,重壓之下我只好辭去了這個項目的項目經理,我說如今開發人員嚴重緊缺,我最合適的崗位仍是去作開發比較合適。因而,公司從總部派了一個專職作項目管理的高級項目經理來接替我以前項目方面的工做。新項目經理來了後,作的第一件事情就是強令你們週末加班,並中止天天早上的「敏捷站立會」,嚴格按照項目開發計劃趕進度。每作完一個功能,就讓測試人員開始測試,讓測試人員催着開發人員走進度。在項目重壓之下,有兩個新同事辭職了,在上線日期以前,還有好幾個不怎麼重要的模塊都尚未開發。可是,到了項目上線日,公司相關的大小領導都來了,項目經理在會上宣佈產品圓滿開發完成,各個領導也點頭贊成。這讓我很是震驚,一個在我看來根本沒有作完的項目竟然被領導驗收經過完成了,我不得不佩服這個項目經理的公關能力!
項目作完了,產品買的不怎麼理想,固然反饋回來都是技術的問題,好比性能慢之類,沒法安裝.NET框架之類。這個時候部門經理說,你們看看咱們用WinForm和手寫SQL開發的模塊,性能是否是要快些?若是產品不用WPF,不用Entity Framework,就不會有性能慢的問題,而且也不用安裝.NET Framework 3.5 框架,而 .NET Framework 2.0是很容易安裝的。部門經理說的狀況是對的,的確他們小組開發的模塊性能明顯比架構師小組開發的模塊要高。架構師選擇WPF和Entity Framework 做爲咱們公司第一個吃螃蟹的人,遭遇失敗,黯然辭職,使人噓唏不已。此後,部門經理說話在老總那裏有了至關份量,於至於在後來的項目裏面,部門經理作項目經理的時候,強令開發人員不容許使用ORM,說ORM效率低。我與部門經理以前的關係還算能夠,在部門經理與架構師的技術派系鬥爭中,我表現的比較曖昧,沒有明顯的表示支持哪一方。這個項目作完後,公司派我去某知名培訓機構去學習架構,價值8000塊的培訓費在那個時候仍是很奢侈的,固然也簽定了協議培訓後必須在公司工做滿至少3年。通過一個月的培訓後,我就名正言順的當期了公司的.NET架構師。既然是架構師了,天然得在公司裏面搞點什麼架構才行,因而在後來某個項目裏面,我決定推廣個人PDF.NET框架,可是,這卻引起了我跟部門經理的矛盾,部門經理說他嚴禁項目使用ORM,我說以前使用Entity Framework這種ORM是由於這個框架出來不久,它在性能方面的確有問題,可是個人ORM比較輕量級,不會有性能問題。我拿出了測試數據給他看,但仍是不行,因而爭執到了老總那裏。老總說,我看了你的測試數據,但我不懂技術,這樣吧我打個電話問問項目組裏面的同事怎麼看,ORM是否是會影響性能。電話通了,電話另外一邊的同事說的確會影響性能。我說這一點點性能損失怎麼叫作影響性能呢?老總說,公司實行項目經理負責制,他是項目經理他負責,你做爲架構師,必定要明確本身的參謀角色。就這樣,這個項目沒能使用ORM,不過做爲妥協,使用了PDF.NET框架的SQL-MAP技術,將SQL語句都寫在配置文件裏面,而後利用代碼工具自動生成DAL代碼。項目裏面負責數據庫開發的同事,算是兼職的DBA,他對這個功能很喜歡,因此他寫了不少複雜的SQL語句和存儲過程,而其餘開發人員寫的業務層幾乎沒有業務代碼了。項目交付後,性能不錯,部門經理和監職DBA同事都獲得了公司的獎勵。後來另外一個客戶須要這個項目的產品,但數據庫不是SqlServer,而是PostgreSQL,因爲上個項目採用了PDF.NET的SQL-MAP技術,因此基本上這個DBA同事一我的就把SQL Server的存儲過程移植到了PostgreSQL的用戶函數中,修改了SQL-MAP配置文件,基本上沒有修改代碼。這個客戶的項目作好後,領導對這位同事你們讚賞,而且這年他被評爲公司優秀員工。可是,若是以前的那個項目使用的是ORM技術開發,避免寫存儲過程,那麼後來這個客戶的項目,根本不須要進行這個移植過程,直接就能夠使用。不過,這個項目的移植讓我有機會學習瞭解PostgreSQL這種免費開源數據庫,仍是很不錯的,順便的PDF.NET的數據庫支持清單上,除了SqlServer,Access,Oracle,有了PostgreSQL的PDF.NET驅動程序。
後來終於有機會獨自負責項目,那種只有2-3我的的小項目,我在項目中使用了SOD框架的ORM部分,同事們使用後都說,原來ORM這麼好用啊,的確比寫SQL方便多了。我說ORM也要有適應場景的,太複雜的查詢很難用ORM解決,若是非要解決,那就是另外一種複雜的SQL寫法。因此我對PDF.NET的ORM的見解是它只解決80%的查詢工做量,剩下的20%的複雜查詢,要麼交給SQL語句直接執行,要麼修改設計方案將複雜問題簡化爲一個個簡單的問題,複雜的問題難以直接解決咱們就繞開它。在這個想法下,接觸到了領取驅動設計--DDD這種技術,曾經一度認爲只有它纔是解決複雜問題的應對之道,也曾經在公司宣傳了一下,給同事們講解建模過程,潛在的來說DDD的好處。固然,對於當時公司的同事來講,剛用上ORM就算鳥槍換大炮了,DDD這麼高深的東西是接受不了的。
看到PDF.NET框架已經在公司成功推廣應用,我產生了將它正式開源的想法,以前都是僅限於會員用戶才能得到源碼。在2011年9月,寫了一篇博客,《節前送禮:PDF.NET(PWMIS數據開發框架)V3.0版開源》,正式推廣使用,後來陸續收到會員用戶朋友的捐助,其中實名統計的先後共有108位朋友,CSDN,Codeplex上各個版本各類驅動下載的總人數超過了1萬人次。2015年初徹底開源,寫了一篇博客:《一年之計在於春,2015開篇:PDF.NET SOD Ver 5.1徹底開源》。開源以後,獲得不少朋友的使用反饋,修正了很多Bug,框架不斷完善發展起來,框架也被我以前的同事帶到了其它公司推廣使用,有了一丁點知名度。不過,做爲框架的做者,我在以後的推廣使用中,並非那麼順利。
我在這家公司除了最後成功推廣了PDF.NET框架,還有2件事情值得提下,一件事是把以前作的項目中利用郵件系統完成銀行內外網通訊的方案發表到了集團公司的科技內刊上,獲得公司CTO的表揚;另一件事情就使人深感遺憾了。2011年初,咱們分部的業務發展遇到了瓶頸,整個公司的業務發展也出現了飽和,公司的大型主機維護業務和核心銀行系統業務增加乏力,急需尋找新的業務突破口。老總拉着你們一塊兒頭腦風暴搞了一個晚上,各類總結思考,要求你們在一個月內拿出本身的建設性方案出來。個人課題就是依託公司所在的金融行業,提出了三個方案,一個是發展村鎮銀行系統,在傳統銀行業務線上提供小微銀行模式;一個是發展小額貸款業務,就是後來大火的P2P模式;一個是民間徵信業務,這個是前兩個方案要作好的一個配套方案。老總看到我厚厚的幾十頁方案,問我怎麼了解這麼多啊,我說這是我花了很長時間思考和收集公開的資料,分析政策和經濟走勢,綜合分析得出的結果。老總說,但願你的方案可以在公司得個大獎。惋惜,老總在年後升職成了公司副總裁,原來的副總當了老總,這件事情不了了之。等我這年末辭職離開公司後,集團的兄弟公司開始作小貸業務(P2P),結合它們以前正在作的銀行理財業務,這樣左手理財收錢,右手P2P放錢,這家公司一會兒遇上了後來互聯網金融的快車,業務飛速發展起來,到如今已經成爲一家互聯網金融集團公司。聽說徵信業務,也被它們集團內的一個公司拿去作了。後來往往提及這件事情,我都在想這家公司有沒有看過個人方案呢?若是我當初不離開原來的公司,轉了Java去了這家公司,我是否是可以發達呢?實在使人懊惱不已。(PS:當時之因此要辭職,就是由於看到公司讓咱們轉Java,我以爲.NET已經被邊緣化在這裏沒有前途。)
下面說的這家公司是一個創業公司,但實力比較強,老闆從原來公司帶過來一班人馬,作電商拍賣業務。HR招聘的時候說他們招一個架構開發工程師,我覺得就是架構師吧,結果發現就是作開發的,想一想看一直都在作開發也沒什麼。來公司後就開始作一個拍賣客戶端,我擔任項目經理和架構師,團隊都是新人,3個同事用WinForm作UI,我和一個同事作後端服務,客戶端使用SQLite緩存數據,後端沒有直接使用數據庫,經過接口調用別的系統,因此這個產品本質上就是一個消息推送客戶端,將拍品信息實時推送到客戶端,客戶端能夠進行簡單的信息查看而後選擇拍品出價。老闆對客戶端UI比較重視,因此產品經理對客戶端UI有近乎變態的渴求,界面要求跟美工設計徹底一致,精確了一個像素。按理說這樣高的UI要求用WPF比較合適,但考慮到客戶的電腦廣泛比較陳舊,擔憂在上家公司作的那個項目那樣的性能問題,因此最終選擇了WinForm開發。消息推送方面,我選擇了使用WCF的雙工長鏈接,封裝了一個消息推送框架,固然不是從頭開始搞的,使用了一點上家公司作郵件通訊系統的時候有關WCF的部分功能,不然在短短1個月時間不可能作出一個原型出來。這個消息推送框架即是後來的消息服務框架。
大概又進行了3個月的功能開發,客戶端的後端服務能夠支持集羣服務,通過了大併發測試,這個拍賣客戶端終於面向客戶正式發佈了。因爲這個時候在BS端的拍賣成交率嚴重下滑,因此拍賣客戶端被老闆給予了厚望,但願可以大量推廣安裝,增加成交率。但是使人擔憂的問題仍是出現了,好多客戶機都是深度克隆版的XP系統,死活安裝不上.NET 3.0框架,就無法安裝咱們的客戶端,惟一的解決辦法就是給客戶機重裝系統。這個問題比較明顯的影響了產品的推廣力度,老闆就再也不把它做爲重點產品支持了。就這樣差很少過了半年,老闆將方向轉移到了移動端,開發APP產品,一年後,咱們這個拍賣客戶端下線了,而消息服務框架也沒有了用武之地。
客戶端產品作完後,公司準備從新設計電商網站,總監進行技術選型,徵求個人意見。我說目前咱們使用的是NetTiers 代碼模板生成的數據訪問層,它有一個最大的問題就是每一個CRUD方法都生成了一個帶事務對象參數的重載,用於有事務的查詢,若是A,B方法都對同一個表查詢的時候,A方法使用了事務重載,B方法沒有,那麼有很大機率會出現死鎖,因此團隊開發的時候必須很當心,避免別人調用錯誤,而忙中出錯又是不免的,另一個問題就是你們查詢的時候都用模板自動生成的查詢方法,這些方法默認都是查詢出表的所有字段數據的,當遇到大表的時候有性能浪費。總監贊成個人見解,說如今Entity Framework比較流行,用它怎麼樣?我說用它的確在比較簡單的查詢的時候很方便,可是複雜的查詢很差控制,生成的SQL很差優化和調試,另外就是效率不過高(基於當時EF4.X之前的版本而言,EF有比較大的性能我呢提)。因而我拿出了PDF.NET框架跟Entity Framework的對比測試程序,前者在速度,內存方面都有明顯優點,總監說行就用你的方案吧。因而我開始在公司推廣培訓PDF.NET框架,有一個小項目,同事先拿去試用了。正當我準備在新項目中使用PDF.NET框架的時候,原總監辭職了,來了一個新總監,某著名外包公司出身,2年.NET開發,3年Java開發,N年管理經驗,來的第一件事情就是否認拍賣客戶端的消息推送機制,並試圖從理論上證實這種設計就是錯誤的。我以爲他的這些理論批判是沒有根據的,就力排衆議。固然結果就是我再也不參與新電商網站這個重點項目的研發,打發去維護那個已經沒什麼人用的拍賣客戶端。
新網站項目規格很高,各方面都很重視,招聘了一個新架構師來搭架構,可是可以使用技術是新總監已經欽定的一份「研發技術使用清單」,ASP.NET MVC+Castle IOC+MyBatis.Net。因爲舊網站使用的是ASP.NE WebForms,這個組合對於開發團隊來講都是新技術,總監分配團隊裏面不一樣的人分別去研究這幾個技術,而後給你們培訓,這個時間大概花了1個月。MyBatis.Net 就是以前的iBatis的.Net版本,開發團第被谷歌收購後改了名字。總監推薦了一個代碼生成器來生成MyBatis的使用代碼,不用說,效率槓槓的,但實際上,這種自動生成的代碼都是針對全表CRUD的,程序運行效率跟以前那些古老的ORM沒有什麼區別;另一個問題就是條件查詢,MyBatis能夠動態拼接條件,你們爲了方便都是程序裏面直接拼好一個Where條件字符串拿去替換,不多有人真按照MyBatis的規範去使用。Castle的IOC框架在當時仍是頗有名的,它有對象生命週期管理,用過IOC的人可能知道生命週期管理很差會有坑,出現大對象內存泄漏的問題,這個問題對於團隊成員技術水平比較通常的狀況來講就比較麻煩了。項目開發過程當中的其它問題好比加班加到失控,好比管理啥的不作評論,最後結果就是項目上線失敗了,服務器一直宕機,產品經理在上線前一週離職,新總監在上線前一天離職,測試經理一個月後被勸退,甚至新總監的直接上司,研發中心老總也被調離崗位。老闆開了一個項目上線事故調查會,追查還有誰應該對此負責,架構師很委屈的說:我只是一個上線(操做)的。後來查明服務器宕機的緣由是在高併發的時候,網站程序出現內存泄漏,而泄漏的緣由就是IOC的對象生命週期管理失控,可是要修改已經來不及了,IOC的使用在程序各個地方都是,要改等因而很大一部分代碼都要重構。最後的結果就是,放棄花了一年時間研發的這個新網站,恢復原來的舊網站運行,將新網站的一些新功能加到舊網站上去。
PS:新網站上線失敗的事情尚未完,這件事情對於公司業務打擊很大,.NET研發團隊在老闆那裏已經失去信任,而我也被無辜殃及。老闆從國內三大門戶網站挖來一個PHP研發總監,組建了一個PHP研發團隊,他們在日常工做之餘加班祕密複製了一個電商網站,可是直到我從這裏離職,這個複製的網站都沒有上線,可能老闆對於網站的複雜性,重要性深有顧慮,不敢輕易替換的緣由吧。所以這裏就出現了一個頗有意思的情景:.NET團隊失去了信任,但它的重要性又不敢輕易否認。因此,一切看當時負責研發新網站的.NET團隊成員的表現了,而他們也是拼了命的去加班補償,最後終於贏得了老闆的信任,這都是我離職後的後話了。
網站上線失敗,PHP團隊接管了除網站以外的其它BS項目。後來,一個產品經理提出重作公司後臺ERP的方案,PHP團隊認爲所有使用BS開發便可,產品經理過來找到我,對我說你要多多支持個人方案,.NET作客戶端是其它語言難以替代的,大家如今.NET不受公司重視了,這是大家的一個機會啊!這話說的不錯,但彷佛有項莊舞劍;意在沛公的味道。就這樣,這個新的ERP系統BS端採用PHP開發,CS端採用WinForm開發,兩端由於如何通訊問題嘗試了很久,PHP由於沒法很方便的支持WebService 而採用了JSON序列化的方式發送和處理請求結果,那個時候尚未流行Restfull API這個概念,咱們就這樣先試行了。就這樣,兩個團隊專一作本身的東西,我負責的WinForms端開發,採用了PDF.NET的智能數據控件技術,實現了界面數據的收集,綁定,好多界面所須要的代碼都沒有幾行,僅僅須要設置控件的數據屬性綁定而已,從而提升了開發效率。參考後來總結的這篇文章:《不使用反射,「一行代碼」實現Web、WinForm窗體表單數據的填充、收集、清除,和到數據庫的CRUD》。產品作好後,咱們的業務人員反映很好用,再也沒有以前BS版本那種速度慢,頁面卡頓的問題了,而且窗體方式的數據展現效果,內容輸入的便捷程度,都比BS方式的頁面要好得多,大大提升了現場業務人員的工做效率。爲此老闆也很滿意,獎勵咱們這個產品的全體研發團隊(產品,技術,測試)去國外4日遊,並且以後不久,負責這個產品的產品經理晉升爲產品總監。
後來,公司改變了拍賣模式,由以前的「秒殺」式拍賣改變成實際現場拍賣會那種分不一樣拍賣場次的順序拍賣方式。這種業務模式的改變,極大的下降了網站的併發壓力,網站開發團隊因爲以前嘗試新技術的失敗,技術趨於保守,仍然用以前的NetTiers 代碼生成的模式,只須要最快的速度開發新功能便可;而在其它項目上,都是PHP團隊的事情,他們掌握了公司後臺的關鍵業務。可是對我而言,沒有進一步發展客戶端軟件的機會,也沒有大型互聯網那種大併發,大數據的挑戰了,架構的重要性已經再也不,到了我跟這家公司說再見的時候。不過,在這家公司,我也有一個意外的收穫,公司業務飛速發展,我從業務部門也學到了一些有關業務分析的方法,進行系統總結後,寫了一些博客文章,而且參加朋友組織的線下技術思想分享,請參考如下連接:
從上家電商公司辭職後,我到了另外一家作電商的公司,老闆試圖打造一個B2B2C的全平臺,利用本身集團主營業務是傳統支付業務的基礎,試圖進入電商支付領域,而且打通線上與線下的交易渠道。老闆從某東挖來一我的作電商事業部的副總,基本上電商平臺不論從產品仍是技術架構都是這個副總定的,而我協助副總實現他的想法,主要是負責Entity Framework在項目中的落地應用,另外負責電商支付模塊的設計實現,與集團的支付系統打通,因此我認爲咱們這個產品更大的意義在於公司從線下支付轉向電商支付的一次實驗性項目。雖然我早在2008年就接觸到了Entity Framework,而且在2009年的那個項目對它嚐鮮式應用過了,期間也一直保持關注和研究,7年後這纔算第二次正式使用Entity Framework。副總的意思是全部查詢都要使用Entity Framework,可是架構設計之處就分庫了,因此須要使用Entity Framework作分庫查詢,而且Entity Framework對MySQL當時的支持並不太完美,有時會有些小Bug,好比某個字段跟數據庫的結果不一致,可是其它字段又是對的,經查明是字段類型問題。另外項目開發的比較緊急,開發團隊成員大部分都是外包的,以前都沒有人用過Entity Framework,他們對SVN源碼管理也常常不按規則使用,再加上Entity Framework的數據庫升級,問題不少,預計半年的開發時間,差很少有3個月都在折騰Entity Framework的問題,半年時間到了果真沒有預期完成開發,而這個時候因爲加班多開發壓力大,連項目的開發經理都辭職了。這樣工期不得不又延續了3個月,因此先後差很少花了10個月纔開發完成。項目上線以後就是跟支付那邊不斷的聯調測試,以及接入一些小商家來入駐試用,這塊商務方面進展的不是很順利,因此結果就是前面拼了老命開發,後面又比較悠閒沒有方向,這樣下去不是我廢了就是部門要黃,我不得不思考新的出路,恰巧碰到一個獵頭把我挖到了如今的公司,而以前公司的那個部門,半年後由於別的公司意圖收購他們,部門裁撤了。
這裏須要說下離職期間的一些小插曲。老闆據說我要離職,派了他的親信,公司的老員工來作了我三次工做,說若是留下來,承諾將來3年個人總收入不低於120W,平均每一年40W,可是第一年只給30W。我聽了很詫異,在我離職以前不久公司纔給我加薪了,加了多少呢?500塊。既然認爲我是人才爲什麼才加這麼點呢?我將這個狀況也給獵頭說了下,獵頭說你老闆這樣是沒有誠意的,獵頭的花言巧語讓我相信了他們的見解,留在這裏的發展前途沒有他們介紹的新地方大。可能最後老闆知道了用錢也留不住我,就派了另一個部門經理來找我,對我說,原來你就是PDF.NET框架的做者啊,咱們都看過,很不錯的(#$#$一堆讚美的話就很少說了),你來咱們部門吧。我苦笑了下,說感謝支持,但我去意已決:-《 。後來到了新東家,才發現遠遠不是獵頭描述的那番美好景象,心想這些獵頭真是以賣人爲第一原則別的什麼都無論的。到如今,竟然有不少獵頭連Java與.NET都搞不清楚就處處挖人的。
故事說到這裏,終於能夠收尾了,文章的開頭我已經簡單說了下現東家的狀況,出於隱私考慮,我如今不方便說太多如今公司的事情,雖然也有不少故事,有不少問題,有很多坑,其實套路都差很少,暫且不表,就簡單說說我在公司的工做吧:推進變革,固然我做爲系統架構師這個頭銜,說「推進變革」沒人信,一個公司的變革必定是由不少人一塊兒推進的,起重要做用的多是公司領導層的領導,也多是普通員工的一些工做建議。來公司近3年,公司慢慢的由一個傳統軟件公司向互聯網軟件公司逐步轉型,公司賣了10年的單機版軟件,正在從新研發設計爲一個具備雲-端計算的,複雜的成套解決方案,整個軟件無論從開發語言,系統架構,軟件功能仍是銷售模式,都有了巨大改變,用老闆的話說,這是咱們立足於將來10年的軟件。下面大概說說這個軟件的狀況。
軟件功能:
技術架構:
項目責任:
感謝您可以看到這裏,最近瀏覽各大人才網站,發現.NET相關工做崗位寥寥無幾,跟網上其餘朋友交流後發現,他們廣泛發現今年.NET的就業形勢很嚴峻,大部分還在招聘的企業可以給出的薪資都比較低,甚至低於前端開發人員。一方面是.NET Core開源不斷髮展,各類.NET微服務框架也都開源了,彷佛.NET的春天要來了,而另外一邊.NET在國內的就業形勢愈來愈惡劣,跟3年前都造成天壤之別,沒想到形勢發展這麼快。前兩天剛剛看到一個新聞,說微軟取消了Windows業務部門,這跟.NET的發展狀況是否有關係呢?將來.NET是從新崛起仍是今後走下坡路?
而一直跟隨微軟腳步,吃微軟飯的70後.NET程序猿,青春已經再也不,還有繼續吃這碗飯的機會嗎?
指望的目標:
如遇伯樂的您,不勝感激!
若是你有批評建議,我在此虛心聆聽!
感謝您閱讀此文,個人聯繫方式:
QQ:45383850
電郵能夠使用QQ郵件,電話這裏就不方便直接提供了,您能夠在博客園給我留言發消息,或者看SOD的官網 http://www.pwmis.com/sqlmap 獲取更多信息。