Ⅰ 程序員要具備什麼技能
一名合格的程序員需要掌握哪些技能呢?
熟練掌握開發工具
做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和java是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C編寫。而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVA One很可能會成為未來的主流開發工具之一。其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,C Builder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
熟知資料庫
為什麼資料庫是如此重要?作為程序員,他們自然有自己的理由:很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL, Postgres等。
對操作系統有一定的了解
當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。只有對操作系統有一定的了解後,你會發現自己上了一個新的台階。
懂得網路協議TCP/IP
在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式,從最早的客戶/伺服器結構,到今天的WEB Services,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,所以,深入掌握TCP/IP協議是非常必要的。至少,你需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。
明白DCOM/CORBA/XML/WEB Services存在的意義
隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分布計算的中間平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。程序員需要做的不僅僅是利用商業的開發平台來開發軟體,而是要理解這些技術的初衷,即為什麼需要這項技術,如果你能理解了這一點,再回頭看這些技術的具體實現,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布計算的基石之一。
不要將軟體工程與CMM分開
現代大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員,一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。一句話可以概括我的看法:「創意無限,流程保證」。
擁有強烈的好奇心
什麼才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峰的源泉和動力所在。
Ⅱ 一個程序員需要什麼技術,素質才是好的程序員/
作一個真正合格的程序員,應該具有的素質。
1:團隊精神和協作能力
團隊精神和寫作能力是作為一個程序員應具備的最基本的素質。軟體工程已經提了將近三十年了,當今的軟體開發已經不是編程了,而是工程。獨行俠可以寫一些程序也能賺錢發財,但是進入研發團隊,從事商業化和產品化的開發任務,就必須具備這種素質。可以毫不誇張的說這種素質是一個程序員乃至一個團隊的安身立命之本。
2:文檔習慣
文檔是一個軟體系統的生命力。一個公司的產品再好、技術含量再高,如果沒有缺乏文檔,知識就沒有繼承,公司還是一個來料加工的軟體作坊。作為代碼程序員,必須將30%的工作時間寫用於技術文檔。沒有文檔的程序員勢必會被淘汰。
3:規范化的代碼編寫習慣
知名軟體公司的代碼的變數命名、注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。 一些所謂的高手甚至叫囂高手寫的代碼一般人看不懂,我只能說他不是一名合格的程序員。
4:需求理解能力
程序員要能正確理解任務單中描述的需求。在這里要明確一點,程序員不僅僅要注意到軟體的功能需求,還應注意軟體的性能需求,要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。
5:模塊化思維能力
作為一個優秀的程序員,他的思想不能在局限當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。這樣做可以使代碼能重復利用,減少重復的勞動,也能是系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。
6:測試習慣
測試是軟體工程質量保證的重要環節,但是測試不僅僅是測試工程師的工作,而是每個程序員的一種基本職責。程序員要認識測試不僅是正常的程序調試,而要是要進行有目的有針對性的異常調用測試,這一點要結合需求理解能力。
7:學習和總結的能力
程序員是很容易被淘汰的職業,所以要善於學習總結。許多程序員喜歡盲目追求一些編碼的小技巧,這樣的技術人員無論學了多少語言,代碼寫起來多熟練,我們只能說他是一名熟練的代碼民工,他永遠都不會有質的提高。一個善於學習的程序員會經常總結自己的技術水平,對自己的技術層面要有良好的定位,這樣才能有目的地提高自己。這樣才能逐步提高,從程序員升級為軟體設計師、系統分析員、項目經理。
作為高級程序員,乃至於設計師而言,除了應該具備上述全部素質之外,還需要具備以下素質:
1、 需求分析能力
2、 整體框架能力
3、 流程處理能力
4、 模塊分解能力
5、 整體項目評估能力
6、 團隊組織管理能力
Ⅲ 山西北大青鳥:熟練的程序員應該掌握哪些Java開發技術
一個熟練的程序員需要掌握的知識是非常多,俗話說,活到老學到老。
計算機的更新是非常迅速的,對於程序員來說,想要掌握計算機最新的知識,需要不斷的學習新知識。
在學習Java知識的過程中,初學者和熟練的程序員學習的方法和需要掌握的技術是不同的,那麼對於熟練的程序員來說應該掌握哪些開發技術呢?下面山西電腦培訓為大傢具體介紹。
1、語法:無論學習任何語言,語法都是最核心的部分。
Java程序員也是需要熟練掌握語法,在進行代碼編寫的過程中,編輯器在出現的問題的地方會進行明確的顯示,對於語法的錯誤應該具備解決問題的能力。
2、命令:學習過程中還必須熟悉JDK附帶的一些常用命令和常用選項。
命令需要熟悉:appletviewer,HtmlConverter,jar,java,javac,javadoc,javap,javaw,native2ascii,serialver等多種。
如果您還沒有完全了解這些命令,那麼山西IT培訓認為你可能並不是很了解Java。
它包含的工具有很多種,其中Eclipse、Netbeans、JBuilder、Jdeveloper和IDEA等,還包含一些工程管理、常用的選項設置以及進行調試的功能。
4、測試:在任何開發中,測試的步驟都是非常重要的,只有掌握測試的方法才能讓後期代碼的使用更加穩定,並且java課程培訓機構發現還能對代碼進行自動測試。
5、管理:Java程序員必須熟悉使用ant來完成項目管理的常見任務,例如項目編譯、生成javadoc、生成jar、版本控制和自動測試。
6、規范:進行編寫的代碼必須符合流行的編碼約定,例如類名的第一個名稱的大小寫,成員的第一個字母的小寫和方法名稱,方法名稱的第一個單詞通常是動詞,包名稱全部是小寫等,java課程這樣明確的區分方法以便保證程序的可讀性。
Ⅳ 要想成為一個java程序員,必須掌握哪些技術
想要成為一名優秀的Java程序員,不能像無頭蒼蠅一樣亂轉,一些關鍵技術的掌握是非常重要的,比如說分享的這九點:
一、熟練的使用Java語言進行面向對象程序設計,有良好的編程習慣,熟悉常用的JavaAPI,包括集合框架、多線程(並發編程)、I/O(NIO)、Socket、JDBC、XML、反射等。
二、熟悉基於JSP和Servlet的JavaWeb開發,對Servlet和JSP的工作原理和生命周期有深入了解,熟練的使用JSTL和EL編寫無腳本動態頁面,有使用監聽器、過濾器等Web組件以及MVC架構模式進行JavaWeb項目開發的經驗。
三、對Spring的IoC容器和AOP原理有深入了解,熟練的運用Spring框架管理各種Web組件及其依賴關系,熟練的使用Spring進行事務、日誌、安全性等的管理,有使用SpringMVC作為表示層技術以及使用Spring提供的持久化支持進行Web項目開發的經驗,熟悉Spring對其他框架的整合。
四、熟練的使用Hibernate、MyBatis等ORM框架,熟悉Hibernate和MyBatis的核心API,對Hibernate的關聯映射、繼承映射、組件映射、緩存機制、事務管理以及性能調優等有深入的理解。
五、熟練的使用HTML、CSS和JavaScript進行Web前端開發,熟悉jQuery和Bootstrap,對Ajax技術在Web項目中的應用有深入理解,有使用前端MVC框架(AngularJS)和JavaScript模板引擎(HandleBars)進行項目開發的經驗。
六、熟悉常用的關系型資料庫產品(MySQL、Oracle),熟練的使用SQL和PL/SQL進行資料庫編程。
七、熟悉面向對象的設計原則,對GoF設計模式和企業應用架構模式有深入的了解和實際開發的相關經驗,熟練的使用UML進行面向對象的分析和設計,有TDD(測試驅動開發)和DDD(領域驅動設計)的經驗。
八、熟悉Apache、NginX、Tomcat、WildFly、Weblogic等Web伺服器和應用伺服器的使用,熟悉多種伺服器整合、集群和負載均衡的配置。
九、熟練的使用產品原型工具Axure,熟練的使用設計建模工具PowerDesigner和EnterpriseArchitect,熟練的使用Java開發環境Eclipse和IntelliJ,熟練的使用前端開發環境WebStorm,熟練的使用軟體版本控制工具SVN和Git,熟練的使用項目構建和管理工具Maven和Gradle。
以上!
Ⅳ 學習IT的技術那個最好
1、軟體工程專業
事實上,在所有的理工科專業當中,軟體工程是一門非常熱門的專業,就業率一直呈現上升狀態,在大學專業就業率50強排行榜中,軟體工程專業排在了第1位,畢業半年後就業率高達96.7%,在第4次科技革命發展態勢當中,軟體工程將會扮演著非常關鍵的角色,因此,未來那些具備軟體工程理論基礎和研究能力、實踐經驗的軟體工程專業人才,發展前途可以說是一片光明的。
2、數字媒體技術專業
數字媒體技術是由3種技術(計算機技術、抽象的數字、實物的媒體)結合在一起的專業,實際上,目前數字媒體技術的應用還是比較廣泛的,比如數字電視、數字電影、3D電影、4D電影等,都在數字媒體的范疇之內,畢業半年後就業率達到94.9%,畢業生可在數字娛樂、IT企業、影視與動漫公司等單位,從事動漫遊戲、軟體編程、電腦動畫、數字影視等領域的設計和開發。
3、信息安全專業
如今,隨著互聯網技術的快速發展,給我們的生活帶來極大便利,我們可以通過互聯網,快速獲取到相應的信息,但這也給我們的信息安全,帶來了安全隱患,因此,不管是國家、企業,還是個人,都必須重視信息安全,這個時候就需要信息安全專業的人才,來維護我們的信息安全,因此,在未來,信息安全都會是一個有發展前途的專業,就業率也很高,畢業半年後就業率達到93.9%。
Ⅵ Java程序員,最常用的20%技術有哪些
Java的技術體系是非常龐大的,需要我們學習的技術非常多,往往很多初學的人,通過互聯網查閱了一個龐大的學習列表,然後不知道如何下手。網上很多大牛列的技術不是不重要,但是掌握住企業應用的Java的核心技術,快速上手,是一種高效的學習手段。結合本人十餘年的項目研發和帶人經驗,整理出如下方面。
首先JavaSE是核心,這是初學Java人員應最先接觸學習的部分。Java的運行原理,jdk的配置,與jre的區別,基本數據類型,流程式控制制(順序結構、選擇結構、循環結構),數組、集合框架,異常處理等,這些都是比較容易學習的,需要多練習,在練習過程中加強理解。面向對象部分是Java初學者,尤其是沒有任何編程語言基礎的學起來有些難度,類、對象、繼承、封裝、多態等技術點需要多參照些現有的設計模型,學習設計的思路。諸如工廠模式、觀察者模式、代理模式等重要的設計模式也是需要學習的,否則在將來應用框架時就會只知其然,不知其所以然。IO流、多線程也一定需要學習,尤其是XML、JSON等文件格式一定要掌握,這在數據交互時常用。
其次是資料庫知識,作為初級Java程序員必須要掌握一種常用的關系型書庫的應用,如MySQL或oracle等,資料庫對象諸如表、視圖等的創建、增刪改查語句,尤其是查詢,在企業中經常需要從十幾張表、或幾十張表中查詢數據,所以對於如何進行內連接、外連接、以及聯合查詢等一定要掌握,另外對於索引、事務等也要掌握。
第三是Java Web部分,由於Java主要做web開發,一些前端技術HTML3、CSS5,javaScript,jQuery等這些不見得要學得有多深入,但是必須要掌握,tomcat、jsp,以及和資料庫的交互這些都是必須要掌握的。
第四是框架部分,主流的ORM框架有Mybatis、hibernate,MVC框架有Spring MVC、Struts2等,可以優先掌握主流的SSM框架組合,框架的學習有人認為很簡單,就按照規定、規范調用、使用唄,初學者可以先學習如何使用這些框架,然後慢慢的探究內部原理,因為框架是技術封裝、簡化的產物。
這裡面有些同類型的技術比如hibernate,如果會使用Mybatis了,那麼上手就會很容易,同理如果Spring MVC框架應用熟練了,那麼Struts2框架其實就可以現學現賣了。
一個web程序包含的模塊很多,不一定包括所有模塊。
系統模塊:Windows、Linux系統等。
存儲模塊:這里既包括關系型資料庫MySQL、oracle等,也包括內存資料庫redis、memcached等。
程序模塊:還可以細化成持久化模塊、業務邏輯模塊、表現層模塊,MVC框架的實現。
搜索模塊:應用solr或Elasticsearch等。
伺服器模塊:tomcat、weblogic、Resion等
中間件模塊:nginx、MQ消息隊列技術等。
在這里額外說一下技術和技能的區別,初學者學一個技術可能很容易,但是這個技術如何在企業開發環境中應用這就是技能了,所以在學習的同時,要多應用,最好通過一些案例項目來學習,這樣既高效,學習的還扎實。
補充一點,現在的應用級別越來越大,海量數據、高並發是處理的重點,單應用的程序已經無法滿足要求,分布式是趨勢,Dubbo、Zookeeper、Docker、SpringBoot、SpringCloud、MyCat等技術,包括上面系統模塊里提到的一些技術都要學習的。
Ⅶ Java程序員,最常用的20%技術有哪些
兩個月,這讓我想到了我當年第一份工作,也是兩個月從零學JAVA。當時就買了3本書,強啃了6周。
記住一點,你要抓重點,你只要讓人家知道,你足夠初級開發就可以了,學了長長一個列表,個個不精,被面試官隨便問起來,就糟了。倒不如抓住最基本的,反正你就是初級人員,只懂最基本的,是最正常的情況。
首先,學會一個J2EE伺服器,tomcat (Nginx或者httpd等web服務),學會的標準是,會下載,能啟動,知道什麼文件部署在什麼地方,能看到啟動畫面,能知道最直接,最關鍵的配置文件名字和位置。你要了解下其他的伺服器的名字,就足夠了。有人叫你去學weblogic?那是坑你,2個月weblogic,你最多也只能懂十分之一。太重。
其次,學一個框架,以前SSH,現在SSM,這些都多餘,你就只看spring MVC,因為所有的mvc框架都類似,你只要堅持你了解MVC,其他的我覺得是容易借鑒類推的,H和M,你就直接說,我沒有項目經驗,我是沒有實際接觸過的,我只了解一點點原理,這個不要花時間,最後去看幾眼文檔就可以了。spring MVC,就這么簡單,一個就行。
然後是資料庫,別趕時髦搞nosql,老老實實關系型,mysql就很好,坑淺應用多,最近連集群支持的都很好了,你只要強調一點,資料庫,你不是DBA,你還不懂如何調優,如何調執行計劃,你只懂增刪改查,所以你要學的就是T-SQL,標準是你能手寫帶條件的增刪改查,會復雜語句更好,稍微了解下sql效率方面的問題,為了面試也是可以。MSSQL在國內被鄙視的不行,如果有人叫你弄oracle,那又是太裝逼,我手下一票的5年程序員,其中有超過一半連oracle的AWR都不會讀,有的連數據字典都不知道。
IDE不多談,你總逃不過eclipse和幾個大廠的東西。要用簡單易用的,別花太多時間在這個上面。
設計模式你要稍微看一下,了解什麼是設計模式,你大可以老實說,你根本剛入行,只是粗通工廠模式和單粒,其他的需要在工作中學習,這樣既不會顯得完全不懂,也不會出什麼紕漏。
程序方面,jdbc需要了解下,相關的有連接字的寫法,如何准備和獲取結果,什麼是resultset這類東西,當然,資料庫連接的關閉和釋放也是需要的。
類和抽象類和介面的關系搞清楚,繼承和實現搞清楚,重載重寫搞清楚這些都是基本概念。
EJB現在不太用了,稍微了解下,你可以用spring所以不用手寫EJB了。spring除了MVC以外,還有很多項目,DAO可以看一下,比較初級。
由於java主要是B/S結構,無論是集成還是自己的前後端,你都要看一下http,整個http的生命周期是什麼?存在哪些步驟和不同的application負責哪個階段,相關的有幾個request和response實體,包含什麼是session了解下。
業務邏輯的話,上手仔細寫幾個例子就好了
前段你不需要了解太多,JSP JS就足夠了,你是程序員,不是前端的美工,不用去了解太多。jsp上有個容易忽視的基礎點:tag到底是什麼如何處理。jsp的生命周期這些也最好看一下。
基礎的devops稍微了解下, git的代表,github可以注冊一個賬號,搞清楚本地repo和遠程repo之間的關系即可。SVN更為簡單一點。
Maven也要學習一下,主要是pom文件的幾個主要的部分,尤其是depedency。
code smells方面手寫萬把行代碼。自己有個感覺,不用去刻意背javadoc。
去面試吧,祝你好運!