-
1 # 程式設計師老貓
-
2 # IT極客老兵
我從1999年底開始接觸Java,至今已經有20年了,中間曾經中斷過5年,至今用Java差不都15年了,15年的時間,Java伴我從初級程式設計師一步一步成長為技術總監,我的體會就是,Java入門容易,精通難。你想翻身,我建議你至少再過5年吧:
8年左右,你能成長為一名高階程式設計師,甚至架構師,需要具備的知識有:
精通Java語法
精通常用開源框架精通SQL語法及常用資料庫知識掌握SVN、GIT及Maven等工程化知識熟悉常用資料結構及演算法熟悉設計模式熟悉UML語言掌握分散式框架,包括分散式應用及資料庫設計掌握微服務架構設計相關行業的業務知識......努力吧,學無止境,Java的世界遠沒有到盡頭。我現在又把之前看過的一些Java書籍又學習一遍,《Effective Java》、《Java 8 in Action》等,溫故而知新。今天,你學習了嗎? -
3 # 高階Bug調查員
首先作為一名Java程式設計師,我認為這件事還得具體分析。
第一種情況:你的能力太強,招聘公司廟太小,無法給你提供一個可能滿足你的期望的發展空間,於是刷掉了你。或者你的從業經歷內容與招聘公司的要求暫時不是特別匹配,所以用人單位也沒有要你。這種情況跟你的個人能力無關。但是既然你後面又說要打臉面試官,那很可能是我接下來要說的第二種情況。
第二種情況:根據你題目中的描述。被淘汰很可能是你的能力還沒有達到企業用人標準,至少有些技能還不夠強導致面試被刷。
題主的經歷其實每個Java小白都是經歷過的,出現這種情況我覺得應該做好以下幾點措施。
第一點:擺正心態3年的Java開發經驗,那有知識漏點是太正常不過了。第一,你不要有過度的心理壓力,第二也要從面試當中吸收經驗和教訓。過度的心理壓力會給生活造成很大的麻煩,你可能吃不好睡不好,同時專注力不集中,造成後面的面試越來越差。放鬆心態,首先做到的就是——自我寬容。接受自己的不完美,你才能真正強大。其次,放平心態的同時,也要有危機意識,將你的“報復”情緒從面試官注意到對自己的嚴格要求上,找出自己的不足,查缺補漏,亡羊補牢。在接下來的面試中,爭取錯誤越來越少,最終找到理想的崗位。
第二點:自我反省其實剛才已經提到過這點,就是要反省自己的不足,找到自己的缺點和弱項。面試官的工作就是找到應聘者的弱點,然後放大並攻擊。一個表現良好的應聘者應該非常清楚這一點,並有效的回擊。
你們的陣營不同,所以被面試官虐也是情有可原。所以,應該做的,是進行自我反省,而不是可以報復。
第三點:化為動力無數的歷史告訴我們,能夠記住恥辱的人,終會有所成就。臥薪嚐膽的勾踐、胯下之辱的韓信。哪個不是一代芳名流傳千古?
所以,如果你被人鄙視了,被人看不起了,請你記住這個人,並化為動力,並努力向前。
-
4 # 一個96年工科男的生活
這個問題純粹娛樂的吧,前提又沒,讓我們自己發揮想象來回答嘛。3年JAVA,自身水平如何,面試的公司業務跟你之前的是否類似,不同型別公司技術棧不一樣,還有面試官又問到你什麼了等等前提你都沒描述呢
-
5 # 網際網路活化石
首先,找到淘汰的原因。
淘汰不一定是因為你的技術問題,可能是學歷,也可能是臉,或者是年紀,也可能是薪資。我遇到有快30多歲的培訓了一年,出去面試,你覺得別人會要你嗎?所以啊,面試是一個比較主觀的過程,技術佔比不到3成。
我只從技術上談談怎麼進步。
Java面試的考點,我隨便列幾個
1.基礎知識
String StringBuffer 和 StringBuilder 的區別是什麼? String 為什麼是不可變的?自動裝箱與拆箱介面和抽象類的區別是什麼?成員變數與區域性變數的區別有那些?異常2.容器
說說List,Set,Map三者的區別?Arraylist 與 LinkedList 區別?補充內容:RandomAccess介面補充內容:雙向連結串列和雙向迴圈連結串列ArrayList 與 Vector 區別呢?為什麼要用Arraylist取代Vector呢?說一說 ArrayList 的擴容機制吧HashMap 和 Hashtable 的區別3.併發
併發容器總結樂觀鎖與悲觀鎖JUC 中的 Atomic 原子類總結AQS 原理以及 AQS 同步元件總結4.JVM
一 Java記憶體區域二 JVM垃圾回收三 JDK 監控和故障處理工具四 類檔案結構五 類載入過程六 類載入器還有作業系統,資料庫,分散式等。
還有重要的一點,面試要有的放矢,不打無準備的仗,也要調整好自己的期望。這就是面試技巧了,這是另外一個話題了,有興趣的可以多看看 一線網際網路公司面試總結 這類的文章,發現自己的不足。
如果實在不自信,可以買個課程學習下,有專門的面試課程。
-
6 # THANKS
首先很榮幸能夠為大家解答這個問題,讓我們一起走進這個問題,現在我們一起探討一下。
我想你是誤會了‘打臉’這個詞的意思了吧!現實中的打臉通常是被否定者透過努力改變現狀從而給否定者一個有力的回擊,就像一個響亮的耳光一樣。下面就來介紹一下打臉場景:
在面試時,一般都是與面試官一問一答的情形,面試官問,你答,你只需要正確回答面試官的問題即可,一般不會出現打臉的情形,經常遇到的確實經常應聘者遭打臉,可能是基礎問題不牢,或對專案步驟不熟,所導致與簡歷上所寫的不匹配。
而現在你想打面試官的臉,那典型的一種情形就是,在自由提問環節,由於你技術比較牛B,在瞭解一些開發技術時,問到了一些面試官所不熟悉的技術,並持續追問,這時面試官可能會顯得有點尷尬,但也不一定,因為作為面試官,他是具有心理優勢的。因為他能決定你的去留,是否繼續與你交談。掌握一切的主動性。
所以總而言之,打臉面試官發生的機率很小,儘管你的技術有多好,但你是應聘者,還是出於找工作養家餬口的目的,一般從心理上還是會保持謙卑,對面試官畢恭畢敬,這樣也會給別人一個好印象,增加面試成功的可能性。
所以,還是儘量打消打臉面試官的想法,要記住你有一個方法打臉面試官,面試官可能有一千種方法打你的臉。
-
7 # 三邵爺的夢囈
1. 首先個人觀點是反思自己面試過程中的哪些問題沒有回答好,「 查缺補漏 」 是你當下首先要去做的事 。第二步才是思考如何 翻身 :-)
2. 閱讀原始碼,提高你的技術深度。
閱讀原始碼是個好習慣,理解高質量的程式碼,對於提高我們自己的分析、設計等能力至關重要。面試時如果由喜歡讀原始碼的習慣也會加分,其好處主要有:
參考別人的架構、實現,分析其歷史上掉過的坑,這是天然的好材料,具體閱讀時可以從其修正過的問題等角度入手。現代軟體工程,節奏越來越快,需求複雜多變,快遞定位問題的能力很關鍵,對內部架構熟悉的話會開闊你的思路通用平臺、開源架構,不見得能夠非常符合自己的業務需求,只有深入原始碼層面才能定製。3. 提高技術以外的修養,軟技能,也許面試官更看重。
深度思考,而不是誇誇其談。面試官往往並不是一定要你精通某項技術,而是看中你對待技術的態度,如果你簡歷上的技術都沒有弄得很明白,那麼會讓面試官失望的。職業精神,是否表現出認真對待每一個任務。現實開發時很少有理想化的完美任務,如果能夠主動地從不清晰中找出清晰,切實地解決問題,是非常重要的能力。是否 hands-on, 是否主動。 -
8 # hiahia0715
對於三年的開發經驗的程式設計師來說,主要還是考察的是基礎知識,這些基礎知識主要包括:演算法基礎、JDK中的Api的合理使用及其原理分析、程式設計規範(設計模式)、計算機網路、作業系統、資料庫相關知識。
針對演算法這一塊,我有必要多說兩句,演算法在大公司的面試過程過程中是重頭戲,特別是不知名(非985、211名牌大學)本科院校畢業的。想要去大公司,就要多刷演算法題,如果演算法足夠優秀的話,其他的都不是問題。當然了,如果你要求不是特別高的話,經常刷刷資料結構、劍指Offer也夠了,如果喲啊進階的話就是刷leetcode(如果看不懂,請看leetcode-cn)。PS:很多公司表面上說著我們不看學習,只看能力,其實這句話是騙人的,如果一個非985、211學校的和一個Top9學校的人去面試同一家公司,肯定是Top9學校的人的面試題更加容易。如果這兩個人都能同時被錄取,基本上只有一種情況,非985、211學校的這個人非常牛逼。
JDK中的Api的合理使用及其原理分析主要跟併發多執行緒、垃圾回收、記憶體管理、程式執行效率與最佳化有關。比如說HashMap是否安全、StringBuiler是否安全、併發會導致什麼問題,又或者說ThreadLocal記憶體洩漏的避免方式、violate關鍵字在任何併發場景都適用嗎、Executors裡面的各種執行緒池又有什麼坑?
程式設計規範,主要是兩個大方面:設計模式與程式碼規範(參考《阿里巴巴Java開發手冊》)。
計算機網路這一塊的知識很多,如果你要慢慢去看書的話,效率會很低,但是其實面試或者開發中常用的或者必須掌握的也沒多少。比如說HTTP請求的GET與POST方式的區別;Http1.0、Http1.1、Http2.0的區別;TCP三次握手,為什麼不是三次,為什麼不是四次;HTTP、TCP、UDP的區別和聯絡;Https和Http有什麼區別;Http 為什麼是無狀態的;
作業系統和資料庫主要是一些關於底層的基礎知識以及基於資料庫底層原理做的調優方案。
如果你能按照我上面給的提示去慢慢學習、反思,你已經很優秀了(我也在努力)。當這些基礎知識都掌握了,你可以再去研究一下更高階的一些知識,比如說分散式事務的各種實現方式的對比、分散式協議、C10k問題、一致性Hash原理等等、負載均衡方式的對比、服務熔斷、限流、資料庫快取雙寫一致性、秒殺場景如何設計、分散式ID生成器的設計………
雖然對於大部分人來說——工作CRUD、面試造飛機。但是我們也應該去逐漸掌握“造飛機”的技術,這樣才不至於遇到了生產事故再來學習。
關注“Java架構師養成記”,帶你裝逼帶你飛,一起從小白變身架構師,從此不再被面試官打臉。後臺回覆“架構師影片”,獲取最新Java架構影片。
-
9 # 狂客說技術
也不是不可以!
找一個醬油公司,可能面試官還不如你!我之前就在某公司面試別人,那時候技術很一般,如果你技術有深度打臉三年前我那樣的應該可以做到!不過三年確實不夠!
java入門容易,生態廣,想在某一領域有一定深度,可能專個兩年就能有收穫!但是面試官網網考察深度的同時也要一定廣度,java方向眾多,打臉面試官,正常水平的那種,至少還得兩年吧!
暫不說java高階技術,分散式cap應用分散式事務微服務等,java基礎搞明白也需要耗費很多精力!
集合實現原理jvm記憶體模型,管理,垃圾回收機制反射,動態代理在spring中的應用aop實現細節,bean的生命週期設計模式,沒大幾年經驗很難對設計模式有深刻理解常見加密演算法以及應用,能接觸這塊兒開發才說明你技術有一定技術,開始安全敏感!這都是圍繞java的東西,還只是開發中的冰山一角,沒有幾年積累,如何應對刁鑽的面試官?我程式設計八年,還一直在給自己充能,技術無止境,一山更比一山高!別總想著打臉面試官了,三人行還有我師呢,穩一點才有工作3年程式設計師的樣子!
回覆列表
我認為有幾點
1掌握java編譯原理
3接觸不同的專案
因為java技術有很多種類,如果網際網路行業的對資料庫,對列,併發技術要接觸多些,但是對多執行緒,網路程式設計的技術就要薄弱許多。要翻身就要做不同型別行業的專案。單技術上被專案約束太多