程式設計師
![本頁使用了標題或全文手工轉換](http://178.128.105.246/host-http-upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
![](http://178.128.105.246/host-http-upload.wikimedia.org/wikipedia/commons/thumb/a/a1/Bundesarchiv_B_145_Bild-F031434-0006%2C_Aachen%2C_Technische_Hochschule%2C_Rechenzentrum.jpg/220px-Bundesarchiv_B_145_Bild-F031434-0006%2C_Aachen%2C_Technische_Hochschule%2C_Rechenzentrum.jpg)
程式設計師(Programmer,Computer Programmer或Coder;程式師),可以指在程式設計某個專業領域中的專業人士,或是從事軟件撰寫,程式開發、維護的專業人員。但一般Coder特指進行編寫代碼的編碼員。
一個程式設計師最常使用的程式語言(如匯編語言、COBOL、C、C++、C#、JavaScript、Lisp、Python)可以加在「程式設計師」這個詞前面用來修飾。
涉及編程的一系列職業,如(軟件)開發人員、網絡開發人員、流動應用程式開發人員、嵌入式韌體開發人員、軟件工程師、電腦科學家、遊戲程式師、遊戲開發人員和軟件分析師,通常還需要一系列其他類似的技能。用程式設計師這個詞來指代這些職位,有時被認為是一種侮辱性的簡化,甚至是貶損。[1][2][3][4][5]
歷史
[編輯]英國著名詩人拜倫的女兒愛達·勒芙蕾絲曾設計了巴貝奇分析機上計算伯努利數的一個程式,她甚至還建立了遞歸和子程式的概念。由於愛達在程式設計上的突破性創新,她被稱為世界上第一位程式設計師,詳見電腦領域中的女性。
工作範圍
[編輯]電腦程式員編寫、測試、除錯和維護被稱為電腦程式的詳細指令,電腦必須遵循這些指令來執行它們的功能。程式設計師還構思、設計和測試用電腦解決問題的邏輯結構。編程領域的許多技術創新——先進的計算技術、複雜的新語言和編程工具——重新定義了程式設計師的角色,提升了當今許多編程工作。職位名稱和描述可能會有所不同,取決於組織。
程式設計師在許多環境中工作,包括企業資訊科技(「IT」)部門、大型軟件公司、小型服務公司和各種規模的政府實體。許多專業程式設計師也以獨立承包人的身份在客戶現場為諮詢公司工作。程式設計師通常不需要有從業執照就可以工作,但他們一般都會持有專業認證。編程被廣泛認為是一個專業(但有些權威機構不同意這個看法,他們認為只有那些法律上規定要有從業執照的職業才能叫做專業)。
程式設計師的工作差別很大,這取決於他們為之編寫程式的業務類型。例如,更新財務記錄所涉及的指示,與飛行模擬器中訓練飛行員時模擬在飛機上的狀況所需的指示大不相同。簡單的程式可以在幾個小時內完成,更複雜的程式可能需要一年以上的工作,而其他的程式則永遠不會被認為是「完善的」,而是只要繼續使用就會不斷進行改進。在大多數情況下,幾個程式設計師在進階程式設計師的監督下作為一個團隊一起工作。
![](http://178.128.105.246/host-http-upload.wikimedia.org/wikipedia/commons/thumb/6/64/Coding_Shots_Annual_Plan_high_res-5.jpg/225px-Coding_Shots_Annual_Plan_high_res-5.jpg)
程式設計師根據主要由進階程式設計師和系統分析員確定的規範編寫程式。在設計過程完成後,程式設計師的工作就是將設計轉換成電腦可以遵循的一系列邏輯指令。程式設計師用眾多程式語言中的一種來編寫這些指令。根據用途的不同,會使用不同的程式語言。例如,COBOL通常用於通常在大型和中型電腦上執行的業務應用程式,而Fortran則用於科學和工程。C++和Python廣泛用於科學和商業應用程式。Java、C#、JS與PHP是Web和商業應用程式的流行程式語言。程式設計師通常了解一種以上的程式語言,因為許多語言是相似的,他們通常可以相對容易地學習新的語言。在實際中,通常會用程式設計師們了解的語言來描述程式設計師,比如,Java程式設計師,或者用他們所扮演的角色或他們的工作環境來描述:比如,資料庫程式設計師、大型電腦程式設計師、Web開發人員等。
當修改組成程式的原始碼時,程式設計師需要讓其他程式設計師知道程式要執行的任務。他們通過插入註釋以及編寫文件,來讓其他人更容易理解程式。為了節省工作量,程式設計師經常使用基本代碼庫,這些庫可以針對特定的應用程式進行修改或自訂。這種方法可以產生更可靠和一致的程式,並通過消除一些重複性的步驟來提高程式設計師的生產力。
測試和除錯
[編輯]程式設計師通過執行程式並尋找錯誤來測試程式。一旦確定了錯誤,程式設計師通常會進行適當的修正,然後重新檢查程式,直到錯誤(bug)的嚴重程度達到可接受的低水平。這個過程稱為測試和除錯。這些都是每個程式設計師工作的重要部分。程式設計師可以在程式的整個生命周期中繼續修復這些問題。更新、修復、修改和擴充現有程式有時稱為維護編程。程式設計師可能會編寫用戶指南和線上幫助,或者他們可能會與技術作者合作完成這些工作。
應用程式與系統編程
[編輯]電腦程式員通常分為兩大類:應用程式員和系統程式設計師。應用程式員編寫程式來處理特定的工作,例如在組織內跟蹤庫存的程式。他們還可以修改現有的套裝軟件(packaged software),或客製化通常從獨立軟件供應商購買的通用應用程式。相比之下,系統程式設計師編寫程式來維護和控制電腦系統軟件,如作業系統和資料庫管理系統。這些工作人員對指令進行更改,這些指令決定了系統的網絡、工作站和CPU如何處理給定的各種作業,以及如何與印表機和磁碟機等外圍裝置通訊。
資格和技能
[編輯]軟件開發人員需要在電腦技術的某些方面具有深厚的技術專長。有些職位需要相關領域的學位,如電腦科學、資訊科技、工程、編程或任何其他與IT相關的研究生學習。[6] 一個理想的軟件開發人員是一個自我激勵的專業人員,在諸如C++、C#、PHP、Java、C、JavaScript、Visual Basic、Python、Smalltalk等關鍵程式語言上擁有動態的動手實踐經驗。
根據開發人員Eric Sink的說法,系統設計、軟件開發和編程之間的差異更加明顯。在當前的市場環境中,程式設計師和開發人員之間已經存在隔離,因為實現程式的人和設計類結構或階層的人是不一樣的。開發人員成為軟件架構師或系統架構師(即設計大型軟件系統的多層體系結構或組件互動的架構師)後,差異會更大。[7]
軟件類型
[編輯]軟件開發公司的程式設計師可以直接與來自不同領域的專家合作來開發軟件,包括為特定客戶設計的程式或通用的套裝軟件,從電子遊戲到教育軟件,再到用於桌面出版和財務規劃的程式。套裝軟件的編程是電腦服務行業增長最快的部分之一。一些公司或組織,即使是小公司,也建立了自己的IT團隊,以確保內部軟件的設計和開發能夠滿足內部終端使用者非常特殊的需求,特別是在現有軟件不適合或成本太高的情況下。研究中心的情況就是如此。
在一些組織中,特別是小型組織中,通常被稱為程式設計師分析師的人同時負責系統分析和實際的編程工作。從大型電腦環境過渡到主要基於個人電腦(PC)的環境,模糊了曾經嚴格的程式設計師和用戶之間的區別。越來越多的熟練的終端用戶正在接管許多以前由程式設計師執行的任務。例如,越來越多地使用套裝軟件,如電子試算表和資料庫管理軟件套件,讓用戶可以編寫簡單的程式來訪問數據和執行計算。
此外,互聯網的興起使得Web開發成為編程領域的一個重要組成部分。目前,更多的軟件應用程式是網絡應用程式,任何人都可以使用網頁瀏覽器。這類應用程式的例子包括Google搜尋服務、Outlook.com電子郵件服務和Flickr相片分享服務。
編程編輯器,也稱為原始碼編輯器,是專門為編寫程式原始碼的程式設計師或開發人員設計的文字編輯器。這些編輯器中的大多數都含有對程式設計師有用的特性,可能包括語法突顯、自動縮排、自動完成、括號匹配、語法檢查以及允許外掛程式。這些特性幫助用戶進行編碼、除錯和測試。[8]
整合式開發環境(Integrated Development Environment),簡稱IDE,是程式設計師廣泛使用的一種,集合了原始碼編輯器、編譯器、版本控制等功能的應用程式,常見的有Microsoft Visual Studio,InteliJ IDEA等等。
參考文獻
[編輯]- ^ No Programmers. [2020-06-14]. (原始內容存檔於2020-06-14).
- ^ Developer versus programmer. [2008-04-21]. (原始內容存檔於2010-11-25).
- ^ Developers AND Programmers. [2020-06-14]. (原始內容存檔於2013-11-03).
- ^ Programmer vs. Developer vs. Software Engineer. [2008-04-21]. (原始內容存檔於2018-07-10).
- ^ Programmer vs. Developer vs. Software Engineer. [2020-06-14]. (原始內容存檔於2017-09-09).
- ^ Software Engineer Skills and Responsibilities. [2020-06-14]. (原始內容存檔於2020-06-14).
- ^ Eric Sink. Small ISVs: You need Developers, not Programmers. Sourcegear. [2008-06-06]. (原始內容存檔於2008-07-05).
A programmer is someone who does nothing but code new features and (if you're lucky) fix bugs. They don't write specs. They don't write automated test cases. They don't help keep the automated build system up to date. They don't help customers work out tough problems. They don't help write documentation. They don't help with testing. They don't even read code. All they do is write new code.
- ^ BBC Bitesize - GCSE Computer Science - Programming software and the IDE - Revision 4. www.bbc.co.uk. [2017-09-16]. (原始內容存檔於2017-09-23) (英國英語).
相關職業
[編輯]外部連結
[編輯]- 辨識優秀程式設計師的關鍵要素(英文)
- 程式設計師不為人知的事實(英文)
|