CodeGym /Java Blog /Toto sisi /到無窮遠:學習Java需要多長時間?
John Squirrels
等級 41
San Francisco

到無窮遠:學習Java需要多長時間?

在 Toto sisi 群組發布
那麼學習Java需要多長時間呢?十年,十週,還是一天?也許你的一生?您可能會在某些在線論壇上找到這個問題的非常特殊的答案。讓我們從一開始就說清楚。在本文中“了解 Java”並不意味著您可以編寫“Hello world 程序”。它是關於足夠了解 Java 以找到您的第一份工作。標題中巴斯光年的座右銘並不是一個玩笑。您真的可以在餘生中繼續學習 Java 或任何其他語言。原因是語言在不斷發展,它的範圍在變化,而且……好消息,朋友們!沒有理由恐慌!Java 任務的學習絕對有可能在 3 到 12 個月內完成,但是,我們將在本文中討論許多細微差別。在這裡,我們也將嘗試回答“如何快速學習 Java”這個問題。

我們如何尋找答案

“學習 Java 需要多長時間”這個問題有點棘手。我們將其拆分為更具體的子問題並在此處進行回答。更準確地說,我們使用了對 CodeGym 學生的採訪、開源和調查中的統計數據。該調查是關於 Java 學習過程和尋找第一份工作的。它是由當地的 CodeGym 單位之一進行的。調查參與者是 30 級及以上的 CodeGym 學生,他們找到了第一份與 Java 相關的工作或參加了 Java 實習。

“了解 Java”是什麼意思?

對這個問題最準確但也非常籠統的答案是“能夠使用 Java 解決問題”。這樣的問題可能是“通過考試”或“找到工作”的目標。或者它可以是一項技術任務,可以是一個大任務,例如“為 Play Market 創建足夠好的我自己的項目”,也可以是一個小任務,例如“了解如何編寫滿足您需要的代碼”。 到無窮遠:學習Java需要多長時間? - 2當然,你的問題會隨著時間而改變。獲得第一份工作後,您將需要成長為職位(例如,從 Java Junior Developer 到 Java Middle/Senior Developer)。第一個編碼任務之後是第二個。此外,當您這樣做時,會出現一些新的目標。讓我們回到我們的問題。您應該知道哪些主題才能在您的簡歷中寫下“我知道 Java”?Java 學生通常學習以下主題:
  • 核心Java
  • 核心 Java + JUnit
  • 核心 Java + 數據庫
  • 核心 Java + 工具
  • 核心 Java + 庫
  • 核心 Java + Spring + SpringBoot + Hibernate
  • 核心 Java + Android SDK
  • ......以及所有上述組合。
所有這些主題都有一個共同點。它是 Core Java,Java 語言的基礎。所以,如果你不了解Core Java,你肯定根本不了解Java。因此,學習核心 Java 是每個未來 Java 軟件開發人員的第一步。核心 Java 涵蓋了該語言的基本概念:
  • 基本類型和對象
  • 基本構造(特殊運算符、循環、分支)
  • OOP 概念
  • 包裝類
  • 收藏品
  • 多線程
  • 輸入輸出流
  • 異常處理
因此,Core Java 包含基本類型、對象、構造和原理以及最重要的庫和框架。此外,Core Jav 還涵蓋了網絡、安全、數據庫訪問、圖形用戶界面 (GUI) 開發和 XML 解析的類。大多數“核心 Java”包都以“java.lang..”開頭, 每個 Java 學生的第一個目標是學習核心 Java。 Java Core 之後要學什麼?這取決於您學習 Java 的目的。

你的個人方式。學習 Java 是為了什麼?

在本文中,我們不考慮諸如“我學習 Java 只是為了好玩”或“我想在未來教 Java”之類的選項。在這裡,我們談論的是 Java 在 IT 中的專業用法。目前,大多數情況下教授 Java 是為了採用以下三種方式之一:
  • Java 開發人員,從實習生/初級開發人員到高級開發人員
  • Android 開發人員,獨立開發者或在公司工作(初級到高級)
  • QA 自動化(使用 Java)

開發人員

Java 開發人員的範圍非常廣泛,對 Java 知識的要求是為了獲得第一份工作,這可能會有很大差異。根據 CodeGym 調查,有些人在獲得第一份 Java Junior 工作時只了解 Java Core,僅此而已。公司準備在工作過程中對他們進行培訓。然而,這是一個非常罕見的事件。更多的時候這樣的人可以參加實習或者通過一些考試後成為Java實習生。通常 Java Junior 申請人應該了解的不僅僅是 Java Core 才能獲得第一份工作。這裡列出了 Java 開發人員應該了解的相關技術。
  • 核心Java
  • 開發接口
  • Java 8(拉姆達表達式)、Java 11
  • 測試庫 (JUnit)
  • 彈簧框架
  • Spring Boot 和 Spring MVC
  • 休眠
  • JDBC
