epep321
學習 JavaSE
HTML+CSS
js+jQuery
學習JavaEE:jsp+servlet
數據庫:MySQL+Oracle(建議先學MySQL)
框架SSH(Struts2+Spring+Hibernate)
SSM(Spring+SpringMVC+mybatis)
大致就是這些了,相信小夥伴們學完這些,學習能力已經有了很大的提升,即使在以後的 Java 工作學習中,遇到自己沒有接觸過的新技術。也可以通過自己的努力,把新的技術學到手。
在這份學習路線中,第一階段的 JavaSE 和 第二階段的 HTML+CSS+JS 順序是可以顛倒的,因為兩者並沒有什麼必然的前置關係。
最後說一句:
我們生活在黃金年代,社會在快速的發展,你不想被淘汰,就要學習,而我們北大青鳥提供最新的知識,以幫你應對變化的世界,讓你與時俱進。
西安北大青鳥華美教育
最近開了個微信公眾號【Java技術江湖】致力於分享Java技術文章,將會記錄我兩年時間裡學習Java的經驗心得,以及在阿里的技術之路,有興趣的朋友可以瞭解關注一下。
黃小斜
覺得這個問題我最有發言權了~大三開始自學,到現在工作6年,一路走來不容易,看著上面的回答一堆培訓機構上來就是各種路線圖加免費送視頻的,我就不發了,需要也可以私信我要就是了,這裡和你分享下我的自學經歷吧。
首先給你一個肯定的觀點,只要有一定自學能力,並且對編程有興趣,一定要有興趣!不要抱著我找不到工作只能學編程混口飯吃的觀點。
上大學開始就在接觸編程最早接觸C,C++,主要就是編寫點冒泡排序呀,漢諾塔,啥的小程序,如果你對編程感興趣或許一個程序寫完帶給你的一定是喜悅,至少當初我是這樣。如果看到編程就頭髮我覺得還是別硬著頭皮學了,見過太多混日子的程序員也是很難受,工資上不去天天CRUD。
入門階段
大三開始接觸java開始了真正的自學之路,我是從馬士兵的javase基礎視頻看起當初應該是挺火的,然後開始一點點摸索自學,主要就是去找各種培訓機構的免費視頻看尚學堂、傳智播客、北風網、領航致遠一堆的機構免費放出的視頻,我基本是全部都看了一遍,大三開始基本每天6小時以上學習時間寒暑假也不例外(主要是扣不捨得花幾萬塊培訓)
慢慢的開始對整個java領域有了基本的,知道java能做什麼,我不建議死扣知識點去學習,這隻會消磨掉學習的興趣,因為完全沒有成就感,就像玩遊戲每關都要有個Boss。
學習的過程要設置小目標,就像培訓機構現在都是一個階段給你個項目練練手(而且項目名字一般都是高大上的,讓你有成就感)
我當初就是邊學邊做培訓機構放出的免費視頻,坦克大戰、購物商城、OA、CMS等等,項目名可以千變萬化實際還是那些知識點,一般免費的視頻技術多少都比較老,做項目同時我自己去找新版本來用,google查用法差別,自己用新的方法做
提升階段
培訓機構的視頻看完,找個實習的工作基本沒問題了,大四上學期的開始找工作(其實還有課但是我基本上都翹了),簡歷投了兩家,面試後都要我,留在了一家上市公司,我還是比較求穩定的人,開始步入職場,程序員的職場相對其他職業還是純粹很多,主要還是看技術能力,這階段就是不斷提升自己,多看些深入的書籍,jvm內存分析啦,還有 in action系列的書,反正主要挑一些外國出名的書閱讀,這階段基本不用看教學視頻了,你會覺得太低級了不用看,自學看書要快的多,工作三年後基本上覺得自己所向無敵了
無盡模式
工作三年後我跳槽了(不聯繫為了錢頻繁跳槽),主要是覺得自己在公司能學到的技術到了瓶頸(還有工資),來到新公司的頭一年壓力巨大,一個是環境重新適應,還有就是新技術的接觸,頭一年又是學習新東西的最好一年,慢慢的會發現自己在成長,但是我會發現越來越多的東西不懂就像是白紙上的圓畫的越大空白越多,微服務,大數據,人工智能等等東西接踵而至,那麼接下來的就又是一個循環了,我開始找相關的資料學新技術,然後看書。。。。。
待續。。。
當然不可能一輩子只會編碼,技術只是基礎,要往上爬還會需要很多其他的知識,我還沒爬到就不說了,先好好當一個程序員一步步來吧
碼字好辛苦就到這了,語言組織不太好,想看的小夥伴看看吧,如果你剛入門可以私信找我要視頻,當然是給你最新的,內容沒的說反正我也在看又開始新的一輪。。。
瘋狂的程序員
我在讀大學期間,JAVA是選修課,老師是一個只會念課件的老頭,最後的考試也是背背題庫就可以通過。當年太年輕,不知道Java的重要性,等到要找工作的時候才知道自己當初有多麼傻。於是發奮圖強,自學Java,最終拿到了心儀公司的offer,職位就是JAVA開發工程師。
至於我的同事呢,我們項目組有兩位很厲害的大神,都不是計科出身,反而是電子方向的。他們出於對編程的興趣,自學了Java(還有其他編程語言),最終成功加入了我們公司。目前看來,非專業背景,在實際工作中沒有給他們帶來任何困擾。
那麼接下來,我們就聊聊,怎樣才能更好的自學Java。
從論壇上獲取最新信息
當你決定要自學java後,不妨多逛逛相關的論壇,貼吧。這樣做主要有兩個目的:
1 通過閱讀論壇上的信息,能夠補充自學過程中的遺漏。舉個例子,通過自學,你知道java裡的常用隊列有ArrayList和LinkedList,但是這二者有什麼區別,在什麼場景適合使用呢,書裡可能沒有說。而在論壇裡,你會看到大家對此的討論,因此明白ArrayList是基於動態數組的,而linkedlist是基於鏈表的;此外前者讀寫快,後者增刪快等等。
這些,都是在面試中常見的問題,所以大家才會樂於在論壇上討論,對於完善你的知識體系,也是很有幫助的。
2 多多接觸樂於分享的答主,從而擴充自己的人際圈子。網上的答主也是很樂於得到別人的肯定的,在你來我往的帖子交流中,一些專業水平很高的答主很有可能注意到你,如果有機會能夠得到他們的推薦與指點,那麼別說你的java水平能夠得到提升,甚至有可能加入他們所在的公司,一步到位解決了你的就業問題。
閱讀編程書籍
無論你是否選擇通過閱讀的方式來學習Java,Java工具書都是必不可少的,因為在實際工作中,也難免會遇到需要查閱書籍來確定問題的情況。
首先推薦Java書籍界的聖經《Thinking in Java》,中文版《JAVA編程思想》,也被我稱為立志成為java開發工程師的信仰之源。
這本書適合任何水平的java愛好者與從業者。它不僅深入淺出,從0基礎開始介紹java,更是著重培養讀者的獨立思考能力。它不是教你成為一個普通的碼農,而是將“匠人精神”的堅持也融合了進去。網上甚至有人稱呼這本書為JAVA界“上古卷軸”。這是一本可以反覆閱讀,每次閱讀都會有新理解的書籍,早已經超越了工具書的範疇。如果能夠完整讀懂其中三分之一,相信你已經可以去任何公司面試JAVA開發工程師的職位了。
如果覺得上面的JAVA聖經有點難啃,那麼我再推薦一本風格輕快的《head first java》,這是一個系列,還有其他《head first servlet》等等,以後如果想尋找其他語言的工具書的話,不妨試試關鍵字head first+語言名。
這本書裡舉了很多的例子來幫助初學者理解java一些比較晦澀難懂的概念與名詞,語言也是十分幽默,不像其他大部頭一樣,讓人讀著讀著就想睡覺。裡面還有一些實戰部分,如果能夠跟著做下來,真的是讓人受益匪淺。
市面上還有很多其他的java開發書籍,像什麼七天學會java,十四天上手J2EE等等。個人對這類書籍持保留態度,各位看官可以根據自身情況,謹慎選擇。
學習免費的視頻資源
隨著互聯網的普及,越來越多的知識都可以通過網絡來獲取,這也降低了學習的門檻。
不妨在網易公開課,慕課網,牛客網,甚至是B站等網站上,尋找學習資源。畢竟只要輸入關鍵字,就能搜到其他人認真構思的課程與教案,同時免去了你為自己計劃學習進度與學習深度的工作。
在這個過程中,最好找到一個同行者,與你一同學習。這樣即可在有問題時互相溝通,也可互相督促,避免獨自學習產生懈怠感,拖慢甚至放棄學習。
以上是我推薦的自學java的方法,如果你覺得有點道理,或者從中收穫到了一點信息,請點個贊給我呀,如果有進一步的想法交流,歡迎在下面給我評論。
我是蘇蘇思量,頭像是我本人,來自BAT的java開發工程師,歡迎關注我,經常回答科技類的話題,與大家分享我的所見所想。
一個存在感小透明
答案分為 學生版 與 非學生版(光收藏不點贊可恥,拒絕伸手黨,從點贊做起!)
學生版
哈工大本碩985,北京公司,收到去哪兒(13K*16),華為,vipkid(18*14),茄子快傳(20*16),創新工廠(12*13),秒針(18*16)offer,目前最低的月薪12K*13,最高的華為優招20K*16,最終還是簽了百度畢竟bat,職位java開發工程師今年給的還挺多。
可以說我應該達到了題目中所說的北京java開發月薪2W的標準,來答一發。
--------------------------------------------------------------------------------
為了避免知乎大佬覺得我吹逼,把目前收到的offer圖貼出來(應評論區建議,已經把名字打碼,謝謝提醒)。有人需要聯繫方式,放一下微信公眾號 程序員喬戈裡 個人微信在公眾號裡面可獲得。另外我要有3T的編程資料,需要的可以加我微信!!!
-----------------------------------------------------------------------------
會在offer圖的後面附上java自學找工作的經驗,並解答評論區的一些問題!!!
會在offer圖的後面附上java自學找工作的經驗,並解答評論區的一些問題!!!
會在offer圖的後面附上java自學找工作的經驗,並解答評論區的一些問題!!!
3T的編程資料!!!!!!關注公眾號 程序員喬戈裡 免費分享 !!!
3T的編程資料!!!!!!關注公眾號 程序員喬戈裡 免費分享 !!!
3T的編程資料!!!!!!關注公眾號 程序員喬戈裡 免費分享 !!!
-----------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
以下開始講述一些我找工作的經驗,希望對大家有幫助(覺得有幫助的,記得點個贊關注走一波,謝謝大家)
----------------------------------------------------------------------------------------------
一.簡歷篇
我是使用的喬布簡歷,在裡面買了一個模板,本科還是免費的,研究生階段就收費了,呵呵。
(1)個人聯繫方式
簡歷的話要把電話,email這些重要的信息放到顯眼的位置,方便聯繫。
(2)技能掌握
熟悉 精通等詞彙慎用(精通應屆生就不要用了),我舉一下我的java為何用了熟悉的例子,java看了《java核心技術卷1》《java編程思想》前幾章《深入瞭解java虛擬機》前7章,《java併發編程的藝術》《java多線程編程核心技術》還看了一堆網上的博客,看了這麼多我才寫上了熟悉java。
瞭解的話適用於只是看過一點書,只是一種淺嘗輒止的感覺,比如你只是通過刷了刷面經,瞭解了一些數據庫的面試常見的問題,那麼這種就應該用瞭解。一般都寫上了解吧,你應聘啥工程師,對應的語言寫上熟悉。
(3)榮譽獎勵
獎學金,優秀幹部,競賽獲獎,paper啥的都往上懟,多多益善。
(4)項目
項目篇很重要,基本面試的第一個環節都是扣你的項目。
項目一定要準備1到2個亮點(難點)!!!
項目一定要準備1到2個亮點(難點)!!!
項目一定要準備1到2個亮點(難點)!!!
有些人看到這裡就會說,我這項目水的一批,一點亮點都沒有,咋整,全完了呀,別慌,聽我給你吹一波。
一開始我第一次面試的時候(第一次就去面阿里,我也是膽賊大),阿里面試官上來就懟項目,
問我這是啥,那是啥,我說了以後,他就問著玩意底層是咋實現的,我用的是一個開源的爬蟲,然後我就說我只會用,底層沒有看過,他估計很失望;然後他問我的項目亮點是啥,我當時一下愣住了,扯了一些有的沒的,都是失敗的慘痛的教訓,大家參考參考就好,不一定就一定要照著我學,非要知恥而後勇,咋提前準備好也是不錯的。
經過這次慘痛的教訓以後,我就開始有意識地去想一些項目的亮點,即使不是我遇到的問題,我強行把這些問題加到我的項目上面,當做我的項目亮點。
亮點舉例:我的第一個項目的我說我負責輿情監控項目的地域分析,這個模塊其實平平無奇,很水,就是利用一個開源的NER命名實體識別的包去識別出來新聞正文的地點,然後統計地點出現的次數這樣的一個簡單的模塊。我就這樣吹:最深刻的一個項目就是最近做的網絡輿情監控項目,其中我在裡面有負責一個地域分析模塊,就是從最新爬進來的新聞數據裡面提取出來地域信息,最後在地圖上顯示出來,當時把後臺模塊寫好了以後,是可以在本地的windows系統上運行的,然後導出jar包的時候,想把jar包在linux系統上運行起來,但是一運行就顯示OOM內存溢出錯誤,當時遇到的這個問題的時候第一時間想起來了以前看的關於虛擬機方面的書,於是我在虛擬機的配置上添加了一個-XX:+HeapDumpOnOutOfMemoryError,嘗試將dump文件保留到本地,然後採用了jmap命令去分析這個dump文件,發現代表老年代的參數Old Generation每次一啟動都是一直滿著的,然後去看了虛擬機的配置參數,發現虛擬機中的-xmx參數只有256M,而程序需要的內存大小為500M(因為需要加載一個MIT的提取名詞的包),所以最後通過設置成1024M解決了這個問題,我感覺通過這個學到了很多。在項目中扮演了核心角色,獨立完成了地域分析模塊。
示例看不懂也沒關係,這個得有一定的java虛擬機的知識才可以看懂,推薦看《深入瞭解java虛擬機》
看到這裡,你完全可以把我的這個項目的這個亮點融合到你自己的項目裡面,換個背景就是你的項目亮點了,我上面推薦的《深入瞭解java虛擬機》裡面也有很多虛擬機調優的經驗,你可以看懂之後,把這些融合到自己的項目裡面,完全是可以的。
除此之外,關於項目還有一個問題:就是你看了我的簡歷,會發現許多項目都是與爬蟲相關的,面試管會問你在爬蟲上你遇到了啥問題,這種完全可以上網去搜爬蟲和反爬蟲的技術博客,然後理解記憶,說給面試官聽。說到這裡,其實也就是在說,你的項目可能涉及到的點你都得有準備,有備無患,你如果不知道自己項目涉及到哪些點,那麼可以通過一些公司練練手,他問到的一些問題,就有可能是你的項目需要準備的點。
-------------------------------------------------------------------------------------------
二.簡歷投遞篇
(1)官方網申
學歷不好的,不建議這走這條路,容易被刷,985/211也有一定幾率被刷。
(2)內推
關注 牛客網- 互聯網求職神器和備考學習平臺 的內推信息,都是真實可靠的,雖然不一定免筆試,但是可以保證你簡歷不被刷啊!!!
微信公眾好 互聯派 也有很多內推的信息,值得關注。
(3)內推完之後的添加個人信息
強推 牛客網簡歷助手 助手介紹_牛客簡歷助手-簡歷一次填寫,N網閃填__牛客網
爽的一批,誰用誰知道,你填寫完牛客網的簡歷助手,進來其它求職網站的時候,可以把插件調出來,如果調不出來,多點幾下,自己摸索哈。
三.筆試面試篇
提前批:一般公司的提前批是面筆試的,這個機會一定要抓住,提前批不耽誤正常網申流程,相當於多了一次機會。(其實你每次應聘都是會有記錄的,現在的面試官可以看到你所有的過往的面試記錄,但我覺得影響不大,你這次能過和上次沒過還是取決於你自己的實力,能不能打動面試官)
筆試:就算你內推成功了,也會有極大可能筆試,如果你算法功力強,可以獨當一面,那麼不用看這裡,直接跳過,如果你算法一般的話,我說一下我在秋招過程中看到的一些其他人是怎麼辦的。周圍人一般都是三五成群,算法題互相說思路,基本知道思路就知道咋寫了,也有的比如他1道題AC了,他是C++版本的,其他人把這個AC代碼改成了java版本等等,也可以請周圍大神幫忙A幾道等等,其實周圍同學的算法功底真的說不上多強,反正是通過這種方法也算是把筆試給過了。其實筆試題吧,你把劍指offer刷一刷,leetcode刷個幾百道(建議一個tag一個tag的刷),問題不大,我是通過刷leedcode,然後感覺這些公司的筆試題也就那麼回事,還OK,當然阿里筆試題另說,還是A不了,真的變態!!!
面試:面試這個就看平時積累了。電話面試視頻面試其實還是有一定操作空間的,現場面全憑自己實力。
四.平時積累篇
-------------------------------------------------------------------------------------------
下文中截圖來源於我做的一個pdf版本的面經,把所以知識點的答案整理了下來,耗費我將近至少1個月時間,在本文最後部分把這個pdf分享給大家,覺得有用的麻煩點贊關注走一波,謝謝!!!面經中有我的知識點的答案,如下圖示例,非常詳細!!!
下文中截圖來源於我做的一個pdf版本的面經,把所以知識點的答案整理了下來,耗費我將近至少1個月時間,在本文最後部分把這個pdf分享給大家,覺得有用的麻煩點贊關注走一波,謝謝!!!面經中有我的知識點的答案,如下圖示例,非常詳細!!!
下文中截圖來源於我做的一個pdf版本的面經,把所以知識點的答案整理了下來,耗費我將近至少1個月時間,在本文最後部分把這個pdf分享給大家,覺得有用的麻煩點贊關注走一波,謝謝!!!面經中有我的知識點的答案,如下圖示例,非常詳細!!!
--------------------------------------------------------------------------------------------
1.數據結構與算法篇
你是java開發你就用java代碼去實現,是C++開發就用C++去實現。
書籍參考:
(0)《圖解算法》入門
(1)《劍指offer》 劍指Offer_編程題_牛客網
(2)《程序員代碼面試指南 IT名企算法與數據結構題目最優解》參考左神視頻
(3)leetcode LeetCode - The World's Leading Online Programming Learning Platform
leedcode注意去英文官網,別去中國區,中國區討論區討論的少。
leedcode 注意一個tag一個tag的刷,例如動態規劃,就把動態規劃下的題目都刷了,基本刷個10多道,其它也基本有思路了,而且動態規劃的題目筆試面試也常出。其次就是二叉樹,鏈表,數組,回溯的題目。
(4)數據結構(嚴蔚敏)/大話數據結構 //如果覺得教材無聊就可以看大話系列
需要掌握的知識點:
- 數組、鏈表、二叉樹、隊列、棧的各種操作(性能,場景)
- 二分查找和各種變種的二分查找(循環有序數組找最大值最小值找n,有序數組找最左下標,最右下標)
- 各類排序算法以及複雜度分析(快排、歸併、堆、冒泡、直接選擇、插入排序)
- 各類算法題(手寫)
- 理解並可以分析時間和空間複雜度。
- 動態規劃(筆試回回有。。)、貪心。
- 紅黑樹、AVL樹、Hash樹、Tire樹、B樹、B+ 樹(除了紅黑樹,其它要會插入刪除查找,紅黑樹如果會更好,也算一個亮點)。
- 圖算法(克魯斯卡爾算法、普林母算法、迪克拉斯算法)
- 樹的前序後序中序遍歷的遞歸非遞歸實現,層次遍歷,深度優先遍歷,廣度優先遍歷遞歸與非遞歸實現
排序算法總結:常見排序算法小結 - CSDN博客
排序算法遞歸與非遞歸的java實現版本:
Lintcode 快排遞歸與非遞歸實現 464. 整數排序 II java
Lintcode 464. 整數排序 II 冒泡排序三種實現 直接插入排序 直接選擇排序 java
Lintcode 464. 整數排序 II 歸併排序遞歸與非遞歸實現 java
2.海量數據篇
看這一篇就足夠用了,什麼bitmap,布隆過濾器都得知道。
教你如何迅速秒殺掉:99%的海量數據處理面試題 - CSDN博客
3.計算機網絡篇
參考書籍:《圖解http》《圖解TCP/IP》《TCP/IP詳解卷1》《計算機網絡(謝希仁)》
知識點:
所有的知識點,需要做到,不看面經,能知道答案是啥,自己可以用嘴說出來!!!
所有的知識點,需要做到,不看面經,能知道答案是啥,自己可以用嘴說出來!!!
所有的知識點,需要做到,不看面經,能知道答案是啥,自己可以用嘴說出來!!!
4.數據庫篇
參考書籍:《高性能MySQL》 《MySQL技術內幕:InnoDB存儲引擎(第2版)》
知識點:
5.操作系統篇
參考書籍:
知識點:《操作系統精髓與設計原理(原書第6版)》
LRU會手寫一個LRU的set與get的時間複雜度是o(1)的代碼
6.Linux命令篇
參考書籍:《linux 鳥哥的私房菜》
7.安全加密
8.重頭戲java篇
基礎篇:
推薦書籍:《Java程序員面試筆試寶典-何昊》突擊java面試的好書啊!!!
《寫給大忙人看的JavaSE8》 《深入理解Java虛擬機:JVM高級特性與最佳實踐》
《JAVA併發編程實戰》《Java多線程編程核心技術》《java核心技術卷1》
1.基礎篇:
2.集合篇:
3.鎖
4.多線程
多看看《Java多線程編程核心技術》這塊就沒問題
5.jdk中的concurrent 俗稱juc包
都要搞懂底層原理!!!
都要搞懂底層原理!!!
都要搞懂底層原理!!!
6.java虛擬機
主要看《深入理解java虛擬機》
7.設計模式
參考書籍:《大話設計模式》
知道每種設計模式是啥意思,可以手寫一個單例模式,手寫適配器模式,工廠模式,觀察者模式,裝飾器模式。
知識點:
----------------------------------------------------------------------------------------------
基本把我上面列的知識點都搞懂,算法題都刷地明明白白的,不說battmd這些公司,至少我覺得互聯網前50+
如果沒有項目經驗,想做項目,可以推薦你去淘寶上去買黑馬視頻,照著整個java web的項目、
-----------------------------------------------------------------------------------
附上我嘔心瀝血整理的java面經,覺得有用的點贊關注走一波!!!
附上我嘔心瀝血整理的java面經,覺得有用的點贊關注走一波!!!
附上我嘔心瀝血整理的java面經,覺得有用的點贊關注走一波!!!
關注我的公眾號 現名字:程序員喬戈裡
在後臺回覆:面經 按照要求即可獲取到我的面經,也算是對我繼續輸出乾貨的一種鼓勵。謝謝大家!!!
-------------------------------------------------------------------------------------------
1.實習對於找工作的作用???
答:很重要,也不重要。很重要:實習經歷的作用:1.面試都是有固定的時間,比如一些公司規定一次面試最短時間是40分鐘,你如果做過實習,可以好好加工一下你的實習經歷,使勁吹,可以佔個10分鐘多點時間,然後後來問你的東西就少了些;2.學歷不好的可以通過一些實習經歷獲得大公司的筆試面試的機會;3.在同等面試表現的前提下,有實習經歷的優先考慮
不重要:
春招的暑期實習和提前批的時間衝突,春招的暑期實習和提前批的時間衝突,春招的暑期實習和提前批的時間衝突,(如果你現在距離秋招的8月還有挺長時間,如果獲得實習機會直接就去,如果是7月和8月的實習得慎重,實習也不一定能留用)所以你如果春招找到的實習不是自己想最後工作的小公司,那麼不建議去實習,不如好好準備秋招。如果是心儀的部門和崗位比如BAT之類的可以去實習。假如去實習了,一定要關注轉正的事,好好努力,同時也別忘準備秋招,晚上和週末看書刷題看面經。沒轉正立馬走人準備秋招。(實習的時候也可以投提前批電話面試,樓主當初沒投,其實可以投幾個單獨招聘的提前批,比如百度很多部門都是自己招聘提前批的,不走系統,過了才錄入系統)
完全可以用實習這段時間,好好複習,準備提前批也是個不錯的選擇,當然如果你前期準備充分,那麼可以去實習,如果你時間已經非常緊了,比如你6月份才開始準備,人家8月份就提前批了,你去不去實習就得好好衡量了,大廠的實習一定要去,秋招加成不少。
2.啥時候開始準備?
現在!!!現在!!!現在!!!
3.沒有java開發的項目咋辦???
答:0.關注我的公眾號:原名字:HIT程序猿的日常 現名字:程序員喬戈裡
在我的公眾號有我做過的一些項目的源碼分享,以及一些練手項目的視頻教程。
1.去淘寶買黑馬的視頻,照著做一個javaweb的項目,然後使勁扣項目,到時候就是和麵試官吹,30元左右,沒錢買的話,大家可以在我評論下眾籌一波,哈哈哈啊哈哈哈。
2.淘寶買牛客網的項目視頻,聽說葉神的項目不錯;
4.HR面試
一頓跪舔就行,就是你們公司真好,你自己羅列個123哪裡好;女朋友,有也說沒有(也可以說有,女朋友就在xx公司的地方上班/上學);父母不干涉決定;薪資,互聯網的普遍薪資就行(適用於第一份offer,以及非常想去的公司)。總之就是求生欲強一些。
5.答主,我選算法還是開發呀?
你如果是北京時間2018.10.3號看見了我這篇回答,而且自己本身的學歷不錯本碩985/211專業都是計算機相關的,那麼我強烈建議你選算法。原因有:1.算法工資比開發高;2.算法比開發輕鬆;你會說算法難啊,不好找啊!!!我不知道你怕啥,你就硬著頭皮去整(每天高三一般的生活,如果你每天吊兒郎當的,最後沒找到,怪我了,那你滾一邊去哈,我不背這鍋),你本身條件不錯,最後肯定會有offer。而且有的公司,就算你算法不行,會問你可以轉開發不,所以搞算法何樂而不為呢???
如果你是距離2019年或者8021年的臨近秋招前的2-3個月時間看到我這篇回答,而且你學歷不是很好,那麼我建議你去整開發。
上述說的情況也不完全適用,反正就是follow your heart!!!
6.答主你咋不回覆我評論啊???
你都不讚我,我也不想回復你。。。。
7.java開發需要看的書籍推薦???
具體請查看我的專欄文章
Java後端書架
非學生版
一、基礎篇JVM
JVM內存結構
堆、棧、方法區、直接內存、堆和棧區別
Java內存模型
內存可見性、重排序、順序一致性、volatile、鎖、final
垃圾回收
內存分配策略、垃圾收集器(G1)、GC算法、GC參數、對象存活的判定
JVM參數及調優Java對象模型
oop-klass、對象頭
HotSpot
即時編譯器、編譯優化
類加載機制
classLoader、類加載過程、雙親委派(破壞雙親委派)、模塊化(jboss modules、osgi、jigsaw)
虛擬機性能監控與故障處理工具
jps, jstack, jmap、jstat, jconsole, jinfo, jhat, javap, btrace、TProfiler
編譯與反編譯
javac 、javap 、jad 、CRF
Java基礎知識
閱讀源代碼
String、Integer、Long、Enum、BigDecimal、ThreadLocal、ClassLoader & URLClassLoader、ArrayList & LinkedList、 HashMap & LinkedHashMap & TreeMap & CouncurrentHashMap、HashSet & LinkedHashSet & TreeSet
Java中各種變量類型熟悉Java String的使用,熟悉String的各種函數
JDK 6和JDK 7中substring的原理及區別、
replaceFirst、replaceAll、replace區別、
String對“+”的重載、
String.valueOf和Integer.toString的區別、
字符串的不可變性
自動拆裝箱
Integer的緩存機制
熟悉Java中各種關鍵字
transient、instanceof、volatile、synchronized、final、static、const 原理及用法。
集合類
常用集合類的使用
ArrayList和LinkedList和Vector的區別
SynchronizedList和Vector的區別
HashMap、HashTable、ConcurrentHashMap區別
Java 8中stream相關用法
apache集合處理工具類的使用
不同版本的JDK中HashMap的實現的區別以及原因
枚舉
枚舉的用法、枚舉與單例、Enum類
Java IO&Java NIO,並學會使用
bio、nio和aio的區別、三種IO的用法與原理、netty
Java反射與javassist
反射與工廠模式、
Java序列化
什麼是序列化與反序列化、為什麼序列化
序列化底層原理
序列化與單例模式
protobuf
為什麼說序列化並不安全
註解
元註解、自定義註解、Java中常用註解使用、註解與反射的結合
JMS
什麼是Java消息服務、JMS消息傳送模型
JMX
、
泛型
泛型與繼承
類型擦除
泛型中K T V E
object等的含義、泛型各種用法
單元測試
junit、mock、mockito、內存數據庫(h2)
正則表達式
常用的Java工具庫
,
什麼是API&SPI異常
異常類型、正確處理異常、自定義異常
時間處理
時區、時令、Java中時間API
編碼方式
解決亂碼問題、常用編碼方式
語法糖
Java中語法糖原理、解語法糖
Java併發編程
什麼是線程,與進程的區別閱讀源代碼,並學會使用
Thread、Runnable、Callable、ReentrantLock、ReentrantReadWriteLock、Atomic*、Semaphore、CountDownLatch、、ConcurrentHashMap、Executors
線程池
自己設計線程池、submit() 和 execute()
線程安全
死鎖、死鎖如何排查、Java線程調度、線程安全和內存模型的關係
鎖
CAS、樂觀鎖與悲觀鎖、數據庫相關鎖機制、分佈式鎖、偏向鎖、輕量級鎖、重量級鎖、monitor、鎖優化、鎖消除、鎖粗化、自旋鎖、可重入鎖、阻塞鎖、死鎖
死鎖volatile
happens-before、編譯器指令重排和CPU指令重
synchronized
synchronized是如何實現的?
synchronized和lock之間關係
不使用synchronized如何實現一個線程安全的單例
sleep 和 waitwait 和 notifynotify 和 notifyAllThreadLocal寫一個死鎖的程序寫代碼來解決生產者消費者問題守護線程
守護線程和非守護線程的區別以及用法
二、 進階篇Java底層知識
字節碼、class文件格式CPU緩存,L1,L2,L3和偽共享尾遞歸位運算
用位運算實現加、減、乘、除、取餘
設計模式
瞭解23種設計模式會使用常用設計模式
單例、策略、工廠、適配器、責任鏈。
實現AOP實現IOC不用synchronized和lock,實現線程安全的單例模式nio和reactor設計模式
網絡編程
tcp、udp、http、https等常用協議
三次握手與四次關閉、流量控制和擁塞控制、OSI七層模型、tcp粘包與拆包
http/1.0 http/1.1 http/2之前的區別Java RMI,Socket,HttpClientcookie 與 session
cookie被禁用,如何實現session
用Java寫一個簡單的靜態文件的HTTP服務器
實現客戶端緩存功能,支持返回304 實現可併發下載一個文件 使用線程池處理客戶端請求 使用nio處理客戶端請求 支持簡單的rewrite規則 上述功能在實現的時候需要滿足“開閉原則”瞭解nginx和apache服務器的特性並搭建一個對應的服務器用Java實現FTP、SMTP協議進程間通訊的方式什麼是CDN?如果實現?什麼是DNS?反向代理
框架知識
Servlet線程安全問題Servlet中的filter和listenerHibernate的緩存機制Hiberate的懶加載Spring Bean的初始化Spring的AOP原理自己實現Spring的IOCSpring MVCSpring Boot2.0
Spring Boot的starter原理,自己實現一個starter
Spring Security
應用服務器
JBosstomcatjettyWeblogic
工具
git & svnmaven & gradle
三、 高級篇新技術
Java 8
lambda表達式、Stream API、
Java 9
Jigsaw、Jshell、Reactive Streams
Java 10
局部變量類型推斷、G1的並行Full GC、ThreadLocal握手機制
Spring 5
響應式編程
Spring Boot 2.0
性能優化
使用單例、使用Future模式、使用線程池、選擇就緒、減少上下文切換、減少鎖粒度、數據壓縮、結果緩存
線上問題分析
dump獲取
線程Dump、內存Dump、gc情況
dump分析
分析死鎖、分析內存洩露
自己編寫各種outofmemory,stackoverflow程序
HeapOutOfMemory、 Young OutOfMemory、MethodArea OutOfMemory、ConstantPool OutOfMemory、DirectMemory OutOfMemory、Stack OutOfMemory Stack OverFlow
常見問題解決思路
內存溢出、線程死鎖、類加載衝突
使用工具嘗試解決以下問題,並寫下總結
當一個Java程序響應很慢時如何查找問題、
當一個Java程序頻繁FullGC時如何解決問題、
如何查看垃圾回收日誌、
當一個Java應用發生OutOfMemory時該如何解決、
如何判斷是否出現死鎖、
如何判斷是否存在內存洩露
編譯原理知識
編譯與反編譯Java代碼的編譯與反編譯Java的反編譯工具詞法分析,語法分析(LL算法,遞歸下降算法,LR算法),語義分析,運行時環境,中間代碼,代碼生成,代碼優化
操作系統知識
Linux的常用命令進程同步緩衝區溢出分段和分頁虛擬內存與主存
數據庫知識
MySql 執行引擎MySQL 執行計劃
如何查看執行計劃,如何根據執行計劃進行SQL優化
SQL優化事務
事務的隔離級別、事務能不能實現鎖的功能
數據庫鎖
行鎖、表鎖、使用數據庫鎖實現樂觀鎖、
數據庫主備搭建binlog內存數據庫
h2
常用的nosql數據庫
redis、memcached
分別使用數據庫鎖、NoSql實現分佈式鎖性能調優
數據結構與算法知識
簡單的數據結構
棧、隊列、鏈表、數組、哈希表、
樹
二叉樹、字典樹、平衡樹、排序樹、B樹、B+樹、R樹、多路樹、紅黑樹
排序算法
各種排序算法和時間複雜度 深度優先和廣度優先搜索 全排列、貪心算法、KMP算法、hash算法、海量數據處理
大數據知識
Zookeeper
基本概念、常見用法
Solr,Lucene,ElasticSearch
在linux上部署solr,solrcloud,,新增、刪除、查詢索引
Storm,流式計算,瞭解Spark,S4
在linux上部署storm,用zookeeper做協調,運行storm hello world,local和remote模式運行調試storm topology。
Hadoop,離線計算
HDFS、MapReduce
分佈式日誌收集flume,kafka,logstash數據挖掘,mahout
網絡安全知識
什麼是XSS
XSS的防禦
什麼是CSRF什麼是注入攻擊
SQL注入、XML注入、CRLF注入
什麼是文件上傳漏洞加密與解密
MD5,SHA1、DES、AES、RSA、DSA
什麼是DOS攻擊和DDOS攻擊
memcached為什麼可以導致DDos攻擊、什麼是反射型DDoS
SSL、TLS,HTTPS如何通過Hash碰撞進行DOS攻擊用openssl籤一個證書部署到apache或nginx
四、架構篇分佈式
數據一致性、服務治理、服務降級
分佈式事務
2PC、3PC、CAP、BASE、 可靠消息最終一致性、最大努力通知、TCC
Dubbo
服務註冊、服務發現,服務治理
分佈式數據庫
怎樣打造一個分佈式數據庫、什麼時候需要分佈式數據庫、mycat、otter、HBase
分佈式文件系統
mfs、fastdfs
分佈式緩存
緩存一致性、緩存命中率、緩存冗餘
微服務
SOA、康威定律
ServiceMeshDocker & KubernetsSpring BootSpring Cloud
高併發
分庫分表CDN技術消息隊列
ActiveMQ
監控
監控什麼
CPU、內存、磁盤I/O、網絡I/O等
監控手段
進程監控、語義監控、機器資源監控、數據波動
監控數據採集
日誌、埋點
Dapper
負載均衡
tomcat負載均衡、Nginx負載均衡
DNS
DNS原理、DNS的設計
CDN
數據一致性
五、 擴展篇雲計算
IaaS、SaaS、PaaS、虛擬化技術、openstack、Serverlsess
搜索引擎
Solr、Lucene、Nutch、Elasticsearch
權限管理
Shiro
區塊鏈
哈希算法、Merkle樹、公鑰密碼算法、共識算法、Raft協議、Paxos 算法與 Raft 算法、拜占庭問題與算法、消息認證碼與數字簽名
比特幣
挖礦、共識機制、閃電網絡、側鏈、熱點問題、分叉
以太坊超級賬本
人工智能
數學基礎、機器學習、人工神經網絡、深度學習、應用場景。
常用框架
TensorFlow、DeepLearning4J
其他語言
Groovy、Python、Go、NodeJs、Swift、Rust
六、 推薦書籍
《深入理解Java虛擬機》
《Effective Java》
《深入分析Java Web技術內幕》
《大型網站技術架構》
《代碼整潔之道》
《Head First設計模式》
《maven實戰》
《區塊鏈原理、設計與應用》
《Java併發編程實戰》
《鳥哥的Linux私房菜》
《從Paxos到Zookeeper》
《架構即未來》
以下是我的編程資料,還有其他的將近3T需要的關注我公眾號程序員喬戈裡:
最後推廣一下我的公眾號,名字:程序員喬戈裡 公眾號中有我的聯繫方式,有上述所以知識點的所有答案的面經整合版,也有我收集的一些java有關的資源,各種視頻教程,我的一些校招經歷,相關電子書籍,以及未來的乾貨分享,相信不會讓大家失望,謝謝大家,來一波關注,謝謝,也算是對我的這篇回答的一個肯定,您的點贊與關注是我創作分享乾貨的源泉!!!您的點贊與關注是我創作分享乾貨的源泉!!!您的點贊與關注是我創作分享乾貨的源泉!!!
程序員喬戈裡
1、如果你不是java專業,想通過java來就業的話,建議還是找個java培訓機構,系統學習下。比如達內,尚學堂等。
2、如果一定要自學的話,可以在騰訊課堂、網易雲課堂上,找一個系統的java培訓課程來學習吧
3、具體的java學習,步驟
。下載jdk,安裝java運行環境,寫個helloworld。
。 學習javaSE。 java的變量、循環、條件語句。基礎類Class、String、Date、List等,線程、併發等
。 學習數據庫操作 JDBC、sql
。學習前端基礎知識html、css、javascript
。 學習javaEE。serverlet、jsp、cookie、session; 常見的企業應用框架,如Spring、springmvc、mybatis、hibernate等
。學習dubbo、springboot 微服務架構
具體的學習內容有很多。入門之後,慢慢就自己有體會,知道自己什麼不懂,需要學習什麼。
java和小熊
我就是自學的,說一下我的情況,自學不出錯誤,或者出一些簡單的錯誤還行,要是出一些jar包衝突,版本衝突的錯誤,可能這一天就幹不了別的了,
自學即使學了框架也只是簡單的crud,多表聯查,也只能做一些小項目,而且這些小項目實現功能即可,也涉及不到線程問題,業務邏輯也簡單,最好是把基礎打好,再去找一份工作,不一定能掙錢,最主要的是體驗一下真實情況的項目開發,和真實項目的業務邏輯,
建議學歷為本科,
自學的話3個月差不多
報培訓班得6個月出來,學費2萬,吃住穿下來估計要1萬
自學再就是看你坐不坐的住了,肩膀,斜方肌僵硬,脖子難受,你都得考慮到!貴在堅持,加油!
給你一份我前兩天的面試題,希望能幫到你
97654326464
Java自學分為四個步驟
1. Java語言基礎,如果是計算機專業基本可以略過,非計算機專業只需要看一下Java編程思想和HeadFirst Java這兩本書就可以了,界面化相關的直接略過,一定要把代碼照著書本在idea或者eclipse裡面大概過一遍,這一部分過完之後一定要發動github上面,這是自學的成果。
2. springbootweb開發,直接對應spring官網找對應文檔進行學習就好。
3.JVM和併發,看深入理解虛擬機和java併發編程之美兩本書就差不多了,也可以找一下別的資料深入學習。
4.分佈式相關的內容,主要是dubbo,apollo,springcloud,rocketmq和netty等相關框架的使用和深入學習。
突破程序員
每個人的學習方法是不同的,一個人的方法不見得適合另一個人,我只能是談自己的學習方法。因為我學習Java是完全自學的,從來沒有問過別人,所以學習的過程基本上完全是自己摸索出來的。我也不知道這種方法是否是比較好的方法,只能給大家提供一點參考了。
學習Java的第一步是安裝好JDK
寫一個Hello ?World,其實JDK的學習沒有那麼簡單,關於JDK有兩個問題是很容易一直困擾Java程序員的地方:一個是CLASSPATH的問題,其實從原理上來說,是要搞清楚JRE的ClassLoader是如何加載Class的;另一個問題是package和import問題,如何來尋找類的路徑問題。把這兩個問題摸索清楚了,就掃除了學習Java和使用JDK的最大障礙。推薦看一下王森的《Java深度歷險》,對這兩個問題進行了深入的探討。
第二步是學習Java的語法
Java的語法是類C++的,基本上主流的編程語言不是類C,就是類C++的,沒有什麼新東西,所以語法的學習,大概就是半天的時間足夠了。唯一需要注意的是有幾個不容易搞清楚的關鍵字的用法,public,protected,private,static,什麼時候用,為什麼要用,怎麼用,這可能需要有人來指點一下,我當初是完全自己琢磨出來的,花了很久的時間。不過後來我看到《Thinking in Java》這本書上面是講了這些概念的。
第三步是學習Java的面向對象的編程語言的特性的地方。
比如繼承,構造器,抽象類,接口,方法的多態,重載,覆蓋,Java的異常處理機制。對於一個沒有面向對象語言背景的人來說,我覺得這個過程需要花很長很長時間,因為學習Java之前沒有C++的經驗,只有C的經驗,我是大概花了一個月左右吧,才徹底把這些概念都搞清楚,把書上面的例子反覆的揣摩,修改,嘗試,把那幾章內容反覆的看過來,看過去,看了不下5遍,才徹底領悟了。不過我想如果有C++經驗的話,應該一兩天時間足夠了。那麼在這個過程中,可以多看看《Thinking in Java》這本書,對面向對象的講解非常透徹。可惜的是我學習的時候,並沒有看到這本書,所以自己花了大量的時間,通過自己的嘗試和揣摩來學會的。
第四步就是開始熟悉Java的類庫。
Java的基礎類庫其實就是JDK安裝目錄下面jre/lib/rt.jar這個包。學習基礎類庫就是學習 rt.jar。基礎類庫裡面的類非常非常多。據說有3000多個,我沒有統計過。但是真正對於我們來說最核心的只有4個,分別是
java.lang.*;
java.io.*;
java.util.*;
java.sql.*;
這四個包的學習,每個包的學習都可以寫成一本厚厚的教材,而O'reilly也確實是這樣做的。我覺得如果時間比較緊,是不可能通過讀四本書來學習。我覺得比較好的學習方法是這樣的:
首先要通讀整個package的框架,瞭解整個package的class,interface,exception的構成,最好是能夠找到介紹整個包框架的文章。這些專門介紹包的書籍的前幾章應該就是這些總體的框架內容介紹。
對包整體框架的把握並不是要熟悉每個類的用法,記住它有哪些屬性,方法。想記也記不住的。而是要知道包有哪些方面的類構成的,這些類的用途是什麼,最核心的幾個類分別是完成什麼功能的。我在給人培訓的時候一般是一次課講一個包,所以不可能詳細的介紹每個類的用法,但是我反覆強調,我給你們講這些包的不是要告訴你們類的方法是怎麼調用的,也不要求你們記住類的方法調用,而是要你們瞭解,Java給我們提供了哪些類,每個類是用在什麼場合,當我遇到問題的時候,我知道哪個類,或者哪幾個類的組合可以解決我的問題,That'all!,當我們具體寫程序的時候,只要你知道該用哪個類來完成你的工作就足夠了。編碼的時候,具體的方法調用,是邊寫代碼,邊查Documentation,所有的東西都在Documentation裡面,不要求你一定記住,實際你也記不住3000多個類的總共將近10萬個方法調用。所以對每個包的總體框架的把握就變得極為重要。
第五步,通過上面的學習,如果學的比較紮實的話,就打好了Java的基礎了,剩下要做的工作是掃清Documentation裡面除了上面4個包之外的其他一些比較有用處的類。相信進展到這一步,Java的自學能力已經被培養出來了,可以到了直接學習Documentation的水平了。除了要做GUI編程之外,JDK裡面其他會有用處的包是這些:
java.text.*;
java.net.*;
javax.naming.*;
這些包裡面真正用的比較多的類其實很少,只有幾個,所以不需要花很多時間。
第六步,Java Web 編程
Web編程的核心是HTTP協議,HTTP協議和Java無關,如果不熟悉HTTP協議的話,雖然也可以學好Servlet/JSP編程,但是達不到舉一反三,一通百通的境界。所以HTTP協議的學習是必備的。如果熟悉了HTTP協議的話,又有了Java編程的良好的基礎,學習Servlet/JSP簡直易如反掌,我學習Servlet/JSP就用了不到一週的時間,然後就開始用JSP來做項目了。
在Servlet/JSP的學習中,重頭仍然是Servlet Documentation。Servlet API最常用的類很少,花比較少的時間就可以掌握了。把這些類都看一遍,多寫幾個例子試試。Servlet/JSP編程本質就是在反覆調用這些類來通過 HTTP協議在Web Server和Brower之間交談。另外對JSP,還需要熟悉幾個常用JSP的標記,具體的寫法記不住的話,臨時查就是了。
此外Java Web編程學習的重點要放在Web Application的設計模式上,如何進行業務邏輯的分析,並且進行合理的設計,按照MVC設計模式的要求,運用Servlet和JSP分別完成不同的邏輯層,掌握如何在Servlet和JSP之間進行流程的控制和數據的共享,以及Web Application應該如何配置和部署。
第七步,J2EE編程
以上的學習過程如果是比較順利的話,進行到這一步,難度又陡然提高。因為上面的知識內容 都是隻涉及一個方面,而像EJB,JMS,JTA等核心的J2EE規範往往是幾種Java技術的綜合運用的結晶,所以掌握起來難度比較大。
首先一定要學習好JNDI,JNDI是App Server定位服務器資源(EJB組件,Datasouce,JMS)查找方法,如果對JNDI不熟悉的話,EJB,JMS這些東西幾乎學不下去。 JNDI其實就是javax.naming.*這個包,運用起來很簡單。難點在於服務器資源文件的配置。對於服務器資源文件的配置,就需要看看專門的文檔規範了,比如web.xml的寫法,ejb-jar.xml的寫法等等。針對每種不同的App Server,還有自己的服務資源配置文件,也是需要熟悉的。
然後可以學習JTA,主要是要理解JTA對於事務的控制的方法,以及該在什麼場合使用JTA。這裡可以簡單的舉個例子,我們知道一般情況可以對於一個數據庫連接進行事務控制(conn.setAutoCommit (false),....,conn.commit()),做為一個原子操作,但是假設我的業務需求是要把對兩個不同數據庫的操作做為一個原子操作,你能做的到嗎?這時候只能用JTA了。假設操作過程是先往A數據庫插一條記錄,然後刪除B數據庫另一個記錄,我們自己寫代碼是控制不了把整個操作做為一個原子操作的。用JTA的話,由App Server來完成控制。
在學習EJB之前要學習對象序列化和RMI,RMI是EJB的基礎。接著學習JMS和EJB,對於EJB來說,最關鍵是要理解EJB是如何通過RMI來實現對遠端對象的調用的,以及在什麼情況下要用到EJB。
在學習完EJB,JMS這些東西之後,你可能會意識到要急不可待學習兩個領域的知識,一個是UML,另一個是Design Pattern。Java企業軟件的設計非常重視框架(Framework)的設計,一個好的軟件框架是軟件開發成功的必要條件。在這個時候,應該開始把學習的重點放在設計模式和框架的學習上,通過學習和實際的編程經驗來掌握EJB的設計模式和J2EE的核心模式。
J2EE規範裡面,除了EJB,JMS,JTA,Servlet/JSP,JDBC之外還有很多很多的企業技術,這裡不一一進行介紹了。
另外還有一個最新領域Web Services。Web Services也完全沒有任何新東西,它像是一種黏合劑,可以把不同的服務統一起來提供一個統一的調用接口,作為使用者來說,我只要獲得服務提供者給我的WSDL(對服務的描述),就夠了,我完全不知道服務器提供者提供的服務究竟是EJB組件,還是.Net組件,還是什麼CORBA組件,還是其他的什麼實現,我也不需要知道。Web Services最偉大的地方就在於通過統一的服務提供方式和調用方式,實現了整個Internet服務的共享,是一個非常令人激動的技術領域。Web Services好像目前還沒有什麼很好的書籍,但是可以通過在網絡上面查資料的方式來學習。
小鹿同學
自學當然好啦,可以省不少的錢, 可是自學會碰到很多問題呢。 個人花了一年半時間(當前時間是20170815),做了個Java自學的網站,試圖解決一些自學中會碰到的問題。
1. 思路、框架、原理 一下子湧進來太多,接受不過來
無論是剛開始接觸Java這門語言,還是像現在需要去學習一些新的技術的時候,都會選擇去百度資料進行學習。 然而百度來的資料很多都有個不好的做法,就是一開篇就以一種高屋建瓴的方式講很多思路,原理和框架。 事實上,對於剛開始接觸,還沒有多少動手實踐的新手而言,是很難領會這些高屋建瓴的思路、原理和框架的,不僅不利於上手,而且還給初學者形成了一種暗示和心裡壓力:這個東西學習梯度是蠻陡峭的哦,無形中加大了學習的難度。
我偏愛的學習方式是,不要一來給我講太多的東西,直接給我代碼,讓我跑起來。 只要跑出結果了,我自然而然就會得到一定的領悟,然後再自己去瀏覽每行代碼,並琢磨其含義,那麼就能逐漸理解和消化了。
推己及人,所以我在做Java教程的時候,也是採用這種方式,在每個知識點的講解,都是一來就給出了可以運行的代碼,並且提供便捷的複製手段,這樣大家一上手就是跑一個可以看到效果的代碼:
2. 自己寫不知道錯誤在哪裡
經過上一步跑起來了,真的可以看到效果呢,可是代碼是複製粘貼來的,那可不行,得自己敲出來才行。 這個想法當然是好的,所以就開始一個個關鍵字,一行行的敲代碼起來。
可是因為初學者不熟練,也許是某一個字母出錯,或者少寫了一個分號,程序就跑不起來,而且這種細微的差別,很有可能找上大半天去了。 為了提高這部分的學習效率,在教程每個代碼右邊都提供了代碼比較功能
3. 運行某個代碼,需要第三方jar包,手裡卻沒有,怎麼辦
Java代碼運行有個特點,常常需要用到第三方類,而這些類都放在.jar這種格式的文件裡。如果這些jar包,讓初學者自己去找, 一個是不知道在哪裡下載,再一個同樣的jar包會有各種不同的版本,有些版本與當前代碼是不兼容的,所以這裡也是容易掉進坑裡,花很多很多時間才會找到對的那個jar包。
所以在需要用到jar包的地方,都直接在教程相關下載區域提供了當前代碼正在使用的jar包,點擊即可下載使用,方便快捷~
4. 這個知識點涉及的部分真多,有個思路圖,原理圖捋一下就好多了
現在好了,照著教程自己做了一邊,做出來了,效果也看到了,那麼就有了感性的認識。 不僅做出來了,心中還產生了更多問題,這個時候,就處於一個飢渴的狀態了。 那麼此時此刻,開始講原理圖,思路圖,就能夠聽得懂了,並且通過思路圖也能把剛才所學整理,總結,更好的消化吸收。
5. 光是圖文我還是看不懂,想看看視頻怎麼講的
有部分的知識點還是挺複雜的,比如算法,hashcode 原理什麼的。 光是看圖文和代碼,還是有些稀裡糊塗的。
雖然有些稀裡糊塗,但是經過自己敲過一遍,是帶著針對性問題的稀裡糊塗。 那麼這個時候,帶著問題來看視頻講解,效果就會非常好了。
6. 雖然也寫出來了,但是個別細節還是有疑問,該問誰呢
在每個知識點下面,都有一個提問區域,裡面有和你學習同樣知識點的同學的疑問,或許你可以在別人提問的答案裡找到自己需要的,也可以通過看別人的提問,啟發自己做擴展性的思考。