欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

如何迅速自學java并找到理想工作

錢瀠龍2年前19瀏覽0評論

如何迅速自學java并找到理想工作?

與大家分享下我的Java學習之路,希望對大家有所幫助吧

我認為,作為一名合格的程序員,精通一門語言只是最最基本的要求,除此之外,具備扎實的基礎知識、了解主流的技術框架、具備快速學習的能力也都非常重要。語言是幫助你實現想法的工具,而作為程序員來說最為重要的東西是語言背后的你的想法,而這些想法需要通過長期的基礎積累、經驗積累而獲得。

我從大二的時候開始接觸編程,到現在也有五個年頭了。這五年我走了不少彎路、踩了不少坑。至此收到阿里offer,也算是達到了我人生第一階段的目標。我把我這五年踩過的坑與大家分享,希望大家能少走彎路、在技術的道路上越走越遠。

回歸正題,我覺得Java學習過程可以分為三個階段:

第一階段目標:打牢基礎

當你準備開始接觸Java前,你先等一等,因為你要做的第一件事是要打牢計算機基礎,而非直接學習語言。當我做的項目漸漸多起來的時候,我愈發地感覺到計算機基礎對程序員的重要性。這就像習武之人練習馬步一樣、達芬奇周而復始地畫雞蛋一樣。從短期來看,基本功的練習并不會立即出成效。也許這個過程會伴隨著枯燥乏味,但我們不能鼠目寸光,從長遠角度來看,一個程序員基本功的扎實程度決定了這個程序員技術之路能走多遠、能走多久。

所以我覺得,如果時間允許的話,花上大半年甚至一年的時間學習基本功也不為過。學習任何一項技術都是一樣,我們需要耐得住寂寞。基本功學習的過程必然會枯燥乏味,但它對我們未來的發展之路卻影響深遠。所以大家一定要耐得住寂寞,邁好、并且邁穩作為程序員的第一步。

計算機基礎有五大課程:操作系統、計算機網絡、數據結構、算法、數據庫。你究竟需要花多少時間來學習這些基礎課程,這取決于你目前的狀態。如果你是計算機專業的學生,并且仍處于大一或大二,那就請你珍惜每次上課的機會吧。聽老師講一遍、自己再學一遍、有問題還可以和老師交流,這樣的機會實在難得,且行且珍惜。

如果你并不是計算機專業的學生,那也好辦,調動你的情報搜集能力,去周邊名校的計算機專業蹭課吧。我的學校靠近南大,就有很多同學潛入南大蹭周志華大佬的機器學習。去了之后才發現,200人教室里人滿為患,原來都是前來蹭課的同道中人啊。

如果你即將面臨找工作,那么就更應該抓緊猛攻這些基礎課程。現在的互聯網公司都很看重學生的基礎功底,因為學校里做的項目在面試官的眼中大多都只能算是『玩具』(PS:大佬除外),所以項目經驗只能算是你的加分項,基礎功底才是第一要義。

第二階段目標:精通Java

作為一名Java程序員,對Java這門吃飯的語言必須要達到精通的程度。因為工作之后,每天接觸最多的就是Java,其次才可能是你的女朋友(當然前提是得有女朋友,逃)。所謂『精通』是指你不僅得了解如何使用Java,還得明白它背后的原理,也就是得『知其然,知其所以然』。比如,我們都知道使用關鍵字new可以創建一個對象,但這遠遠不夠,我們還得知道對象創建的過程是怎樣的?對象創建完成后它存儲在哪兒?什么時候會被GC回收?也只在有了解了它背后的原理后,我們才能寫出更加高質量、高性能的代碼。

當然,學習Java也不是一步登天,可以把他分成兩個階段去學習。第一個階段先把Java用起來,也就是只需要做到『知其然』即可。當熟悉了Java的所有語法、API之后,就可以拿幾個項目練練手。項目能幫助你加深對基礎語法、對API的理解。當你擁有了一些項目經驗,對Java也有了自己的見解,接下來就可以深入Java背后的原理了,也就是開始『知其所以然』的過程。你需要學習JVM,了解Java的內存模型、內存的管理、垃圾回收、類加載機制;你需要學習并發編程,了解如何保證線程安全的前提下,提升程序的處理速度;你也需要開始嘗試閱讀JDK源碼,了解Java容器用了哪些數據結構,在什么樣的業務場景下選擇什么樣的數據結構。PS:Java的整個體系結構請見上圖。

學習Java的確是一個漫長的過程,也只有你的時間、你的耐心、你的思考,才能慢慢地開啟通往Java世界的大門。

第三階段目標:鍛煉快速上手新技術的能力

我覺得衡量一個程序員水平的高低,并不是看他精通多少種技術、擅長多少個框架,而是看他是否具備快速學習的能力。因為當下的技術層出不窮,技術更新迭代的速度遠超過我們學習的速度。所以具備快速學習的能力尤為重要。當你已經具備一定的計算機基礎之后,就可以有意識地鍛煉自己的這項能力。那怎么鍛煉呢?下面分享下我學習的體會。

我覺得任何一項技術都遵循『2-8原則』,也就是在一項技術的整個體系結構中,最為核心、最為重要的部分可能僅僅占這項技術整個體系結構的20%,剩下的80%是相對次要的。所以,如果我們需要在比較短的時間內快速上手一項新技術的話,那么最為關鍵的就是要找準這項技術中20%的核心知識點,先把它們理解、吃透。這樣就可以馬上使用這項技術了。那么剩下80%的知識點可以在項目空窗期慢慢地補充。這樣一段時間后,這項技術的整個體系結構都將被我們掌握。

到了這個階段,你可以開始接觸一些應用層技術,比如:Spring、MyBatis、Shiro……學習這些技術最好的辦法就是理論結合實踐,以項目驅動的方式去學習。畢竟編程是一項熟能生巧的技術,多多動手能加深你對技術的理解,多多思考也能提高你編碼的能力,兩者相輔相成。并且在學習這些技術的過程中,可以有意識地采用這種『2-8原則』學習方法,培養自己快速學習的能力。舉個栗子,如果你正要做的這個項目需要使用Spring,那么你首先要做的就是要花點時間,找到、并且找準Spring中最為核心的20%知識點——Ioc和AOP(這些信息可以通過大牛的博客、Spring的官網獲得)。OK,那么Spring其他的技術先不用管,你要做的就是先把Ioc和AOP這兩個概念搞懂,包括它們的使用方式、背后的思想。(PS:學習技術最好的途徑就是看它的官網,然而官網一般都是英文,對于英文比較捉雞的同學可以看一些大牛的博客、或者視頻教程)當把這兩個概念搞懂之后,Spring基本就可以為我們所用。接下來,我們可以利用項目的空窗期把Spring剩余80%的知識點慢慢地補充,這樣一段時間后,Spring的整個體系結構就被我們掌握。然而在這整個過程中,還會涉及到你的信息搜索能力、信息理解能力,這些軟實力都需要你通過大量的練習慢慢積累。所以,少年,抓緊時間,趕緊行動吧。

java面試視頻教程,如何迅速自學java并找到理想工作