⑴ 程序員日是什麼是什麼
程序員日也叫"溢出節",即"選擇第256天是取其一位元組(8位)溢出的意思(從0開始,最大到255)"。(俄語:День программиста)是一個俄羅斯官方節日,日期是每年的第256天,也就是平年的9月13日和閏年的9月12日。
⑵ 好的程序員應該熟悉的幾門編程語言
如果想成為一個好的程序員,甚至架構師、技術總監等,顯然只精通一種編程語言是不夠的,還應該在常見領域學會幾門編程語言,正如我們要成為高級人才不僅要會中文還要會英文,甚至還要會德文、俄文一樣,其實是每 ...如果想成為一個好的程序員,甚至架構師、技術總監等,顯然只精通一種編程語言是不夠的,還應該在常見領域學會幾門編程語言,正如我們要成為高級人才不僅要會中文還要會英文,甚至還要會德文、俄文一樣,其實是每一種語言都給人另一種思維方式,編程語言也一樣。
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執行的指令那樣的程序,而是對執行機構進行改造、重組的方案。
⑶ 掌握多少門編程語言才能成為優秀程序員
掌握編程語言的數量跟一個程序員是否優秀是沒有直接關系的。
但是,優秀的程序員通常都不只懂得一種編程語言。顯然只精通一種編程語言是不夠的,還應該在常見領域學會幾門編程語言,正如我們要成為高級人才不僅要會中文還要會英文,甚至還要會德文、俄文一樣,其實是每一種語言都給人另一種思維方式,編程語言也一樣。
對每一類語言的學習達到一定程度,熟悉:
1) 是什麼? 什麼類型的語言,有什麼特點,適用於什麼平台,設計該語言的初目的(設計思想),有什麼優缺點,目前的流行情況,能在需要時想到它。
2) 做什麼?該語言能幹什麼,不能幹什麼,什麼情況下比較適合(不考慮人的因素),能夠確定它可以不可以。
3) 語法及其特點,需要時能和它。
4) 與其它語言相比,有哪些異同,能夠在選擇語言時決斷,深入地、辯證地認識它。
根據每個人的所有領域不同使用的主要語言也不同,工作用的語言肯定是需要「精通」的,除了工作用的語言,必須要掌握的語言有:C++(包括C)、Java或C#、SQL、Javascript,需要熟悉的:perl或python、XML,其它的可以根據興趣或應用領域選擇。
實際上,掌握了這些語言後已經從一個初級程序員變身為高級程序員,在學習過程中對設計模式、演算法、操作系統、微機原理等知識的涉獵基本達到了一個初級架構師的水平,如果自己的溝通能力、創新能力、管理能力等素質夠硬還可以做到CTO的職位,這也是本人推薦的程序員的成長技術路線。
編程語言其實只是個工具,什麼時候用哪個工具,如何用好每個工具非常重要,這里蘊含著很多知識、技能、思想。每學習一們編程語言,學習的不是語法,而是編程語言的精髓,解決問題的思維,重在思想。
編程是一種非常類似於學習的一種藝術形式或一種運動的技能,通過用心練習,不斷地從別人那裡學習,才會編寫的更好。不斷學習,提高代碼質量將有助於你成為一個更優秀的程序員。
⑷ 為什麼只有中國的程序員節是10月24日這個節日是怎麼來的呢
從科學的層面來說,因為1024是2的十進制,二進制是中國最基本的計量單位,以1024元為單位基礎,1G等於1024M,1M等於1024MB,因此有人提議把每年的10月24日定為程序員的節日。
一、程序員這個工作是做什麼的?
這個職位名稱聽起來有那麼一點高大上,程序員從事一些前後端程序開發以及運維測試的專業型工作人員,說簡單點,就是我們平時手機上使用的那些APP都是程序員們用代碼設計出來的。程序員這個職位的年齡比較年輕化,大多是30歲以內的年輕人在從事這個工作,超過30歲的程序員如果在這方面沒有升到管理層崗位,基本上會面臨轉行的現實問題。這個職位入行的門檻並不是很難,很多大學以及一些私辦的培訓機構都會開設關於程序員的專業,而且這個行業的薪資水平也是比較好的。因此吸引了一大批年輕人去學習這個相關的專業。