回頭看
See The Big Picture.
做事情要站在更高的角度看問題,See the whole picture,才能夠理解當前做事情的意義,不然會認為自己的工作毫無意義。
回頭看
我武漢理工學生,今年大三。大學一直過得忙忙碌碌,就像打了雞血,懷著創業夢,但是至今為止沒有開啟我的事業,有出沒入。
由於想創業,我學習過一些管理、經濟學以及編程技能(我軟體工程專業),關於管理、經濟學,我就只是停留在閱讀某些熱門書籍,激起我對企業的熱情的是德魯克的《創新與企業家精神》,我喝了德魯克不少的「雞湯」,他的思想令我興奮,但上一次閱讀該方面的書籍已經是大二上了。
我編程起步不較慢,大一下才正式開始學習編程(註:武漢理工大學大一上不允許帶電腦 unfriendly)。先是學習了JAVA,學習JAVA的原因是什麼,應該是當初聽了一個師兄說未來需要學。
學了JAVA基礎後,那時候網上比較多Android教程,比如慕課網、極客學院。我跟著慕課網的教程開始學習Android,沒有閱讀過書籍深入了解Android,學習Android過程更多只是停留在UI上,如何布局等知識。後面學深入一點,就跟著《Android權威指南》(推薦),該書本是通過做一個APP的思路去教授知識,我也跟著做了幾個小APP。這種教學方式很適合入門者,能夠快速看到成果(APP),能夠堅持學習下去。
後來我進入了實驗室,我對Android的學習也就停止了,轉而投向了JAVA WEB開發。至於為什麼是JAVA WEB,很大的原因就是有一個豐富JAVA WEB項目經驗的廣東老鄉兼師兄帶,後來也來了一個朋友一起學習JAVA WEB。說實話,學習JAVA WEB的過程非常枯燥,由於急於求成,「吃快餐」,在易佰教程、菜鳥教程上學習有關JAVA WEB、資料庫方面的知識。沒有深入理解其中的原理,很多代碼都只是按照教程執行,照葫蘆畫瓢。
第一次外包
大二下有一天,我接到一個電話叫去談外包的問題。這個項目叫店小二365,沒錯這個網站已經不存在了,因為該團隊前幾個星期宣布創業失敗了。本來這項目是由上面提到的帶我的師兄接的,後來他要畢業了,要忙各種事情,後來這外包就落到了我頭上來,甲方創業團隊是武漢理工大學的一個創業團隊,產生了一個由於電商的想法,分級會員體制(微商+「傳銷」,具體遊戲規則我就不透露)。
對於新手來說,能夠接到外包是很興奮的,而且對方還是創業團隊。第一次接外包,當初很多需求都沒有弄清楚,甲方不懂軟體工程,我們當初也不懂,於是我找了兩個夥伴(一個是上面提到跟我一個學JAVA WEB的朋友,另一個做前端的是我舍友)。開啟了大量逃課的日子(即使不做外包,我也會逃課),在實驗室裡面吭哧吭哧地寫代碼,沒有明確需求,甲方對於UI方面就是說就按照聚美優品做,Deadline為6個星期後。
後來由於需求不明確等問題,我們的代碼改了很多遍,也沒有項目經歷,甚至出現了git conflit。接入支付寶、阿里雲簡訊介面、郵箱服務等也遇到了不少問題,做事太著急,從網上找來了一個demo就往上面跑,到底其工作原理也沒弄清楚,有時候遇到了Google也無法回答的問題(我們不會搜),我們只能夠請教師兄,還被師兄訓了說沒有耐心看官方文檔。從此以後我認識到耐心閱讀官方文檔的重要性,至少要把其基本運作原理弄明白。由於缺乏Linux方面的知識,在部署伺服器上也遇到了不少問題。做外包的期間很累。
上述的第一個外包對我影響極大,無論是軟體工程方面的(雖然我們只是一個小團隊,但是也遇到了很多問題),還是責任心(接了一個任務,即使不想再做下去了,也要對當初自己的選擇、對方負責)。甲方負責人很用心,也很有耐心,能夠包容我們的錯誤,如果能再選擇一次,我還是會接這個外包。
第一次實習
大二下的暑假,留在了實驗室老師公司實習,使用Python + ZeroMQ + TinyDB + Electron + Vue.js + Element UI,做了一個資料庫方面的客戶端管理系統,這個軟體是一個可以在區域網內共享信息、桌面版的前後端通信模型。在真正寫代碼之前,我們有一個月的時間來學習,準備其他方面的知識,在這段時間我們參加了互聯網+比賽。
需求:有一些做生物信息方面研究的人,他們擁有海量的數據,數據可能分布在多個移動磁碟、伺服器磁碟陣列上。如何管理海量數據成了問題,他們需要一個軟體去幫助管理數據,查看磁碟、伺服器上文件的變更(增刪改)狀態。
這次開發中我們開發團隊中有6個人(都是大二),Project Manager是老師的研究生,吸取了上一次外包的教訓,我們儘可能詳細地弄清楚需求,但是還是沒有需求文檔。很多需求,PM也不是很清楚,更多的是靠我們大家的想像力和參考別的軟體類似功能如何實現。
這個過程也遇到了很多軟體工程方面的問題,前後端開發不同步,大家擁有不同意見沒達到共識,數據結構與演算法方面沒有做好文檔,導致後面需要用到的時候需要閱讀之前代碼,效率極低,沒有對意外情況(xxx病了)做好準備。雖然遇到了很多問題,但整個過程下來還是覺得很高興的。
經過這個項目後,我發現需要閱讀更多關於軟體工程方面的書籍,比如《人月神話》(至今沒看完)。
搭建博客
計劃與舍友(外包中做前端的)一起搭建個人博客,在鍛煉到技術的同時,能夠擁有自己的網站為自己做營銷。site: whoyoung.me
說起這博客,在做第一個外包之前我們已經在動工,後來因為接了外包和暑假實習原因,一直把這個博客拖到了大三上(至今沒有完成,還有想法需要實現)。博客的前後端也經歷過改版,由最開始的伺服器端渲染到現在的SPA(單頁應用),前端也引入了Vue.js框架,伺服器端由JAVA SpringMVC到Python Flask,資料庫由MySQL到MongoDB。
作為技術人員,除了提高自己的技術水平外,還應該多學習如何營銷個人,《軟技能》中John Sonmez 提到了程序員應該多學習除編碼外的其他知識,比如營銷、健身、理財、學習等。
我的普通話比較差,口音很重,語文水平差,所以表達能力(口頭表達、書面表達)一直是我的弱項。在比賽、組織中表達能力是很重要的,比如一個比賽答辯,上台的機會都是留給表達能力好的人。在今後,應該多鍛煉自己關於表達能力。
糾結
由於做了好幾個關於Web後台的項目,目前對WEB開發有點疲乏感,有想法向轉數據或者機器學習應用方面,目前在學習coursera上吳恩達的機器學習課程。
而工作中一般做數據或者機器學習方面的都是研究生等有研究背景的人才,我又不想繼續讀研究生,距離我找工作時候剩下來的時間只剩下不到一年的時間了。昨晚和一位目前在餓了么工作的師兄聊天,他給的建議是找到自己真正熱愛的方向,不要看到哪個方向火就往哪個方向轉。
到底要不要轉使得我很糾結,希望大家能夠給點意見。
推薦閱讀:
※告別2016,你好2017
※與最好的朋友關係變淡的感覺是什麼?
※20171213十九一記
※我們互為生命中的過客,或重要角色?
※哪一瞬間你覺得自己再努力也不會成功??
TAG:感悟 |