我看程序員(轉(zhuǎn)重粒子空間)
發(fā)表時間:2024-06-15 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]我看程序員<br><br>朋友請我寫篇文章,談?wù)勅绾尉幊。我非功成名就之高人,自己那點(diǎn)兒經(jīng)驗(yàn)?zāi)贸鰜頃蝗诵υ挼。但是看到周圍很多師弟師妹正在走我以前走過的錯路,使我不得不斗膽說幾句,只望大家在程序員的道路上一帆風(fēng)順就好。<br><br>程序員——一個...
我看程序員<br>
<br>
朋友請我寫篇文章,談?wù)勅绾尉幊。我非功成名就之高人,自己那點(diǎn)兒經(jīng)驗(yàn)?zāi)贸鰜頃蝗诵υ挼摹5强吹街車芏鄮煹軒熋谜谧呶乙郧白哌^的錯路,使我不得不斗膽說幾句,只望大家在程序員的道路上一帆風(fēng)順就好。<br>
<br>
程序員——一個毀譽(yù)參半的稱謂。想當(dāng)初曾經(jīng)被視作英雄,眾人景仰。而如今,卻被許多人瞧不起,客氣的說他們是“高技術(shù)工人”,不客氣的就直接稱其為“!绷恕D靈獎獲得者,Edsgar Dijkstra在他的《卑微的電腦程序員》一文中說:"對我來說,電腦程序員是個尊稱,但對其他一些人來說,電腦程序員確是不懂他自己在干什么,而是只會依指令行事之徒,一些只知道分析、追求語言特性的人!笨磥,許多人曲解了“程序員”這個名詞的涵義。那什么樣的人才是真正的程序員呢?我斗膽給程序員分為四類,請大家對號入座。<br>
<br>
一、高中生程序員<br>
<br>
這里絲毫沒有貶低高中生的意思。在美國,有大量的高中生從事程序員的職業(yè),他們的工作就是編碼、編碼、再編碼。很可悲,目前中國的大學(xué)生基本都是做這樣的工作,甚至某些碩士、博士也是如此。<br>
<br>
這一類型的程序員認(rèn)為語言是最重要的。他們認(rèn)真地學(xué)習(xí)語言的語法和函數(shù)庫。他們不停地學(xué)習(xí)語言,以為只要掌握的語言多、新,就能有競爭力,有好的工作。他們確實(shí)很厲害,VC、VB、Delphi、PB、Java、ASP、PHP等等都能拿來就用。但是,正因?yàn)樗麄,編程才被稱為“牛都可以干的事”。<br>
<br>
在正規(guī)的公司,高中生程序員整日都在添表格——工程師程序員把軟件劃分模塊,甚至詳細(xì)定義好了每一個函數(shù),高中生們就是向這些函數(shù)里添加代碼,如同添表格一樣。很多時候,高中生甚至不知道他做的項(xiàng)目是什么,只知道這個函數(shù)的功能是什么。<br>
<br>
在國內(nèi),如此正規(guī)的軟件公司很少,大多數(shù)還處于作坊式的開發(fā)模式,所以,高中生程序員還是很吃香的。幾個人一商量就開干,沒有完整的計劃,不考慮維護(hù)性、重用性,注釋懶得寫,文檔更不提。這樣,項(xiàng)目非常依賴這幾個人,自然他們的日子過得很好。他們最頭疼的事情是后期維護(hù),每當(dāng)要加堿功能、改bug的時候,他們就會發(fā)現(xiàn)自己已經(jīng)看不懂自己寫的代碼了。<br>
<br>
軟件工程正在逐步實(shí)行,公司越來越正規(guī),高中生程序員也就越來越難做了。年輕時,他們或許可以打拼一番,但是30、40歲之后,當(dāng)他們對新語言、新技術(shù)的接受能力已比不過年輕的程序員時,他們也就退出了競爭行列。<br>
<br>
當(dāng)“軟件集成電路”的夢想變?yōu)楝F(xiàn)實(shí),當(dāng)各種可重用控件、組件、類庫都已經(jīng)具備,那時就不再需要高中生程序員了。<br>
<br>
二、黑客程序員<br>
<br>
黑客決不是那些到處黑機(jī)器搞破壞的人,他們是一群癡迷于技術(shù)的人。<br>
<br>
他們從不循規(guī)蹈矩,不信奉任何規(guī)則、定理,總是從常人不可想象的角度去思考、編程、使用工具。這樣做的結(jié)果,或者發(fā)現(xiàn)系統(tǒng)漏洞,或者發(fā)現(xiàn)更高效、巧妙的方法。他們從不滿足于使用別人封裝的接口、定制的框架,總是要刨根問底,對技術(shù)的鉆研直至底層。<br>
<br>
他們中間,高學(xué)歷者并不多,多的是熱血青年。對他們來說,當(dāng)黑客程序員決不是職業(yè),而是愛好。當(dāng)一個人對自己所作的事充滿興趣時,他肯定能作出非凡的成果。這就是他們成功的根本原因。<br>
<br>
黑客是推動技術(shù)進(jìn)步的最重要力量之一。<br>
<br>
三、工程師程序員<br>
<br>
他們是企業(yè)的中堅(jiān),屬于管理階層。人們送給他們美稱——軟件工程師,但他們?nèi)韵矚g說自己是程序員,因?yàn)樗麄冎械拇蠖鄶?shù)是從高中生程序員成長起來的。<br>
<br>
“軟件工程”是他們的法寶,在這套理論導(dǎo)引下,他們領(lǐng)導(dǎo)者整個軟件的開發(fā)過程。他們知道什么樣的軟件是擁有市場的,知道用戶需要什么樣的軟件,知道該讓誰來編代碼、誰來測試,使整個團(tuán)隊(duì)協(xié)調(diào)一致。他們設(shè)計出了一個個可重用的模塊,讓公司的開發(fā)工作越來越高效。他們設(shè)計出的系統(tǒng)都是可維護(hù)的,能夠方便地做各種修改、擴(kuò)充?傊,他們是為高中生程序員做表格的人。<br>
<br>
他們也懂技術(shù),不過他們更注重的是技術(shù)的思想而不是末節(jié)的使用。比如當(dāng)Java出現(xiàn)的時候,他并不是去學(xué)Java的語法、函數(shù)庫,而是看各種介紹Java的文章,聽別人的評論,領(lǐng)會Java的功能和思想,思考怎樣利用Java的特性。<br>
<br>
隨著軟件業(yè)的發(fā)展,必須拋棄作坊式的手段,實(shí)施基于團(tuán)隊(duì)的科學(xué)的管理和開發(fā)過程。所以對工程師的需求越來越大,然而現(xiàn)在合格的、富有經(jīng)驗(yàn)的工程師卻很少。<br>
<br>
四、科學(xué)家程序員<br>
<br>
有些科學(xué)家在設(shè)計出算法后,將它交給別人在計算機(jī)上實(shí)現(xiàn)。另一些科學(xué)家在設(shè)計的同時便考慮到可實(shí)現(xiàn)性,并能利用計算機(jī)的特性增強(qiáng)算法,更可貴的是他們饒有興致地自己編程實(shí)現(xiàn)算法。后一種科學(xué)家便是科學(xué)家程序員。<br>
<br>
他們具有深厚的理論水平,帶動著計算機(jī)領(lǐng)域中各個學(xué)科的前進(jìn)。<br>