以下是基於 CodeGym 對當前 Java 初級職位空缺的調查和分析的擴展信息圖。我們只注意到它描述的不是 Java 本身,而是現代 Java 開發人員應該知道的許多其他技術。 到無窮遠:學習Java需要多長時間? - 3它的大小和分支可能會嚇到未經訓練的讀者。請保持冷靜,深呼吸!您將在工作中詳細了解這些技術。通常,初學者軟件開發人員只需要對這些技術中的大多數有一個大概的了解(極少數例外)。

安卓開發者

Android 開發人員可以為公司工作或擁有自己的項目。他們應該肯定了解 Java Core 和其他一些技術。這裡我們有一個信息圖,展示了 Android 開發人員的一種方式。 到無窮遠:學習Java需要多長時間? - 4好吧,列表中有很多要點,但其中沒有多少是直接關於 Java 的(只有測試工具,實際上是 Core Java)。通常開發人員都認為自己學習 Android 編程比企業開發更容易、更快。儘管如此,即使對於那些渴望成為 Java Junior 職位的人來說,創建 Android 項目來訓練您的編程技能也是有用的。

質量保證自動化

一個好的 QA Automation 應該非常了解編程語言,這是這個行業最重要的技能之一。連接到Java
  • 核心 Java(尤其是 OOP、Collection、FileOperations)
  • 測試庫 (JUnit)
  • IntelliJ IDEA
其他技術:
  • Selenium RC/WebDriver 框架
  • 頁面對像模型
  • HTML/CSS
  • 數據庫
通常初級 QA 自動化的途徑比 Java 初級開發人員要短一些。您將在本文末尾找到準確的數字。

誰在問?潛在的Java學生畫像

“我認為這取決於你的背景和你可以花在學習上的時間。當我開始我的軟件開發之旅時,我每周至少要花 40 個小時學習。經過 6 個月的全日制學習,我有足夠的信心自己掌握任何新技術。為了找到您作為軟件工程師的第一份工作,您不僅需要學習 Java,還需要了解計算機科學、面向對象編程的基礎知識,並編寫一些可以展示您的工作的項目。我認為這可能需要九到十二個月的時間。我知道這聽起來工作量很大,但不要氣餒!如果您發現編碼的哪些方面給您帶來快樂並允許自己玩,那麼這段旅程會非常有趣。” 到無窮遠:學習Java需要多長時間? - 5
Yuliya Deinega,自學成才的軟件開發人員。Yulia 在 LinkedIn 擔任 REACH 學徒工程師,她還創建了YouTube 頻道,分享她在矽谷學習計算機編程和找工作的經歷
我們可以將開始學習Java的人分為三大類:
  1. “菜鳥”。零經驗。好吧,這裡有一些對編程一無所知的人。
  2. “中間”。編程經驗很少或混亂的學生。那些人在學校、大學或課程中學習編程,但這並不是認真的學習。
  3. “優點”。了解其他編程語言(一種或多種)的軟件開發人員。
根據調查,我們有 49% 的學生在開始認真學習 Java 之前在學校或課程中有過基礎編程。
  • 33.3% 絕對是新手
  • 17.6% 的人至少知道一種編程語言
到無窮遠:學習Java需要多長時間? - 6

什麼對學習時間有積極影響?

為了不浪費時間,您需要從一開始就有效地學習。我們已經確定了有助於成功制定學習計劃的要點。

選擇正確的來源

您可以在 Internet 上找到很多關於 Java 的不同信息。很容易迷失其中。有時,如果您不理解某個主題,搜索新資源很有用,但在您開始之前,最好選擇:1 個主要課程和 1-2 個輔助資源,例如 Java 書籍或教程。堅持他們。在這種情況下,您將節省時間,避免在 Internet 上漫無目的地遊蕩和尋找東西。

準備好不斷地學習很多東西

Java 導師和軟件開發人員 John Selawsky 在他的一篇文章中說,有時他的一些學生的編程非常好,但其中一些人只是停止了學習。他們的問題不在於空閒時間、年齡或性別。不是能力的問題!這是關於一致性。所有成功的學生都有一個一致的時間表,他們堅持下去。他們取得了進步,即使有時進展緩慢。所以你應該有一個時間表(你可以從你的主要課程或教程中獲取)並設定學習時間。您想以 Java 編程為職業嗎?如果是這樣,請準備好每天學習 1-3 小時。 到無窮遠:學習Java需要多長時間? - 7根據 CodeGym Poll,我們 52.3% 的成功學生每天有 1 到 3 小時的練習。

理論與實踐的良好比例

