挨踢部落故事匯(11):編程起步從0到1
原創【51CTO.com原創稿件】Aris在大學期間對編程產生了興趣,當時他的班主任是教Java的,看著老師用代碼寫出一些他們做不到的事,Aris便開始覺得編程是一件很牛逼的事情。從那時起,他就沉入到計算機的世界里,每周都會去圖書館借一些書回去,邊對照書邊敲代碼執行,逐漸一個個小案例被成功的敲出來了,頓時他心生滿滿的成就感。但一味的跟著書編程,并不會一直運行成功,有一次因為書本的某個小錯誤,Aris沒有發現,導致他執行不出結果,于是他通過百度、Google各種查詢,最終找到解決方法。此后Aris覺得單單跟著書上敲是不行的,還需要自己靈活變通,后面的學習生涯也是這樣一天天積累的。
Aris·Java開發
自學Java編寫小游戲
畢業后的三年間,Aris由于個人原因,沒有從事過任何相關的企業級開發工作,而是在一家IT培訓機構擔任Java項目助理,很久沒接觸過Java的他,理論知識在腦海里所剩無幾,所以剛進培訓機構時,他也是跟著前來培訓的學生一起邊工作邊學習,增強自己Bug解決能力,更好的與學生溝通,不管是日常學習還是生活瑣事,都逐一了解清楚,這樣方便后期對學生日常管理做優化,在此期間Aris自學了Struts2和Spring和Hibernate這三個比較常用的框架,后期因為課程上的改革,研究了MyBatis數據層管理框架。當時Aris學Swing的時候,為了對Swing的應用更為熟練點,他自己嘗試寫了個<飛機大戰>游戲,列舉部分代碼:
用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聯系群主小官,期待你的精彩故事!
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】
【編輯推薦】