程式設計師的工作職責:1、負責軟體專案的詳細設計、編碼和內部測試的組織實施;2、協助專案經理和相關人員與客戶溝通,保持良好的客戶關係;3、參與需求研究、專案可行性分析、技術可行性分析與需求分析;4、熟悉並熟練交付軟體部開發的軟體專案的相關軟體技術;5、負責向專案經理及時回饋軟體開發的情況;6 、參與軟體開發和維護過程中重大技術問題的解決;7、負責相關技術文件的擬訂等等。
本教學操作環境:windows7系統、Dell G3電腦。
程式設計師(英文Programmer)是從事程式開發、程式維護的專業人員。一般將程式設計師分為程式設計人員和程式編碼人員,但兩者的界線並不非常清楚,特別是在中國。軟體從業人員分為初級程式設計師、中階程式設計師、高級程式設計師(現為軟體設計師)、系統分析員,系統架構師,測試工程師六大類。
具體工作職責如下:
1、負責軟體專案的詳細設計、編碼和內部測試的組織實施,對小型軟體專案兼任系統分析工作,完成分配專案的實施和技術支援工作。
2、協助專案經理和相關人員與客戶溝通,維持良好的客戶關係。
3、參與需求研究、專案可行性分析、技術可行性分析與需求分析。
4、熟悉並熟練交付軟體部門開發的軟體專案的相關軟體技術。
5、負責及時向專案經理回饋軟體開發的情況,並根據實際情況提出改進建議。
6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、資料割接、使用者培訓和專案推廣。
7、負責相關技術文件的擬訂。
8、負責對業務領域內的技術發展動態。
說明:
雖然具體內部分工不同,但程式設計師這個群體,就是透過每個人的分工協作,將公司老闆、產品經理、營運及業務等部門對一個APP、小程式等等產品的功能想法透過程式設計實現出來。
當然,需要編程的不僅僅只有APP、小程序,但咱們既然定位為為小白解答這個問題,那就從我們人人都會用的APP的功能開發為例來說明程序員的工作吧!
01前端開發:主要負責使用者可見頁面的實作
#我們開啟任何一個APP,就會看到一個開機頁面,點擊裡面的各個模組、功能、標題等,就會跳出來另外的頁面。
在網路公司裡,除了程式設計師還有產品經理、互動設計師、UI設計等職位,一般來說,互動設計師、UI設計師會根據老闆對APP的想法、產品經理對APP相關模組的規劃將每個頁面具體長什麼樣子給設計出來,例如按鈕是一個還是三個,上下排還是左右排,等等。
而要能夠實現我們每個使用者在主頁面上點擊一下「我的」就能夠跳到「我的」主頁面,這就需要程式設計師小哥哥小姐姐們透過程式來實現了。
通常主要負責類似這一類工作的程式設計師,從內部分工來說,通常被稱為前端開發。
02後端開發:主要負責後端資料的開發
不管我們是不是小白,大機率都聽過資料庫的概念。
這就好比我們去一家超市購物,我們能夠在貨架上看到的五顏六色、陳列得讓人特別有購買慾望的商品是一個APP的前端,比如你想要買一包黃瓜味的薯片(很多人的最愛),結果發現貨架上只有其它幾種口味的了,這時候你就去問理貨員還有沒有黃瓜口味的?
理貨員會去找倉管員看倉庫,發現還有就拿出來給你。
在你看不見的地方,理貨員、倉管員以及倉庫本身就有點類似我們使用的APP的後端開發在做的一些事情,他們要保障數據庫的條理性、在需要的時候能夠快速找到想要的數據,而且準確無誤,能夠快速且準確地回應前端的需求。
03測試:主要負責產品上線前品質的把關
當開發工程師把APP 、小程式等開發完成之後,在正式上線之前,還需要內部的品質監督員,也就是測試工程師對產品的整體性能和安全性進行測試。
測試的工作最基礎的包括功能測試,也就是測試工程師們可以把自己當成一個小白用戶,來使用這個產品,看產品是否能夠順暢地響應和實現自己的需求;
第二個重要的測試是對產品相容性的測試,在不同型號的行動裝置上、不同軟體之間的相容是否有問題。
第三個是效能測試,主要看在大流量的前提下,產品能否正常運作而不崩潰;
最後是安全測試,防止產品上線後被惡意攻擊。
擴充知識:程式設計師必備技能
#熟練開發工具
做為一名程式設計師至少熟練兩到三種開發工具的使用,這是程式設計師的立身之本,其中C/C 和JAVA是重點推薦的開發工具,C/C 以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C 寫。而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVAOne很可能會成為未來的主流開發工具之一。其次,能掌握一種簡單的視覺化開發工具,如VB,PowerBuilder,Delphi,CBuilder,則更好,這些開發工具減小了開發難度,並能夠強化程式設計師物件模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本程式碼。
熟悉資料庫
為什麼資料庫是如此重要?身為程式設計師,他們自然有自己的理由:許多應用程式都是以資料庫的資料為中心,而資料庫的產品也有不少,其中關聯式資料庫仍是主流形式,所以程式設計師至少熟練一兩種資料庫,對關係型資料庫的關鍵元素要非常清楚,要熟練SQL的基本語法。雖然許多資料庫產品提供了視覺化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL,Postgres等。
了解作業系統
目前主流的作業系統是Windows,Linux/Unix,熟練地使用這些作業系統是必須的,但只有這些還遠遠不夠。要成為真正的程式設計高手,需要深入了解作業系統,了解它的記憶體管理機制、行程/執行緒調度、訊號、核心物件、系統呼叫、協定棧實作等。 Linux作為開髮原始碼的作業系統,是一個很好的學習平台,Linux幾乎具備了所有現代作業系統的特徵。雖然Windows系統的核心實現機制的資料較少,但透過網路還是能取得不少資料。
懂得網路協定TCP/IP
在網路如此普及的今天,如果您還沒有對網路的支撐協定TCP/IP協定堆疊有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式,從最早的客戶/伺服器結構,到今天的WEBServices,再到未來的網格計算,這一切都離不開以TCP/ IP協定棧為基礎的網路協定支持,深入掌握TCP/IP協定是非常必要的。至少,需要了解ISO七層協定模型,IP/UDP/TCP/HTTP等常用協定的原理和三次握手機制。
明白DCOM/CORBA/XML/WEBServices存在的意義
隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來運算模式的重要特徵之一,DCOM/CORBA是目前兩大主流的分散運算的中間平台,DCOM是微軟COM(元件物件模型)的擴展,而CORBA是OMG支援的規格。 XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的“世界語”,是分散式計算的基石之一。
不要將軟體工程與CMM分開
大型軟體系統的開發中,工程化的開發控制取代個人英雄主義,成為軟體系統成功的保證,一個程式設計師不一定是優秀的程式設計師,一個優秀的程式設計師是將出色的程式設計能力和開發技巧同嚴格的軟體工程思想有機結合,程式設計只是軟體生命週期中的其中一環,優秀的程式設計師應掌握軟體開發各階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。
需求理解能力
程式設計師要能正確理解任務單中所描述的需求。這裡要明確一點,程式設計師不僅要注意到軟體的功能需求,還應注意軟體的效能需求,要能正確評估自己的模組對整個專案中的影響及潛在的威脅,如果有著兩到三年專案經驗的熟練程式設計師對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。
模組化思考能力
身為一個優秀的程式設計師,他的思想不能侷限在目前的工作任務裡面,要想看自己寫的模組是否可以脫離當前系統存在,透過簡單的封裝在其他系統或其他模組中直接使用。這樣做可以使程式碼能重複利用,減少重複的勞動,也能使系統結構越趨合理。模組化思考能力的提升是一個程式設計師的技術水準提升的重要指標。
更多程式相關知識,請造訪:程式設計教學!
以上是程式設計師是做什麼的的詳細內容。更多資訊請關注PHP中文網其他相關文章!