這個要根據每個人的具體情況來具體分析。

首先分析一下自學和報班的區別:

自學java

1.自學
一、時間靈活,可以自己掌握,能利用碎片時間
二、費用低,基本不用多少費用,購買一些書籍和教程即可。
三、自制力要求很高,容易半途而廢。
四、與別人交流比較困難,遇到問題需要自己解決。

2.報班
一、需要固定的時間,有可能需要脫產
二、費用較高,少則收費幾千,多則幾萬
三、有人監督,學習效果好
四、可以和同學老師交流

自學java

那么,我們明白了這些區別,就可以根據每個人的情況做具體分析:
一、假如沒有任何軟件開發基礎,這個就不用糾結了,直接報班就行,不然靠自己自學,猴年馬月也很難有大的成就。
二、如果有一定的軟件開發基礎,比如大學學過C語言、數據結構什么的,現在如果只是對Java軟件開發有興趣,并不是想作為短期的工作方向,可以自學,也可以上一些培訓網站學習培訓視頻教程。如果想把java開發作為工作方向,并且想盡快參與到工作中,還是報班吧。
三、如果有豐富的其他語言開發基礎,比如C#、python、C++等,自學即可,畢竟各種語言都是相通的,學會一種語言,其他的自學幾個周就可以入門了,一兩個月基本可以勝任開發工作。
其實現在報班不一定非要脫產,網絡上很多培訓網站都可以參與的,不少培訓內容也都是免費的,比如匯智動力騰訊課堂培訓網站,可以根據需要查詢合適的培訓課程。