入門-中級-高級一、JavaSE基礎1.1、J2SEJAVA開發基礎知識|Eclipse開發環境|J2SE5.0API|J2SE8.0新特性|多線程技術|Socket網路技術|RegularExpression|Java反射技術|Properties技術|各種實戰設計模式|JavaDebug技術|面向對象設計原則詳解|實例解決面向對象設計|面試題內部詳解|面試答題技巧詳解|AWT/SWING技術1.2、實戰數據結構數據結構實戰訓練|數組、鏈表等常用數據結構實戰1.3、正則表達式正則表達式基本語法。預搜索、斷言、分組。JAVA操作正則表達式Matcher/Pattern1.4、反射機制JAVA的動態性、Reflection技術、JVM類載入器、Class對象、Method等。1.5、CHAT項目Chat項目通過完成一個模擬的在線聊天系統,主要鍛煉大家對於TCP/IP、Socket編程、C/S模式的編程、線程的運用等方面的能力。1.6、坦克大戰單機版/圖片版/網路版這三個項目通過大家喜聞樂見的小游戲的形式來鍛煉大家對於JavaSE綜合運用的能力,並且能夠初步運用面向對象的編程理念,鍛煉初步的設計能力,並基本掌握多線程的編程。二、JavaWeb開發2.1、資料庫技術Oracle基礎管理;SQL語言PL/SQL語言;觸發器、存儲過程;MySQL,SQLServer簡介;業界常見問題設計;資料庫表的設計範式;數據備份與移植;多表連接難題詳解;嵌入式資料庫應用;2.2、JDBC技術JDBC基礎;連接池技術;使用設計模式開發連接池;詳細擴展與測試池效率;2.3、HTML4&CSS&JavaScriptHTML語言;CSS語言;JavaScript語言;JS常用模版;後台管理模版;DOM;JS操作CSS;JS操作DOM;ECMAScript;JS操作DIV;protoype;js基於對象編程;;Firefox和firebug調試技術;2.4、Bootstrap前端css框架,讓我們的學生不會美工也能做出漂亮的頁面;2.5、JqueryJquery基本技術;Jquery使用插件;2.6、Http協議深入使用HttpWatcher深入理解協議內部機制;2.7、JSTL標簽庫JSTL核心標簽庫,JSTL函數標簽庫、JSTL格式化標簽庫,JSTL之XML解析標簽庫、自定義標簽技術;2.8、JSP&ServletServlet技術;JSP技術;JSTLTagLibrary技術;Filter&Listener技術;報表系統;FileUploading;Tomcat伺服器技術;servlet過濾器和AOP編程;servlet監聽器;2.9、SCM技術CVS初步;SVN簡介;2.10、JavaWeb實戰演練綜合運用所學知識;HTML+CSS+JS;JSP+Servlet+JavaBean;FileUploading;分頁技術;數據校驗;MVC初步;Filter;Listener;2.11、XML技術XML+XSL+DTD/Schema;XML數據解析;XML應用詳解;XQUERY技術;CAST技術(XML數據和對象互轉);2.12、AJAX技術AJAX技術基礎;AJAX技術框架;AJAX技術調試技巧;2.13、項目實戰《基於servlet/JSP技術的電子商務網站》、《基於AJax和Jquery的BBS論壇系統》、《基於ApacheCommonsFileUpload的網路硬碟系統》三、主流框架技術及項目實戰3.1、流行Web框架簡介Struts2/spring4.x/hibernate4.x/springmvc/WebWork/mybatis等簡介3.2、MVC模式ModelViewController模式深入3.3、SpringMVCspringmvc概述;springmvc的開發流程;springmvc基本配置;springmvc的註解開發;常用註解;service,control,reposity,reques+mapping,responseboby等3.4、Struts2.xStruts2的基本開發流程;action類的三種實現方法;XML配置的幾種方法;Struts2國際化支持;Struts2異常處理;Struts2的驗證框架;Struts2的多模塊配置;攔截器;3.5、Hibernate4.xHibernate基本開發流程;ORM簡介;模擬SQL語句的自動生成;hibernate的檢索;性能優化一級緩存二級緩存查詢緩存事務與並發悲觀鎖、樂觀鎖3.6、Spring4.x簡單工廠模式;抽象工廠;工廠方法模式;Spring3簡介;Spring的基本開發流程;IOC、DI;Bean的配置;SSH框架的整合;Spring的註解開發;SpringAOP開發代理模式靜態代理、動態代理、CGLIB;3.7、MybatisMybatis簡介;Mybatis的開發流程;配置文件;映射文件;面向介面的Mybatis開發;3.8、手工編寫實戰開發struts2.x框架親自動手開發struts2.x框架,融入設計模式,讓大家的對struts的核心機制爛熟於胸!3.9、手工編寫實戰開發Hibernate4.x框架芯學苑名師親自帶領你開發hibernate框架,讓你真正將ORM框架理解透徹!3.10、手工編寫實戰開發mybatis框架完成另一個ORM框架mybatis的開發工作!3.11、手工編寫實戰開發Spring4.x框架Spring是最著名的框架之一!也是業界應用范圍非常廣泛的框架!是否對其核心機制有透徹了解,往往是高薪的關鍵!因此,芯學苑名師帶領你完成spring框架核心機制的開發。當別人還在探討如何使用spring時,你已經更上層樓!3.12、項目實戰《基於struts2+spring+mybatis的電子政務系統》、《基於springMVC+hibernate的在線考試系統》
Ⅱ 如何成為一名優秀的java程序員
牛逼的人總是讓人羨慕,但如何才能讓自己成為牛逼的人對我們來說更重要,本文分享的是如何才能成為java高級程序員,你和java高級程序員只差這一篇雞湯!幹了這碗雞湯,未來不可限量!
1、離開舒適區,提高個人代碼能力
不安於現狀,高級程序員一般都具有豐富的項目經驗,經驗是能力最好的試金石,即使在碰到未知的問題,豐富的項目經驗也不會讓你覺得就束手無策。程序員是一個技術跨度很大的工種,對某種既定環境語言的依賴性太強,知識和技能都無法很好的遷移。
2、將復雜的問題簡單化處理
喬布斯曾經說過,簡單便能移動一座大山。一個高級程序員之所以讓人覺得牛逼,不僅僅能用寫出優雅簡潔的代碼,更重要的是他們還能將這種化復雜為簡單、化繁為簡的功力內化至各項工作,不管是面對多復雜的項目、多棘手的 bug 都能面不改色、心不跳,步步拆解問題,逐一各個擊破。
3、自我總結,提升學習和解決問題能力
代碼能力、工作狀態只是一個高級程序員區別於普通程序員的外在表現,王者和青銅的核心區別在於思考方式和解決問題能力的區別。高級程序員可能每天會花半個小時總結當天的項目經歷,反思自己的不足,思考問題解決或優化的方案。區別於初級程序員,高級程序員總結問題的往往能從本質出發,不會只停留在表面,弄清問題內在聯系,抓住問題關鍵。這也就解釋了為什麼拿到一個項目需求,很多高級程序員不會首先去想代碼實現,而是去想需求與架構的行為。
4、責任心和需求理解能力
高級程序員對自己的要求不僅限制於完成項目、解決問題本身,往往還會去思考並權衡需求涉及的一切,比如如何去支持設計模式、庫、框架、重構和流程等,從內核到外層界面,既重視功能需求,還會注意到拓展性能、穩定性等需求,甚至還需要評估設計模塊對整個項目中的影響及潛在的威脅。
總結:如何才能成為高級程序員,關鍵還是思想,學習的思想、總結的思想、創新的思想!
Ⅲ 看資深面試官透露是怎樣判斷IT開發人員水平的
1、計算機相關學科的學歷背景,或者即使沒有計算機學歷背景,也要有計算機學科體系的完整學習經歷,基礎知識在我看來是第一步,如果你不懂數據結構演算法,不懂計算機體系結構,不知道怎麼設計演算法,不知道計算機軟硬體怎麼工作的,那寫出的代碼也是質量差的無效率的,你只是寫出來了,但是在我看來是沒有價值的代碼,沒有可維護能力和積淀性的,我從來就不相信一個沒學過數據結構演算法,計算機體系結構,編譯原理,軟體工程這些課程的人寫出來的代碼,那些很多策劃改行的程序的程序員是不會到我這里一面的,所以來我們這面試的,無論你之前多牛逼,那都是虛的,一定要做筆試題,一紙筆試題直接看出基礎能力,曾經見到技術總監不會寫快排演算法的,說太久忘了,那你來指導什麼?用你的經驗在這喝茶么?需要你來這里做什麼?這不是笑掉大牙么?為什麼我不招一個專業基礎優秀並且有活力且成本低易塑造的年輕人,數據結構和演算法設計是這里必須通過的。一句話,做技術的,太虛沒用,用你的專業能力說話,在這里我們會偏向那些名校背景的人,因為經驗上看,學歷背景好的專業能力普遍非常扎實,這點我覺得網易現在的技術的一枝獨秀,不得不說和他的校招只招清北浙交的策略有很大關系
2、游戲開發領域的專業知識,游戲開發有很多特定領域的知識基礎,包括3D圖形學,AI,物理,音視頻,操作系統平台開發,業務邏輯系統,很少會有人把這些面面俱到,這裡面每一個都需要幾本書的系統知識去啃,但是我們只需要看到你在這裡面某一個或兩個上面有深入研究和經驗,比如你非常通曉渲染,opengl D3D 各種shader效果,渲染優化都玩得很好,那就是一個加分,比如你非常善於研究ai,對行為樹,尋路這些有深入的經驗,也是很好的,如果對這些全都一知半解,那是不行的,我們需要的不是只是每個都懂一點的人,在游戲的專業知識領域方面,先做一個專才。
3、聰明。沒錯這是非常重要的一個衡量標准,開發者一定是這個世界上IQ最高的一群人,我很看重IQ,面對日新月異的開發工具技術的變革,聰明代表你有更快的學習適應能力,並能夠對問題提出自己的一定見解和解決方法,這個很重要。
4、工具的使用,工具是針對不同游戲項目的,比如你做unity,那要求你掌握unity編輯器,你做unreal,你做cocos,在我看來工具並沒那麼重要,一個基礎扎實聰明的人對工具的掌握是很快的,甚至很多非程序員都能玩轉工具,所以在面試時這個只佔25%左右的比例,和我說你多了解多了解某個工具,那其實並沒有那麼值得炫耀,就像練功的外功和內功,我們更看重內功,工具是可以花時間彌補的,專業基礎則很難,那需要悟性。我們現在主要招聘U3D的開發,對這塊,我們會衡量簡單的U3D編輯器基礎,U3D 的一些深入的概念,比如優化內存,drawcall,光照系統,assetbundle包,資源載入,動畫系統,GUI系統,還會深入的考察C#,LUA的開發的情況。如果面試者只是把unity當office用,那就在這塊沒有分數了,一個並不是很復雜的問題可以難到很多人:兩個資源BC共用A,那麼ABC如何打包?載入b的時候要怎樣載入?載入好b之後哪些包卸載哪些不卸載?不卸載的何時卸載?這個問題答得不完整不能說你深入的研究過UNITY
5、經驗,經驗在我們看來和工具差不多,這種依靠時間堆積的東西並不如專業基礎重要,在技術開發來講,10年經驗絕對不是1年經驗價值的10倍,經驗多固然好,但那是在其他因素都一樣的情況,一個聰明的名校畢業生,和一個10年經驗做過10款游戲但是一直沒有做過很多核心工作的程序員,我必然選擇前者。而且關於經驗,我們會把時間放在一邊,先來剖析你所謂的經驗多少是真正有價值的。首先,大廠大作的開發人員是加分的,這意味著你曾經同一些很棒的同事共事過,任何成功的產品都是有其成功的道理的(但是大廠的邊緣發開人員則沒有什麼亮點,大廠往往把核心工作和非核心工作分的很開,一些非核心開發的人員很久接觸不到主要研發工作,那反而是個劣勢了),然後我會就著你的簡歷詳細剖析你所做的工作,你說你做過尋路,那我問你A*演算法原理怎樣的,和navmesh有什麼區別,A*在大型地圖怎樣優化,如果你答不出來,那我不認為你真正的做過尋路,你只是使用過工具而已,那知識不屬於你,這一項經驗我會清0,你做過戰斗,那我會問怎樣同步前後端的狀態,怎樣避免延遲導致的問題,怎樣能夠更好的表現打擊感。所以經驗絕對不是你做過什麼,而是你詳細的琢磨過什麼,哪些東西真正的屬於了你。所以很多10幾年程序的經驗開始很不屑一顧的坐在對面,說了一堆堆很著名的產品,這我做的那我做的,我要來當主程,那ok,問到細節一個也說不清楚,再加上基礎的演算法也都說你忘了,那沒有任何意義,對不起,我喜歡刨根問底。
Ⅳ 程序員和軟體工程師面試需要注意什麼
作為一名軟體工程師來說,因為不同的軟體公司採用不同的方式對工程師進行評估,對於想走上軟體工程師職業發展道路的求職者來說,了解這些評估人才的不同方法是很重要的一點。
特定領域知識面試。,特定領域知識面試通常涉及到你最熟悉的技術領域的具體知識點。例如,如果你主要使用 Angular 1.x 進行前端開發,並且面試公司又有 Angular
前端,那他們就可能問你關於 Angular 控制器、指令和服務的相關內容。也就是說,你需要做好准備去建立、展示和討論 Angular。
計算機科學基礎知識面試。計算機科學和基礎編程面試明顯不同於特定領域面試。計算機科學和基礎編程面試是為了評估你解決問題的能力,更多的是關注找到最佳解決方案的能力,而不是簡單的去完成某些特定任務。因此,面試官通常也不會問關於你是誰、你過去的工作經歷或者你構建過的項目方面的問題。對於計算機科學基礎面試這一類型來說,面試官的工作就是評估你的原始編程能力,通常他們是通過數據結構和演算法相關的問題來進行評估。
如果你想進入
Google、亞馬遜、Uber 等大型知名科技公司工作,那你基礎知識一定要過關。在這樣的情況下,你是否構建過最好、最復雜的產品其實並不重要,如果你無法通過計算機科學基礎知識面試,那這些大型科技公司是絕對不會僱用你的。小型初創企業通常是在與時間賽跑,他們會爭取快速的構建出產品、推出產品
並且推向市場。因此,這些公司通常會實行特定領域面試方式,因為他們希望了解捏可以構建什麼樣的產品,你最拿手的技術又是什麼。
Ⅳ 為什麼程序員都很排斥面試時做題
第一, 能做上的人真的不多。
所謂程序員,方向很廣的,前端、後端、UI、架構等等,不同的崗位研究的方向不同;做不同的產品,用到的語言可能也不盡相同。用做題來衡量一個人的水平這件事,本身就不是很可行。明明是擅長資料庫的從業者面試者,硬是要做一套Java的試題,是很為難的。對於企業來講,從筆試想檢測下專業水平,但是程序員術業有專攻是沒錯的。
第二, 寫程序不是一項程序活兒。
面試時的做題的環境,心情和真正的工作是不一樣的,我們說打球會有手感,寫代碼其實也有手感。在壓力,虛擬的情景下,程序員容易造成失誤,影響發揮。不僅是程序員,離開了學校之後,考試這種形式都不招人喜歡。
第三, 面試的誠意。
面試時一個雙向選擇的過程,如果是技術總監來聊聊,會顯得比較尊重人才有誠意,雙方一旦發現有不可調和的供求不匹配,也可以馬上結束談話。人是活兒的,但試題是死的。如果做完題目後一聊,發現雙方並不合適,做題就很浪費自己的時間了。
Ⅵ 程序員面試的時候考官一般問什麼問題(比較流行的)
給你提供點參考信息,希望能幫助到你:
1、使用相同的工具和時間限制模擬面試訓練
Google和微軟都會讓應聘者在白板上手工解答編程問題,但通常大部分的應聘者都是習慣於在電腦上利用編程工具系統編寫程序。因此面試的時候,某些應聘者離開了熟悉的電腦游標,站在白板前感覺手足無措不知該如何起行。又或者他們不習慣在編程之時旁邊有人觀看,這會讓他們感到緊張而無法正常思考。
在現實生活中,如果你想要橫渡英吉利海峽,自然不能總是在室內游泳池練習。你必須投身於大海在波濤之中訓練,在准備面試的時候也是如此。
在面試開始之前你最好向招聘單位詢問面試形式和面試問題。如果招聘單位讓你在某個房間考試且僅提供沒有匯編程序的編輯器,那麼就應該在家中按照這種情景進行練習。如果招聘公司單位讓你在白板上回答問題並會安排考官在旁監督,那麼你就要找一位軟體工程師來扮演考官配合你練習。即使找來的考官經驗不如你也沒有關系,他們依然能幫助你消除在他人面前出錯所帶來的緊張感,這樣可以讓你適應有人在旁邊盯著看的面試氛圍。
如果你恰巧認識我並希望由我來幫你聯系,那我的條件就是必須請我吃飯:如果你已經工作了就吃日本壽司大餐;如果你還是學生,那麼吃比薩餅也可以。
2、在面試過程中不要對細小錯誤耿耿於懷
我曾不止一次的在面試過程中碰到這種情況:當應聘者知道編程問題後,他馬上就想到了最佳的方案、確定了邊界條件,然後開始編寫程序。但在編寫過程中,應聘者犯了諸如首先檢查是不是操作順序錯誤或忘記設定某變數等無關大局的小錯誤,當我指出其錯誤之後,應聘者立刻變得十分緊張,這種焦慮情緒影響了他在後面環節的正常發揮。
其實這種恐懼心理完全不必要。一名優秀的程序員在編程過程中出現錯誤也是很正常的,就像是小提琴手在演奏高難度的巴赫交響樂時也會偶爾失誤。音樂會的聽眾可能會覺察到這些錯誤,但是聽眾絕對不會因為這種細小失誤就把出色的小提琴手看作是門外漢。
即便應聘者徹底搞砸了某個編程問題,面試考官也可能會提出不同的問題並會容忍應聘者在某個問題上的失誤。再退一步說,就算某次面試徹底失敗,你也有機會在其它面試上補救。
我的一位同事(一個項目的技術負責人)最近面試了一個人,在開始面試時他覺得面試者的交流方式存在問題,因此開始表現的相當不友好。但經過了整個面試過程後,面試者證明了自身的能力,而我的那位同事也成了那位面試者最堅定的支持者。在過去的一年中,我從未見過這位同事如此強烈的支持哪位面試者。
所以,因此就算面試進展不順,也務必堅持到底不要放棄。
Ⅶ 大家有在面試高級程序員時,被問到類相關的函數名字嗎
當然有,一般不會直接問你某個函數的英文名,都是問某個功能用到的重要函數。
比如
圖片處理
反編譯
克隆/深克隆
之類的。
如果自己被問到了,但自己又真的不知道,你就可以說,「之前了解過,但是在上一家公司開發中沒有用到,就忘了。」
Ⅷ 我是一名程序員,在面試中被面試官嫌跳槽頻繁,我該怎麼應對
其實這個問題只要你承認自己開始在確定職業目標上有些困難,但現在已經十分明確了自己的職業方向(表明自己經過幾次跳槽已經給自己定位了,今後不會發生頻繁跳槽了);說明之所以離開之前的職位,僅僅是由於自己發現離開是為了加重責任,拓寬經驗的方法(充分展現眼前的這個公司就是自己真正的歸宿)。
Ⅸ 國內的程序員真的只能做到35歲嗎到了35歲或以後就會被公司淘汰嗎我26了,很害怕以後會失業啊!
會不會被淘汰,取決於個人的實力,有實力的人並不怕公司裁員。所以,努力提升自己