—— 你以為我每天上班就是為了幾個臭錢么???
—— 是的,你說對了……
IT是一個有些讓業(yè)外同行羨慕嫉妒恨的行業(yè),統(tǒng)計數(shù)據(jù)來說平均薪資應當是僅次于金融行業(yè)的,遠高于其他傳統(tǒng)行業(yè),有一倍甚至數(shù)倍的差距。一線城市的一個中高級程序員,可能已經(jīng)是某些傳統(tǒng)行業(yè)公司高管的薪資水平了。概率上來說從業(yè)IT,確實是一個讓寒門子弟咸魚翻身,改變?nèi)松目孔V途徑。
鍋叔的從業(yè)過程中,走過各種類型的企業(yè),也遇到很多有志于投身IT行業(yè)的同學,咨詢?nèi)胄袉栴}。工作中也實際遇到過很多非科班入行乃至轉(zhuǎn)行加入的同事。于是決定水一篇,把一些經(jīng)驗、見聞,以及軟件開發(fā)行業(yè)的內(nèi)部崗位分工情況,給大家做下分享。
一、常見Q&A
1. 做軟件是不是要求高學歷?
進大家都想去的公司需要,如果只是想加入軟件行業(yè),在一般公司謀份差事,實際是不需要的。一些高薪“大廠”,因為收到的簡歷太多,為了提高篩選效率,會設置硬性的本科985,211條件。而多數(shù)的公司是沒有如此挑剔的資本的。期望招聘的都是計算機相關專業(yè),統(tǒng)招本科。而實際投來的簡歷都是各種培訓機構,民辦、成教,活兒也總是要有人干,也只能面對現(xiàn)實,看經(jīng)驗能力為主。
2.是否要計算機相關專業(yè)畢業(yè)?
也不必須,我遇到過的有高中畢業(yè)上了個達內(nèi),黑馬之類培訓班入行的,有做海員做到3副改行,每天中午吃飯一瓶啤酒的:-),有學英語專業(yè)自己考計算機四級的,有之前賣服裝,想改行當測試的……。條條大路通羅馬,只要信仰堅定。
3.英語和數(shù)學不好,能做程序員么?
鍋叔小時候就常聽到這樣的說法,恰巧也不太擅長數(shù)學,英語,曾經(jīng)深為憂慮。后來發(fā)現(xiàn)工作中,很難用到小學范圍外的數(shù)學知識-_-|| 。當然對數(shù)學和英語的要求也不是空穴來風。大概在之前的認識中,計算機更偏向科研領域,程序員都偏向科研人員,目前的狀況,實際上絕大多數(shù)開發(fā)人員開發(fā)的是應用,解決的是工程問題,而不是科研問題。
因此它們的權重取決于你工作的領域,如果要做算法,機器學習,游戲引擎這種,那數(shù)學是很必要,如果是做進銷存,圖書管理等信息管理系統(tǒng),基本就是小學應用題水平夠用。分工細致的公司中,算法工程師和開發(fā)工程師是不同的兩個崗位。
4.自覺不是很聰明,能做軟件么?
對任何職業(yè)來說,天賦都很重要,有時決定了你能夠到達的最高高度。但勤能補拙在很大范圍內(nèi)是適用的,還到不了拼天賦。不夠聰明問題不大,謙虛好學更加重要。
5.如何才能找到第一份軟件開發(fā)工作?
對于半路出家的同學,找第一份工作通常是最難的,只要有了2-3年的工作經(jīng)驗,后續(xù)的問題往往是找多少錢的工作,而不是找不找得到。
常見的解決方法是報名培訓班,保證安排工作的那種, 學成之后(當然要好好學)可能會被輸出到合作單位,也可能有就業(yè)指導老師,幫你出謀劃策,虛構一份已經(jīng)有2-3年工作經(jīng)驗的簡歷-_-|| ,指導你如何面試。培訓機構也會有模擬項目,讓你了解實際工作中一個項目是如何開發(fā)的。靠譜的培訓班和好好學習很重要。
另外一個方法是,自己寫一些作品進行展示,web開發(fā)的可以自己做點網(wǎng)站之類,參與點兒開源項目,最好精致一點,有點深度,以便展示自己的技術能力,也可以增強自己的自信心。鍋叔在面試初級人員時,如果對方有自發(fā)出于興趣,編寫過東西,會是很大的加分項。
6.是不是經(jīng)常猝死,傷亡率很高
-_-|| ,去內(nèi)卷是大勢所趨了,情況應該會越來越好。即便沒變化,選擇也還是很多的,不一定要進996的互聯(lián)網(wǎng)大廠。賺錢和生活要自己平衡。
7.除了程序員,還有哪些崗位,分別工作內(nèi)容是什么?
開發(fā)軟件的是一個團隊,并不是一個人,而且團隊的分工是日趨細化的,除開發(fā)外, 另外還有,需求,測試,運維,算法等主要方向。后面會做一個簡要概括。
二、軟件行業(yè)崗位簡介
1. 需求分析&產(chǎn)品經(jīng)理
負責輸出需求文檔的人員。產(chǎn)品經(jīng)理雖然帶著經(jīng)理兩個字,但擁有較大自主權的大產(chǎn)品經(jīng)理也是少數(shù),多數(shù)只能決定功能的實現(xiàn)方式,無權決定功能去留。例如大老板或者產(chǎn)品總監(jiān)說,我需要開發(fā)一個聊天工具,要能加好友,能發(fā)文字,圖片,能語音,能視頻。之后就會由需求分析人員或者產(chǎn)品經(jīng)理落地為具體的軟件界面,明確好友界面怎么顯示,怎么添加,發(fā)語音怎么操作等。
個人覺得,初級的需求人員要求不高,主要要求是善于溝通,能理解產(chǎn)品需求(如加好友,發(fā)語音的意思),能夠使用原型繪制工具(畫軟件長什么樣子的草圖),基本就可以勝任。到了高級階段沉淀的主要是對特定行業(yè)的了解,如醫(yī)療信息化,消防信息化的組成和流程,直播軟件,社交軟件都有哪些玩兒法,怎么運營等。
2.UI設計
負責定義軟件的外觀,一個軟件好不好看通常體現(xiàn)這個人的水平。鍋叔一直覺得,這是一個對美術有一定要求的崗位,受過美術訓練的同學對顏色,構圖的感覺,遠強于普通人。而且必要的時候還具備手繪能力。主要的要求是能夠繪制效果圖,工具可能是PS?了解一般UI規(guī)范。
從事平面設計的同學是可以比較快上手的,只需要額外多考慮下程序的動態(tài)性(菜單的多少,內(nèi)容的數(shù)量長短,有別于一張靜態(tài)圖片)。也遇到過沒有美術基礎的UI,感覺強于交互邏輯,視覺效果上還是要差些。
3.開發(fā)
根據(jù)產(chǎn)品原型與UI效果,實際編寫交付軟件的人員,即狹義上的碼農(nóng)。日常工作主要是用鍵盤碼代碼,要具備編程能力,能夠開發(fā)完成leader分配的開發(fā)任務,并保證質(zhì)量。編程可以自學,可以通過專業(yè)院校,甚至培訓班速成。不同的平臺屬于不同的工種,如常說的Java程序員,.Net程序員 ,Android程序員。初級開發(fā)通常只要求能夠完成一個平臺的一般功能開發(fā)。高級開發(fā)則會對廣度和深度有更高要求。
4.測試
負責驗證開發(fā)人員工作成果正確性的人員,檢查是否按照需求原型的要求實現(xiàn)了功能,是否按照UI效果圖,實現(xiàn)了外觀效果。需要編寫測試用例,可以理解為計劃測試的內(nèi)容和期望結果。聽起來雖然比較簡單,其實測試工作是具有系統(tǒng)的測試理論的。因為輸入難以窮盡,bug難以窮盡,需要兼顧成本限制。按測試方式和范圍的不同分為功能測試,性能測試,自動化測試等。功能測試比較基本,通俗說就是試試好不好用,掌握一定的測試基礎理論即可勝任。性能及自動化測試,需要更多的學習,以及一定的編程能力?!?/span>
5.運維
職責為服務器管理維護,生產(chǎn)系統(tǒng)運行監(jiān)控,運維工具編寫等。初級的運維人員通常要求對服務器操作系統(tǒng)的使用比較熟悉,能進行常規(guī)的配置賬號,防火墻操作,能完成常規(guī)服務的搭建如web服務,ftp服務以及服務器管理等工作。監(jiān)控運維要求通過運維工具監(jiān)控生產(chǎn)環(huán)境軟件系統(tǒng)的運行狀態(tài),檢測異常,并及時預警,通常需要有監(jiān)控工具使用能力及腳本編寫能力。開發(fā)運維則要求有開發(fā)能力,可以自行編寫比較復雜的運維工具。
最后,心動不如行動,水到這里,周末愉快~!
本文來自博客園,作者:鍋叔
原文鏈接:https://www.cnblogs.com/uncleguo/p/16112529.html
版權聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。