這是13年8月發在博客上的文章。轉到簡書,給更多想自學編程開發的朋友。大榜現在**會從事供應鏈金融開發,他初中畢業,沒有讀高中,大專讀了一個成人類的電大。自學Java開發。
去年(15年)大榜在技術上像開了掛一樣成長。
- 2月份的時候,項目中要用到ActiveMQ,讓他先了解,我上京東看了一下,只有一本原版書。他在公司內部進行技術分享完,跟我說,公司的牛人那么多,初中生也跟大家講課了。
-5月份的時候,他說,架構師要休假,項目組就交給他,他說,我帶你們沖。。。,
-10月份時,他說,面試了2個研究生,技術不咋滴,我說,人家的關注點跟你不一樣,后勁強些,你還是多學習。
昨天晚上跟大榜說,上午有個來咨詢的大學生,大連理工軟件工程本科畢業,來上海找工作,面試了N次沒有面試上,過來咨詢Java、嵌入式課程。我了解過重點院校的軟工專業的學費,就問他,學費多少?他說,大一大二每年一萬塊,大三大四每年一萬六,他覺得什么也沒有學到,現在還要培訓再找工作。
就跟大榜說,你看看,你自學Java,找到了工作。今年下半年報了本科,一年半就可以畢業(他今年18歲,??苿倓偖厴I)。4年以后你就有J2EE4年開發經驗,復旦本科畢業。你的小伙伴今年去讀大學,4年后才開始找工作。你的優勢大了!
其實Java學起來,沒有那么難,而且網上的資源很多,培訓機構所教的內容,網上都能找到視頻教程。大榜就是一個Java自學的最佳實踐。??谱x的計算機應用技術(網絡方向),編程開發課教的是C#基礎。Java內容全部是自學。自學帶給他的好處是:學習能力大大增強,解決問題的能力得到快速提升。
下面來具體說說,他的學習經過,供大家參考。
先看看他做過的項目:
2013 /3--2013 /5:在線商城-畢業設計
軟件環境: oracle tomcat
開發工具: MyEclipse8.5
項目描述: 項目框架:struts2+spring+ibatis,oracle數據庫
實現功能:商品展示、分頁,商品管理,商品評論,類別管理,用戶管理,購物車,訂單管理,留言管理。
責任描述: 做為畢業設計項目獨立完成所有功能。
主要通過該項目系統學習了掌握ORACEL數據庫,掌握ibatis框架,鍛煉分析、解決問題能力。
項目通過花生殼發布在網上。
(這是培訓機構,院校畢業設計喜聞樂見的項目,但是要完成所有功能不容易。因為大專畢設不限開發語言,他選擇了Java,其他同學都用C#)
2012 /11--2013 /1:在線聊天室
軟件環境: windows tomcat mysql
開發工具: MyEclipse
項目描述: 在線聊天室功能:1、在線用戶列表;2、發送、接收聊天信息,聊天信息推送PUSH;3、私聊功能;4、用戶登錄注冊;5、創建聊天房間;6、后臺功能。
學習DWR,反向Ajax,HTTP長連接技術,通過該項目增強分析問題和編碼能力。
責任描述: 獨立完成在線聊天室所有功能。
2012 /5--2012 /7:白山電子樓書房產系統后臺-實習開發項目
軟件環境: Tomcat mysql
開發工具: MyEclipse8.5
項目描述: 作為手機客戶端Android, iOS的后臺。提供公司管理、樓盤管理、優惠信息管理,預約看房管理,問卷調查模塊的后臺功能。
責任描述: 為手機端提供JSON數據,WEB后臺功能代碼編寫,頁面設計。參與數據庫設計。
協助服務器端安裝、部署。
2012 /4--2012 /5:DRP(醫療企業分銷計劃)
軟件環境: Windows mysql tomcat
開發工具: MyEclipse
項目描述: 項目功能:用戶管理,分銷商管理,物料管理、維護,庫存維護,審批流程
技術架構:JSP/Servlet/JavaBean JDBC, dom4j, Jquery, JFreeChart
責任描述: 完成功能:用戶管理,分銷商管理,物料管理、維護。
通過此項目學習復雜業務的分析、實現。
2012 /1--2012 /4:QZONE-模仿騰訊QQ空間
軟件環境: Windows mysql tomcat
開發工具: MyEclipse6.5
項目描述: 模仿QQ空間功能開發,實現:注冊、登錄、發表說說,發表日志,評論,上傳頭像,贊一個。
技術架構:Struts2 Spring Hibernate
責任描述: 獨立完成數據庫設計,完成所有功能。
通過QZONE項目,掌握S2SH框架,掌握框架的基本流程。
還有一些小的J2SE項目,如Java版QQ,沒有列在上面。
從項目的數量和質量上來看,已經超過任何一家培訓機構的要求。
他學習Java的時間一年半多點,全部為課余時間學習。所有學習內容都來自網上。如DRP(企業資源分銷計劃)是節點動力王勇的培訓視頻項目。QZONE就是模仿QQ空間做的。做在線聊天室是為了學習服務器推技術。在線商城,是要完成專科的畢業設計,其中購物車采用cookie實現。
找工作的前2個月,他又迷上了C, 匯編語言,數據結構,自稱Java已不能滿足他對計算機的欲望了?!拔乙愕讓樱 ?,以致于他在面試Java時,稱自己3~5年的發展是做個黑客。(結果這次面試就cancel掉)
具體說說:
1、計劃好學習時間和進度。他的進度全部自己掌握。其中DRP項目是跟著視頻過了一遍(差不多兩百集),把所有的業務都實現了。掌握了web開發流程。
在學J2EE之前,他過了程序邏輯關,自學了半年多Android課程,主要是Android游戲開發,做了一些游戲如太空大戰等、一共學完成了4~5個項目。Android都是看書自學。這些學完了,因為不到18歲。我對他說,Android的開發團隊都比較小,公司不會招一個小朋友來把Android項目交給你做。反正你現在還沒畢業,不如先學學J2EE。這時他完全不了解JS, 數據庫,web的內容(了解一點點HTML)。他沒有趕進度,是因為年紀比較小,業余時間學習。
自學編程進度上可以根據自己的情況定,我的建議是先了解整個體系。以項目驅動的方式來學習,找一個系統的視頻教程。
2、多做多練。
練習、項目是對學習最好的檢驗和升華。在不斷的練習和項目中強化了知識點。我打過一個比方,一個個知識點好比珍珠,如果沒有一個大的項目來把這些知識點串起來,你所學的知識就是散亂的。很多東西是過了你眼,過了你耳,沒有過你心,很快就忘記了。編程是一門實踐性很強的學科,在項目中解決的問題會升華你對知識點,技能點的認識。(關于如何自己確定一個項目去練習,得另文詳述了)
3、遇到問題,獨立解決。
這點可能是大家在自學中遇到的最難的地方。我自己是Java培訓講師。但是他的問題我基本不回答,他也很少問我。都是百度,GOOGLE。這是一個艱苦的過程。我聽到他解決一個問題的感慨,“這個問題憋了我3天了!”。印象中我只跟他解決過3個問題。其中一個問題還只能算跟他討論,最后他自己解決了告訴我,我寫了一篇文章:
4、不足地方。
他學習做的練習、項目多,但缺少總結、筆記,我曾向他建議寫BLOG。這是一個非常好的學習習慣。CSDN、iteye、51CTO這些對于學習編程的童靴來說是寫博客最好的地方。