Ⅰ 程序員要具備什麼技能
一名合格的程序員需要掌握哪些技能呢?
熟練掌握開發工具
做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中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分開
現代大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員,一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。一句話可以概括我的看法:「創意無限,流程保證」。
擁有強烈的好奇心
什麼才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峰的源泉和動力所在。
Ⅱ 程序員要求或需要具備什麼能力
程序員對技術還有自學能力要求會多些,當然公司一般看你的技術能力,但是如果你本人自己也想在程序編程這方面多做出一些成績的話,最好是多學習,能自學最好。因為技術是不斷進步的,特別是做編程這方面的,你稍微落後,可能在開發新項目的時候,就跟不上隊伍了,自學的話,推薦一個網站網頁鏈接,你可以去看下,這個是純自學的,開源~
Ⅲ APP程序員需要具備的能力有哪些
app程序員需要具備的能力:肯吃苦、有創新能力、有上進心、服從上級安排等。
Ⅳ 從哪些點上可以體現一個程序員的實力
對於一個程序員來說,剛上任的新手,如果能夠將工作任務高效地處理,證明其工作能力還是具備一定的基礎的,企業大可繼續留任試用。如果這個程序員不僅能夠在短時間內高效處理工作內容,且對於工作的細節也十分地考究,充分全面地考慮,必然也代表其工作思維和普通員工不同。一個程序員如果對於工作只是在應付差事,那麼必然其能力也不會好到哪裡去,因此,一定要觀察期對待工作態度是否認真,然後進行其能力的初步判斷。
Ⅳ 年薪80萬的程序員有多厲害
你好,如阿里網路騰訊等互聯網大廠的工程師,資深(架構師水平)工程師是非常有實力的。
以阿里為例:
1、阿里工程師崗位職級
阿里巴巴集團採用雙序列職業發展體系:
一套體系是專家路線【P序列=技術崗】,程序員、工程師,某一個專業領域的人才,一共分為14級,從P1到P14,目前校招最低從P4開始。
一套體系是M路線,即管理者路線【M序列=管理崗】,從M1到M10。
考核因素是上一年的績效分數+直屬領導的打分+晉升委員會打分,這里的委員會一般由直屬領導+合作方的高管+懂業務的HRG組成。HRG:HR多面手,base在業務下面,在阿里話語權比別的互聯網HR高。
晉升標准:績效滿足3.75、主管提名、技術答辯通過。
P8架構師作為阿里「IT架構靈魂人物」的角色,他們不僅做著架構師的本職工作,還同時做程序開發,寫核心代碼的工作。另外,架構師依舊是技術高手,編程能力依然是一流的。
但根據當前的市場需求,互聯網大廠們對於普通Java開發人才需求逐年銳減,而對互聯網架構師人才的需求招聘量已經上升到50%,因此薪資更是不可同日而語。
對於想學習互聯網架構師的同學來說,北大青鳥、課工場等優秀品牌都是不錯的選擇。課程根據招聘需求制定,包含全部分布式微服務技術,對標阿里P8級別架構師。
希望我的回答對你有所幫助!
Ⅵ 作為一名合格的java程序員需要具備什麼能力
如何快速為合格的程序員從初入職場菜鳥到職場大咖,很多程序員在努力充實自己,有時候我們需要對自己進行一次能力定位,了解自己的優勢和沒有掌握的技術。芯學苑本文列出幾點作為初入職場的新手評估自己,明了前進學習的方向。1、技術能力(解決問題的能力)這是非常重要的事;過硬的技術能讓你得到面試機會,並在工作中游刃有餘。當公司招聘一個Java開發人員時,是會優先考慮能力因素的。在實際的項目開發中,一個程序員的技術能力等於其解決問題的能力。如果拿一個尺度來衡量這個能力的話,一個程序員的能力可以用能完成任務的數量和難度來衡量。一個程序員能基本無誤的完成項目中的一個功能算是合格,但在此之前,他對項目的生產力為負,為他布置的任務,中間環節的溝通,修補bug的時間其實要多於自己直接完成該功能的時間的。能較好完成一個完整模塊的程序員才算是較好的程序員,也是項目中的主要開發者。能獨立完成整個項目才是優秀的程序員。2、專業基礎(知識的積累)一個程序員的知識積累很大程度上決定了其解決問題的能力。知道如何編寫代碼是基本的技能,但是知道Java編程語言的原理,知道代碼背後的演算法將使你從人群中脫穎而出。3、主流編程工具今天,事實是,你不能成為一個樣樣都懂的人(雜而不精)。你必須選擇你要掌握的工具。有時這是由工作的環境決定的,但是按照下面說的去做也是一個很好的選擇:構建工具:Maven或Gradle。SCM:Git(不是GitHub。大不相同)。構建自動化:Jenkins。IDE:Netbeans或Eclipse——不僅用於編寫代碼,而且還從IDE中重構和調試代碼。我遇到了很多沒有如何從他們最喜歡的IDE調試的開發人員。Bug跟蹤:Bugzilla或Jira。4、JSF的知識應用程序伺服器所有Java開發人員應該知道如何在ApacheTomcat中部署。當Glassfish開發停止時,下一個最好的事情是JBossWildFly。5、溝通的能力溝通是我們做好一切事情的關鍵。我們必須與我們周圍的環境保持互動,無論是在我們的私人還是職業生活中。一個良好的程序員知道如何在各種團體面表達自己。也許對你來說顯而易見的東西在他人的角度來看並非如此。從大的尺度(比如一個人的工作生涯)來看,一個程序員知識積累的多少只決定於其自學能力和他對編程本身的興趣。在一個分工明確的項目中,程序員需要理解產品,和領導溝通理解自己的任務,和同事們溝通以正確的方式進行合作。無論哪一個方面溝通出了問題都不是小事情,同時,程序員還需要正確的傳達設計的實現難度,以及讓別人正確的理解自己設計模塊的介面。在不寫文檔時,正確的口頭溝通非常重要,需要寫文檔時,良好的編輯能力也算做是溝通能力的一部分。6、自學能力這是一個非常重要的技能,在你自己的空閑時間學習新的技能。不要等待公司為你提供培訓。你需要自己去學習新技術,提升自己在相關領域的水平。從WEB前端開發到架構模式,總是有一些新事物值得學習。經常閱讀博客和論壇,嘗試加入本地聚會小組。你學到的東西可以幫助你的事業。知識刷新頻率極快讓人無法追趕的這個時代,難免會有超出自己知識范圍的時候,此時你的自學能力決定了你能多快的完成任務。7、良好的團隊合作精神無論是部分編程還是大型項目,所有開發人員都是作為團隊的一部分在協同工作。你需要致力於團隊的目的,或幫助新的團隊成員克服障礙。不要存在這種「我只要做好我的本職工作,下班就直接回家」的態度。成為團隊的一部分,幫助周圍的同事,對自己的能力也是不小的提升。就像拿破崙說的不想當元帥的士兵不是好士兵,追求參與一個大型軟體系統的開發,是每個程序員的夢想。在此之前,我們應該學習的專業知識,達到優秀程序師的標准。最後希望各位程序員閱讀本文後能夠得到一些裨益,在這條路上走得更好。
Ⅶ java程序員應該具備哪些基礎能力
java方面編程的初級學員必需掌握的基礎知識:java語言、HTML、JSP以及至少一種資料庫。這是最低的標准,但是也是最高的要求,因為基本上其他相關的技術和架構都是基於這些以上的。總之,我覺得都是一通百通,基本上做一個項目就能熟練掌握一種技術。
至於企業方面:本人先後在國內幾個大的軟體公司工作過,外企也差不多。小公司我沒有去過,但是我覺得小公司不能去,學的技術好像很多,但是其實阻礙了一個工程師從一個工程師到項目經理或者技術經理的發展,因為小公司做的不可能是很大的項目,難么架構和設計不那麼嚴謹,這樣從宏觀來看對一個程序員是沒有好處的。
企業方面根據所做項目的不同用到的技術也不一樣,而基本上大一點的公司都有自己的主營項目,也就是強項。比如亞信是做通信行業的,目前處在web化階段,其對於java工程師的需求很大,但是它的核心還是C語言的,所以一個java程序員在這樣的公司是不會有多大發展的,也學不到什麼東西,值得一提的是這種公司都有自己的工具軟體,也就是把一些常用的模塊或者功能都做好了,你只要調用就行了,所以基本上你到這種公司學不到高深的技術,以後跳槽也難! 現在大一點的公司都有自己的工具軟體,目的是封裝常用的模塊,縮短開發周期,提高運行效率,但是對於喜歡技術的人來說就沒有什麼好處了。
最後,想說的是:企業其實需要的是學習能力強的人,踏實肯干就會得到認可。至於技術都是進入公司以後的事情,只要上面說的幾樣搞清楚了,面試談的不錯,加點技巧就可以了!
java 學習資料要視頻干什麼呢? 用Eclipse工具自己買本書或者到網上下幾個程序源代碼研究一下,再寫幾個小例子就差不多了!
希望可以幫到您,謝謝!
Ⅷ 除了編程語言,程序員還需要具備哪些能力
抽像思維能力
作者認為這是程序員最重要的能力。我們在編程時,用到的都是一些抽像的概念。作者認為應該把培養抽像思維能力作為平時練習最重要的事情長期做下去。
問題分解能力
現實編程時,我們要解決的問題往往都比較大,比較復雜。怎麼樣把復雜的大問題分解成一個個小問題,再逐個去解決這些小問題。這個就是問題分解能力。缺少問題分解能力的人,拿到問題時總會沒有思路,因為他們不懂地把問題分解成一個個簡單地可解決的問題。
模式識別
作者舉了個笑話:在一個程序員的面試過程中,面試官問被試者,微波爐著火了怎麼辦?被試者說把微波爐扔到窗外。面試官繼續問如果咖啡機著火了怎麼辦?被試者說把咖啡機裝在微波爐里,然後扔到窗外。
這里作者想提的其實是一種問題轉換的思路。把遇到的一個問題分解後,把子問題使用已經有成熟解決方案的方法來解決。其實模式識別就是抽像思維的一種。我在教女兒算數時,就用了這個方法,我先問她你有三個蘋果,媽媽吃掉一個還剩下幾個。等她理解後,再問她你有三個桃子,媽媽吃掉一個還剩下幾個。所以,實際上我是在教我女兒抽像思維的能力,問題的重點不是蘋果或桃子,而是三和一。
判斷代碼質量的能力
這里作者講的是不要過早,過度去優化代碼,不要片面去追求完美解決方案。代碼的性能和質量要和問題的復雜度相當。
怎麼樣去判斷代碼的質量和效率剛剛好呢?作者沒有提,我覺得這個需要有一些 benchmark 工具來測量以及實際使用來衡量。在這一點上,其實我比較少看到程序員犯這方面的毛病,看到更多的是完全沒有優化或沒去思考性能問題的低級錯誤。
練習
練習,練習,練習。沒有捷徑。10000 小時理論在編程這件事情上一定是真理。可能有天才,但只要你不是特別笨,在一個細分領域持續練習,投入時間,一定會成為專家。當然,這里有些人是工作一年,學了三年的經驗,有些人是工作了五年,只學了一年的經驗。
基本原理
這條是我加的。當學會用 Java 讀寫文件後, 不管是 Swift 還是 Python ,他們的讀寫文件的方法都類似。當熟練使用 Java 的多線程編程,並且理解線程的運作方式之後,要用其他語言實現多線程編程,只需要查看 API DOC 很快就可以寫出多線程代碼。類似的概念還有網路編程,內存管理,進程間通信,設計模式等等。新技術層出不窮,但基本原理卻發展異常緩慢,而且基本保持不變。
作者:kamidox
鏈接:https://www.jianshu.com/p/9d5366dd157f
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。
Ⅸ 現在的公司需要的程序員要具備什麼能力啊
最佳答案
作一個真正合格的程序員,應該具有的素質。
1:團隊精神和協作能力
團隊精神和寫作能力是作為一個程序員應具備的最基本的素質。軟體工程已經提了將近三十年了,當今的軟體開發已經不是編程了,而是工程。獨行俠可以寫一些程序也能賺錢發財,但是進入研發團隊,從事商業化和產品化的開發任務,就必須具備這種素質。可以毫不誇張的說這種素質是一個程序員乃至一個團隊的安身立命之本。
2:文檔習慣
文檔是一個軟體系統的生命力。一個公司的產品再好、技術含量再高,如果沒有缺乏文檔,知識就沒有繼承,公司還是一個來料加工的軟體作坊。作為代碼程序員,必須將30%的工作時間寫用於技術文檔。沒有文檔的程序員勢必會被淘汰。
3:規范化的代碼編寫習慣
知名軟體公司的代碼的變數命名、注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。 一些所謂的高手甚至叫囂高手寫的代碼一般人看不懂,我只能說他不是一名合格的程序員。
4:需求理解能力
程序員要能正確理解任務單中描述的需求。在這里要明確一點,程序員不僅僅要注意到軟體的功能需求,還應注意軟體的性能需求,要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。
5:模塊化思維能力
作為一個優秀的程序員,他的思想不能在局限當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。這樣做可以使代碼能重復利用,減少重復的勞動,也能是系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。
6:測試習慣
測試是軟體工程質量保證的重要環節,但是測試不僅僅是測試工程師的工作,而是每個程序員的一種基本職責。程序員要認識測試不僅是正常的程序調試,而要是要進行有目的有針對性的異常調用測試,這一點要結合需求理解能力。
7:學習和總結的能力
程序員是很容易被淘汰的職業,所以要善於學習總結。許多程序員喜歡盲目追求一些編碼的小技巧,這樣的技術人員無論學了多少語言,代碼寫起來多熟練,我們只能說他是一名熟練的代碼民工,他永遠都不會有質的提高。一個善於學習的程序員會經常總結自己的技術水平,對自己的技術層面要有良好的定位,這樣才能有目的地提高自己。這樣才能逐步提高,從程序員升級為軟體設計師、系統分析員、項目經理。
作為高級程序員,乃至於設計師而言,除了應該具備上述全部素質之外,還需要具備以下素質:
1、 需求分析能力
2、 整體框架能力
3、 流程處理能力
4、 模塊分解能力
5、 整體項目評估能力
6、 團隊組織管理能力