從業(yè)者:北辰鯉
從業(yè)年限:4年
一句話感受:我相信指尖有改變世界的力量
從業(yè)地點: 廣州
對口專業(yè):軟件工程、計算機科學與技術等專業(yè)
從業(yè)門檻:大專及以上
能力要求:嚴謹?shù)倪壿嬎季S能力、優(yōu)秀的學習能力,精通各種技術框架
晉升路徑:初級工程師→中級工程師→高級工程師→項目負責人→技術總監(jiān)
薪資水平:15萬~20萬元/年
入職提醒:要耐得住寂寞、忍受得了孤獨、明白團隊協(xié)作的重要性;要有嚴謹?shù)倪壿嬎季S和較強的抗壓性,因為工作壓力較大
我是一名Java軟件開發(fā)工程師,外行人還賦予了我們特有的稱呼——攻城獅、程序猿。
軟件編程是信息時代的基石,我們現(xiàn)在所使用的網(wǎng)頁、電商軟件、購票軟件……這些的背后,都離不開軟件開發(fā)工程師的默默努力。我相信,“程序猿”的指尖有改變世界的力量。
這才是Java開發(fā)工程師的工作
常見的軟件開發(fā)語言有Java、C、C++、C#、Go、.Net…… 每種編程語言都有各自擅長的應用場景,諸如我們日常使用的電腦系統(tǒng)Windows主要是用C++編寫的。Java開發(fā)語言誕生于1995年,經(jīng)過開發(fā)者幾十年的不斷努力,已經(jīng)成長為構建現(xiàn)代企業(yè)Web應用后端最常用的編程語言之一。
作為一名Java軟件開發(fā)工程師,我們的職責是根據(jù)開發(fā)進度和任務分配完成相應模塊軟件的設計開發(fā)編程任務,然后就是與Bug(程序錯誤,程序缺陷)做斗爭的漫長過程,也就是代碼調試分析階段。
軟件開發(fā)的流程大致如下:
第一階段——需求分析階段,相關的系統(tǒng)分析工程師會與用戶初步了解需求、分析需求、確認需求;
第二階段——概要設計階段,架構師或項目負責人會對系統(tǒng)整體架構進行設計,其中包括系統(tǒng)組織架構設計、模塊設計、數(shù)據(jù)結構設計、技術選型等;
第三階段——詳細設計階段,這一階段是在概要設計的基礎上對軟件系統(tǒng)進行詳細設計;
第四階段——編碼階段,這一階段也是我負責的主要工作,針對用戶需求開始具體地編寫程序工作,分別呈現(xiàn)各模塊的功能,從而實現(xiàn)對目標系統(tǒng)的功能、性能、接口、界面等方面的要求;
第五階段——測試階段,在該階段,軟件開發(fā)工程師開發(fā)完成后,將測試編寫好的系統(tǒng)交給用戶、測試工程師使用,用戶一個一個確認功能是否能夠正常使用。
第六階段——交付階段。
交付階段之后就是驗收、維護階段,這就是軟件開發(fā)的整個生命周期。
Java開發(fā)工程師忙碌的一天
對于軟件工程師來說,每天的核心工作就是寫代碼,中間偶爾也會穿插一些項目評審會、需求溝通會議、技術分享交流會。
俗話說“好的計劃是成功的一半”,作為一名軟件開發(fā)工程師,要善于利用各項工具,合理規(guī)劃好自己的時間,才能有條不紊地完成上級領導安排的開發(fā)任務。
我會于早晨八點半抵達公司,開始一天的開發(fā)工作。一般來說,上午的時間思路比較清晰,適合解決一些系統(tǒng)功能開發(fā)的難點,非常適合處理前一天遺留的棘手的技術問題。因為思路清晰,編程效率也會大幅度提升。
一上班先打開團隊項目管理工具TAPD,查看儀表盤,根據(jù)任務優(yōu)先級完成對應的軟件開發(fā)任務。然后再打開編程工具——IDEA,全稱 IntelliJ IDEA,是Java編程語言的集成開發(fā)環(huán)境。IntelliJ IDEA在業(yè)界被公認為最好的Java開發(fā)工具,尤其在智能代碼助手、代碼自動提示等方面非常出色,好的開發(fā)工具能夠極大提高軟件編程的開發(fā)效率。
兩個小時后,第一個任務已經(jīng)開發(fā)完成,將TAPD對應的任務狀態(tài)改外轉測試,等待業(yè)務人員進行測試、反饋。接著,全身心投入到下一個任務的開發(fā)工作中。在編程過程中遇到最多就是各種報錯了,我需要根據(jù)報錯的提示,對應調整代碼,解決系統(tǒng)目前存在的問題。有些問題可能幾分鐘就解決了,而有些問題可能需要花費幾個小時,甚至幾天時間才能解決。
中午十二點,又到了補充能量的時刻,編程是一件十分耗費腦力的事情,午餐自然不能馬虎,公司食堂開了許多窗口,我偏愛“一碗香”窗口的湘菜。吃完飯后,回到辦公室,我通常會午休四十分鐘左右。中午適當?shù)匚缧?,是為了下午更好地工作?/p>
下午,繼續(xù)編程、測試工作,傍晚時分,戴上耳機,踏上了回家的路途。
享受技術帶來的快樂
編程令人最大的改變在于專注力的提升,在做軟件開發(fā)工作之前,我的專注力比較差,做事情經(jīng)常是三分鐘熱度。而編程需要很高的專注力,當你全身心投入工作時,時間很快就過去了,轉瞬即逝。
在很多人的眼里,編程是一件非常枯燥的事情,每天面對如同天書一樣的代碼,來來回回敲個不停。當然,我們編程人也有專屬于我們的快樂,比如在代碼中埋一些彩蛋,運用新技術解決一些技術難題,還有最令人欣喜的是來自于用戶的肯定。近段時間,我為客戶做了一個CRM系統(tǒng)軟件,深受用戶的好評,因為我做的軟件,客戶的效率有了明顯的提升。
耐得住寂寞,忍受得了孤獨
編程是一件漫長且枯燥的事,能夠堅持的人并不多,很多人往往受不了這種孤獨。很多朋友羨慕軟件開發(fā)的薪酬,但許多人干了一段時間后就紛紛轉行了。
編程最重要的是想法和心態(tài),只有忍受得了孤獨,才能在與bug斗爭的過程中取得最終的勝利。想法和心態(tài)是提高編程水平的關鍵,編程水平的提高不僅需要大量的練習,還需要多思考、多琢磨、多學習。
博才多藝,不一樣的“程序猿”
格子衫、沉默寡言、禿頂……這是外界對我們的刻板印象。我想告訴大家的是,我們也有屬于自己的浪漫,我們不僅會寫代碼、還會寫詩、寫散文、彈鋼琴、拉小提琴……
去年公司年會的時候,我們公司的前端小姐姐拉著小提琴,唱起了樸樹的《白樺林》;程序員小哥哥彈著吉他,深深款款地為我們演奏了一曲《白蓮花》;我自己呢?則愛好寫作,近些年來,也在各大雜志發(fā)表了不少的文章。在這里,我想再三強調一下,我們程序員不是你們想象的那個樣子!
不斷學習,樂此不疲
軟件開發(fā)是一個吃青春飯的行業(yè),技術更迭迅速,年長的工程師確實在精力上比不上剛畢業(yè)的小年輕,但在技術上的積累,在項目上的積累也是小年輕不能比擬的。作為一名軟件開發(fā)工程師,我們要緊跟時代的潮流,及時地更新自己的技術棧,這樣才不會被時代拋棄。
我從業(yè)四年來最大地感受就是,軟件開發(fā)是一件非常容易得到成就感的事情,我的偶像是比爾·蓋茨,希望能夠像他一樣做出偉大的軟件產品,造福于人類。作為一名軟件開發(fā)工程師,我們不僅需要擁有嚴謹?shù)倪壿嬎季S能力,還需要有良好的溝通能力,這樣才能更好地與團隊的成員以及客戶進行溝通。軟件開發(fā)是一個團隊運動,我們要明白團隊協(xié)作的重要性,盡可能地按時、按質量完成自己的任務,在遇到難題的時候,及時地向前輩、上級領導請教,然后總結經(jīng)驗,進而提升自己解決問題的能力。
給想成為軟件開發(fā)工程師的你一些建議
選擇成為一名軟件開發(fā)工程師要三思而后行,確認自己是否真的喜歡編程,不能光看薪酬就稀里糊涂進了這個行業(yè),其次就是要不斷地學習、積累、沉淀,多看大佬的技術博客,自己也可以用博客來分享自己的學習心得!
技術學習方面可以通過B站、博客園、CSDN、掘金、技術論壇等途徑了解最新的技術,那里的同行可能也遇到了和你類似的問題,大多數(shù)問題都可以在那里找到答案!
在工作之余,要記得多運動、多鍛煉,避免長時間地坐在工位上,盡可能地遠離職業(yè)??!