挨踢部落故事匯(11):編程起步從0到1

Aris在大學期間對編程產生了興趣,當時他的班主任是教Java的,看着老師用代碼寫出一些他們做不到的事,Aris便開始覺得編程是一件很牛逼的事情。從那時起,他就沉入到計算機的世界裏,每週都會去圖書館借一些書回去,邊對照書邊敲代碼執行,逐漸一個個小案例被成功的敲出來了,頓時他心生滿滿的成就感。但一味的跟着書編程,並不會一直運行成功,有一次因爲書本的某個小錯誤,Aris沒有發現,導致他執行不出結果,於是他通過百度、Google各種查詢,最終找到解決方法。此後Aris覺得單單跟着書上敲是不行的,還需要自己靈活變通,後面的學習生涯也是這樣一天天積累的。

Aris·Java開發

Aris·Java開發

自學Java編寫小遊戲

畢業後的三年間,Aris由於個人原因,沒有從事過任何相關的企業級開發工作,而是在一家IT培訓機構擔任Java項目助理,很久沒接觸過Java的他,理論知識在腦海裏所剩無幾,所以剛進培訓機構時,他也是跟着前來培訓的學生一起邊工作邊學習,增強自己Bug解決能力,更好的與學生溝通,不管是日常學習還是生活瑣事,都逐一瞭解清楚,這樣方便後期對學生日常管理做優化,在此期間Aris自學了Struts2和Spring和Hibernate這三個比較常用的框架,後期因爲課程上的改革,研究了MyBatis數據層管理框架。當時Aris學Swing的時候,爲了對Swing的應用更爲熟練點,他自己嘗試寫了個<飛機大戰>遊戲,列舉部分代碼:

飛機大戰GAME OVER

主程序

敵機

小蜜蜂

 ×××

飛行物

用HTML5實現App和Web項目

之所以會選擇轉開發,因爲Aris覺得自己的技術水平已經達到一個瓶頸,需要進一步成長,必須接觸真正的企業開發才行,所以他毅然辭掉培訓機構的工作,投奔軟件公司去做Java開發了。初入開發崗,自然免不了過渡期,主要是通過溝通和自學成長的。看老司機寫的業務代碼,瞭解項目流程,是Aris首要掌握的。有效代碼約5000行,他都一步步理解透徹。2周後Aris接手第一個任務,推翻原生態安卓App,改爲時下流行的HTML5語言作爲一個升級版,Aris和以前接手過的同事溝通,瞭解相關的業務需求,期間會使用到MUI這項前端框架。當時除了上MUI官網外,還有Git、51CTO、最代碼等各種技術相關的論壇網站查找過案例。由於JS的comfirm方法在調用時,會在標題欄那裏顯示當前訪問的地址,所以找了一下官方MUI文檔,看到了MUI有自己重新封裝的comfirm,調用mui.comfirm()就不會在標題欄出現當前訪問的網址了,這個小問題解決。對於App項目,Aris覺得難點在於App拍照完返回時觸發的回調事件該如何實現,就此問題當時跟其他成員討論過,結果定下了一個共同適用的方案,

調用var cmr = plus.camera.getCamera()先獲取當前設備的攝像頭; cmr.captureImage(function(path){},function(error){})然後在調用它的captureImage這個方法 

最後花費不少的時間去編寫修改,功能終於實現出來了。第一個項目完成後,他轉做Web前端開發了。這次的任務是把公司以前的一個網站前端技術由ExtJS改爲用HTML5來實現。因爲ExtJS太顯商務化了,畢竟現在是互聯網時代,項目也應該隨時跟進纔對。而且頁面需要統一適用Layui,Aris繼續學習摸索新框架, Layui官網上有充足的案例和標準的文檔。改版前的舊網站是用ExtJS來實現頁面渲染的,所以也需要了解ExtJS。在前端頁面開發中,請求的地址和接收的參數要及時跟進後臺的Action來做調整。項目提交給測試師之前,記得把項目中與業務無關的彈出框給註釋掉或者刪除掉,這些彈出信息只是在開發過程中爲了跟蹤方法的調用結果或者期間出現的錯誤信息,是不需要給測試師看的,以免測試師看到以爲是什麼Bug,所以去掉彈出框會節省很多時間成本。

Aris總結3點編程經驗,分享給初學者:

1、寫代碼時要注意,遍歷Map的方式有很多,通常場景下需要的是遍歷Map中的Key和Value,那麼推薦使用的效率最高的方式是:

public static void main(String[] args)  {       HashMap<String, String> hm = new HashMap<String, String>();       hm.put("111", "222");       Set<Map.Entry<String, String>> entrySet = hm.entrySet();       Iterator<Map.Entry<String, String>> iter = entrySet.iterator();       while (iter.hasNext())  {           Map.Entry<String, String> entry = iter.next();           System.out.println(entry.getKey() + "\t" + entry.getValue());       }  }  

如果只是想遍歷一下這個Map的key值,那用”Set<String> keySet = hm.keySet();”會比較合適一些。

2、JS不熟練的情況下,可以多看最新版本JavaScript 權威指南,畢竟JS一直都在優化,最新版就可以學習到優化好的知識,有興趣也可以看老版本,這樣可以接觸到JS一些底層源碼,設計思路是怎樣的。現在常用的JQuery,想要學習可以去看看《鋒利的JQuery》這本書,不管是紙質書還是電子書都可以,裏面有涉及到JQuery各式各樣的選擇器和插件,一些便捷的方法可以直接拿來使用,加快開發進度。

3、對業務不熟悉,要多跟同事討論,理解清楚該功能要實現的業務是怎樣,不要獨自埋頭苦幹。

工作中體現價值

Aris的領導是前端後端都比較牛的大神,工作期間他得到了不少領導指導和教育,慢慢的他自己負責的內容逐步實現了出來,這使得Aris更加充滿信心來應付以後的工作。從App開發到前端框架,Aris得到了鍛鍊,他覺得在一家企業要體現自己的價值,就是看你能完成什麼樣的工作,任何新任務都是挑戰。只相信更好的,不相信最好的,正所謂人無完人!路漫漫其修遠兮,願每位開發者勇敢邁出第一步,編出自己的程序。

如果你也願意分享你的故事,請加51CTO開發者QQ交流羣 370892523聯繫羣主小官,期待你的精彩故事!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章