第一篇:一個合格的JAVA程序員需具備的素質(模版)
一個合格的JAVA程序員需具備的素質
對于一個剛從學校畢業的應屆生,怎樣才能較好地適應企業的發展,而不被企業所淘汰。個人有以下一些見解。
首先,JAVA程序員畢竟是一項技術工作,所以我們必須從技術上和業務上不斷地提升自我。那提升自己的技術水平和業務水平又需要大家具備以下能力。
一、扎實的理論基礎
假若理論知識不扎實,遇到問題通過百度、google或者請教別人,雖然也能把問題解決,但是需要花比別人多的多的時間才能把問題解決,而且大部分情況下還不能很完美的解決。那有人說,如果我的理論知識本身就是那樣,如何才能使自己有扎實的理論基礎呢?我覺得這個也比較簡單,多看看別人的代碼,多進行總結。當然也可以多看看書本。
二、要有較強的自學能力
許多企業非常看重個人的自學能力。因為IT行業技術更新太快,只有通過不斷地學習才跟得上社會的進步,因此,個人的自學能力對于企業的發展非常的重要。
三、注重編碼規范
一般來說,IT行業離職率較高,因此,讓新來的員工看懂以往的代碼也是企業非常關注的。有良好的編碼習慣,注重代碼的注釋,都是一個程序員必不可少的能力。
四、注重團隊精神和較好的溝通能力
對于一個項目來說,獨立開發的項目幾乎不存在,都是由多人協作開發的,特別是產品化的項目,因此,具備較好的團隊精神和較好的溝通能力非常重要。
五、較好的文檔能力
一個程序員不僅要掌握一定的技術能力,還需要具有一定的文檔編寫能力。良好的文檔能力能幫助我們更好地進行開發。一般來說,軟件項目的發展需要經過需求調研,概要設計,詳細設計等一系列的步驟,這些都是編碼前的準備工作,一般項目特別是大項目會把大部分時間都花在文檔整理上。
第二篇:如何成為一個合格的Java程序員
如何成為一個合格的Java程序員? 合格的Java程序員就是要技術精湛,懂得溝通,然后就是要不斷學習學習。如何成為一個合格的java程序員,想要成為一名合格的java程序員需要掌握哪些?下面,讓多迪技術總監為你一一介紹。
1、技術能力這是非常重要的事,過硬的技術能讓你得到面試機會,并在工作中游刃有余。當公司招聘一個Java開發人員時,是會優先考慮能力因素的。在實際的項目開發中,一個程序員的技術能力等于其解決問題的能力。
2、專業基礎是一個程序員的知識積累很大程度上決定了其解決問題的能力。知道如何編寫代碼是基本的技能,但是知道Java編程語言的原理,知道代碼背后的算法將使你從人群中脫穎而出。
3、主流編程工具有構建工具:Maven或Gradle。SCM:Git(不是GitHub。大不相同)。構建自動化:Jenkins。IDE:Netbeans或Eclipse——不僅用于編寫代碼,而且還從IDE中重構和調試代碼。Bug跟蹤:Bugzilla或Jira。
4、JSF的知識是應用程序服務器,所有Java開發人員應該知道如何在Apache Tomcat中部署。當Glassfish開發停止時,下一個最好的事情是J Boss Wild Fly。
5、溝通的能力是我們做好一切事情的關鍵。我們必須與我們周圍的環境保持互動,無論是在我們的私人還是職業生活中。一個良好的程序員知道如何在各種團體面表達自己。也許對你來說顯而易見的東西在他人的角度來看并非如此。從大的尺度來看,一個程序員知識積累的多少只決定于其自學能力和他對編程本身的興趣。
6、自學能力是一個非常重要的技能,在你自己的空閑時間學習新的技能。不要等待公司為你提供培訓。你需要自己去學習新技術,提升自己在相關領域的水平。從WEB前端開發到架構模式,總是有一些新事物值得學習。經常閱讀博客和論壇,嘗試加入本地聚會小組。你學到的東西可以幫助你的事業。知識刷新頻率極快讓人無法追趕的這個時代,難免會有超出自己知識范圍的時候,此時你的自學能力決定了你能多快的完成任務。
7、良好的團隊合作精神是所有開發人員都是作為團隊的一部分在協同工作。你需要致力于團隊的目的,或幫助新的團隊成員克服障礙。不要存在這種“我只要做好我的本職工作,下班就直接回家”的態度。成為團隊的一部分,幫助周圍的同事,對自己的能力也是不小的提升。
第三篇:Java程序員應具備的素質
Java程序員應具備的素質
——動力節點Java
java程序員是一種技術工作,在IT的發展中有相當重要的地位,從底層硬件通訊協議的建立,到數據傳輸層的處理,到操作系統的建設,到數據庫平臺的建設,一直到應用層上各種數據營銷平臺的搭建,程序員在里面都扮演著舉足輕重的角色并為IT事業的發展做出了巨大的貢獻。
中國有很多精于編碼的人,但是中國軟件行業,尤其是網絡應用開發方面誤區很大,很難形成有規模的軟件開發力量和產品能力,不但比美國差距甚遠,和印度相比也是頗有不如。這些問題不是在于中國程序員的智商和工作努力狀況,也不是在于國家和民間對開發的投入程度,而是很大程度上,有一些對技術,對程序開發,對項目設計方面的思想誤區,這些誤區,導致了軟件行業的產品化能力不足,缺乏規模化和大型復用系統研發能力,可以說,改變認識誤區,是解決軟件行業小作坊模式和個體英雄模式所帶來的局限性的重要工作。
中國有很多程序員,他們18,9歲或21,2歲,通過自學也寫了不少代碼,他們有的代碼寫的很漂亮,一些技術細節相當出眾,也很有鉆研精神,但是他們被一些錯誤的認識和觀點左右,缺乏對系統,對程序的整體理解能力,參加專業Java培訓機構,進行Java學習是不錯的選擇。動力節點專注Java培訓多年,在業界有著良好的口碑,學生百分百就業。
作一個真正合格的程序員,或者說就是可以真正合格完成一些代碼工作的程序員,應該具有的素質。
1、團隊精神和協作能力
把它作為基本素質,并不是不重要,恰恰相反,這是程序員應該具備的最基本的,也是最重要的安身立命之本。把高水平程序員說成獨行俠的都是在囈語,任何個人的力量都是有限的,即便如linus這樣的天才,也需要通過組成強大的團隊來創造奇跡,那些遍布全球的為linux寫核心的高手們,沒有協作精神是不可想象的。獨行俠可以作一些賺錢的小軟件發點小財,但是一旦進入一些大系統的研發團隊,進入商業化和產品化的開發任務,缺乏這種素質的人就完全不合格了。
2、文檔習慣
說高水平程序員從來不寫文檔的肯定是乳臭未干的毛孩子,良好的文檔是正規研發流程中非常重要的環節,作為代碼程序員,30%的工作時間寫技術文檔是很正常的,而作為高級程序員和系統分析員,這個比例還要高很多。
缺乏文檔,一個軟件系統就缺乏生命力,在未來的查錯,升級以及模塊的復用時就都會遇到極大的麻煩。
3、規范化,標準化的代碼編寫習慣
作為一些外國知名軟件公司的規矩,代碼的變量命名,代碼內注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助于代碼的移植和糾錯,也有助于不同技術人員之間的協作。有些coding fans叫囂高水平程序員寫的代碼旁人從來看不懂,這種叫囂只能證明他們自己壓根不配自稱程序員。代碼具有良好的可讀性,是程序員基本的素質需求。再看看整個linux的搭建,沒有規范化和標準化的代碼習慣,全球的研發協作是絕對不可想象的。
4、需求理解能力
程序員需要理解一個模塊的需求;很多程序員寫程序往往只關注一個功能需求,他們把性能指標全部歸結到硬件,操作系統和開發環境上,而忽視了本身代碼的性能考慮,有人曾經放言說寫一個廣告交換程序很簡單,這種人從來不知道在百萬甚至千萬數量級的訪問情況下的性能指標是如何實現的,對于這樣的程序員,你給他深藍那套系統,他也做不出太極鏈的并訪能力。性能需求指標中,穩定性,并訪支撐能力以及安全性都很重要,作為程序員需要評估該模塊在系統運營中所處的環境,將要受到的負荷壓力以及各種潛在的危險和惡意攻擊的可能性。就這一點,一個成熟的程序員至少需要2到3年的項目研發和跟蹤經驗才有可能有心得。
5、復用性,模塊化思維能力
經常可以聽到一些程序員有這樣的抱怨,寫了幾年程序,變成了熟練工,每天都是重復寫一些沒有任何新意的代碼,這其實是中國軟件人才最大浪費的地方,一些重復性工作變成了熟練程序員的主要工作,而這些,其實是完全可以避免的。
復用性設計,模塊化思維就是要程序員在完成任何一個功能模塊或函數的時候,要多想一些,不要局限在完成當前任務的簡單思路上,想想看該模塊是否可以脫離這個系統存在,是否可以通過簡單的修改參數的方式在其他系統和應用環境下直接引用,這樣就能極大避免重復性的開發工作,如果一個軟件研發單位和工作組能夠在每一次研發過程中都考慮到這些問題,那么程序員就不會在重復性的工作中耽誤太多時間,就會有更多時間和精力投入到創新的代碼工作中去。一些好的程序模塊代碼,即便是70年代寫成的,拿到現在放到一些系統里面作為功能模塊都能適合的很好,而現在我看到的是,很多小公司軟件一升級或改進就動輒全部代碼重寫,大部分重復性工作無謂的浪費了時間和精力。
6、測試習慣
作為一些商業化正規化的開發而言,專職的測試工程師是不可少的,但是并不是說有了專職的測試工程師程序員就可以不進行自測;軟件研發作為一項工程而言,一個很重要的特點就是問題發現的越早,解決的代價就越低,程序員在每段代碼,每個子模塊完成后進行認真的測試,就可以盡量將一些潛在的問題最早的發現和解決,這樣對整體系統建設的效率和可靠性就有了最大的保證。
測試工作實際上需要考慮兩方面,一方面是正常調用的測試,也就是看程序是否能在正常調用下完成基本功能,這是最基本的測試職責,可惜在很多公司這成了唯一的測試任務,實際上還差的遠那;第二方面就是異常調用的測試,比如高壓力負荷下的穩定性測試,用戶潛在的異常輸入情況下的測試,整體系統局部故障情況下該模塊受影響狀況的測試,頻發的異常請求阻塞資源時的模塊穩定測試等等。當然并不是程序員要對自己的每段代碼都需要進行這種完整測試,但是程序員必須清醒認識自己的代碼任務在整體項目中的地位和各種性能需求,有針對性的進行相關測試并盡早發現和解決問題,當然這需要上面提到的需求理解能力。
7、學習和總結的能力
程序員是人才很容易被淘汰,很容易落伍的職業,因為一種技術可能僅僅在三兩年內具有領先性,程序員如果想安身立命,就必須不斷跟進新的技術,學習新的技能。
善于學習,對于任何職業而言,都是前進所必需的動力,對于程序員,這種要求就更加高了。
善于總結,也是學習能力的一種體現,每次完成一個研發任務,完成一段代碼,都應當有目的的跟蹤該程序的應用狀況和用戶反饋,隨時總結,找到自己的不足,這樣逐步提高,一個程序員才可能成長起來。
一個不具備成長性的程序員,即便眼前看是個高手,建議也不要選用,因為他落伍的時候馬上就到了。
具備以上全部素質的人,應當說是夠格的程序員了,請注意以上的各種素質都不是由IQ決定的,也不是大學某些課本里可以學習到的,需要的僅僅是程序員對自己工作的認識,是一種意識上的問題。
所以當自己感覺遇到瓶頸的時候找個Java培訓學校系統的學一下,跟有多年工作經驗的Java老師探討一下,而且在學生中也有很多的牛人同學。相互探討才能出現新思路。
第四篇:java程序員需掌握的知識點
一、數據庫事務
答:是指作為單個邏輯工作單元執行的一系列操作,要么完全地執行,要么完全地不執行。事務處理可以確保事務性單元內的所有操作都成功完成,否則永久不會更新面向數據的資源。通過將一組相關操作組合為一個要么全部成功要么全部失敗的單元,可以簡化錯誤恢復并使應用程序更加可靠。一個邏輯工作單元要成為事務,必須滿足所謂的ACID(原子性、一致性、隔離性和持久性)屬性。
事務是數據庫運行中的一個邏輯工作單位,由數據庫管理系統(DBMS)中的事務管理子系統負責事務的處理。
原子性
事務必須是原子工作單元;對于其數據修改,要么全都執行,要么全都不執行。通常,與某個事務關聯的操作具有共同的目標,并且是相互依賴的。如果系統只執行這些操作的一個子集,則可能會破壞事務的總體目標。原子性消除了系統處理操作子集的可能性。
一致性
事務在完成時,必須使所有的數據都保持一致狀態。
隔離性
由并發事務所作的修改必須與任何其它并發事務所作的修改隔離。事務查看數據時數據所處的狀態,要么是另一并發事務修改它之前的狀態,要么是另一事務修改它之后的狀態,事務不會查看中間狀態的數據。
持久性
事務完成之后,它對于系統的影響是永久性的。該修改即使出現致命的系統故障也將一直保持。
二、多態,重寫,重載
重寫:重寫的方法必須和被重寫的方法相同的方法名、參數列表和返回值類型。
重載:重載時只能通過相同的方法名、不同的參數形式實現。不同的參數類型可以是不同的參數類型,不同的參數個數,不同的參數順序(參數類型必須不一樣)。
多態:父類對象持有對子類的引用,并可以調用子類的方法,但該方法的實際持有對象是子類。
三、JDBC思想
JDBC(Java Data Base Connectivity,java數據庫連接)是一種用于執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問,它由一組用Java編寫的類和接口組成。1.注冊驅動(只做一次)2.建立連接(Connection)
3.創建執行SQL的語句(Statement)
4.處理執行結果(ResultSet)
5.釋放資源(ResultSet, Statement,Connection)
四、抽象類與接口的區別
1、接口是公開的,里面不能有私有的方法或變量,是用于讓別人使用的,而抽象類是可以有私有方法或私有變量的。
2、實現接口的一定要實現接口里定義的所有方法,而繼承類可以有選擇地重寫需要用到的方法
3、接口要用implement實現,抽象類要使用extends繼承。
五、jsp和servlet之間的聯系
六、面向對象3大特征
繼承:繼承是一種聯結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父
類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。繼承性很好的解決了軟件的可重用性問題。
封裝:封裝是面向對象的特征之一,是對象和類概念的主要特性。封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。
多態性:多態性是指允許不同類的對象對同一消息作出響應。很好的解決了應用程序函數同名問題。
七、MVC
Model(模型)是應用程序中用于處理應用程序數據邏輯的部分。MVC模式:用一種將業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業務邏輯。
通常模型對象負責在數據庫中存取數據。
View(視圖)是應用程序中處理數據顯示的部分。
通常視圖是依據模型數據創建的。Controller(控制器)是應用程序中處理用戶交互的部分。
通常控制器負責從視圖讀取數據,控制用戶輸入,并向模型發送數據。
八、軟件開發模型:快速原型模型 優點:耦合性低、重用性高、部署快、可維護性高。
缺點:沒有明確的定義、不適合小型,中等規模的應用程序、增加系統結構和實現的復雜性。
九、hibernate的延遲加載:延遲加載也叫懶加載,是提高程序執行效率的一種機制,即只有真正使用該對象的數據時才會創建。
十、exeuteupdate()和executequery()區別:前者用于修改已有數據,比如增刪改。后者用于查詢數據,需返回查詢結果。
十一、單例模式
package SingletonDemo;//單例設計模式 public class Singleton {
/** * 實際開發中,我們通常會將餓漢模式和懶漢模式結合在一起來書寫單例設計模式。//這個成員變量就是用來返回記錄當前對外提供的那個對象。private static Singleton singleton;static{//在static初始化塊中初始化,餓漢模式。確保成員變量僅僅被初始化一次。
} //構造方法私有化 private Singleton(){}
} //定義一個對外的方法,能夠讓用戶調用該方法來獲取一個屬于該類的實例方法。//不管是哪個用戶來調用這個方法都需要注意這個方法的返回對象永遠是同一個。public static Singleton getInstance(){
} //懶漢模式
if(singleton==null){//第一次初始化。
} singleton=new Singleton();
singleton=new Singleton();return singleton;*/
十二、不用stop()的原因:因為它不安全。它會解除由線程獲取的所有鎖定。
不用suspend()的原因:suspend()方法容易發生死鎖。調用 suspend()的時候,目標線程會停下來,但卻仍然持有在這之前獲得的鎖定。掛起:wait()重寫啟動線程:notify()線程有四種狀態分別是:運行、就緒、掛起、結束。
十三、什么時候使用同步和異步
如果數據將在線程間共享,必須進行同步存取。
同步 的實現方法有兩種,分別是 synchronized, wait
與 notify。
第五篇:關于JAVA程序員應具備的能力和素質的調查問卷
關于JAVA程序員應具備的能力和素質的調查問卷
您好!
為了了解JAVA就業前景及不同行業對其的看法和態度以及成為JAVA程序員應該具備哪些素質和能力,我們特此展開這項調查。希望您能抽出寶貴的時間耐心地填寫,非常感謝您的支持與合作!您的職業:
學生()教師()公司職員()機關干部()科技人員()其他您的年齡:
10-19歲()20-29歲()30-39歲()40-49歲()50-59歲()60歲及以上()、1.你對JAVA了解嗎?()
A.相當了解B.有所了解 C.不太了解 D.不了解
2.你覺得學習JAVA有哪些就業方向(多選)()
A.JAVA程序員 B.手機軟件開發程序員 C.網站程序員 D.Java游戲開發 E其他
3.學習JAVA比學習其他語言的優勢在哪?()
A.簡單,易掌握 B.運行更加靈活方便 C.應用更廣泛 D.JAVA與業務和管理的連帶性極強 E.其他
4.你認為JAVA編程枯燥嗎()
A.很有意思,很有趣 B.很枯燥 C.有點乏味 D.有點意思
5.你覺得JAVA程序員的就業前景如何()
A.形式相當嚴峻 B.形式比較嚴峻 C.形式相當樂觀
6.如果你想成為一名JAVA程序員,你認為應該具備哪些素質。
A.團隊協作的精神 B.嚴謹的邏輯思維 C.勤奮的學習態度及實戰經驗 D.有創新精神 E.其他
7.JAVA程序員應該具備哪些能力()
A.開發能力 B.中間件的配置使用能力C.部署能力 D.網絡搭建能力 E.其他
8.你認為java程序員的哪項能力和素質最為重要()
A.團隊協作精神 B.編程能力 C.實戰能力 D.其他能力分析問題的能力,數學邏輯思維能力創新精神素質的培養
9.你認為要成為一名合格java程序員,我們學生應該學會并熟練哪些知識()
A.java編程初級知識 B.java編程高級知識 C.數據庫相關知識 D.數據結構相關知識
忠心感謝您能在百忙之中接受我們的調查,希望您生活愉快,工作順利!