① 一個優秀的程序員至少要懂幾種語言
先學c,在學數據結構和演算法,然後學學c++或java.c是面向過程的後兩者是面向對象的,這些學會了在學別的就不愁了,要知道語言是變得,但基本是不變的。萬變不離其宗嗎!
② 程序員英語詞彙
程序員如何掌握計算機英語干程序員是一項很辛苦的工作,要成為一個高水平的程序員尤為艱難。這是因為計算機軟體技術更新的速度越來越快,而這些技術大多來源於英語國家,我們在引進這些技術時往往受到語言障礙的制約,嚴重影響到對新技術的理解和消化。首先編程本身就依賴於英語,雖然現在技術的發展,可以使得某些開發工具在變數名和欄位名中支持中文,但還未發現能夠完全使用中文的編程語句。其次,軟體開發中的技術文檔和資料大都是來自英文,即使有翻譯好的,不是晦澀難懂,就是譯法混亂,比如:roll back就有"回滾"、"回退"、"返回"、"重算"等多種譯法,又如我們遇到翻譯後的術語"域",往往不清楚譯者是根據"field"、"region"還是"domain"所譯(如果閱讀原文則不存在這些問題)。還有更重要的一點,這就是等待譯文會嚴重影響我們掌握新技術的時間。通常,一本外版計算機圖書從獲得版權到翻譯出版要一年的時間。就算原作者消化新技術和寫作的時間最短為一年,那麼加起來這已經超過通常軟體版本的更新周期(軟體版本的更新周期一般是1年至2年),這意味著當你通過閱讀翻譯資料掌握這一版本的軟體時,可能該版本已經淘汰至少是面臨淘汰。當然,這並不是說國內沒有好的譯者和譯文,也不是說不能通過閱讀譯文來進行學習。而是說通過別人翻譯的間接閱讀風險較大,如果能掌握計算機英語,利用第一手原文資料進行學習,除了效率之外,被誤導的風險較小。比如:國內引進的一部外版好書《Java編程思想》(原書名《Think in Java》),其翻譯水平較差,就嚴重影響了閱讀和學習,不少讀者深有體會。如果讀著有著過硬的計算機英語水平就可以按照書上提供的作者網址下載原文閱讀,不但可以獲得原汁原味的感受,還可以免費下載該書最新的第二版(據悉機械工業出版社已經取得該最新版本的版權,但該書要到2001年上半年才能面市)。
因此,我們可以得出這樣的結論,干程序員這行實在是離不開英語。實際上,可以毫不誇張地說英語是IT的行業語言。由於英語的優勢,印度、愛爾蘭等國的軟體業在國際上比我們更有競爭力,這並不是說我們的程序員在編程和開發能力上不如別人,而是在使用計算機英語水平上差距太大。不久前在南京舉辦的一次高規格的軟體開發交流會上,就遇到過印度專家講課,英文翻譯譯不下去的情景,因為太多的IT專用術語和縮略語以及很強的專業知識使得沒有計算機背景的英語專業翻譯無能為力,而在場的開發人員因為語言障礙又無法和印度專家直接溝通,錯過了一次極好的交流學習機會。現在,已經有越來越多的程序員意識到計算機英語的重要性了,這種壓力一方面來自進一步向高級程序員或資深IT開發人員發展的需要,一方面來自於後起之秀不斷競爭的威脅。對於前者,沒有較好的計算機英語,能難進一步發展,晉升到更高的技術職位;對於後者,不少大學已經開始使用原版教科書進行專業授課,畢業生的計算機英語水平實在是後生可畏,挑戰是不言而喻的。
那麼,一個程序員應該怎樣去學習和掌握計算機英語呢?是立即開始背英漢計算機字典還是先考完6級再考"托"考"G"?其實,在下定決心之後最關鍵的是要搞清6個W,即:為什麼學(why)、學什麼(what)、怎樣學(how)、何時學(when)、何處學(where)、跟誰學(who)。下面我們就談一談這6個W。
首先是為什麼要學計算機英語。幾乎所有的程序員都知道學習計算機英語的重要性,但並不是所有人都具有學習的主動性。這個問題的提出就是要讓我們從自身的需求出發,掌握學習的主動性。一旦你有強烈的學習動機,任何學習上的困難都不會認你屈服,而你的每一點進步都將給你帶來無比自豪的感覺。
學什麼,是死背單詞?還是猛摳語法?其實都不是。計算機英語的學習是一項系統工程,需要找到一個適合自己的學習目標,並從詞彙、語法、閱讀、寫作多方面去融匯貫通。用程序員的術語講,"學什麼"的問題本質上是一個"確定系統邊界"的問題。應為學習計算機英語是一個很寬泛的概念,若不根據個人的具體情況進行定義,恐怕難以有一個可以管理學習目標。無目標的或邊界不清的項目往往是失敗的項目,在學計算機英語的問題上也是一樣。因此,我們先要根據自己的實際英語水平和工作需要界定計算機英語學習的系統邊界。關於實際英語水平,我們可以簡單地以大學非英語專業的英語教育作為參考,以通過大學英語四級考試(CET4)作為基線,即如果你通過了CET4,則表明你的英語水平為中高級,詞彙量接近5千,不存在基本的語法問題,有一定的讀寫能力;如果你沒有通過CET4,則表明你的英語水平為初中級,詞彙量不足4千,可能存在一些語法問題,讀寫能力較弱。關於工作需要,我們可以將計算機英語學習對象劃分成計算機研發人員、泛IT人員。其中計算機研發人員是指從事計算機研究和開發的專業人員,他們又劃分為軟體研發和硬體研發,顯然程序員是屬於前者。計算機研發人員要掌握的計算機英語最專業,要求最高,但軟體硬體各有側重。泛IT人員是指在IT行業從業的或與IT行業有密切聯系的那些非研發人員,包括操作使用人員、技術管理人員、支持服務人員等等。不難看出,泛IT人員對計算機英語的要求不是太高,也不太專業,一般能夠使用英文界面的軟體,能夠閱讀原版的操作手冊和說明書即可。針對以上的劃分,我在下表中大致給出了計算機英語的學習目標:
表1 計算機英語的學習目標
初中級 中高級
泛IT行業人員 掌握計算機英語的基本術語;
了解計算機英語中常用的語法和慣用法;
能藉助字典閱讀英文界面和在線幫助以及簡單的操作手冊,閱讀熟讀在70-90詞/分鍾。 掌握計算機英語的常用術語和縮略語; 掌握計算機英語中語法和慣用法的表達方式和功能;
能藉助字典閱讀英文文檔和技術資料,閱讀熟讀在100詞/分鍾以上;
能使用英文編寫簡單的文檔。
計算機研發人員 掌握計算機英語的常用術語和縮略語;
熟悉計算機英語中的語法和慣用法;
能閱讀英文界面和在線幫助以及簡單的操作手冊,閱讀熟讀在80-100詞/分鍾。 掌握大量的計算機英語術語和縮略語;
熟練掌握計算機英語中語法和慣用法的表達方式和功能;
能閱讀英文文檔和技術資料,閱讀熟讀在100詞/分鍾以上;能藉助字典翻譯專業技術圖書。
能使用英文編寫簡單的技術文檔和程序注釋。
知己知彼,百戰不殆。在了解了學習計算機英語的一般要求之後,接下來就需要對自己的具體情況進行具體分析,制定一個學習計劃或簡單地定一個學習方向。作為程序員學習計算機英語的根本目的是為了提高自己在英語環境中掌握計算機技術的能力,所以學習的內容應該是圍繞本專業的領域展開。對於沒有上過計算機專業英語課程的程序員來說,學習的重點應該是掌握專業詞彙和術語,了解計算機英語的一些規范譯法和習慣用法。對於有一定計算機英語基礎的程序員則應該把重點放在提高閱讀速度和閱讀質量上,並逐漸習慣使用英語注釋程序撰寫文檔。
在明確學習目的和學習方向之後,還必須有一個好的學習方法,"怎樣學"就是一個學習方法問題。這其中還包含了何時學、何處學、跟誰學等一系列問題。
在這里我建議把短期的系統學習和長期的日常學習結合起來,這樣做的效果最好,也最科學。所謂短期的系統學習是指集中一段時間系統地學習計算機英語,這對於沒有參加過大學計算機英語課程學習程序員尤為重要。而日常的學習則是指在日常工作用有意識地多接觸和多使用計算機英語,邊用邊學,持續不斷地積累提高。下面我就從這兩個方面來具體談一談。
要系統地學習計算機英語,最好是參加專門的計算機英語課程培訓班。培訓班的選擇非常重要,好的老師、成功的辦學經驗和系統的課程設置都是選擇的重要依據。然而大多數程序員工作繁忙,可能採取的方式多是自學了。如果不能選擇一位好老師,那就只能選擇一本好教材了。一本好的計算機英語教材對系統地學習計算機英語幫助極大。目前市面上的計算機英語教材多達30種,在選擇教材時不少程序員往往無從下手,大家不妨從以下幾方面進行考慮:
教材的難易程度--對於不同學歷層次有不同的教材,選擇教材是一定要看清該教材的培訓對象是中專、大專、本科還是研究生。選擇難易程度適合自己的教材,太簡單則不利於提高、太難則容易使學習受挫。
教材的專業側重--有的計算機英語教材偏重於硬體,有的偏重於軟體,還有的教材是信息電子類的計算機英語,側重於通信電子方面,比如:匯編語言、單片機等。另外有的教材側重於理論,如:數據結構、離散數學;而有的則側重於應用,如:軟體工程、資料庫開發。所以程序員在選擇計算機英語教材時,應仔細察看書中的內容,以免偏離軟體開發的實際工作需要。
教材的體系結構--目前計算機英語教材主要分為按語法體系組織和按計算機體系組織的兩種結構。如果你是初中級的英語水平建議使用前者,如果你是中高級的英語水平建議使用後者。
教材的易用性--教材的易用性是指教材的編排是否符合人們的學習習慣。雖然計算機英語是專業課程教材,但如果編排活潑、圖文並茂、註解查閱方便肯定能調動學習的興趣,降低閱讀的難度。這方面國內的教材應該多向國外的教材學習。
然而國內許多大學的計算機英語課程作為專業英語教學起步較晚,而早期出版的計算機英語教材大多出自於任課老師收集的計算機英文資料,教材規劃不夠系統,編排也比較簡單。這些教材雖然使用的學校較多,為早期的計算機英語教學做出過不可磨滅的貢獻,但致命的弱點是內容陳舊、與時代脫節。最典型的代表是清華大學出版社的《計算機英語》,該書最新版本是1997年更新的,裡面還充斥著Dos這樣的陳舊內容。有些老師苦於沒有新穎實用的計算機英語教材,於是一本國外的計算機入門讀物《Computing Essentials》(McGraw-Hill出版公司)被許多大學選用為計算機英語教材,效果極佳。這本書現在已經由高等教育出版社影印發行,書名是《計算機專業英語》。該書的特點是:時效性強(版本更新快),新穎實用,編排活潑。但對於中高級英語水平的專業開發人員未免有點太淺。
我們在分析和研究了市面上大量計算機英語教材的基礎上,又結合計算機英語教學和學習經驗,編寫了一本非常適合於軟體開發人員的《計算機英語》,該書已經由機械工業出版社出版,是該社"重點大學計算機教材"系列中的一本。需要說明的是該書最適合的讀者對象為英語達到CET4的程序員,因為該書的選材直接來自國外計算機教材和出版物、技術文檔和專業論文、IT精英的言論以及計算機方面的大網路全書,這樣的選材在保持原汁原味的同時使學習者更能接觸到計算機英語的真實語境和主流思想,雖然有一定的難度,但非常實用和專業。同時為便於學習,我們為超出CET4的詞彙和一些專業術語都進行了注釋,而且注釋就在課文旁邊,免去了翻查生詞表的麻煩。這本書適合於程序員的另一條重要原因是全書側重於軟體和應用,沒有枯燥繁瑣的理論。計算機英語是用來學習專業英語的,而不是用來學習計算機理論的。我們沒有像其他的計算機英語教材那樣,充斥了大量難懂的計算機理論文章,而這些理論本身就非常難學。這本教材與其它計算機英語教材不同的地方還在於它更關注計算機素養、計算機應用以及IT對社會和生活的深刻影響。在這里我們可以聆聽到IT精英比爾·蓋茨和IBM公司CEO郭士納的精彩演講,也能拜讀到英特爾公司前總裁葛洛夫的驚世之作《只有偏執狂才能生存》的序言。
系統學習計算機英語,這里的系統性包括了計算機體系的系統性和英語語言的系統性,我們在學習時必須時刻牢記。除了藉助計算機英語教材系統地了解計算機硬體軟體、操作系統、軟體工程、編程語言、網路通信、信息安全、應用系統等諸方面的英語表達和專業詞彙外,還要對英語語言本身從聽、說、讀、寫四個方面下功夫,以免出現偏廢。有些程序員就是因為在聽和說方面偏廢,以至於影響到出國發展。如何加強聽和說的訓練,這是關於英語學習的話題,我自己的一個經驗是多看原版電影(VCD/DVD)以提高聽力(當然不能看字幕),多參加英語聊天(英語角)以提高口語。
計算機英語的學習不同於考"托"考"G",無法靠短期的突擊來完成。長期的日常學習尤為重要。所謂的日常學習並不需要你拋開工作,安排專門的時間,而是邊用邊學。比如,你為了解決編程上的一個問題,查閱英文的幫助或技術資料。然而,不少程序員不太喜歡看英文,他們喜歡使用中文版的軟體,喜歡漢化的幫助,喜歡讀翻譯好的書。這實際上就錯過了許多日常學習計算機英語的機會。不可否認,讀中文肯定比讀英文方便,節省時間,但從長期的發展來看,弊大於利。這種對翻譯的依賴使許多程序員失去了獲取一手資料的寶貴機會。
其實,既然你已經通過對計算機英語的系統學習掌握了一定數量的專業詞彙,就完全可以藉助字典去使用那些原文資料和在線幫助,加上有金山詞霸這樣的工具,閱讀原文並不很困難,關鍵是一個習慣問題。我有一個朋友,在自己的電腦里從不裝任何中文版或漢化軟體,連上網聊天也堅持用英文。幾年下來英語突飛猛進,效果甚佳,有志者不妨一試。
在日常工作中大量閱讀英文書籍和資料是提高計算機英語水平的最佳途徑。目前市場上大量的計算機原版影印圖書為我們提供了絕好的機會。閱讀英文計算機圖書一開始是"啃"的感覺,比較費時費力,對於不太好讀的地方,不妨拿起筆來逐行逐字翻譯出來,這樣對提高英語水平很有幫助。對於有經驗的程序員可以利用自己的專業背景知識和上下文(Context)進行大膽推測,這樣有利於提高閱讀速度。即使是不求甚解,也不要緊,你可以通過多讀同類書來彌補。原版計算機書讀多了,你會發現一些很有規律的東西和一些常用的詞彙,這些來自實踐的經驗非常寶貴,並讓你終生受益。一般在完整閱讀2-3本原版書以後,你就能發現讀原版書的樂趣。值得一提的是讀原版書的真正樂趣並非只是在於提高英語水平,而更是在於獲得一種和西方人一致的思維方式,這種思維方式對學習計算機技術極為有益,因為計算機技術甚至現代科學體系都是建立在這種思維方式的基礎之上的。堅持閱讀英文計算機圖書可以達到"品"的感覺,這種感覺是指在閱讀時無需將英文轉換為中文,而是直接用英文和作者在同一個水平線上進行思考和交流。至此,我們獲得的不僅是英語水平的突破,更是計算機水平的突破。這也是許多計算機高手成功的秘密。
如果你有一定的英語基礎,並希望突破計算機英語的障礙並成為高手,從現在起就養成一個學用計算機英語的良好習慣吧。下面是你可以立即選擇的努力方式:
1、 給自己起一個英文名字。並用作網名和登錄名。
2、 立即將自己電腦中的所有中文版或漢化軟體換成英文版。連Windows也用英文的。
3、 選一本適合自己的計算機英語教材。
4、 保證一年至少讀1-2本原版影印的計算機書,並堅持讀完。
5、 上網盡量多訪問英文的技術論壇和網站。不使用漢化的幫助。
6、 在程序中使用英文注釋。堅決不用中文或漢語拼音作變數名、欄位名、文件和文件夾名。
7、 每月至少看1-2部原版電影(VCD/DVD),盡量不看字幕,提高語感和聽力。
8、 不看中英文對照讀物,但可以看注釋讀物。多使用英英字典,少使用英漢字典。
9、 每天堅持記錄和復習遇到的生詞。對於縮略語,一定搞清每個字母的英文含義。
如果你還有什麼更好的方法不妨也提出來和我們交流,以便使更多的程序員收益。
③ 如何去學習程序員的三大浪漫,編譯原理,圖形學,操作系統
學習編譯原理和操作系統對編程能力對編程能力的作用在於:
1、學好了編譯原理,才可能編寫出高效,穩健,佔用內存少的程序。
2、學習操作系統對windows相關的編程很有幫助。如果是對操作系統關系不大的C/C++/c#,java之類的編程,關系不大。
編譯原理是計算機專業的一門重要專業課,旨在介紹編譯程序構造的一般原理和基本方法。內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成。 編譯原理是計算機專業設置的一門重要的專業課程。雖然只有少數人從事編譯方面的工作,但是這門課在理論、技術、方法上都對學生提供了系統而有效的訓練,有利於提高軟體人員的素質和能力。
操作系統(Operating System,簡稱OS)是管理和控制計算機硬體與軟體資源的計算機程序,是直接運行在「裸機」上的最基本的系統軟體,任何其他軟體都必須在操作系統的支持下才能運行。
④ 專業程序員需要掌握的幾種語言
受到這篇文章( )的啟發,我突然想起對我所會的和要學的語言做個分類。確定一下專業的程序員到底需要會多少種語言。 1.系統類。只有C一個,必須學,而且需要在幾個系統上編程就要學幾次。學習系統類語言需要的是對系統結構和運行原理的了解,因此抽離系統的學習語法/抽象庫/代碼結構是沒有任何意義的。 2.面對對象類。C#,Java等,推薦Java。構架方法優美大氣,代碼容易修改容易閱讀,復用性好。然而做事上架梁疊屋,吃個饅頭洗三遍手。可以學習構架方法,千萬別學做事方法。 3.一門快速的腳本語言。Python, Php, Perl, Bash,各有特色。實際上如果你有空可以統統學一遍,非常有好處。快速腳本語言的特色就是整合其他代碼和已經存在的東西,快速的構建出一個可用的程序。 按照上面的分類,程序員最少要會五種語言,我假定是C/Java/Python/Scheme/Asm80x86。C++不要學,那個是萬惡之源。那麼下面列舉了我推薦的一些書單,可以由淺而深的學習這些語言。 1.入門,《21天學習C語言》《Dive Into Python》《80x86匯編基礎教程》等等,這類書的目地是快速的教會是使用語言和語法。完成這個階段的程序員可以找一些簡單的題目做一下,但還不能獨立完成普通程序的編寫。 2.簡單,《Think In Java》《數據結構與演算法(Java語言版)》《設計模式》。這個層面基本涉及了數據結構,設計模式和編程方法。完成這個階段後,可以找幾個實際項目玩一玩了。 3.普通,《操作系統:設計和實現》《Unix系統編程》《windows核心編程》《TCP-IP詳解》《Effective C》。這個層面涉及了系統運作原理和細節。完成這個階段就可以寫一些系統工具了。 4.閱讀,《Python源碼剖析》《深入淺出MFC》《Linux內核完全注釋》。這個階段注重閱讀和積累各種代碼經驗。 5.專家,《計算機程序的構造和解釋》《計算機程序設計藝術》《MIT演算法導論》《數值演算法》。通過前面的學習,普通程序編寫應當已經不成問題。這個階段面對的是將實際問題抽象成數學問題後,試圖從數學上進行解決的過程。從此以上,就是數學的領域了。
⑤ 一個優秀的程序員會掌握哪些語言
其實技能在於精,而不在於多。
未來五年甚至十年都將是人工智慧的天下,而人工智慧領域的應用語言 Python 毫無疑問是主流,Go 次之,但是還遠比不了 Python 在人工智慧領域的應用。
2、隨著人工智慧技術有所成熟與突破,Python 的需求還會更大。
Python 相比較大部分語言來說,算是很容易上手的,語法很清楚,沒有那麼多復雜的概念,適合新手學習。
3、除了人工智慧之外,Go 語言的潛力也很大,Go 在處理高並發的分布式系統上應用很廣泛,性能很高,而且未來在區塊鏈技術相關應用中也會有不少發揮,還是 Google 的親兒子,但是 Go 的易學性不如 Python,對新手還是有一定門檻的,而且應用的廣泛性也不如 Python。
4、最後 Java,Java 這種老牌編程語言,雖然一直被詬病語法臃腫,但是其實隨著 Java 版本的更新,已經逐漸支持了很多新語言的特性,並且因為 Java 很成熟,不止語言成熟,很多成熟的解決方案、中間件都是基於 Java 的,Java 可用的庫太多了,以至於現在大部分公司都離不開 Java,而且 Java 還可以用來開發 Android 移動應用,所以也許未來 Java 不是最有前景的語言,但是 Java 在未來很長一段時間內都會是不可或缺性的語言,相關的工作崗位也自然一直有需求,而且 Java 語言的易學性也很高,適合新手,大部分大學甚至早都開設了 Java 課程。而且很多想進入互聯網行業的人員都會選擇學習Java。
希望可以幫到你,謝謝!
⑥ 高級java程序員具備哪些知識
java高級程序員需要具備的知識如下:
1、語法:Java程序員必須比較熟悉語法,在寫代碼的時候IDE的編輯器對某一行報錯應該能夠根據報錯信息 知道是什麼樣的語法錯誤並且知道任何修正。
2、命令:必須熟悉JDK帶的一些常用命令及其常用選項,命令至少需要熟 悉:appletviewer、 HtmlConverter、jar、 java、 javac、javadoc、javap、javaw、native2ascii、serialver,如果這些命令你沒有全部使用過,那麼你對java實際上還很不了解。
3、工具 :必須至少熟練使用一種IDE的開發工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括進行工程管理、常用選項的設置、插件的安裝配置以及進行調試。
4、API:Java的核心API是非常龐大的,但是有一些內容筆者認為是Java程序員必須熟悉的,否則不可能熟練的運用Java,包括:
◆java.lang包下的80%以上的類的功能的靈活運用。
◆java.util包下的80%以上的類的靈活運用,特別是集合類體系、規則 表達式、zip、以及時間、隨機數、屬性、資源和Timer.
◆java.io包下的60%以上的類的使用,理解IO體系的基於管道模型的設計思路以及常用IO類的特性和使用場合。
◆java.math包下的100%的內容。
◆java.net包下的60%以上的內容,對各個類的功能比較熟悉。
◆java.text包下的60%以上的內容,特別是各種格式化類。
◆熟練運用JDBC. 8)、java.security包下40%以上的內容,如果對於安全沒有接觸的話根本就不可能掌握java.
◆AWT的基本內容,包括各種組件事件、監聽器、布局管理器、常用組件、列印。
◆Swing的基本內容,和AWT的要求類似。
◆XML處理,熟悉SAX、DOM以及JDOM的優缺點並且能夠使用其中的一種完成XML的解析及內容處理。
5、測試 :必須熟悉使用junit編寫測試用例完成代碼的自動測試。
6、管理:Java程序員必須熟悉使用ant完成工程管理的常用任務,例如工程編譯、生成javadoc、生成jar、版本控制、自動測試。
7、排錯:應該可以根據異常信息比較快速的定位問題的原因和大致位置。
8、思想:必須掌握OOP的主要要求,這樣使用Java開發的系統才能是真正的Java系統。
9、規范:編寫的代碼必須符合流行的編碼規范,例如類名首字母大寫,成員和方法名首字母小寫,方法名的第一個單詞一般是動詞,包名全部小寫等,這樣程序的可讀性才比較好。
10、博學:Java程序員除了精通Java意外,還要掌握J2EE、Oracle、WebLogic、Jboss、Spring、Struts、Hibernate 等流行技術,掌握軟體架構設計思想、搜索 引擎優化、緩存系統設計、網站負載均衡、系統性能調優等實用技術。
⑦ 程序員需要具備的基本技能,你都知道嗎
下面是程序員所應該具備的基本職業技能:
基本技能 技能描述
閱讀代碼 這個技能需要程序員能夠具備讀懂已經存在的代碼的能力,這樣的能力可以讓程序員分析程序的行為,了解程序,這樣才能和開發團隊一起工作,繼承維護或是改進現有的程序。
編寫程序 編寫程序並不包括程序設計。不要以為編程是一件很簡單的事情,很多程序員都認為編程只需要懂得程序語言的語法,並把設計實現就可以了。但是這離編寫程序還遠遠不夠,使用什麼樣的編碼風格成為編寫程序員最需要具備的基本技能。能否使用非常良好的編程風格直接決寫了程序員的級別。
軟體設計 這一能力直接決定了需要吏用什麼樣的代碼技術達到怎麼樣的功能,而系統架構設計直接決定了軟體的質量、性能和可維護性。並不是所有的程序在這一方面都非常優秀,但每個程序員都需要或多或少的明白和掌握這一基本技能。
熟悉軟體工程 每個程序員都應該明白軟體工程是什麼東西,都應該知道,需求分析 設計,編碼測試,Release和維護這幾個階段。當然,幾乎所有的人都知道這些東西,但並不是每個人都很清楚這些東西。現在很多高級程序員都會混淆「需求規格說明書FS」和「概要設計HLD」。另外,程序員還需要知道一些軟體開發的方法論,比如:敏捷開發或瀑布模型。
使用程序庫或框架 一個程序員需要學會使用已有的代碼,無論是標論的程序庫,或是第三方的,還是自己公司內部的,都需要學會做。比如:C++中,需要學會使用STL,MFC,ATL,BOOST,ACE,CPPUNIT等等。使用這些東西,可以讓你的工作事半功倍。
程序調試 程序調試是分析BUG和解決問題最直接的能力。沒有人能夠保證程序寫出來不用調試就可以運行正常 也沒有人可以保證程序永遠不會出BUG。所以,熟練使用調試器是一個程序員需要具備的基本技能
使用IDE 學會使用IDE工具也會讓你的工作事半功倍。比如,VC++,Emacs Eclipse等等,並要知道這些IDE的長處和短處。
使用版本控制 一定要學會使用版本控制工具,什麼叫mainline/trunk,什麼叫tag,什麼叫branch,怎麼做patch,怎麼merge代碼,怎麼reverse,怎麼利用版本控制工具維護不同版本的軟體。這是程序員需要明的的軟體配置管理中最重要的一塊。
單元測試 單元測試是每個程序都需要做的。很多單元測試也是需要編碼的。一定要學會在xUnit框架下進行單元測試。比如JUnit, NUnit, CppUnit等等。
重構代碼 每個程序員都需要有最基本的能力去重構目前已有的代碼,使代碼達到最優但卻不能影響任何的已有的功能。有一本書叫《軟體的重構》 每個程序員都應該讀一下
自動化編譯 程序員需要使用一個腳本,其能自動化編程所有的工程和代碼,這樣整個開發團隊可以不停地集成代碼 自動化測試,自動化部署,以及使用一些工具進行靜態代碼分析或是自動化測試。
當然,還有很多的基本技術也是非常重要的,比如,與人的溝通能力,語言的表達能力,寫作能力,團隊協作能力,適應變化的能力,時間管理能力,多任務處理能力,自我學習能力,故障處理能力,等等,等等,這里只是列舉了和技術相關的能力,這些是程序最最最基本的能力,只要是程序員就必需要有的能力。
⑧ 以上的高級程序員需要學習哪些技術
1、語法:Java程序員必須比較熟悉語法,在寫代碼的時候IDE的編輯器對某一行報錯應該能夠根據報錯信息 知道是什麼樣的語法錯誤並且知道任何修正。
2、命令:必須熟悉JDK帶的一些常用命令及其常用選項,命令至少需要熟 悉:appletviewer、 HtmlConverter、jar、 java、 javac、javadoc、javap、javaw、native2ascii、serialver,如果這些命令你沒有全部使用過,那麼你對java實際上還很不了解。
3、工具 :必須至少熟練使用一種IDE的開發工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括進行工程管理、常用選項的設置、插件的安裝配置以及進行調試。
⑨ 計算機程序語言中的"語法"與"文法"的區別是什麼
有區別,語法是指一個語句的格式是否正確,錯誤的語法寫的程序是錯誤的,往往是不能運行或者運行後得到的是錯誤的結果。文法是指的我們在編程是書寫的格式,它往往不會導致程序的錯誤,但不規范的文法會增加程序員解讀程序的困難,所以我們要規范自己的文法,這樣才能成為一個合格的編程人員。