1. 程序員的職業發展方向:業務技術
程序員職業生涯發展到一定程度都會面臨一個選擇,是走業務+技術方向,還是選擇純鑽研技術。程序員職業生涯發展的問題,這是所有程序員都在關心的問題,未來究竟要怎麼走,30歲之後還能不能再做程序員。絕大多數程序員最終的職業目標可能都是CTO,做到CEO的人估計會比較少,也有一少部分人自己去創業去當老闆,也有部分人轉行了,當老闆的人畢竟是少數,轉行的人都不在這行做了,自然沒什麼好說的了。一般來說,程序員的發展基本上都會經歷這么幾條路徑。程序員-系統分析員-架構師-技術經理-CTO,程序員-項目組長-項目經理-項目總監-CTO,程序員-產品設計師-產品經理-CTO。當然這只是一個大致的路徑,不是所有程序員都必需要這么經歷的,有些人可能跳過其中的一些步驟,也可能有些人會把中間的很多職位都做了。而最終做到CTO的程序員,也是非常少的一部分,原因很簡單,這個世界上不許要那麼多的CTO和CXO。也就是說,許多的程序員最終可能是做技術經理、項目經理或者項目總監之類的,那麼到底我們職業生涯要選擇哪一種呢?我覺得這個問題沒有一個統一的答案,因為每個人的性格不一樣,際遇也不一樣,就像你從小希望當貪官,可是命運卻偏偏讓你做了一個程序員。所以應該根據你的興趣、性格與際遇選擇一條道路,比如說你正好有機會帶一個項目,而你又不是很討厭項目經理這個位置,那麼你就可以選擇向項目經理方向發展。實際上很多時候,有些公司並沒有明確的技術經理、項目經理、產品經理之分,在許多的公司里,他們經常是由一個人承擔。在外包公司里,通常會有項目經理和系統分析員(也可能是技術經理)。在一些非IT公司里,可能會是部門經理,而做自己產品的公司可能會分得比較詳細一些。我大致說一下這三個職位的區別,讓正在徘徊的程序員有一個大致的了解。項目經理是項目的直接負責人,這個角色相當於一個中間介面,不管是團隊成員還是需求方(客戶),或者是上級領導,有事都直接找他,所以這個職位著重於管理與溝通。一般來說,項目經理的工作重點在同客戶溝通需求、項目進度的把控、團隊的溝通方面,有些公司也會需要項目經理承擔團隊建設的工作,不過貌似很多國內公司都忽略了團隊建設這個工作了。對於項目經理來說,重點會要求溝通能力、協調能力、危機把控能力、執行力、團隊管理能力,著重於溝通、管理與計劃。當然也有些公司還要求項目經歷要參與招標談判,這就要求項目經理有一定的商務談判能力。技術經理有時候也可能叫系統分析員,一些小公司可能會整個部門有一個技術經理。技術經理承擔的角色主要是系統分析、架構搭建、系統構建、代碼走查等工作,如果說項目經理是總統,那麼技術經理就是總理。當然不是所有公司都是這樣的,有些公司項目經理是不管技術團隊的,只做需求、進度和同客戶溝通,那麼這個時候的項目經理就好像工廠里的跟單人員了,這種情況在外包公司比較多。對於技術經理來說,著重於技術方面,你需要知道某種功能用哪些技術合適,需要知道某項功能需要多長的開發時間等。同時,技術經理也應該承擔提高團隊整體技術水平的工作。1143448846
2. 什麼是程序員
程序員是從事程序開發、維護的專業人員。一般將程序員分為程序設計人員和程序編碼人員,但兩者的界限並不非常清楚,特別是在中國。軟體從業人員分為初級程序員、高級程序員、系統分析員,系統架構師,測試工程師六大類。
程序員的崗位職責
1、對項目經理負責,負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。
2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。
3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。
4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。
5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。
6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。
7、負責相關技術文檔的擬訂。
【能力3】熟悉多種系統架構。對於程序員來說,無論是在開發MIS、Web解決方案、分布式應用系統、嵌入式軟體、驅動程序系統,也不管是在Windows或UNIX或Linux操作系統之下,編寫控制台程序、原生窗口程序還是.NET程序,透徹理解一種系統架構或開發平台的全部功能,同時了解其他架構的運作機制,是十分必要的。這樣不僅有利於編程工作的轉換,也有助於掌握信息技術發展的一般走向。
【能力4】理解和運用UML/Extrerile Program-ming的能力。現在軟體開發的時限越來越短,軟體產品卻越來越復雜和龐大。為了在較短時間內開發出高質量的軟體產品,許多軟體公司在軟體開發的系統分析和系統設計階段,在大型項目中採用面向對象的UML(統一建模語言),在中小型項目中採用Extreme Programming。程序員雖然不必參與軟體系統的分析與規劃,但是必須學會使用UML/EP模型的方式與系統分析人員、系統設計人員進行溝通與交流。這是在開發團隊中協調工作、實現快速開發的有效手段。
【能力5】使用RAD編程工具的能力。實現快速開發軟體、提高軟體生產率的另一個手段是使用快速應用開發工具(RAD)。程序員要學會使用新一代開發環境所提供的全部功能和工具,學會在一個開發環境中撰寫源程序、以可視化的方式檢查程序代碼的關系和驗證代碼的可靠度,並且在開發環境中與系統分析和設計人員進行溝通;學會在相同的開發環境里進行程序的單元測試與負載測試。程序員通過開發環境參與項目管理、版本管理和軟體產品的商業化包裝,從而提高整個團隊的軟體開發生產率。程序員還應該知道開發環境在幕後為用戶所做的事情,從中學習更高級的編程技術。
【能力6】在編程實踐中正確運用程序質量屬性的能力。軟體工程學的宗旨是採用一整套科學、系統的方法,提高計算機軟體的質量和生產率。優秀的程序員能自覺地運用軟體工程學的技術思想指導程序設計,對可靠性(正確性+健壯性)、效率、易用性、可讀性(可理解性)、可擴展性、可復用性、兼容性、可移植性等軟體質量屬性做到了如指掌,並且努力做到能在編程實踐中運用自如,這是開發高質量軟體的不二法門。
3. 銀行程序員是具體幹嘛的
銀行程序員在現代銀行業中的角色日益重要,他們主要負責設計、開發、測試與維護銀行的核心系統、交易系統和信息安全系統。隨著銀行業務的日益復雜化,信息和數據量急劇增加,確保數據處理的高效性和安全性成為關鍵任務。因此,銀行程序員需要具備扎實的編程技能和深厚的計算機技術知識。
除了核心系統和交易系統的開發外,銀行程序員還負責開發和維護各種客戶端軟體,例如數值分析軟體和數據挖掘軟體,以滿足銀行內部各類業務需求。這些軟體不僅提升了銀行的運營效率,還促進了數據分析和決策支持的能力。
在保障銀行業務安全方面,銀行程序員起到了至關重要的作用。他們需要不斷更新和完善安全防護措施,確保銀行系統免受外部攻擊和內部風險的威脅。此外,銀行程序員還積極參與推進銀行業務的數字化轉型,通過引入最新的技術手段和優化流程,提升銀行服務的便捷性和客戶體驗。
銀行程序員的工作不僅限於技術層面,他們還需要與業務部門緊密合作,確保技術方案能夠滿足實際業務需求。這要求他們具備良好的溝通能力和團隊協作精神。通過不斷學習和實踐,銀行程序員在推動銀行業務基礎設施建設和發展中扮演著不可或缺的角色。