㈠ 關於java EE的一個小問題
你老師是不是叫呂海東?
㈡ 現在前途太渺茫了,我都不知道該怎麼辦了
說真的,以前我也跟你一樣。有著一樣的問題。但最終我還是走了過來。轉眼5年過去了,至少我現在可以跟自己說一聲:我不後悔當初的選擇。
其實不是每一個人出來學什麼專業就要做什麼專業的,你看一下我們廣東,有幾個做的專業是自己學的呢?這年頭不要去說別人的什麼專業吃香,其實不是這樣,哪一個專業都有好有壞,說不定你同學們去的公司也不一定好。
說一下我吧,我以前是讀計算機的,出來後,很多朋友都呆在電腦公司工作,本身我學的時候對硬體不在么專注,因為我喜歡軟體。後來出來後,發現軟體專業如果沒有很多的功底很難工作,哪時我也跟你一樣迷茫。硬體我又沒怎麼學,軟體我又不精。怎麼好呢?於是我去求職時都沒有找到好的工作。最後一個偶然的機會,我看見很多朋友做業務這一類很不錯。雖說我不是營銷專業,但我相信可以試一下,於是我就去買書來看,最後我應聘到一家公司,做了業務,直接到現在。起碼我覺得比我當初的專業好多了,但我做的也不是對專啊。
再說一下我哥,以前是學計算機的,後來他看見人家在做資料庫,認為是一個不錯的發展方向,於是他白天上班,晚上就回家買書自習。三年如一日。現在不也是在杭州出名的動漫基地工作了嗎?他們公司是搞網路游戲的,他從事後台數據工作。
說到底我的意思是要說,人不能只看一個方向,不是說學什麼專業就要對口,或許你在別的專業也能做好好的成績,只要你用心。2:你現在可以放低高要求找一份工作,畢竟人總要生活的。利用空閑的時間,再自己學習。這樣一來,又累積經驗,又能學到你喜歡的知識。到了一些時間後,行業之間有了好轉,你再選擇跳槽。(年輕的時候,跳一兩家公司對你以後成長幫助很大,如果你長時間呆在一家公司的話,做久了你也會麻木的。)
不要太在乎什麼工作,只要有信心就能做好。學多一點全面一點對你以後也好。再說,人也不能一輩子打工,總要有點計劃不是嗎?難道你願意一輩子打工嗎?學多方面對你將來是有好處的。
你還年輕,應不著迷茫,現在比你慘的人還很多。沒工作的人也一大把。找工作不能心急,一急就弄巧成拙。機會是有的,你只能靜心觀看,不可急於一時。網上的工作有時還不如去當地人才市場看好得多。
你還有懂得,風水輪流轉,每一年的變化都不同,沒有一個行業長久好的。我建議你把知識學多一點,對你還是有好處。
當於初入社會的你,最重要的是學好做人,如果待人處事機靈,以後無論什麼工作對你來說都是容易的,把心態放寬,告訴自己,你會成功的。開開心心過,不要去想太多。船到橋頭自然直。以好的心態來面對一切這樣才是你工作的動力。目前的話你可以找一份工作,工資低點無所謂,充實一下自己再一邊工作一邊學習,有好的機會時再選擇跳槽。或者可以經常在網上關注。
我相信你會成功的,做事切不要急。最後祝你早日找到工作,事事順心。
㈢ 簡歷上的項目描述(JAVA)怎麼寫
想要成為合格的Java程序員或工程師到底需要具備哪些專業技能,面試者在面試之前到底需要准備哪些東西呢?本文陳列的這些內容既可以作為個人簡歷中的內容,也可以作為面試的時候跟面試官聊的東西,你可以把這些內容寫到你的簡歷中,當然更需要的是你在面試的時候向面試官展示這些專業技能。相信此文對正在尋覓Java程序員(Java工程師)職位的freshman以及希望成為中高級Java開發者的junior都會有所幫助。
專業技能
1.熟練的使用Java語言進行面向對象程序設計,有良好的編程習慣,熟悉常用的JavaAPI,包括集合框架、多線程(並發編程)、I/O(NIO)、Socket、JDBC、XML、反射等。
2.熟悉基於jsP和Servlet的JavaWeb開發,對Servlet和JSP的工作原理和生命周期有深入了解,熟練的使用JSTL和EL編寫無腳本動態頁面,有使用監聽器、過濾器等Web組件以及MVC架構模式進行JavaWeb項目開發的經驗。
3.對Spring的IoC容器和AOP原理有深入了解,熟練的運用Spring框架管理各種Web組件及其依賴關系,熟練的使用Spring進行事務、日誌、安全性等的管理,有使用SpringMVC作為表示層技術以及使用Spring提供的持久化支持進行Web項目開發的經驗,熟悉Spring對其他框架的整合。
4.熟練的使用Hibernate、MyBatis等ORM框架,熟悉Hibernate和MyBatis的核心API,對Hibernate的關聯映射、繼承映射、組件映射、緩存機制、事務管理以及性能調優等有深入的理解。
5.熟練的使用HTML、CSS和JavaScript進行Web前端開發,熟悉jQuery和Bootstrap,對Ajax技術在Web項目中的應用有深入理解,有使用前端MVC框架(AngularJS)和JavaScript模板引擎(HandleBars)進行項目開發的經驗。
6.熟悉常用的關系型資料庫產品(MySQL、Oracle),熟練的使用SQL和PL/SQL進行資料庫編程。
7.熟悉面向對象的設計原則,對GoF設計模式和企業應用架構模式有深入的了解和實際開發的相關經驗,熟練的使用UML進行面向對象的分析和設計,有TDD(測試驅動開發)和DDD(領域驅動設計)的經驗。
8.熟悉Apache、NginX、Tomcat、WildFly、Weblogic等Web伺服器和應用伺服器的使用,熟悉多種伺服器整合、集群和負載均衡的配置。
9.熟練的使用產品原型工具Axure,熟練的使用設計建模工具PowerDesigner和EnterpriseArchitect,熟練的使用Java開發環境Eclipse和IntelliJ,熟練的使用前端開發環境WebStorm,熟練的使用軟體版本控制工具SVN和Git,熟練的使用項目構建和管理工具Maven和Gradle。
說明:上面羅列的這些東西並不是每一項你都要爛熟於心,根據企業招聘的具體要求可以做相應的有針對性的准備。我個人覺得前6項應該是最低要求,是作為一個Java開發者必須要具備的專業技能
項目介紹
本系統是X委託Y開發的用於Z的系統,系統包括A、B、C、D等模塊。系統使用了Java企業級開發的開源框架E以及前端技術F。表示層運用了G架構,使用H作為視圖I作為控制器並實現了REST風格的請求;業務邏輯層運用了J模式,並通過K實現事務、日誌和安全性等功能,通過L實現緩存服務;持久層使用了M封裝CRUD操作,底層使用N實現數據存取。整個項目採用了P開發模型。
說明:上面的描述中,E通常指Spring(Java企業級開發的一站式選擇);F最有可能是jQuery庫及其插件或者是Bootstrap框架,當然如果要構建單頁應用(SPA)最佳的方案是前端MVC框架(如AngularJS)和JavaScript模板引擎(如HandleBars);G顯然是MVC(模型-視圖-控制),最有可能的實現框架是SpringMVC,除此之外還有Struts2、JSF以及Apache為JSF提供的MyFaces實現,可以使用JSP作為MVC中的V,也可使用模板引擎(如Freemarker和Velocity)來生成視圖,還可以是各種文檔或報表(如Excel和PDF等),而Servlet和自定義的控制器是MVC中的C,當然SpringMVC中提供了作為前端控制器的DispatcherServlet;J通常是事務腳本,K應該是AOP(面向切面編程)技術,L目前廣泛使用的有memcached和Redis;M的選擇方案很多,最有可能的是Hibernate和MyBatis,也可以兩種技術同時運用,但通常是將增刪改交給Hibernate來處理,而復雜的查詢則由MyBatis完成,此外TopLink、jOOQ也是優秀的持久層解決方案;底層的數據存取傳統上是使用關系型資料庫,可以是MySQL、Oracle、SQLServer、DB2等,隨著大數據時代的來臨,也可以採用NoSQL(如MongoDB、MemBase、BigTable等)和其他大數據存取方案(如GFS、HDFS等);項目的開發模型P可以是瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型、RAD模型等。
項目開發流程
1.可行性分析>>>可行性分析報告/項目開發計劃書
2.需求分析>>>需求規格說明書
1.OOAD(用例圖、時序圖、活動圖)
2.界面原型:幫助理解需求、業務層設計時推導事務腳本
3.設計>>>概要設計說明書/詳細設計說明書
1.抽取業務實體(領域對象):類圖、E-R圖(概念設計階段)
2.分層架構:確定各層的技術實現方案(具體到使用的框架、資料庫伺服器、應用伺服器等)。業務層設計:事務腳本模式(事務:用戶發送一次請求就是一個事務;腳本:一個方法或一個函數;事務腳本:把一次請求封裝為一個方法或一個函數;事務腳本模式:一個事務開始於腳本的打開,終止於腳本的關閉)。業務層涉及的對象本有三種類型:事務腳本類(封裝了業務的流程)、數據訪問對象(DAO,封裝了持久化操作)、數據傳輸對象(DTO,封裝了失血/貧血領域對象),三者之間的關系是事務腳本類組合(聚合)數據訪問對象,這二者都依賴了數據傳輸對象
3.正向工程(UML類圖生成Java代碼)和逆向工程(Java代碼生成UML類圖)
4.資料庫物理設計(ER圖轉換成表間關系圖、建庫和建表、使用工具插入測試數據)
4.編碼5.測試>>>測試報告/缺陷報告
1.單元測試:對軟體中的最小可測試單元進行檢查和驗證,在Java中是對類中的方法進行測試,可以使用JUnit工具來實施。
2.集成測試:集成測試也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模塊按照設計要求組裝成為子系統進行測試。
3.系統測試:將已經確認的軟體、硬體、外設、網路等元素結合在一起,進行信息系統的各種組裝測試和確認測試,系統測試是針對整個產品系統進行的測試,目的是驗證系統是否滿足了需求規格的定義,找出與需求規格不符或與之矛盾的地方,從而提出更加完善的方案。
4.驗收測試:在軟體產品完成了單元測試、集成測試和系統測試之後,產品發布之前所進行的軟體測試活動。它是技術測試的最後一個階段,也稱為交付測試。驗收測試的目的是確保軟體准備就緒,並且可以讓最終用戶將其用於執行軟體的既定功能和任務。
5.交付和維護>>>用戶手冊/操作手冊
項目管理
版本控制:CVS/SVN/Git
自動構建:Ant/Maven/Ivy/Gradle
持續集成:Hudson/Jenkins
系統架構
負載均衡伺服器:F5、A10
應用伺服器:
HTTP伺服器:Apache、NginX(HTTP、反向代理、郵件代理伺服器)
Servlet容器:Tomcat、Resin
EJB容器:WildFly(JBossApplicationServer)、GlassFish、Weblogic、Websphere資料庫伺服器:MySQL、Oracle
第三方工具(插件)應用
圖表工具:基於jQuery的圖表插件(如jQchart、Flot、Charted等)、Chart.js、Highcharts等。
報表工具:PentahoReporting、iReport、DynamicReports等。
文檔處理:POI、iText等。
工作流引擎:jBPM、OpenWFE、Snaker、SWAMP等。
作業調度:Quartz、JobServer、Oddjob等。
緩存服務:EhCache、memcached、SwarmCache等。
消息隊列:Open-MQ、ZeroMQ等。
安全框架:Shiro、PicketBox等。
搜索引擎:IndexTank、Lucene、ElasticSearch等。
Ajax框架:jQuery、ExtJS、DWR等。
UI插件:EasyUI、MiniUI等。
富文本框:UEditor、CKEditor等。
面試提問
項目是為哪個公司開發的?
項目的投入是多少?
有多少人參與了項目開發?
整個團隊中,測試人員、開發人員、項目經理比例是多少?
項目開發了多長時間?
項目總的代碼量有多少?
你的代碼量有多少?
項目採用了怎樣的開發模型或開發流程?
項目的架構是怎樣的?
項目的技術選型是怎樣的?
你在項目中承擔了怎樣的職責?
是否經常開會或加班?
項目完成後有哪些收獲或是經驗教訓?
項目中最困難的部分是什麼?
如何解決團隊開發時遇到的各種沖突?
明:對於沒有實際項目經驗的,可以在前程無憂、智聯招聘、拉勾網等網站上搜索招聘Java程序員的公司,找到他們的官方網站了解他們做的項目,查看項目的詳細介紹,然後嘗試完成其中一部分功能,最好請教一下高人看看自己的設計和代碼是否恰當,這樣相當於積累了一定的項目經驗。
面試時可以反問面試官的問題
我注意到你們使用了X技術,請問你們是如何解決Y問題的?
為什麼你們的產品使用了X技術而不是Y技術?據我所知,X技術雖然有A、B、C等好處,但也存在D和E問題,而Y技術可以解決D和E問題。
我對您說的X技術不是太熟悉,但我感覺它是一個不錯的解決方案,您能多講講它的工作原理嗎?
你們團隊是如何進行項目規劃的?一周會有幾次例會?每周的代碼量大概是多少?
就X問題我能想到的解決方案目前就只有Y了,請問您會怎麼解決這個問題?
錄用談判
要理直氣壯的提出具體的待遇要求
開出比預期稍高的價碼
不要只盯著薪水(很多公司更願意就薪水之外的條件做出讓步)
使用最合適的方法(可以嘗試在電話或E-mail中談判待遇)
自我評價
學習能力(搞IT行業的人需要不斷的了解新的技術、工具和方法)
團隊意識(相比個人英雄主義,IT行業更倡導團隊合作)
抗壓能力(很多IT企業的工作強度相對來說還是比較大的)
自學編程,免費獲取精品IT教程以及資料,搜索:黑馬程序員
網頁鏈接
㈣ 學java,要注意什麼
學習java需要注意要有正確的學習路線,有堅持不懈的學習毅力,也需要有專業老師的指導,這樣才能學得更好。
那麼,學習Java需要掌握哪些知識和技能呢?這里簡單列舉一些。
Java學習需要掌握的知識與技能:
1、Java SE部分初級語法,面向對象,異常,IO流,多線程,Java Swing,JDBC,泛型,註解,反射等。
2、資料庫部分,基礎的sql語句,sql語句調優,索引,資料庫引擎,存儲過程,觸發器,事務等。
3、前端部分, HTML5 CSS3 JS, HTML DOM Jquery BootStrap等。
4、Java EE部分,Tomcat和Nginx伺服器搭建,配置文件,Servlet,JSP,Filter,Listener,http協議,MVC等。
5、框架部分,每個框架都可以分開學,在去學如何使用SSM 或者SSH框架,如何搭建,如何整合。開發中為什麼會用框架,Rest是啥?Spring為啥經久不衰,底層如何實現等。
6、23種設計模式,掌握常用的,比如單例模式的多種實現,責任鏈模式,工廠模式,裝飾器模式等,了解常用場景。
7、基礎演算法和數據結構,八大排序演算法,查找演算法。
8、熟練使用maven等構建工具,git等版本控制工具,熟悉常用linux命令,log4j,bug,junit單元測試,日誌列印工具,Redis等NoSql。
互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。
想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,建議實地考察對比一下。
祝你學有所成,望採納。
㈤ 目前全棧工程師常用的軟體有哪些
全棧工程師,也叫全端工程師,是指掌握多種技能,並能利用多種技能獨立完成產品的人。全棧工程師熟悉多種開發語言,同時具備前端和後台開發能力,從需求分析,原型設計到產品開發,測試,部署,發布全流程都十分熟悉。
全棧工程師由於經常研究各種技術,他不會精確記得所有語言代碼的語法和API,他覺得沒有Google和網路,幾乎沒法工作。他記的只是一個Key,一個如何找尋答案的索引,而不是全部,人腦不是電腦,他不可能記下所有的東西。
對全棧工程師而言,各種輔助工具是十分重要的。全棧工程師更多的工作不是造輪子,而是用各種輪子組合造產品。下邊就向大家推薦幾類工具,希望對大家有幫助。這里邊主要推薦以下工具:需求分析工具、原型設計工具、代碼檢查工具、自動化測試工具、部署工具,最後還會給大家介紹一款大多數全棧工程師最近都在使用的端到端全流程的開發神器。
需求分析工具
XMind
XMind是一種實用的思維導圖工具。 思維導圖是一種將思維形象化的方法。它可用來作為管理項目、筆記或知識庫,也可以用來頭腦風暴,記錄思路,整理軟體產品功能和需求等等。
Visio
visio是一款便於開發和設計人員就復雜信息、系統和流程進行可視化處理、分析和交流的軟體。幫助我們創建具有專業外觀的圖表,以便理解、記錄和分析信息、數據、系統和過程。
StarUML
StarUML是一套盛開源碼的軟體,不但免費自由下載,連代碼都免費盛開。StarUML可描摹9款UML圖:用例圖、類圖、序列圖、事態圖、行動圖、通信圖、模塊圖、安排圖以及復合構造圖等。
原型設計工具
Axure
Axure能幫助需求設計者,迅捷而輕便的創立基於目錄組織的原型文檔、功能解釋、交互界面以及帶注釋的wireframe網頁,並可積極生成用於演示的網頁文件和word文檔,以供給演示與開發。
Omni Graffle
Omni Graffle軟體由Omni Group公司出品,可以在OS X平台上輕松繪制漂亮的圖表、樹狀結構圖、流程圖、頁面等,可以用來規劃電影或劇本的情節走向、繪制公司組織圖、專案進度等等。該軟體界面非常漂亮,模板豐富精緻,容易激發靈感,輔助對齊和尺寸調整功能強大。目前還推出了iPad版本的應用。
代碼檢查工具
CodeReviewer
CodeReviewer是一款免費的、簡單的又易於部署和使用的代碼審查工具,由SmartBear開發——也是Collaborator的發明者,業界第一家推出商用代碼審查工具的公司。
SmartBear
SmartBear是一個有助於團隊通過共同的開發、測試和管理工作以便能生產出高質量代碼的代碼審查工具。
Crucible
Crucible是另一款超級受開發人員歡迎的代碼審查工具,可以審查代碼、討論修改,通過Crucible靈敏的審閱流程來確定缺陷。
自動化測試工具
QTP
QTP是一種自動測試工具,主要是用於回歸測試和測試同一軟體的新版本。QuickTest針對的是GUI應用程序,包括傳統的Windows應用程序,以及現在越來越流行的Web應用。它可以覆蓋絕大多數的軟體開發技術,簡單高效,並具備測試用例可重用的特點。其中包括:創建測試、插入檢查點、檢驗數據、增強測試、運行測試、分析結果和維護測試等方面。
Selenium
Selenium是一個用於Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE、Mozilla Firefox、Mozilla Suite、Google Chrome等。這個工具的主要功能包括:測試與瀏覽器的兼容性,測試你的應用程序看是否能夠很好得工作在不同瀏覽器和操作系統之上。測試系統功能,創建回歸測試檢驗軟體功能和用戶需求。
部署工具
Ansible
ansible是新出現的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。
Salt
Saltstack是一個大型分布式的配置管理系統(安裝升級卸載軟體,檢測環境),也是一個遠程命令執行系統。saltstack的兩大功能:遠程執行和配置管理。
Puppet
puppet是一種Linux、Unix、windows平台的集中配置管理系統,使用自有的puppet描述語言,可管理配置文件、用戶、cron任務、軟體包、系統服務等。
神器推薦:DevCloud
之所以說DevCloud(華為軟體開發雲)是全棧工程師的開發神器,是因為它可以提供軟體開發全流程的工具,隨時隨地在雲端進行項目管理、配置管理、代碼檢查、編譯、構建、測試、部署、發布等。這些功能讓工程師能夠把精力集中於產品的設計和研發,而不需要自己維護各類工具。而且華為在這個產品上開放了多年的研發經驗,讓工程師的開發過程更標准化,從而進一步提升開發效率和產品質量。
目前華為軟體開發雲對於5人+500M以內是免費的。
總結
技術快速更新迭代,各種輔助工具也層出不窮,眼花繚亂。我們不需要面面俱到,在每個流程深入用好一個工具,就可以幫助我們提升我們的開發效率。希望越來越多的工程師加入全棧工程師的陣營,體會全棧工程師的樂趣。也希望大家可以多多溝通交流,尋找出更多的好工具。
㈥ 學習Java需要學哪些內容
就從基礎開始說起
Javase
Java基礎所包含的,Java零基礎必備安裝包、JavaSE301集、教程零基礎2019、Java教程零基礎2019(ava基礎語法、面向對象、異常、數組、常用類、集合、IO流、線程、反射機等等)、XML、Tomcat伺服器開發;其中Java零基礎2019這視頻教程系列可以去B站觀看。搜索Java或者Java教程,第一個就是,杜老師講的,比較細致。
學習Java有以上教程就足夠了,而這些學習資源皆可在「動力節點」下載到