中軟國際瀋陽ETC
掌握這個詞很大,我學了將近20年,也不敢說自己掌握。
回答這個問題,我覺得需要對掌握做個定義。掌握我覺得可以分幾個層次:
1、學會JAVA語法,可以寫程序
2、掌握一些基礎的框架,可以上手工作
3、熟練應用,得心應手,可以選擇自己的前進方向
4、深入理解編程思想,手中無劍,心中有劍,不在受語法限制,語言限制,隨心所欲而不逾矩。
第一個層面,學會JAVA語法,可以寫程序。這裡其實是需要學習JAVA的一些基礎體系,就是學會使用JAVA工作需要哪些工具。
首先是JAVA基礎語法和編程環境,這個很簡單,如果找本好書,精進一點,大約半個月就能上手。
其次學習JAVA的基礎體系和學會使用JAVA API文檔,指導JAVA的三大體系,比如j2se,j2me,j2ee。這些東西指導就行,現在這個階段能學會j2se就已經很不錯了。j2me和j2ee,知道其中的概念就行。這個階段大約再需要半個月。做到此,用JAVA寫程序就不難了。但是也就算是入門的門口吧。這裡有很多關鍵點需要注意,一些JAVA教材教的並不是很好,比如寫時鐘程序啥的,這些工作中都很難用到。如果找老師,不要找沒有實際工作經驗的老師。但是這個條件應該很難。
第二個層面:學會JAVA的一些基礎框架,可以上手工作。JAVA目前主要應用在三個層面,比如AndroidAPP編程,主要用的是JAVA圖形界面,當然還有Android本身的sdk和API,還有就是j2me嵌入式編程,這塊我不瞭解,不敢造次。第三就是j2ee,現在用的多的是servlet,而且主要是用spring框架,所以j2ee體系也不是要全部都學。
不管從事哪個領域,會用一個框架跟前面基礎學習JAVA是一樣的,掌握工具,掌握方法,會查API。從有了上面的基礎再學會這些東西里面的一樣,大約需要三個月的時間。如果好點的,大約需要半年。因為主要是要練習,需要不斷的編程,碰到問題解決問題。最好有項目跟這走。
學會此,就可以找工作了。但是會這些可能還不夠,因為你要工作,還需要學會:版本管理工具,基礎的數據庫管理,基礎的應用服務器管理,最好能學一點linux,還有一些項目管理工具,bug管理工具等等,最重要的是程序調試,要會調試程序,會查看異常,根據異常來分析問題。這些方法都掌握了之後,找個工作應該不難。
第三個階段,熟練應用。大約你要寫三年代碼,做的好的話,大概會在某個方面搞得很清楚,主要需要大量的項目來歷練,這個階段你就不要管公司是否996了,你自己就應該996,沒有這麼高強度的訓練,你是不可能成為一個高手的。
你有了三年的經驗,並且解決了很多問題,你就有了一些判斷能力,你至少可以確定你下一步的前進方向,是朝著架構師去走,還是走項目管理。不管確定哪個方向,又面臨著巨大的學習量。因為這個題目是零基礎學JAVA,零基礎就有兩種情況:軟件專業和非軟件專業。如果是軟件專業還好點,你這個時候可能會感覺到:靠,學校學的東西還真有點用。如果不是軟件專業,你就要慎重選擇方向。如果你選架構師,那麼你需要很多內功訓練,至少一些算法,計算機原理,操作系統原理,數理邏輯,軟件分析方法你是需要學習的,否則,很難支撐你成為更高級的人。
這個階段你不管選擇走項目經理還是架構師,至少需要三個項目以上的專業訓練,你才有可能入另外一個層次。那麼這個階段原則上至少需要兩年。
第四個階段,深入瞭解編程思想。到這個階段的時候,你已經有了將近六年的學習和工作,應該非常瞭解編程了,但是你可能還不夠強,你可能有很多錯誤的觀念和邏輯在你的思想裡,你又要進步,就只能接著學習。但是這個階段的學習,有可能你會選擇拿起JAVA編程思想,core JAVA等基礎的書再去看,還有可能看一些設計模式,分析模式之類的書,還有可能會看一些戰略管理方面的書,甚至你可能懷疑人生,找本佛經來讀。總之有各種可能。但是這個階段的發展絕對是需要內力的,而且已經沒有辦法用時間來衡量學習效果了。可能你天生聰慧,突然間你就悟到了大道至簡,學會最高深的架構原理,也可能你再花10年還是一個普通的架構師。
但是有一點,只要你願意,你不會缺少一份薪資不錯的工作。這個是完全可以放心的。其他的就看你的能力了。
大體就是這個樣子。編程學到最後也是哲學層面。編程的架構能力同樣可以用在商業上,也可以用在生活裡。大道都是一樣的,最終決定我們人生成就的東西都一樣。
預祝你學習成功!
祖國的蝸牛
掌握有點籠統,是熟練還是精通?
估計題主的意思應該是能夠熟練運用吧!
那麼,如果有其他編程入門經驗的,也有一些基礎的編程思想,學起來還是很快的,兩三個月就能熟練的寫代碼,前提是要多練多寫,光看書不動手,再長時間也沒用,不敢說精通,但也是能熟練編寫代碼解決問題。
如果,很精通其他一門面向對象的編程語言,比如C#,那麼估計題主也不會問這個問題了,不說馬上能上手,但學起來幾乎應該不需要太多時間。
最後,如果沒有一點編程基礎,那麼入門這道坎可能會花費你很多時間和精力。
說白了,最主要還是學的同時,多上手練習!多長時間能熟練運用,那就要看你練習的有多努力,有多勤奮。
純手碼,謝謝!
前方有隻程序猿
我要做個運營,沒有選擇~
時長
時間的話這個要看你自己怎麼學
有兩種方式你可以進行選擇
一是直接花錢報個班
二是自己苦逼的琢磨
學不學的懂,兩者都要靠自己
自學時間不能定,就看你娃腦殼轉不轉的動
報班時間不由你
一般入門報班入門時間短,半年之後就上崗
但是呢,這些知識只能讓你快速入個門
要想往上爬,還得自己網上到處“爬”
不學習要捱打
當然不得真的磕到你身上
最多把你工資往下壓
所以說,學習還是要努力
不然一切都白搭
最後給你說件事,萬事靠自己努力,啥子房子、票子、孩子都不是問題!
全階魔方
LhWorld哥陪你聊算法
具體學習多久,還是得看你的對新知識的接受能力吧,我們重慶大學城北大青鳥有零基礎學習幾個月就工資的,也有學了幾年才參加工作的!
自學Java的人不少,科班出身的也很多,但是到什麼程度才有資格說自己精通Java?至少需要經歷以下幾個階段:
一、重視代碼品質,精益求精,這是技術開發的本質,也是程序員的立足之本。
對處於還沒工作或者工作1年左右這個階段的人來說,看書是比較好的提升方式,推薦《 Java 編程思想》、《 effective java 》等。
需要注意的是,在看書的過程中一定要思考能否運用書中的經驗來改善自己寫的代碼,運用到實處,比如看到 final 和 static ,想想自己代碼中用的是否合理。此外,還可以看些常用的開源框架。
二、打好基礎後,主動跳出舒適區,不斷擴大自己的技術視野。
這一步比較難,因為很多人會被公司的技術和業務牽著走。比如公司當前的業務規模決定了技術上不需要分佈式技術,很多人就不會去思考規模大了之後如何利用分佈式技術來解決問題。
這種時候,除了尋找更大規模的業務外,要時刻保持跳出當前層級和環境來思考的習慣。比如,你只用了關係型數據庫,有沒有想過數據一直產生,到達 TB 級別的時候該如何快速檢索與保存呢
三、擴展了知識寬度,還要加強自己的技術深度。
很多人信奉“不去造輪子”,看似性價比很高的一句話,卻不知道這句話是有前提的,那就是“你得知道輪子的內部結構”,否則就是自我麻痺。接下來需要選擇某一個或幾個方面深入研究下去,構建自己的核心競爭力。
一個有技術深度的程序員才是有靈魂的。而大廠也願意為有趣的靈魂買單,這個時候看的就不僅僅是工資水平,更多的在於晉升和發展前景的廣闊性。
技術的突破需要依賴業務場景的需求和自身刻意的規劃學習,二者缺一不可。但前者是機會,往往不是自己能完全把控的,如果在工作中沒有實踐場景,最好的辦法就是系統的學習與梳理,待機會來臨時才能一展身手
重慶大學城北大青鳥
這種類似的問題,其實我回答了有很多次了:
Java好不好學?Java怎麼學?是自學好還是去培訓架構好?
關鍵就一句話,看自己的能力而定。
如果你自學能力強,不管是不是零基礎,自然會事半功倍;
但是Java入門容易,精通難,詳見:
https://www.wukong.com/question/6679657753360728331/
IT極客老兵
皮毛需要幾個月,學會需要幾年
代碼桃子
入門水平大概半年,剩下的一輩子都在學
牛耳IT那些事兒
又一個培訓機構