如果不嘗試游泳,就無法通過書本學習如何游泳。編程也是如此。不寫代碼就學不會編程。編程是一項實踐活動。儘早開始編寫代碼很重要。您不需要一次學習太多理論,尤其是在學習的頭幾個月。最好是小部分研究一下,然後馬上在實踐中修正。所以,你20%的時間用於理論研究,80%用於實踐。這是回到第一個問題“了解 Java 意味著什麼”並闡明答案的正確位置。了解 Java 意味著能夠用 Java 編寫代碼。不是“了解 Java”,但能夠編寫不同複雜度的程序,並且在此類編碼方面有一些經驗。

輕鬆和艱鉅任務的良好比例

新手經常嘗試解決一些困難的任務,一次又一次地嘗試。如果他們這樣做的時間太長,結果可能會令人難過。這是一條失去動力的道路。對於初學者來說,解決許多小而簡單的任務比解決一些複雜的任務更有好處。頭幾個月學習的良好比例是 1 個困難任務對 10-20 個簡單任務。還有一件事:如果這個任務對你來說太複雜,而你曾多次嘗試解決它,那麼勇敢地……推遲它,直到你知道更多。不如先解決幾個更簡單的問題,然後再回到不可逾越的要塞。或者.. 如果您仍然認為現在是解決問題的合適時機,請不要害怕提出問題。這是下一點。

能夠提出問題

初學者常常猶豫是否應該在論壇和社區上提問,因為他們認為他們的問題可能很愚蠢。好吧,他們絕對可以!但沒關係,沒有理由擔心!每個軟件開發人員都站在你的立場上,需要一個愚蠢的菜鳥問題的答案。所以呢?編程社區在某種程度上是協作的。軟件開發人員通常作為一個團隊工作,他們都曾經是初學者。 每個學生甚至每個專業的軟件開發人員都會時不時地問一些愚蠢的問題,這並沒有什麼罪過。 所以,如果出現問題,請到論壇提問!當然,它可能是 Javaranch 或 Stack Overflow 或 CodeGym Help。提出問題或尋找答案的最佳論壇:

那麼我應該學習 Java 多長時間才能找到第一份工作?

我們已經接近可以回答本文主要問題的地步了:在開始發送簡歷和找到第一份工作之前,學習 Java 需要多長時間?我們使用調查和學生訪談中的數據創建以下圖表,其中考慮了受訪者的初始水平和三個所需職位之一。對於每個組,我們確定了他們學習 Core Java 的時間間隔以及他們花在學習獲得第一份工作所需的相關技術上的時間。 注意力!這是閱讀圖表的信息。“菜鳥”是零編程經驗的人,“中”是在學校或課程中學過一點編程的人。對於 Java 和 Android Developer,“Pro”是指精通一種或多種編程語言的人。在 QA Automation 的情況下,“Pro”是指已經從事手動測試並希望成為 Java 語言的自動化工程師的人。對於所有圖表,我們使用了帶有月數的時間尺度。紅色矩形表示花費在學習 Core Java 上的時間,藍色矩形表示除 Core Java 之外的其他所需技術。 到無窮遠:學習Java需要多長時間? - 8到無窮遠:學習Java需要多長時間? - 9到無窮遠:學習Java需要多長時間? - 10重要的是要了解圖表表示平均時間每個組的受訪者花費在研究技術上。事實上,每個小組中都有學習速度更快的冠軍,也有延遲學習數年的冠軍。一般學習時間是指應聘者開始投遞簡歷或完成第一個項目(開始賺錢)的時間。根據我們的調查,平均需要一個月到三個月才能找到工作。這幾個月的尋找是從研究相關技術結束時開始的。有幸運的人在發送第一份簡歷一周後找到工作,但也有一些人花了一年時間尋找。 到無窮遠:學習Java需要多長時間? - 11

結論

學習Java要多久?根據研究結果,學習Java及相關技術的速度主要取決於學生的規律性和初始水平。當然,您現在的初始水平無能為力,但是定期學習絕對是您的責任。如何快速學習Java?學習時盡量不要長時間停留或拖延。這非常重要,因為在長時間停留期間,您不僅要原地踏步,還要一點一點地向後滾動。日常練習、毅力和動力——如果您決定學習 Java 和相關技術,您肯定需要所有這些。如果你遵循既定的時間表,觀察理論和實踐的正確平衡,每天至少練習 1-3 小時,不要害怕提問,很有可能將 Java 學習到可以讓您在 6-12 個月內找到第一份工作的水平。... 然後繼續您作為開發人員/QA 自動化專業人員的學習,直到無限! PS:那你呢?你現在學Java多久了?這個過程艱難嗎?或者您可能已經找到了第一份與 Java 相關的工作?很難嗎?或者也許你剛剛開始尋找它?在這里分享您的經驗!
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION