故事應該是從2008年夏天開始的,對於那一年映像最深的除了汶川地震,北京奧運以外,還有JAVA。前端
java算是我第一次接觸的跨平臺的東西吧,決定要去學java的緣由很簡單,由於那時候我還不滿16歲的大腦貌似對正在被教授的嵌入式C語言不太感興趣,也許是那個時候教學太死板,我始終以爲:java
既然要教我嵌入式,怎麼說也得先弄個機器人什麼的給我長長眼吧?
若是當年阿凱老師的銀色手提箱裏取出的是一個micro robot,而不是一塊電路板(開發版),也許我會一點不猶豫的堅持在嵌入式這條路上走下去。後來懂得多了,才發覺,當年那塊電路板上搭載的竟然是arm處理器。python
要知道,那時候開放手機聯盟大概也纔剛剛成立,android估計才進入測試階段,嵌入式設備上大多運行的還只是KED桌面的Linux和WinCE。
然而,在完成了一個阿凱老師佈置的任務以後,我就再也沒有接觸過所謂的嵌入式開發了。jquery
那個任務大概是這樣的:首先是讀取Linux的串口,串口的終端是一塊GPS天線,我所作即是實時讀取這個串口文件。而後用C語言的字符串處理截取出來我須要的信息:高度,速度,緯度,經度。最後,使用另一個GPRS模塊,把這些信息發佈出去。
個人任務完成的還算圓滿,交叉編譯以後燒到ARM板上還運行的不錯,不過,在整個系統中,我所作的只是移動終端的開發,當我看到指揮中心的客戶端時,個人心情…是震驚的。android
這他媽的簡直是黑客帝國嘛,一個個終端被分散出去,地圖上不停的閃着小點點。簡直是電影裏纔出現的呢!16歲的我瞬間被震撼到了。阿凱老師只說了一句,這是用java作的。事實上,後來到了部隊也作出來了相似的GIS地圖,只是苦於當時只是個義務兵,沒錢買開發芯片和各類模塊,領導也不重視,那個地圖也僅僅是個可以分層的地圖而已…
總之,那個時候就鬼使神差的迷上了java,阿凱老師擅長的不是java,我又跟亮老師學習了,剛接觸不久就被OOP這種思想給征服了,受夠了面向過程當中的各類數據結構,面向對象裏原生態提供的數據結構,原生態類庫,讓我第一次以爲編程原來還能夠這樣。c++
和全部09年前學習java的人同樣,最終目標都定在JAVA EE上,我也不例外,大概學了一年的JAVA以後,個人眼界也逐漸開闊,也能用struts hibernate這類的框架作出來一些web應用了。
不過,畢竟仍是太年輕,不知道怎麼想的,忽然對web開發有了一用莫名的輕視,感受無非就是數據庫的CRUD罷了,那個時候,彷佛也尚未前端的概念,個人一些做品的頁面也是醜的一塌糊塗。漸漸的對web開發沒了興趣,因而作回了老專業——嵌入式。web
那個時候對嵌入式和手機開發,沒有明顯的界限,或者,那個時候手機開發就能夠稱得上是嵌入式了,因而我開始了個人Android之旅。
勉強算的上是國內比較早的Android應用層開發者了吧。大概是半年時間吧,一個軟件公司找到了我,那是個當時西北地區爲數很少的作android開發的公司,苦於招不到人,竟然找到了我這個17歲的孩子。去公司面談了一次,項目經理還給我出了一道算法題,具體記不清了,大概就是一個數列的獲取和排列。大概也就五六分鐘時間,我就給了代碼,本覺得會對個人算法指指點點,誰知道那貨關於算法和程序功能都沒有說半個字,甚至都沒驗證,反而是對個人編碼規範大大的讚揚了一番。那就下個禮拜上班吧。面試
但是這個時候,老媽忽然通知我回家當兵。據算命的說,若是我不當兵,可能會有牢獄之災。老媽多是看我一回家就作在電腦面前,不玩遊戲也不看電影更不和女孩子聊天,天天都在電腦上敲一些她看不懂的英文字母。老媽雖然不懂,可是新聞仍是常常看的,結合算命先生的話,再看看個人狀態,不禁得懷疑,我是在搞網絡犯罪。每天旁敲側擊的教育我,君子愛財,取之有道之類的。算法
因而,2010年冬天,我終究仍是跌跌撞撞的闖進了部隊,走的時候,不知道哪根筋不對,竟然帶了一本《LINUX 環境下C語言程序設計》。數據庫
就這樣,一我的,一本書,到了部隊。
在此以前,我已經具有了一些成爲全棧工程師的資格:
java語言基礎
web開發的必備知識
HTML/CSS
移動開發
一些MVC MTV之類的開發模式。
到了部隊就是在新兵連裏訓練,各類不適應,由於以前每天在家寫代碼,以致於身體底子特別差,剛開始的時候跑上1000米都喘的不行,因而訓練的過程就是各類捱罵的過程,再加上遇到了個比較嚴厲的班長,基本上天天可以不捱罵那即是我最舒服的日子了,過了一段時間之後,身體的每個塊骨頭都被骨膜炎蹂躪一遍以後,感受整我的都脫胎換骨了同樣,也就慢慢適應了,這期間,每一個週末會有一天休息,我就拿起那本《LINUX環境下C語言程序設計》看,沒有電腦,就在日記本上寫代碼,在大腦裏編譯,不知道這算不算是對本身的一種鍛鍊。這樣的日子過了四個月,我才下連,個人連隊在一個山溝裏,下連沒多久就開始執勤,主要是看犯人。
每次站在哨位上看到監獄裏的犯人,我都會問本身,我來這幹嗎來了?
事實上,這個問題我至今也沒搞清楚。好在沒過幾天,值班室通知我接電話,電話那頭是司令部的哪一個首長,以前也沒見過,問我程序能搞不,我說沒問題。因而我就被調到了司令部做訓股,全稱是做戰訓練股,那會兒也不懂那是個幹啥的單位,總感受聽名字仍是挺牛逼的。
到了機關,天天都會在辦公室裏上班,不過比較尷尬的是,辦公室配給個人僅僅是一臺賽揚的處理器的臺式機,那叫一個慢呀,並且根本沒有外網。我在部隊內網找了大概整整一天,編程的工具竟然只有c++ builder,好在以前這個東西用的還算不錯,因而,就開始了我在部隊的第一個程序,基本上就是一個簡單的管理系統,我甚至都沒找到數據庫,用的ini文件來存儲數據。不過,總算開始敲代碼了,這期間慢慢的也熟悉了新的環境,天天的工做也是比較繁瑣的,除了寫程序以外,還要負責司令部領導的生活起居,辦公室的衛生,幾個庫房的衛生,天天還要雷打不動的站四個小時崗。
按照領導們的說法,我對電腦比較精通,因而又交給了我一個新的任務,那就是,視頻剪輯。也就是把部隊每月的執勤,訓練的視頻資料剪輯出來,方便作一些分析呀之類的東西。因而,我就開始學習會聲會影。
以前對於視頻剪輯,圖片處理之類的軟件也沒怎麼接觸過,感受就是點點鼠標什麼的,接觸以後才發現,這裏面也有大學問。因此也慢慢認識到,隔行如隔山,咱們不能用本身的淺薄輕易的否認了別人的價值。
關於視頻剪輯,後來我在大概第三年的時候專門參加過一次培訓,培訓內容直接上升到了電影的製做,授課的都是一些北京電影學院的教授和幾個比較有名的導演。也算是長了見識,回來以後就買了個MacBookPro,在本身的單位用單反相機拍了一部微電影,用finalcut剪輯了出來,後來在所有隊還獲了獎,不過這都不是我想要的了。
再說回來,大概在第二年的時候,部隊開始搞信息化,我被調整到了通訊股一塊兒搞建設,此次建設讓我有了一種鳥槍換炮的感受,指揮中內心全部全新的筆記本電腦和全部的臺式機隨便我用,最重要的是,咱們接了一條外網!這個時候,上面信息化部門也來了一個幫助咱們搞建設的參謀,這參謀也算是科班出身,和我勉強算是有點共同語言吧,咱們兩個一合計,以爲仍是要搞出點軟件來,不過,這貨的編程功底確實差的一塌糊塗,因而我變成了主力。我用了差很少兩天的時間在在網上覆習了一下java的struts2框架,而後開搞。
因爲確實在這方面沒什麼實戰經驗,並且要作的系統仍是比較龐大的,直接命名爲一體化平臺,總之部隊裏的人員,車輛,做戰,執勤,戰鬥力評估之類的所有要作進去。第一個難題就在數據庫設計上,我一我的差很少折騰了三天三夜,才把數據庫這塊作好。而後就是各類業務邏輯,在這裏也不便透露,總之,整個項目邊開發邊測試,差很少一我的折騰了一個半月時間才能跑。功能都實現了,但是問題來了,個人前端確實醜的慘不忍睹,因而,上面來幫忙的參謀動手了。
他用了一個叫作authwear的東西,作了一個固定分辨率的界面,不得不說,他的界面作的確實很好,在看他工做的時候我也學會了很多PS上的東西,以致於如今個人PS已經能至關於一個職業美工的水平了。與此同時,我用了半個月的時間自學了3DMAX,把咱們全部目標作成了3D模型,而且按照海康的sdk,把實時視頻監控也作到了這個系統裏。
可是,把個人頁面直接嵌套進他的界面裏,B/S構架的應用直接變成了C/S構架,直接犧牲了程序的靈活性,以致於,我又一次改了代碼,直接提供接口給他來調用。最後,獲得了一個看起來很酷,可是犧牲了部分功能和靈活性的平臺。
當這個平臺被放在了指揮中心的大屏幕上,我在控制室爲指揮中內心的將軍調出來各個執勤點的視頻,每個戰士的資料,戰鬥小組信息,車輛和裝備信息的時候,一種成就感油然而生。
個人軍旅生涯本該就這樣結束的,9月份的時候,我被家裏人內推,去了一次百度西北區總部,面試個人是他們的人事總監,他對我還算滿意,而且也談好了,推薦我去北京的百度無線部。我也就作好了再過兩個月退伍的準備。
但是,以後的一次任務改變的我,任務甚至還有友鄰部隊的戰友爲此付出了生命的代價,參與完任務以後,我鬼使神差的寫了一份留隊申請,結果,就變成了一個士官。
轉了士官以後,我被調到了另一支部隊,專業是網絡維護員,用外面的話來講就是站長。負責網站建設,主要是ASP和PHP,這個新的單位對軟件系統這塊兒也沒有特別的需求,以致於我在這裏仍是比較悠閒的,直接的好處是,我能夠花大把大把的時間去學習一些新的東西。
我也正是在這個時候開始學習python的,大概一接觸python以後,我便完全捨棄了java,我喜歡新技術,並且python真的很對我脾氣,因而開始用django來作一些項目。日子就這樣波瀾不驚的過着,差很少持續了三年吧,只要沒有其餘的任務,我也天天堅持寫代碼,在這期間同時也學了SWIFT IOS開發,新的CSS和HTML,bootstrap以及jquery,而且在第四年的時候,受到原部隊的邀請,回去用WPF從新實現了以前的一體化平臺。
這一次,我一我的,讓界面更酷,效率更高,軟件更實用。
到此爲止,我不知不覺的已經進步了許多,回頭看看。
曾經的閉門造車,在徹底沒有網絡的環境下開發,鍛鍊了我不擇手段解決問題的毅力。
使用一些之前不屑於使用,或者認爲太簡單的工具,而且去研究它,發現了技術和藝術結合以後的新世界。
接觸了許多硬件設備,維護部隊的網絡,發現了許多硬件和軟件共同的地方。
接觸了身邊形形色色的人,有初中畢業的戰士,研究生技術幹部,學院教授,發現他們的可愛與可敬,讓我改掉了本身心浮氣躁,眼高手低的毛病,學會了尊重與學習。
從浮躁不安,自覺得給我足夠的設備和材料我能把衛星放上天的十七歲的不知天高地厚的少年變成了寵辱不驚,願意踏踏實實作一點事情的老兵。
我發現本身在一點一點的進步,這些進步不少時候本身不能直接感覺到,但他確實存在,雖然我如今也並非什麼技術大牛,但我願意,踏踏實實的去創造一些本身喜歡的東西。
一我的,一臺電腦。渾渾噩噩的,就這麼成了一名全棧工程師。