❶ 掌握多少門編程語言才能成為優秀程序員
掌握編程語言的數量跟一個程序員是否優秀是沒有直接關系的。
但是,優秀的程序員通常都不只懂得一種編程語言。顯然只精通一種編程語言是不夠的,還應該在常見領域學會幾門編程語言,正如我們要成為高級人才不僅要會中文還要會英文,甚至還要會德文、俄文一樣,其實是每一種語言都給人另一種思維方式,編程語言也一樣。
對每一類語言的學習達到一定程度,熟悉:
1) 是什麼? 什麼類型的語言,有什麼特點,適用於什麼平台,設計該語言的初目的(設計思想),有什麼優缺點,目前的流行情況,能在需要時想到它。
2) 做什麼?該語言能幹什麼,不能幹什麼,什麼情況下比較適合(不考慮人的因素),能夠確定它可以不可以。
3) 語法及其特點,需要時能和它。
4) 與其它語言相比,有哪些異同,能夠在選擇語言時決斷,深入地、辯證地認識它。
根據每個人的所有領域不同使用的主要語言也不同,工作用的語言肯定是需要「精通」的,除了工作用的語言,必須要掌握的語言有:C++(包括C)、Java或C#、SQL、Javascript,需要熟悉的:perl或python、XML,其它的可以根據興趣或應用領域選擇。
實際上,掌握了這些語言後已經從一個初級程序員變身為高級程序員,在學習過程中對設計模式、演算法、操作系統、微機原理等知識的涉獵基本達到了一個初級架構師的水平,如果自己的溝通能力、創新能力、管理能力等素質夠硬還可以做到CTO的職位,這也是本人推薦的程序員的成長技術路線。
編程語言其實只是個工具,什麼時候用哪個工具,如何用好每個工具非常重要,這里蘊含著很多知識、技能、思想。每學習一們編程語言,學習的不是語法,而是編程語言的精髓,解決問題的思維,重在思想。
編程是一種非常類似於學習的一種藝術形式或一種運動的技能,通過用心練習,不斷地從別人那裡學習,才會編寫的更好。不斷學習,提高代碼質量將有助於你成為一個更優秀的程序員。
❷ 程序員要學習哪些知識呢
如果做一個專業的程序員:
1.基礎語言知識 :從底層的ASM 到結構化的C,到面向對象的C++ JAVA,如果不能都精通,但是要了解,至少要精通一門
2.基礎數學知識: 高等數學(數學分析) 線性代數 離散數學,概率.數理統計等等
3.基礎計算機原理:操作系統原理,微機原理,編譯原理 資料庫原來等等
4.看你感興趣的學習一個方向:圖形學...windows應用程序開發...Linux程序開發,資料庫方面 網路編程,等等
----------------------------------------------------------------------
如果只是想快速編軟體:
敬告:這樣不會成為一個真正的高手!
比如windows平台的編程:<這里僅僅是比如>
學習C語言(熟悉結構化編程)->《windows程序設計》(學習windowsAPI知識) ->可以用API進行編程了。
但是現在用純API編程幾乎絕跡。不是淘汰,因為商業用要盡快成為軟體好賣,API開發會消耗程序員大量時間,但是API是基礎。
或者
學習C++語言(熟悉面向對象技術)->《MFC程序設計》(學習MFC編程)->MFC開發 -> MFC應用比較廣
.net技術我沒有接觸過。現在正流行這個,等樓下的給你介紹吧!
------------------------------------
相比較而言,用DELPHI最省事。但是你要了解Object Pascal語言,這個編程工具是以這個語言為基礎的。Delphi開發也是很不錯的。
-------------------------------------
以上只是一個建議,學習不可能簡單,而且路子不一樣,上邊提到的兩windows書,是微軟出版社,在這個方面最權威的書。
❸ 程序員具體要學什麼
如果目的是考個程序員等級證書,那麼精通一門語言即可;對資料庫知識要達到了解的程度,至少該語言涉及到的編程內容與資料庫交互部分要明白;至於網路方面的知識要看該語言與網路之間的關系如何;例如作C/S結構的編程對網路知識稍有了解即可;但若做B/S結構的編程那麼對網路的知識了解要多些。
要成為一個程序員,不再於你掌握的編程語言越多越好;而在於你對於所掌握的語言了解的越精越好,哪怕你只透徹地明白一門語言即可。
❹ 好的程序員應該熟悉的幾門編程語言
如果想成為一個好的程序員,甚至架構師、技術總監等,顯然只精通一種編程語言是不夠的,還應該在常見領域學會幾門編程語言,正如我們要成為高級人才不僅要會中文還要會英文,甚至還要會德文、俄文一樣,其實是每 ...如果想成為一個好的程序員,甚至架構師、技術總監等,顯然只精通一種編程語言是不夠的,還應該在常見領域學會幾門編程語言,正如我們要成為高級人才不僅要會中文還要會英文,甚至還要會德文、俄文一樣,其實是每一種語言都給人另一種思維方式,編程語言也一樣。
1.匯編語言
每種架構CPU都有自己的匯編語言,如果不涉及很底層的修改,了解X86的即可,理解一下機器語言的工作方式,便於優化核心代碼。
2.C
幾乎適用於各個領域,應該是目前用途最廣泛的編程語言(開發人數不是最多,但涉及到的領域、項目數量應該是最多的,目前尚沒有數據支撐這一點)。本人接觸到的第一門編程語言,除了C++也是最喜歡的一本編程語言,非常美的語言,無論從其語法、編程思想、運行效率、靈活性等都有著無五倫比的優勢,雖然沒有直接支持面向對象的語言特性,但很多項目也將面向對象的思想應用於C語言應用的開發。C語言出生40餘年仍然風糜世界,並被大量應用於各個領域、各種項目,這本身就是一個奇跡,包括後來的C++、Java、C#、Javascript 等等眾多主流的編程語言都深受其影響。 學好C語言本身其實並不難,但C語言是與操作系統近距離工作的一種編程語言,由於其運行環境的復雜性導致了寫好它必須先熟悉其環境,所以要求編程者對操作系統乃至硬體都要非常熟悉,所以學C語言的人感覺學好C語言很難,其實是用好C語言太難。比如指針,其實不是指針本身比較難,而是指針用不好會導致系統內存的破壞,破壞運行環境,所以會讓程序員感覺指針很難。
3.C++、鑒於它是C語言的超集,基本包括了C語言的所有特性(C99標准),得益於C語言的廣泛應用,幾乎適用於各個領域,各種操作系統平台,也是個人認為最難的一種編程語言,但一旦精通之後再稍加學習其它語言很容易,基本無敵。其難在於功能強大與靈活,學好它的難度就是:C語言的難度+C++面向對象特性+面向對象編程。C++是本人最喜歡的編程語言,其學習過程是漫長的,但一旦精通了C++,學習其它任何語言都非常快,它貫穿了從硬體到對象的整個過程,學會了很容易讓人看透編程語言的所有內幕。
4.Visual Basic (.Net)、DelphiWindows上的快速開發語言,特別是對於界面比較多的應用,開發速度很快。其實C++ Builder也把擴展了一下C++也可用於快速開發,但自從有了C#以後,搶佔了很大一部分RAD的市場,用的人也少了。
5.Java、C#二者都可算是比C/C++更高一級的編程語言,一般不直接編譯成機器碼,需要通過虛擬機或類似虛擬機的運行時來運行,可以實現跨平台。他們與C /C++的不同之處就在於他們的編譯過程分為兩個階段:編譯和運行時編譯,其實第一次的編譯並不是直接生成機器碼,而是生成一種便於編譯成機器碼的中間代碼,在實際運行的時候再通過所謂的運行時編譯器(Just-In-Time Compiler)根據需要將中間代碼編譯成機器碼並執行,實際上第一次編譯更准確一點說是翻譯。
Java運行之廣也是無人不知無人不曉,但其缺點在於對UI的支持不太好,無論在哪個平台做的界面都不太好,特別是在Windows上,用Java 實現界面的應用很少;C#是微軟.Net戰略的主要語言,也可以實現與Java一樣廣泛的應用,包括桌面應用和WEB應用,而且對UI的支持那是剛剛的。雖然C#在Linux陣營也有Mono項目,雖然該項目Novell主持,但開源項目哪能像微軟一樣給力,實際應用非常少,所以C#的跨平台平不理想,僅限於微軟的Windows系列(包括移動應用)。
6.Javascript、ActionScriptWEB開發前端腳本,特別是AJAX被作為一個專有名詞提出來之後前台腳本已經不單單是進行一些簡單的輔助,而成了WEB UI的主要實現形式,並且產生了很多流行的框架項目,如ExtJS、JQuery、Dojo等。這些語言與前面幾種編程語言不同之處還在於其弱類型特性,屬於動態語言,設計思想與前面幾種有些不同,雖然都支持面向對象但其實現方式稍有不同。學習它們會拓寬思路,幫助我們更深刻地理解編程語言。
7.shell、VB Script、Python、Perl、Ruby、PHP、TCL腳本語言,特別是shell、VS Script屬於輕量級的腳本語言,一般只用於批處理(雖然它們可以完成非常復雜的功能),尤其是shell(准確地說shell不是一種編程語言,由於該語言是它專屬,暫以代之);特別是shell應用范圍最少,而後面的四種除了可用於批處理,還可以用於WEB編程,而且Ruby用於WEB開發已經非常流行。
其中Python是本人比較喜歡的一種,它把程序的可讀性要求提高了一個檔次,把代碼的縮進列入了語法范疇,這應該也是編程語言的趨勢,以後可能將注釋的添加也列入注釋范圍,比如對每一個類、每個函數必須填寫相應的注釋,否則編譯不通過,這樣有助於更好地統一、執行一個工程編碼的規范。
8.Lua、Matlab屬於小眾的編程語言,Lua有一個嵌入式腳本引擎,非常輕量級;Matlab的所謂M語言與Lua類似,它是Matlab專用的腳本語言。
不同的領域都有一些專門的腳本語言,真的希望這些語言能夠是一種。
9.XML、HTML、XSLT、CSS這些語言又是另一種類型的編程語言,這些語言通過標記來表示,特別是XML、HTML是一種靜態的標記語言。而XSLT則可以有動態之意,屬於 XML的一種派生語言,可以將XML文檔轉換成其它格式的文本文檔這使得數據的展顯非常方便,XML用於表示數據,通過不同的XSLT表現為不同的樣式。
嚴格來講CSS不應該算作一種編程語言,但它的確通過與HTML配合可以實現類似XSLT的效果,只是它暫時未從HTML中獨立而已。
10.Verilog、VHDL硬體描述語言,用於集成電路設計。它們也是編程語言,只是它編譯後的產物不是類似CPU執行的指令那樣的程序,而是對執行機構進行改造、重組的方案。