機構檔案
- 機構級別:普通會員
- 信用等級:
資料認證
未通過身份證認證
未通過辦學許可認證
- 學校瀏覽人次:次
- 加盟時間:2017年03月10日
新聞動態(tài)
西安尚學堂講師解答怎樣成為受歡迎的軟件工程師
發(fā)布者:西安尚學堂 發(fā)布時間:2017-03-13 來源:西安尚學堂
軟件工程師的未來如何?會有哪些出路?在IT技術飛速發(fā)展、IT產業(yè)競爭加劇的今天,一個軟件工程師怎樣才能應對各種挑戰(zhàn)?一時間成為IT人求職的熱點話題。一句話:怎樣才能成為一名受歡迎的軟件工程師?恐怕只有一個:學會學習。
我們首先來看一下一個軟件工程師的成長歷程
一個軟件工程師最初都是從寫程序開始的。寫軟件程序其實是很簡單的,入了門,只要條件配合,走專職程序員的道路是相當自然的。這里說的條件是什么呢?興趣是第一,再者就是進修提高。學校雖盡其可能傳授學生最新的知識,但仍然不能追趕技術的腳步。不斷自發(fā)地接觸新知識就成了最重要的進修方式,能不能把握好這些機會,決定著程序員的技術層次和前程。
在技術鉆研的歷程上,剛開始你可能只是一個程序生產者。在這個階段里,你只以編寫程序的能力來提供服務。這個階段重要的是打好基礎,千萬不要養(yǎng)成不良習慣:比如求快而忽略細節(jié),千萬不要以為簡單和簡陋是同一件事情。
漸漸地,單純的程序編寫已不具挑戰(zhàn)性,你開始對自己負責程序編寫的模塊設計產生懷疑,并能適時地提供改善的建議。接著,你可能因為經常提出好點子而被嘉許。就這樣逐漸開始接觸設計的領域。富有創(chuàng)意或是基礎扎實的人,會比較快地進入此階段。
更進一步,你開始負責模塊的設計。與前一階段相比,你的工作內容已經從程序編寫變?yōu)槌绦蛟O計,這時你編寫的程序的比重在逐漸減少,但通常都是比較重要的部分。在與同事的溝通中,你將了解到整個產品的設計理念和重點。能不能更上一層樓,是否具有足夠的前瞻性,都取決于這個階段。很多不錯的工程師都在這一層上下徘徊,無法取得進一步的突破。若不能下足工夫,將很難再創(chuàng)新高。)
過了這個階段,你就可以獨立完成一個產品的全部模塊設計。此時重要的是產品系統(tǒng)的周全性,以及各模塊之間的關聯(lián)及互動。此時,你就將由程序員升格為軟件工程師。
由此可見,修成一個成熟的軟件工程師要有相當時間的磨練和積累,學習與不斷提高伴隨著軟件工程師的職業(yè)生涯。在這個過程中," 學會學習 " 比 " 學習什么 " 更為重要,因為學習方法遠比學習內容重要,一個成功的軟件工程師必須在實踐中積累分析問題、解決問題的能力。沒有一勞永逸的職業(yè),軟件行業(yè)更是如此。趨勢公司科技產品研發(fā)部的羅鐘靈是如此描述軟件工程師的工作的,我們不妨也看一下:" 寫程序沒有模糊地帶,必須照顧好所有細節(jié),一旦程序有一點小問題,就會造成產品瑕疵。在學校寫程序和在工作實踐中寫程序的最大不同在于,在學校編寫的程序只要能用就行了,但在工作中卻有很大部分時間是在處理各種意外,使程序更為完美,這就要求你必須花很大的精力去學習和積累。新入行的程序員容易把問題簡單化,往往還未對問題透徹了解就貿然解決問題。你應該努力學習分析、解決問題的能力,這是最為迫切的。
成就軟件工程師的六個要素
1. 良好的編程能力。編程能力直接決定了項目開發(fā)的效率。這要求軟件工程師至少精通一門編程語言,熟悉它的基本語法、技術特點和 API( 應用程序接口 ) 。
2. 自覺的規(guī)范意識和團隊精神。隨著軟件項目規(guī)模越來越大,僅僅依靠個人力量已經無法完成工作,因此,現代軟件企業(yè)越來越重視團隊精神。一般來講,軟件企業(yè)中的程序員可以分為兩種,一種是 " 游擊隊員 " ,他們可能對編程工具很熟,能力很強,編寫的程序簡潔高效,卻缺乏規(guī)范和合作的觀念;另一種程序員個人能力不一定很強,但程序較為規(guī)范,合作意識良好。第二種人更適合現代軟件企業(yè)發(fā)展的潮流。對于基礎軟件工程師來說,他們在企業(yè)中的角色決定了他們必須具有良好的規(guī)范意識和團隊精神。
3. 認識和運用庫的能力。信息以為中心,因此與庫的交互是必不可少的,了解庫的操作和編程是軟件工程師需要具備的基本素質之一。
4. 較強的英語閱讀和寫作能力。程序世界的主導語言是英文,編寫程序開發(fā)文檔和開發(fā)工具幫助文件離不開英文,了解業(yè)界的最新動向、閱讀技術文章離不開英文,與編程高手交流、發(fā)布幫助請求同樣也離不開英文。作為基礎軟件工程師,具有一定的英語基礎對于提升自身的學習和工作能力極有幫助。
5. 具有軟件工程的概念。基礎軟件工程師從事的工作相對于系統(tǒng)分析師和高級程序員要單純一些,但是他們仍然是整個軟件工程中重要的一環(huán),他們同樣需要具有軟件工程的概念:從項目需求分析開始到安裝調試完畢,基礎軟件工程師都必須能清楚地理解和把握這些過程,并能勝任各種環(huán)節(jié)的具體工作。
6. 求知欲和進取心。軟件業(yè)是一個不斷變化和不斷創(chuàng)新的行業(yè),面對層出不窮的新技術,軟件人才的求知欲和進取心就顯得尤為重要,它是在這個激烈競爭的行業(yè)中立足的基本條件。軟件工程師應具有較強的學習總結能力、需求理解能力以及對新技術的敏感性。
( G上述這些能力不可能憑空產生,與信息技術領域先進的基礎理論教育相比,我國高校軟件人才培養(yǎng)模式在實踐技能的培養(yǎng)、IT 前沿技術的獲取與溝通、具有國際水平和標準的軟件項目開發(fā)等方面的培養(yǎng)存在極大不足。為解決這一問題,很多人都是通過培訓和繼續(xù)教育的過程逐步獲得的。) 目前,社會上的軟件工程師培訓很多,但良莠不齊。有些好的培訓,能夠從知識到技能、從技能到應用、從應用到項目,多層次多角度地對學員進行培訓,不僅關注技術層面,同時關注項目規(guī)劃的實施、團隊合作、技術文檔的編寫等在認證培訓過程中無法顧及、但在實際工作中又不可或缺的能力的培養(yǎng),可以使學員在理論上掌握和理解面向對象的軟件工程方法和組件化的軟件設計思想。還有一些培訓中心,針對軟件設計人員,通過對經典設計模式的理論實踐,使學員掌握、運用其思考和解決問題的方法,總結技術經驗,構造自己的設計模式庫,使軟件設計人員能系統(tǒng)地掌握面向對象的方法。
僅有技術是遠遠不夠的,產業(yè)變動快速,復合型的概念也適用于信息技術相關科系,軟件工程師若能軟 / 硬件兼修或略通電信,再通曉某一行業(yè)的相關知識,在職場上就會比單純寫程序的工程師吃香,工作選擇機會也比較多。
我們首先來看一下一個軟件工程師的成長歷程
一個軟件工程師最初都是從寫程序開始的。寫軟件程序其實是很簡單的,入了門,只要條件配合,走專職程序員的道路是相當自然的。這里說的條件是什么呢?興趣是第一,再者就是進修提高。學校雖盡其可能傳授學生最新的知識,但仍然不能追趕技術的腳步。不斷自發(fā)地接觸新知識就成了最重要的進修方式,能不能把握好這些機會,決定著程序員的技術層次和前程。
在技術鉆研的歷程上,剛開始你可能只是一個程序生產者。在這個階段里,你只以編寫程序的能力來提供服務。這個階段重要的是打好基礎,千萬不要養(yǎng)成不良習慣:比如求快而忽略細節(jié),千萬不要以為簡單和簡陋是同一件事情。
漸漸地,單純的程序編寫已不具挑戰(zhàn)性,你開始對自己負責程序編寫的模塊設計產生懷疑,并能適時地提供改善的建議。接著,你可能因為經常提出好點子而被嘉許。就這樣逐漸開始接觸設計的領域。富有創(chuàng)意或是基礎扎實的人,會比較快地進入此階段。
更進一步,你開始負責模塊的設計。與前一階段相比,你的工作內容已經從程序編寫變?yōu)槌绦蛟O計,這時你編寫的程序的比重在逐漸減少,但通常都是比較重要的部分。在與同事的溝通中,你將了解到整個產品的設計理念和重點。能不能更上一層樓,是否具有足夠的前瞻性,都取決于這個階段。很多不錯的工程師都在這一層上下徘徊,無法取得進一步的突破。若不能下足工夫,將很難再創(chuàng)新高。)
過了這個階段,你就可以獨立完成一個產品的全部模塊設計。此時重要的是產品系統(tǒng)的周全性,以及各模塊之間的關聯(lián)及互動。此時,你就將由程序員升格為軟件工程師。
由此可見,修成一個成熟的軟件工程師要有相當時間的磨練和積累,學習與不斷提高伴隨著軟件工程師的職業(yè)生涯。在這個過程中," 學會學習 " 比 " 學習什么 " 更為重要,因為學習方法遠比學習內容重要,一個成功的軟件工程師必須在實踐中積累分析問題、解決問題的能力。沒有一勞永逸的職業(yè),軟件行業(yè)更是如此。趨勢公司科技產品研發(fā)部的羅鐘靈是如此描述軟件工程師的工作的,我們不妨也看一下:" 寫程序沒有模糊地帶,必須照顧好所有細節(jié),一旦程序有一點小問題,就會造成產品瑕疵。在學校寫程序和在工作實踐中寫程序的最大不同在于,在學校編寫的程序只要能用就行了,但在工作中卻有很大部分時間是在處理各種意外,使程序更為完美,這就要求你必須花很大的精力去學習和積累。新入行的程序員容易把問題簡單化,往往還未對問題透徹了解就貿然解決問題。你應該努力學習分析、解決問題的能力,這是最為迫切的。
成就軟件工程師的六個要素
1. 良好的編程能力。編程能力直接決定了項目開發(fā)的效率。這要求軟件工程師至少精通一門編程語言,熟悉它的基本語法、技術特點和 API( 應用程序接口 ) 。
2. 自覺的規(guī)范意識和團隊精神。隨著軟件項目規(guī)模越來越大,僅僅依靠個人力量已經無法完成工作,因此,現代軟件企業(yè)越來越重視團隊精神。一般來講,軟件企業(yè)中的程序員可以分為兩種,一種是 " 游擊隊員 " ,他們可能對編程工具很熟,能力很強,編寫的程序簡潔高效,卻缺乏規(guī)范和合作的觀念;另一種程序員個人能力不一定很強,但程序較為規(guī)范,合作意識良好。第二種人更適合現代軟件企業(yè)發(fā)展的潮流。對于基礎軟件工程師來說,他們在企業(yè)中的角色決定了他們必須具有良好的規(guī)范意識和團隊精神。
3. 認識和運用庫的能力。信息以為中心,因此與庫的交互是必不可少的,了解庫的操作和編程是軟件工程師需要具備的基本素質之一。
4. 較強的英語閱讀和寫作能力。程序世界的主導語言是英文,編寫程序開發(fā)文檔和開發(fā)工具幫助文件離不開英文,了解業(yè)界的最新動向、閱讀技術文章離不開英文,與編程高手交流、發(fā)布幫助請求同樣也離不開英文。作為基礎軟件工程師,具有一定的英語基礎對于提升自身的學習和工作能力極有幫助。
5. 具有軟件工程的概念。基礎軟件工程師從事的工作相對于系統(tǒng)分析師和高級程序員要單純一些,但是他們仍然是整個軟件工程中重要的一環(huán),他們同樣需要具有軟件工程的概念:從項目需求分析開始到安裝調試完畢,基礎軟件工程師都必須能清楚地理解和把握這些過程,并能勝任各種環(huán)節(jié)的具體工作。
6. 求知欲和進取心。軟件業(yè)是一個不斷變化和不斷創(chuàng)新的行業(yè),面對層出不窮的新技術,軟件人才的求知欲和進取心就顯得尤為重要,它是在這個激烈競爭的行業(yè)中立足的基本條件。軟件工程師應具有較強的學習總結能力、需求理解能力以及對新技術的敏感性。
( G上述這些能力不可能憑空產生,與信息技術領域先進的基礎理論教育相比,我國高校軟件人才培養(yǎng)模式在實踐技能的培養(yǎng)、IT 前沿技術的獲取與溝通、具有國際水平和標準的軟件項目開發(fā)等方面的培養(yǎng)存在極大不足。為解決這一問題,很多人都是通過培訓和繼續(xù)教育的過程逐步獲得的。) 目前,社會上的軟件工程師培訓很多,但良莠不齊。有些好的培訓,能夠從知識到技能、從技能到應用、從應用到項目,多層次多角度地對學員進行培訓,不僅關注技術層面,同時關注項目規(guī)劃的實施、團隊合作、技術文檔的編寫等在認證培訓過程中無法顧及、但在實際工作中又不可或缺的能力的培養(yǎng),可以使學員在理論上掌握和理解面向對象的軟件工程方法和組件化的軟件設計思想。還有一些培訓中心,針對軟件設計人員,通過對經典設計模式的理論實踐,使學員掌握、運用其思考和解決問題的方法,總結技術經驗,構造自己的設計模式庫,使軟件設計人員能系統(tǒng)地掌握面向對象的方法。
僅有技術是遠遠不夠的,產業(yè)變動快速,復合型的概念也適用于信息技術相關科系,軟件工程師若能軟 / 硬件兼修或略通電信,再通曉某一行業(yè)的相關知識,在職場上就會比單純寫程序的工程師吃香,工作選擇機會也比較多。