程式設計師(英文programmer)是從事程式開發、維護的專業人員。一般我們將程式設計師分為程式設計人員和程式編碼員,但兩者的界限並不非常清楚,特別是在中國。
作乙個真正合格的程式設計師,應該具有的素質。
1:團隊精神和協作能力
團隊精神和協作能力是作為乙個程式設計師應具備的最基本的素質。軟體工程已經提了將近三十年了,當今的軟體開發已經不是程式設計了,而是工程。獨行俠可以寫一些程式也能賺錢發財,但是進入研發團隊,從事商業化和產品化的開發任務,就必須具備這種素質。可以毫不誇張的說這種素質是乙個程式設計師乃至乙個團隊的安身立命之本。
2:文件習慣
文件是乙個軟體系統的生命力。乙個公司的產品再好、技術含量再高,如果沒有缺乏文件,知識就沒有繼承,公司還是乙個來料加工的軟體作坊。作為**程式設計師,必須將30%的工作時間寫用於技術文件。沒有文件的程式設計師勢必會被淘汰。
3:規範化的**編寫習慣
知名軟體公司的**的變數命名、注釋格式,甚至巢狀中行縮排的長度和函式間的空行數字都有明確規定,良好的編寫習慣,不但有助於**的移植和糾錯,也有助於不同技術人員之間的協作。 一些所謂的高手甚至叫囂高手寫的**一般人看不懂,我只能說他不是一名合格的程式設計師。
4:需求理解能力
程式設計師要能正確理解任務單中描述的需求。在這裡要明確一點,程式設計師不僅僅要注意到軟體的功能需求,還應注意軟體的效能需求,要能正確評估自己的模組對整個專案中的影響及潛在的威脅,如果有著兩到三年專案經驗的熟練程式設計師對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。
5:模組化思維能力
作為乙個優秀的程式設計師,他的思想不能在侷限當前的工作任務裡面,要想想看自己寫的模組是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模組中直接使用。這樣做可以使**能重複利用,減少重複的勞動,也能是系統結構越趨合理。模組化思維能力的提高是乙個程式設計師的技術水平提高的一項重要指標。
6:測試習慣
測試是軟體工程質量保證的重要環節,但是測試不僅僅是測試工程師的工作,而是每個程式設計師的一種基本職責。程式設計師要認識測試不僅是正常的程式除錯,而要是要進行有目的有針對性的異常呼叫測試,這一點要結合需求理解能力。
7:學習和總結的能力
程式設計師是很容易被淘汰的職業,所以要善於學習總結。許多程式設計師喜歡盲目追求一些編碼的小技巧,這樣的技術人員無論學了多少語言,**寫起來多熟練,我們只能說他是一名熟練的**民工,他永遠都不會有質的提高。乙個善於學習的程式設計師會經常總結自己的技術水平,對自己的技術層面要有良好的定位,這樣才能有目的地提高自己。這樣才能逐步提高,從程式設計師公升級為軟體設計師、系統分析員。
作為高階程式設計師,乃至於設計師而言,除了應該具備上述全部素質之外,還需要具備以下素質:
1、 需求分析能力
2、 整體框架能力
3、 流程處理能力
4、 模組分解能力
5、 整體專案評估能力
6、 團隊組織管理能力
1,激情
我曾經遇到許多「職業程式設計師」,他們從事it是因為覺得這是一種職業,他們只在工作時間程式設計,除非送去培訓否則他們不會學習新東西,這不是好的程式設計師。我認為乙個好的程式設計師總是對程式設計充滿激情,而且好的開發者會做一些程式設計工作即使這沒有報酬。激情是乙個優秀程式設計師的重要指標。
2,自學好學
程式設計領域始終發展變化著,不出一年有些新技術就變成了老技術,這並不是說好的程式設計師要對所有新技術跟進,但有些卻對學習任何新技術都沒有興趣。他們通常在學校學習了程式設計,然後工作後單位安排學什麼就學什麼。如果在招聘中你聽到「讓我培訓乙個星期我就會勝任這個工作」那不要僱傭他。實際上,真正優秀的程式設計師始終談論著你所不知道的新技術,向人們解釋為什麼你必須用這個技術,哪怕沒有聽眾聽得明白,哪怕他自己也不明白。
3,聰明
聰明包括很多因素,情緒和社會交際只是其中之一。好的程式設計師絕不木訥,他們是最聰明的人,他們中的許多善於交際,健談、興趣廣泛。
4,隱性的經驗
—好的程式設計師通常有自己的私人的一些研究、愛好、專案,而這些是他們不寫在簡歷上 (通常覺得不值得寫),但表現出來卻可能恰恰是他的潛能、深度和後勁所在。
5,技術多樣性
由於好的程式設計師喜歡學習和涉獵新技術,所以一般來說超過22歲的都熟知很多新技術,而且對多種技術的長短有 「強烈」的個人意見/見解,喜好嘗試新鮮技術。
6,資格證書
資格證書並不是識別真正程式設計師的方法,mcse、scjp說明不了什麼,它們只是讓別人認識和獲取的,頂多代表這個人在某個技術有一定的知識。
原文作者在文末寫道:以上所說的標準並不是絕對的,因為有些優秀的程式設計師確實不符合上述,而有些bad程式設計師卻符合了。但相信這些對大多數真正的程式設計師都適用。
總結而言,優秀的程式設計師通常有一下特點:
對技術充滿激情
將程式設計作為一種愛好
如果你允許會滔滔不絕地跟你談論技術
有過個人的開發經歷(與4意思相同)
堅持認為某種技術最好
如果讓他用他認為不好的技術他會非常彆扭
聰明、健談、興趣廣泛
在大學和工作前就開始接觸程式
1、 考試要求:
(1) 熟練掌握基本演算法和資料結構,用c語言編制程式;
(2) 掌握資料結構、程式變速器和作業系統的基礎知識;
(3) 了解軟體工程、資料庫、多**和網路的基礎知識;
(4) 掌握數制、機內**及其算術運算和邏輯運算的基礎知識;
(5) 了解計算機的體系結構和主要部件的基礎知識。
2、 通過本級水平考試的合格人員能按照軟體設計說明書編制程式,具有相當於助理工程師
的實際工作能力和業務水平。
3、 本級水平考試範圍包括兩個模組:模組1——程式編制能力(考試時間為150分鐘);模
塊2——基礎知識(程式設計師級)考試時間為120分鐘)。題型為:單項選擇題十多項選擇題。
模組1:程式編制能力
1.1按照軟體設計說明書,能熟練使用下列程式語言編制程式
1.1.1c(美國標準)
1.2理解給定程式的功能,能發現程式中的錯誤並加以糾正
1.3具有良好的程式編制風格
1.4基本演算法
1.4.1查詢、更新、排序、合併及字元處理
1.4.2迭代、插值、數值積分、矩陣計算、議程求解和搜尋求解
1.5程式編制方法
1.5.1分支、迴圈、子程式(過程和函式)、遞迴
1.5.2輸入輸出和檔案的處理
模組2:基礎知識(程式設計師級)
2.1軟體基礎知識
2.1.1資料結構基礎
陣列、記錄、列表(list)、佇列、棧(stack)、堆(heap)、樹和二叉樹的定義、儲存和操作
2.1.2程式語言基礎知識
·彙編、編譯、解釋系統的基礎知識
·程式語言的資料型別
·程式語言的控制結構
2.1.3作業系統基礎知識
·作業系統的型別和功能
·作業系統的層次結構和程序概念
·作業、處理機、儲存、檔案和裝置等管理的基礎知識
2.1.4軟體工程基礎知識
·軟體生命週期各階段的任務
·結構化分析和設計方法
·物件導向基本概念
·軟體開發工具與環境基礎知識
2.1.5資料庫基礎知識
·資料庫模型
·資料庫系統的結構
·sql的使用初步
·常用資料庫管理系統的知識
2.1.6多**基礎知識
·多**基本概念
·常用圖象檔案
·簡單圖形(線段和圓)的計算機圖示
2.2硬體基礎知識
2.2.1數制及其轉換
·二進位制、十進位制和十六進製制等常用數制及其相互轉換
2.2.2機內**
·原碼、補碼、反碼、移碼
·定點數與浮點數的機內表示
·ascii碼及漢字編碼等常用的編碼
·奇偶校驗碼、海明碼、迴圈冗餘碼(crc)等常用校驗方法
2.2.3算術運算和邏輯運算
·計算機中的二進位制數運算方法
·邏輯代數的基本運算和邏輯表示式的化簡
2.2.4計算機的體系結構和主要部件
·**處理器cpu、儲存器和輸入/輸出裝置
·匯流排結構、指令流和資料流
2.2.5指令系統
·常用的定址方式
·指令的格式、分類及功能
·指令的執行過程
2.3網路基礎知識
2.3.1網路的功能、分類與組成
2.3.2網路協議與標準
2.3.3網路結構與通訊
2.3.4網路的安全性
2.3.5client-server結構
2.3.6internet和intranet初步
本詞條對我有幫助
程式設計師測試標準
1,不會利用如phpdoc這樣的工具來恰當地注釋你的 2.對優秀的整合開發環境如 eclipsephp epp 或 zend studio pdt視而不見 3.從未用過任何形式的版本控制系統,如subclipse 4.不採用某種編碼與命名標準,以及通用約定,不能在專案開發周期裡貫徹落實 5.不使用統...
C標準庫 程式設計師等級
首先,還是得說一下c標準庫的發展史嘍。c89中有15個標準標頭檔案 c95增加了3個標準標頭檔案 c99增加了6個標準標頭檔案 c11增加了5個標準標頭檔案 至於標頭檔案的主要功能,看這裡。到了現在已有29個標準標頭檔案,庫在變大,自然功能會加強。雖然c還在更新,並且在程式語言江湖中一直是大佬,可是...
非標準程式設計師的日常
好像自己是一直都在找存在感,一直都是想東想西。做事又想著公平,而又自己覺得經歷這非公平的待遇。總是自怨自艾,患得患失。雖然沒什麼可失去,但卻總是在東西之間徘徊。總而言之,好像自己就是沒什麼方向,做事目的性不強,總是畏首畏尾。簡而言之,就是想的太多,做的太少。轉眼,已經事9月底了,研一的新生已經來實驗...