10月24日看似一個普通的日子,卻也是一個很有意思的節(jié)日。1024是2的十次方,二進制計數的基本計量單位之一,因此每年的10月24日被大家親切稱為程序員節(jié)。
一、程序員的前世今生
很多良心企業(yè)和互聯網機構一直非常關注程序員健康,針對程序員經常周末加班與工作日熬夜的情況,倡議每年的10月24日為1024程序員節(jié),比如
兄弟網絡,在這一天就是拒絕程序員加班的。
1800年,一個名字叫做約瑟夫·瑪麗·雅卡爾的人,設計出人類歷史上首臺可設計織布機——雅卡爾織布機,對將來發(fā)展出其他可編程機器起了重要作用。
1834年,阿達·洛芙萊的朋友——英國數學家、發(fā)明家兼機械工程師查爾斯·巴貝其——發(fā)明了一臺分析機。阿達·洛芙萊開始致力于為該分析機編寫算法,并于1843年公布了世界上第一套算法。巴貝其分析機,后來被認為是最早期的計算機雛形,而阿達·洛芙萊得以“數字女王”之稱,她的算法則被認為是最早的計算機程序。
1936年,阿蘭·麥席森·圖靈向倫敦權威的數學雜志投了一篇論文,題為“論數字計算在決斷難題中的應用”。在這篇開創(chuàng)性的論文中,圖靈給“可計算性”下了一個嚴格的數學定義,并提出著名的“圖靈機”(Turing Machine)的設想。圖靈被稱為“計算機科學之父”。
1959年,葛麗絲·霍普創(chuàng)造了現代第一個編譯器A-0 系統(tǒng),以及商用電腦編程語言“COBOL”,被譽為COBOL之母 。
1972年,丹尼斯·里奇在貝爾實驗室的工作時間里感到無聊,所以他決定制作帶有花括號的C,并最終取得了巨大的成功。之后,他添加了分段錯誤和其他開發(fā)人員友好功能,以提高生產力。在星期天還有幾個小時的時間,他和他在貝爾實驗室的朋友決定創(chuàng)建一個名為Unix的操作系統(tǒng)。
1983年,比雅尼·斯特勞斯特魯普發(fā)明了C++,寫下了它的早期定義并做出了首個實現。
1994年,拉斯姆斯·勒多夫(Rasmus Lerdorf)為他的個人主頁CGI腳本制作了一個模板引擎,隨后采取開源化政策,被眾多編程愛好者追逐擁戴,也是目前
西安網站建設行業(yè)里,包括
西安兄弟網絡等等建站公司,都在使用的
PHP。
1995年,布蘭登·艾克在周末的時候設計了一種語言,用來為世界各地的每一個網頁瀏覽器提供支持。當初這門語言被稱為LiveScript,但隨著Java變得流行,他們決定將其重命名為
JavaScript。
總之,大約一九五幾年之后,各種編程語言相繼如春筍般出世。直至今天互聯網行業(yè)的發(fā)展越發(fā)迅猛,技術的更新迭代速度更是異常的快速。
二、程序員需要具備的技能
1、熟練開發(fā)工具
做為一名程序員至少熟練掌握兩到三種開發(fā)工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點推薦的開發(fā)工具,C/C++以其高效率和高度的靈活性成為開發(fā)工具中的利器,很多系統(tǒng)級的軟件還是用C/C++編寫。其次,能掌握一種簡便的可視化開發(fā)工具,如VB,PowerBuilder,Delphi,CBuilder,這些開發(fā)工具減小了開發(fā)難度,并能夠強化程序員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
2、熟知數據庫
為什么數據庫是如此重要?作為程序員,他們自然有自己的理由:很多應用程序都是以數據庫的數據為中心,而數據庫的產品也有不少,其中關系型數據庫仍是主流形式,所以程序員至少熟練掌握一兩種數據庫,對關系型數據庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多數據庫產品提供了可視化的數據庫管理工具,但SQL是基礎,是通用的數據庫操作方法。如果沒有機會接觸商業(yè)數據庫系統(tǒng),可以使用免費的數據庫產品是一個不錯的選擇,如mySQL,Postgres等。
3、了解操作系統(tǒng)
當前主流的操作系統(tǒng)是Windows,Linux/Unix,熟練地使用這些操作系統(tǒng)是必須的,但只有這些還遠遠不夠。要想成為一個真正的編程高手,需要深入了解操作系統(tǒng),了解它的內存管理機制、進程/線程調度、信號、內核對象、系統(tǒng)調用、協(xié)議棧實現等。
在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協(xié)議TCP/IP協(xié)議棧有很好的掌握,就需要迅速補上這一課,網絡技術已改變了軟件運行的模式,從最早的客戶/服務器結構,到今天的WEBServices,再到未來的網格計算,這一切都離不開以TCP/IP協(xié)議棧為基礎的網絡協(xié)議支持,深入掌握TCP/IP協(xié)議是非常必要的。
隨著技術的發(fā)展,軟件與網絡的無縫結合是必然趨勢,軟件系統(tǒng)的位置無關性是未來計算模式的重要特征之一,DCOM/CORBA是當前兩大主流的分布計算的中間平臺,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規(guī)范。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的“世界語”,是分布式計算的基石之一。
4、不要將軟件工程與CMM分開
大型軟件系統(tǒng)的開發(fā)中,工程化的開發(fā)控制取代個人英雄主義,成為軟件系統(tǒng)成功的保證,一個編程高手并不一定是一個優(yōu)秀的程序員,一個優(yōu)秀的程序員是將出色的編程能力和開發(fā)技巧同嚴格的軟件工程思想有機結合,編程只是軟件生命周期中的其中一環(huán),優(yōu)秀的程序員應該掌握軟件開發(fā)各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟件測試等。
5、需求理解能力
程序員要能正確理解任務單中描述的需求。在這里要明確一點,程序員不僅僅要注意到軟件的功能需求,還應注意軟件的性能需求,要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。
6、模塊化思維能力
作為一個優(yōu)秀的程序員,他的思想不能局限在當前的工作任務里面,要想想看自己寫的模塊是否可以脫離當前系統(tǒng)存在,通過簡單的封裝在其他系統(tǒng)中或其他模塊中直接使用。這樣做可以使代碼能重復利用,減少重復的勞動,也能使系統(tǒng)結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。
三、程序員的職業(yè)素質要求
1、團隊精神和協(xié)作能力
團隊協(xié)作是作為一個程序員應具備的最基本的素質。軟件工程已經提了將近三十年了,當今的軟件開發(fā)已經不是編程了,而是工程。獨行俠可以寫一些程序也能賺錢發(fā)財,但是進入研發(fā)團隊,從事商業(yè)化和產品化的開發(fā)任務,就必須具備這種素質。可以毫不夸張的說這種
素質是一個程序員乃至一個團隊的安身立命之本。
2、文檔習慣
文檔是一個軟件系統(tǒng)的生命力。一個公司的產品再好、技術含量再高,如果缺乏文檔,知識就沒有繼承,公司還是一個來料加工的軟件作坊。作為代碼程序員,必須將30%的工作時間用于寫技術文檔。沒有文檔的程序員勢必會被淘汰。
3、規(guī)范化的代碼編寫習慣
知名軟件公司的代碼的變量命名、注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規(guī)定,良好的編寫習慣,不但有助于代碼的移植和糾錯,也有助于不同技術人員之間的協(xié)作。
4、測試習慣
測試是軟件工程質量保證的重要環(huán)節(jié),但是測試不僅僅是測試工程師的工作,而是每個程序員的一種基本職責。程序員要認識測試不僅是正常的程序調試,而要是要進行有目的有針對性的異常調用測試,這一點要結合需求
理解能力。
5、學習和總結的能力
程序員是很容易被淘汰的職業(yè),所以要善于學習總結。許多程序員喜歡盲目追求一些編碼的小技巧,這樣的技術人員無論學了多少語言,代碼寫起來多熟練,只能說他是一名熟練的代碼民工(碼農),他永遠都不會有質的提高。一個善于學習的程序員會經??偨Y自己的技術水平,對自己的技術層面要有良好的定位,這樣才能有目的地提高自己。這樣才能逐步提高,從程序員升級為軟件設計師、系統(tǒng)分析員。
6、擁有強烈的好奇心
什么才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峰的源泉和動力所在。
生命不息,學習不止!
四、程序員同事的可愛
在我們的生活中,有這樣的一群人:常年如一日的單調著裝,讓人倍感嫌棄又想吐槽,超長反射弧和超高笑點,常常讓同事冷場,略顯愚鈍木訥的舉止,讓身邊的人覺得無聊又無趣……他們經常讓外人覺得莫名其妙,甚至以“異類生物”相稱呼,可卻經常神乎其技的寫幾行代碼,就能實現某個功能,讓人仰慕不已。
他們有著,與他們的高智商極不匹配的低情商,或許他們對朋友的關心不及對工作的十分之一,卻為我們“構建”出了一整個科技世界,沒有程序員,我們就沒有微博、微信、淘寶、滴滴、各種網頁、各種APP、各種智能、各種游戲……
就是這樣一群人讓我們的生活悄然改變著,
以最低調、踏實、核心的功能模塊搭建起這個科技世界,讓我們感受著科技力量的偉大和生活的便捷。程序員就像是一個個1024,一步一個腳印,悄無聲息地為世界進步貢獻著自己的力量。
他們善于學習、進取心超強的人。他們總是喜歡學習、嘗試新事物,求知欲望相當強。在互聯網這個行業(yè),技術的更新迭代速度很快,唯有不斷學習和嘗試,才能立于不敗之地,人都是做自己原本不能勝任的事情中,才能快速成長。正是基于這種信念,我們常常能在程序員的身上看到不竭的激情與滿滿的正能量。
五、全球程序員節(jié)·西安
為積極響應國家“一帶一路”倡議,啟迪創(chuàng)新思維,提升西安國際影響力,弘揚程序員精神,加快推進軟件和信息服務業(yè)成為大西安追趕超越的重要支柱產業(yè),著力打造全球“
軟件名城”和“
絲路硅谷”,第二屆“全球程序員節(jié)”將于2018年10月24日至25日在西安高新國際會議中心舉辦。
為傳承程序員精神,以榜樣的力量鼓舞廣大新生代軟件從業(yè)者帶著榮譽感、使命感和更高的熱情投身事業(yè),將在永久會址設立大咖程序員“星光大道”,采集并展示中國軟件產業(yè)開路人和領路人的手印,其采集對象包括
王永民、宮敏、求伯君、雷軍、張小龍、丁磊、王小川等對中國軟件產業(yè)發(fā)展做出卓著貢獻的“大咖程序員”。
軟件和信息服務業(yè)是數字經濟的先導性、基礎性和戰(zhàn)略性產業(yè),“全球程序員節(jié)”將以壯大數字建設大軍為使命,承載激情,傳播理念,積聚智慧,為全球的軟件開發(fā)者、科技企業(yè)、創(chuàng)投機構、行業(yè)意見領袖和科學領袖搭建交流合作的生態(tài)平臺,
驅動創(chuàng)新,碼動未來!