前言:本文源自@原資料 的一位學生髮給他的私信。這些問題在在校生中很有代表性(見下文)。隨後還有幾位微博網友(@哲學家灰太郎、@偷懶是必須的)針對這些問題,給出了自己的回答。本文把這些回答綜合在一起。
我是東北師範大學軟體工程專業的大學生,馬上會讀大二。在一年的學習中,我也解了不少疑惑,但還是有一些問題,盤留在心中,想請老師幫幫忙,解答一下。謝謝!問題如下:
1. 軟體從業人員主要從事哪些行業?
2. 軟體從業人員的個人職業生涯,在不同的年齡階段是怎樣的?
3. 軟體從業人員的學歷與職位關係如何?
4. 軟體從業人員的工作強度如何?
5. 軟體從業人員的什麼素質是必須的?
6. 對於一些計算機專業的大學生,大學階段該學啥?
7. 中國的軟體行業前景如何?未來將會怎樣發展?
8. 目前來看,學哪種語言,更好?
這是我一年來留在心中的疑惑,在我目前這個階段,我希望知曉這些,為了我將來的發展。謝謝老師!老師如果忙,可以選擇性回答。
@原資料 的回覆:
1、軟體從業人員主要從屬哪些行業?
軟體業從服務物件來看,主要分為兩大類:網際網路行業、傳統的軟體製造業;
網際網路行業主要是以研發自己的產品面向大眾通過增值服務賺取利潤,比如:淘寶,百度,騰訊等,網際網路行業競爭十分激烈,技術要求高,因為一個很小的創新能夠帶來很大的回報,但投入很多血本無歸的也不在少數。
傳統軟體製造業主要面向企業,發展緩慢但比較穩定,這裡面有的是有自己的產品比如:用友,金蝶。有的是通過設計開發解決方案方式為企業定製開發的,還有的是承接外包的方式(別人搞好設計你來實現)。
可以看出他們的技術含量基本上:網際網路 → 企業解決方案 → 一般的外包(但也不是說外包一定沒有技術含量)
2、軟體從業人員的個人職業生涯,在不同年齡階段是怎樣的?
關於職業規劃,一方面看個人興趣,另一方面也要看公司提供的平臺和機會。一般大企業都會分成技術路線和管理路線來培養員工的。
技術路線:從初級軟體工程師→軟體工程師→高階軟體工程師→資深軟體工程師(架構師)→CTO,
管理路線:可能在某個專案之後你會被提拔成組長→專案(產品)負責人→專案(產品)經理→部門經理→…
恩,當然還有自己創業的。
3. 軟體從業人員的學歷與職位關係如何?
相信我學歷很重要…等你出來就知道了。在大公司裡,一般是看重學歷的
4. 軟體從業人員的工作強度如何?
搞軟體是很辛苦的,加班趕上線是再正常不過的,不能吃苦就早點轉行吧
5. 軟體從業人員的什麼素質是必須的?
關於素質,保持一刻好學的心,擁有一個良好的心態是很重要的,另外還要看你有多大決心做出多大的成就
6. 對於一些計算機專業的大學生,大學階段該學啥?
當然是基本功了,資料結構,演算法等。這些看似今後接觸少的東西,卻是今後能發揮大作用的內功心法。
另一方面是掌握符合自己的學習方法,搞軟體的最經常的就是要面臨快速的技術更新,有快速的學習方法就能勝人一籌。另外,外語也非常非常重要的,比如你想到歐美企業,要想良好的溝通和交流,語言是必不可少的。
7. 中國的軟體行業前景如何?未來將會怎樣發展?
看太遠也沒用
8. 目前來看,學哪種語言,更好?
不要太在意學哪門語言,找自己的興趣點最重要,掌握某一門語言後,觸類旁通也不是難事。
@哲學家灰太郎 的回覆:(以下主要針對國內環境來說,原回覆釋出在其個人部落格)
1、軟體從業人員主要從屬哪些行業?
軟體人員從事的行業比較多,如電信、銀行、政府、企業等等,,凡是用到資訊化的 都需要軟體從業人員。
主要分為:開發的、維護的 二大類。。 比如去某個企業工作,那個企業主要是維護已經上線的系統。有的是專門為別人開發的。 不同行業要求不同。
其中軟體公司的開發要求高,軟體公司中有分 開發產品的 和做專案的,開發產品的 已經有產品了,在原產品基礎上擴充套件更新。而開發專案會接觸到不同專案,不同技術。 因此 學生可以去軟體公司,也可以去需要軟體的企事業,政府機構。 或者自己開網站、做專案、產品 等等 也都可以。
2、軟體從業人員的個人職業生涯,在不同年齡階段是怎樣的?
在中國一般性認為,35以上基本很少開發了,多數是20到35 之間從事開發的多。 35 以後多數人走向管理。 不是這些人不能開發,反而經驗多開發更好,主要是中國的現狀 大家認為年紀大,思維不靈活,加班力不足等等,所以目前來說,高軟體行業有部分吃青春飯的痕跡。
一般學生出來,1-2年在公司 跟著其他人多學多做專案,打好基礎,第3年是 開始自己開發實踐,可以自己維護專案帶專案。 3-5年 是發展期,技術和管理漸漸提高,漸漸走向設計,管理的層面多些。 5-8年,基本上已經做專案經理,部門經理或 資深的架構師、設計師。軟體開發的坎 在 3、5、7 年。三個比較重要的階段。
因此我招人一般招2年以上實際工作經驗的(要實際開發2年),要麼就招畢業生,1年的屬於雞肋。
因為教會一個畢業生開發 3個月就可以了。和1年的產出效果 差不多,有成本優勢。
進入公司想學的好,關鍵是那個帶你的人很重要。比如我帶人,如果你想學肯學踏實,那麼我就多說,否則不會主動說的。比如說,我帶的一個學生,開發的時候,教他開 發。他很努力,看看不錯,於是在設計的時候,也拉他進來,告訴他如何設計,如何用axure 工具做好的原型,並教他如何用原型和客戶交流。。因為這樣能分擔些我的任務,我也樂意,如果他不想,那麼我不會勉強,寧可自己做,也不會說半點。
3、軟體從業人員的學歷和職位關係怎樣?
學歷和職位基本上沒啥關係,如果從事研究行業,如影像、資料探勘等等,那麼你最好是博士碩士,但計算機行業多半是應用科技行業。研究類少。 學歷有用主要在二處:一,畢業剛進公司的時候 稍微有用, 二、做專案的時候給客戶說我們有多少博士碩士。 其他情況企業主要看能力經驗技術。工作經驗超過5年以上,基本不太考慮學歷,關鍵看能力。
因此根本不必擔心學歷,本科就夠了。
4、軟體從業人員工作強度如何?
目前工作強度相對來說 常加班也是有的。。特別是做專案。。但平時也有休閒。。這個不一定。。所謂忙的時候很忙,空的時候很空 都是有的。。和其他行業工作強度差不多。。全國一樣。 都是壓力山大。
5、軟體從業人員什麼素質是必須的?
一、善於和團隊溝通,和客戶溝通,會溝通 是最關鍵的素質要求。
二、日常禮貌素質,這在客戶面前所表現出來的素質有聯絡。
三、要善於思維、和學習方法論
四、就是踏實、虛心、好學、肯幹、巧幹。–這是大家都喜歡的。
6、對於計算機專業的大學生,大學階段該學些啥?
目前的大學課程設定遠遠落後於發展,基本上來說,學而無用,或者是即使是新的課程,可是學不到東西。因為老師水平不行。計算機是門應用科學,靠的是實踐。 學校老師沒幾個實踐豐富的。而企業實踐豐富的也當不了老師。
於是學生和老師每年重複著同樣的課題,課件。
鑑於這樣的情況,建議學生學習如下:一、把基礎學好,特別是演算法、設計模式、ip原理、作業系統等……這個還是可以在學校學好的。 二、掌握一門語言不一定以後用來開發,是要了解程式的精髓。一般選c++、lisp語言比較好。
三、多瞭解市場科技發展情況,多瀏覽如開源論壇等等技術網站,瞭解動態。
四、在學校要熟練學好基礎工具,不要到上班後再學,如word,viso,UML,axure 、繪圖工具等等。有人說,word 我會,你問他,如何把格式刷成自動編號的,估計他不會了。 這些工具 都是在專案中 用到 且必要的 。
五、瞭解些管理工具,如 禪道、project2007 等等,
六、注意方法的培養,培養解決的思維,而非實現的思維,遇到問題,首先考慮到多種解決方案。
七、接下來 學習一門比較流行的語言 ,如java ,並自己實踐一個自己的想法的小專案,修改維護一個開源小專案。會對自己有很好的提高。
八、如果有實習機會 能夠有經驗 的人帶 最好。。 我以前喜歡帶人,可是所帶的很少有踏實的,多數急功近利。恨不得一下子學會某一個開發,就能工作掙錢。 開發都可學會,但開發好的 卻沒幾個。
7、中國行業前景如何?未來行業如何發展?
目前移動網際網路、物聯網、電商、社群是最火的,未來這些方向可以考慮。 具體的參考各資訊入口網站。
8、目前來看學哪種語言更好。
沒有哪種語言最好,只有看那些用的最多,這樣你選擇職業範圍會多些,但也同樣其他人也一樣。
一般學習 java 或c++、.Net 這三類國內用的最多,可以選一或二樣專心學。其他php,c。實際上語言好學,做東西就難了,好比你用磚頭搭個小房子可以,但建設個大樓則難了。
開發不僅僅是學某個語言,還有包括許多思路,方法、工具等等,應該說是在建設某個系統或產品。是需要團隊合作的,也許你是那個設計師。
1. 軟體從業人員主要從事哪些行業?
企業、政府機關、運營商的IT部門 — 做裝置、網路、資料維護。 軟體公司或者裝置廠商 — 軟體設計、開發
2. 軟體從業人員的個人職業生涯,在不同的年齡階段是怎樣的?
行業不同情況不一樣。 一開始幾年一般是做開發和具體的技術,幾年後會發生變動,一部分人轉為技術管理, 一部分人繼續做開發;還有的人乾脆就轉行了。(轉行的佔比估計有30%)
3. 軟體從業人員的學歷與職位關係如何?
沒有人一工作就因為學歷而有了不同的職位,例如不會因為你是博士,一工作就會變領導。 學歷可能會決定一部分的定級,職業生涯的路線都是相同的。 工作兩三年後,一般就是看個人的工作成績而不是學歷了。(大部分都記不住你是啥學校學歷了)
4. 軟體從業人員的工作強度如何?
在IT部門,強度一般不大,只有業務部署的時候有時需要凌晨處理比較麻煩。 在軟體公司和裝置廠商,剛剛開始的幾年會比較累,不過混到一定年限,技術水平上升到一定程度 ,價值不體現在工作時間長短的時候,就可以比較拽的混吃等死了。
5. 軟體從業人員的什麼素質是必須的?
對技術一探究竟好奇心、學習能力、清晰的思路最為重要。 要是沒有這些,不會成為頂尖的技術人員,只能混混。
6. 對於一些計算機專業的大學生,大學階段該學啥?
隔行如隔山,你永遠也不知道該學啥。因為計算機領域技術太廣闊了。 最重要的是,基礎學科一定要紮實,這樣才能很快的將各類新技術融會貫通:演算法、語言、計算機原理、作業系統這些都是最基礎的。高數啥的一點用都沒有。 多關注當前技術熱點就行。如果自己對某個技術感興趣也可以專研下去。
7. 中國的軟體行業前景如何?未來將會怎樣發展?
參見“黑客帝國”,人們越來越懶,裝置越來越智慧;人們也來越依賴虛擬,軟體越做越複雜。這個就是未來
8. 目前來看,學哪種語言,更好?
語言和應用有關,看自己感興趣什麼樣的技術方向。喜歡底層的,肯定是C,喜歡應用的,至少得看java啥的。
幾個補充回覆
雖然@哲學家灰太郎 在前面的回覆已經很全面了,但這8個問題中,有些問題之前已有相應的文章
2. 軟體從業人員的個人職業生涯,在不同的年齡階段是怎樣的?
參考這兩篇篇《寇衛東:話說程式設計師的職業生涯》、《分享8年開發經驗,淺談程式設計師職業規劃》。在中國程式設計師的職業生涯中,前面也有其他朋友提到了,有人認為是吃青春飯(不像國外同行,35歲之後,仍舊可以在寫程式碼),似乎35歲後還在寫程式碼,會被人鄙夷,就必須轉管理層。這個話題,以前在@程式設計師的那些事 微博上,專門討論過,請看這裡。
如果你對這些問題有自己的看法,歡迎在評論或微博中留言。如果還有其他不錯觀點,本文將繼續補充更新。
【如需轉載,請標註並保留原文連結、譯文連結和譯者等資訊,謝謝合作!】