這一年,我從學(xué)校畢業(yè),走上工作崗位,成為了一名程序員。在w公司工作的半年時(shí)間里,參與過項(xiàng)目開發(fā),經(jīng)歷了崗位調(diào)動(dòng)(由開發(fā)轉(zhuǎn)為維護(hù))。經(jīng)過這段時(shí)間的工作,逐漸地對(duì)w公司開發(fā)人員和維護(hù)人員的工作和生活狀況有了認(rèn)識(shí),相比剛走出校園的自己,心態(tài)也發(fā)生了一些變化。
開發(fā):狂奔的蝸牛
進(jìn)入w公司后,第一個(gè)參與的項(xiàng)目是U項(xiàng)目,U項(xiàng)目是融合通信相關(guān)的,基于已有的業(yè)務(wù)代碼作二次開發(fā),功能包括即時(shí)消息、IM會(huì)議、寬窄帶電話等。
原有的業(yè)務(wù)代碼,結(jié)構(gòu)混亂、冗余代碼多、模塊交互過程繁雜、歷史悠久。很多源碼文件代碼行數(shù)過萬,某個(gè).c文件有4萬多行代碼,其中一個(gè)函數(shù)有將近3k代碼,代碼調(diào)用層次最深的達(dá)到10多層。在這份號(hào)稱過百萬行的代碼里,2007年產(chǎn)的那叫陳釀,2000年產(chǎn)的那叫國窖經(jīng)典,甚至有人發(fā)現(xiàn)80年代的代碼,那叫一個(gè)“代碼恒久遠(yuǎn),一碼永流傳”。
一位老員工對(duì)我說:少年,你若能把這份代碼看懂,以后看其他代碼,那都是浮云!但他不知道,從看到這份代碼起很長一段時(shí)間,我見到老同學(xué),都是這樣一副表情:
原有代碼的惡臭,加上通信流程的理解門檻,新員工很難在新項(xiàng)目開發(fā)中擔(dān)任主力。項(xiàng)目時(shí)間緊,業(yè)務(wù)需求不斷變動(dòng),更加大了開發(fā)的難度和老員工的負(fù)擔(dān)。盡管采用了“流行”的敏捷開發(fā)流程,但更多地是趕工期的敏捷、加班的敏捷。像過去一樣,依賴“人多力量大”,新老員工合力扛過了U項(xiàng)目這“一大波僵尸“,但這之后,從人員技能、代碼優(yōu)化方面,是否應(yīng)該考慮進(jìn)行裝備升級(jí)呢?
個(gè)人工作
吐槽過后,來講講我在U項(xiàng)目中的工作。在U項(xiàng)目中我負(fù)責(zé)F模塊部分功能的開發(fā):
消息跟蹤功能:顯示模塊中部分變量的值,展現(xiàn)程序的調(diào)用過程與返回結(jié)果
防止內(nèi)存泄漏功能:檢測模塊調(diào)用者,在調(diào)用者失效時(shí)釋放其申請的內(nèi)存塊
另外,參與了與F模塊相關(guān)的單元測試、性能測試。在編碼過程中,了解了代碼靜態(tài)檢查、圈復(fù)雜度檢查等概念以及相關(guān)工具的使用方法;在單元測試過程中,學(xué)習(xí)了gtest單元測試框架的使用方法。
維護(hù):笨拙的偵探
U項(xiàng)目就要進(jìn)入交付期的時(shí)候,我被告知要調(diào)到另一個(gè)項(xiàng)目組的維護(hù)組。
是的!當(dāng)時(shí)聽到這個(gè)消息就震驚了!俺可是立志從事軟件開發(fā)的娃啊!維護(hù)是做神馬的?!人家一點(diǎn)思想準(zhǔn)備都沒有啊!!!
說說維護(hù)
調(diào)換部門后,經(jīng)過一個(gè)月的摸索,漸漸了解了維護(hù)工作內(nèi)容。我所在的小組負(fù)責(zé)平臺(tái)的維護(hù)工作,這里的“平臺(tái)”涵蓋硬件(CPU、內(nèi)存、磁盤、網(wǎng)卡等)、存儲(chǔ)設(shè)備、操作系統(tǒng)和中間件軟件,那工作內(nèi)容又包括哪些呢?包括改進(jìn)完善維護(hù)工具、實(shí)施保障與問題處理。問題處理是指在上層業(yè)務(wù)出現(xiàn)異常或中斷的時(shí)候,通過查看各種日志,排查故障原因(平臺(tái)相關(guān)的)并協(xié)助恢復(fù)業(yè)務(wù),問題處理是維護(hù)工作任務(wù)中的主要一項(xiàng)。
困境
平臺(tái)支撐各種產(chǎn)品的業(yè)務(wù),使用中的設(shè)備數(shù)量多,基數(shù)大,問題出現(xiàn)的概率就大。每個(gè)維護(hù)人員常常同時(shí)處理幾個(gè)問題,加上夜間保障與支持,維護(hù)人員更是感到身心疲憊。分析維護(hù)工作困難重重的原因,我認(rèn)為有以下幾點(diǎn):
1.人才缺失
最根本的原因還在于人。維護(hù)工作涉及計(jì)算機(jī)的各個(gè)方面:硬件、存儲(chǔ)設(shè)備、操作系統(tǒng)(Linux)、網(wǎng)絡(luò)、中間件軟件(雙機(jī)軟件、數(shù)據(jù)庫等),維護(hù)人員要求了解以上各個(gè)方面知識(shí),但現(xiàn)狀是,對(duì)于以上每個(gè)方面,組內(nèi)并沒有專研得深、研究得透的人。
正因?yàn)槿狈I(yè)知識(shí),在分析問題原因的時(shí)候,維護(hù)人員更多是根據(jù)經(jīng)驗(yàn)庫,與問題現(xiàn)象作匹配。也就是說,維護(hù)人員能處理的問題,大多是過去發(fā)生過的、已知原因的、相對(duì)淺顯的問題。面對(duì)需要從“深層次”尋找原因的問題(例如通過分析內(nèi)核代碼,排查內(nèi)核bug),我們往往無計(jì)可施。
2.跨部門合作的瓶頸
作為基礎(chǔ)平臺(tái)的維護(hù)人員,需要與業(yè)務(wù)人員、服務(wù)熱線人員和業(yè)務(wù)實(shí)施人員合作,共同處理、解決問題。各類人員分屬不同部門,問題的嚴(yán)重程度、是否處理得當(dāng),涉及到各個(gè)部門及個(gè)人的利益。當(dāng)問題嚴(yán)重程度高、問題出現(xiàn)原因不明晰的時(shí)候,經(jīng)常出現(xiàn)相關(guān)人員相互推諉、都不愿擔(dān)責(zé)的情況。
在開展工作的時(shí)候,各方人員很少能抱以精誠合作的態(tài)度,反而是將工作壓力層層轉(zhuǎn)嫁。業(yè)務(wù)實(shí)施人員向業(yè)務(wù)維護(hù)人員施壓,業(yè)務(wù)維護(hù)人員向平臺(tái)維護(hù)人員施壓。這造成w公司內(nèi)維護(hù)人員工作壓力、勞動(dòng)強(qiáng)度大,但工作成果反而不被認(rèn)可的現(xiàn)象。
盡管維護(hù)工作面臨很多困難,但與U項(xiàng)目類開發(fā)工作相比較,個(gè)人更愿意選擇維護(hù)工作。原來項(xiàng)目開發(fā)的工作,更多地要求熟悉業(yè)務(wù)通信流程和原有的代碼,對(duì)個(gè)人編程技能提升鮮有幫助;相比之下,做平臺(tái)維護(hù)方面的工作,有機(jī)會(huì)深入學(xué)習(xí)操作系統(tǒng)、 Linux內(nèi)核、存儲(chǔ)、網(wǎng)絡(luò)等方面的知識(shí)。經(jīng)過一段時(shí)間的維護(hù)工作,我心態(tài)上也從抗拒,逐漸變成適應(yīng)與接受。作為初入IT行業(yè)的工作者,多嘗試,多積累不同 產(chǎn)品的開發(fā)經(jīng)驗(yàn)、不同崗位的工作經(jīng)歷,相信有助于自身的成長和發(fā)展。
出來混,始終是要還的
“出來混,始終是要還的”,工作后接觸的人、發(fā)生的事讓我深深體會(huì)到這一點(diǎn)。當(dāng)前的工作和生活態(tài)度,決定了我們將來的生活狀態(tài)。只有拿出積極的態(tài)度,才可能獲得好的結(jié)果。
很多程序員工作任務(wù)重,加班是家常便飯,容易忽略技術(shù)的積累,技能不能提升,久而久之,就變成流水線上的工人。為了避免(或改變)這種情況,我們可以放眼未來,為自己設(shè)定一個(gè)中期目標(biāo)(比如兩年后某某技術(shù)我要達(dá)到什么層次/兩年后我要跳到某某公司),再根據(jù)設(shè)定的目標(biāo),作相應(yīng)的技術(shù)積累。
另一方面,一些剛參加工作的程序員同學(xué),過于寄望未知的未來。當(dāng)他們對(duì)公司或工作稍有不滿的時(shí)候,解決的方法直接了當(dāng):跳槽。沒錯(cuò),IT熱潮下再找一份工作并不難,但這并不是解決問題的根本途徑。在跳槽想法萌生的時(shí)候,請考慮這些問題:我是否勝任當(dāng)前工作?與當(dāng)前工作相關(guān)的知識(shí)我是否都理解?從當(dāng)前工作中我是否已經(jīng)學(xué)不到更多的東西了?我是否達(dá)到心儀工作的技能要求?如果以上問題的答案都是“否”,那請暫時(shí)放棄跳槽的打算,將當(dāng)前工作相關(guān)的知識(shí)學(xué)好,把底子打扎實(shí)。
為避免成為以上兩種人,我經(jīng)常問自己:
今天要學(xué)習(xí)哪些知識(shí)?昨天掌握了哪些知識(shí)?真正掌握了嗎?
兩年后我要在哪里?要做什么事情?現(xiàn)在的自己是在往這個(gè)方向前進(jìn)嗎?
這是我激勵(lì)自己的方法,相信你也有你自己的方法。
-
程序員
+關(guān)注
關(guān)注
4文章
954瀏覽量
30267
發(fā)布評(píng)論請先 登錄
如何成為一名合格的KaihongOS北向應(yīng)用開發(fā)工程師
如何成為一名嵌入式軟件工程師?
如何成為一名合格的北向應(yīng)用開發(fā)工程師
達(dá)實(shí)再度榮獲十大出入口控制品牌第一名
蔚來獲得CACSI車型滿意度和售后服務(wù)滿意度第一名
機(jī)械革命發(fā)布CODE AI程序員本
Linux驅(qū)動(dòng)程序程序員指南

AI編程工具會(huì)不會(huì)搶程序員飯碗
第五屆長沙·中國1024程序員節(jié)開幕
90后程序員的職業(yè)成長漫談

潤和軟件連續(xù)四年蟬聯(lián)數(shù)字業(yè)務(wù)類解決方案市場第一名
程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎(jiǎng)

程序員節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

乘云出海,華為云 618 營銷季跨境電商解決方案激發(fā)行業(yè)新增長

評(píng)論