1. 程式人生 > 其它 >測試人生 | 三十而已,何需懼怕!年薪40W+漲薪幅度超40%

測試人生 | 三十而已,何需懼怕!年薪40W+漲薪幅度超40%

⬇️ 點選“下方連結”,提升測試核心競爭力!

>>更多技術文章分享和免費資料領取原文連結

本文為霍格沃茲測試開發學社優秀學員跳槽筆記,測試開發進階學習文末加群。
關於我,普通二本,非計算機專業,培訓出身,北漂,五年多的工作經驗,做過外包,中間有過頻繁的跳槽經歷,手工點點點為主,最近確認了新Offer,遠端辦公,漲薪幅度40%+,年薪大概40w+。我知道這個薪資橫向對比其實並不算高,說實話離自己的期望也還差了一些,能力不足是一方面,另一方面是薪資沒談太好,有點著急了,這個後面會講到。
雖然五年多跳槽了五次,但其實我的面試經歷並不算豐富,因為每一次跳槽面試的次數都屈指可數,所以這篇文章更多的是簡單回顧一下過往,同時附帶一些思考和總結,或許會對後來者有所借鑑和啟發,也可能全是廢話。

只怪當時太年輕


就從培訓說起吧,由於原生家庭以及自我認知的不足,大學時選錯了專業(電氣工程及其自動化)。加之少不更事,沉迷遊戲(英雄聯盟),不思進取。墜入愛河,不能自拔,虛度了光陰,甚至差點遺憾了終身。或許是命運吧,在大三快要結束的時候,恰好有個校企合作的培訓,免費,不限專業,學分可互換,有兩個方向,一個是軟體開發,另一個是軟體測試。
因為非計算機專業,C語言學的也不好,所以就選擇了我認為門檻較低競爭較小的軟體測試,大四開學告別了溫柔鄉從鄭州去到洛陽,開始了培訓。培訓的內容主要就是軟體測試基礎、Linux,以及惠普的測試三大件。那段時間我一週的學習量可能比大學以來的學習量加起來都要多,一方面是感興趣,另一方面是再不學畢業可能真的就失業了,原本半年的培訓,我只學了三個月,一個電話面試就找到了一份實習的工作,可見測試的門檻確實很低,不過其中的努力是少不了的,記得當時像我一樣去培訓的有幾百人,最終進到這個圈子的貌似並沒有多少,並不是說那些同學差,或許人家已經在其他領域混的風生水起了,亦或者去繼承家產了也不是沒有可能。
之所以回顧了下這段培訓的經歷,是因為它改變了我的命運,讓我進入到了網際網路這個行業,所以我對培訓這件事並沒有厭惡和牴觸,在我的簡歷和自我介紹中也都會提到。那為什麼工作了幾年之後,還要再次培訓呢?暫且先不談這個,先來回顧下我的外包經歷吧。
上文提到我大四開學培訓了三個月的軟體測試,一個電話就通過了面試,當天辦理完離校手續,然後買了人生第一張機票,從洛陽飛到了傳說中的北京,開啟了北漂。但來到北京之後才知道還要再面試,才知道外包是什麼意思。三大軟體測試外包公司我去過兩個,第一次是博彥科技外包到新浪微博,算上實習做了一年半,第二次是軟通動力外包到手機百度,做了整一年。之所以有兩次外包經歷,是因為中間去過一傢俬企,感覺並不理想,做了一個月就走了,當時沒有更好的選擇,無奈又做了一年。
畢竟是大廠,我想很多選擇外包的同學都是看中了這一點,雖然是外包,但大廠的環境氛圍和業務流程確實能帶來一些不一樣的體驗,如果幸運的話,遇到一個好領導或同事,在技術上也能收穫很多。比如我編寫測試用例和使用Charles抓包,就是在新浪實習時的組長手把手教的,不過外包的工作一般都比較簡單和枯燥,轉正的機會和名額是相當有限的,不建議做的時間太久,否則可能會影響到以後的職業生涯,我有次走內推就被嫌棄外包經歷過多,若不是朋友提醒可能都不知道為什麼好端端的簡歷直接被Pass,所以外包雖好,可不要貪杯喔。

選擇比盲目努力更重要

為了擺脫外包的困境,自學了Python,不斷彌補各種計算機基礎知識,構建底層知識網,學過CSS、HTML、JS等前端知識,學過Android、微信小程式,甚至學習了區塊鏈,當然現在基本上都忘的差不多了。因為不實際去做專案,每天點點點寫不了幾行程式碼,學過的那些皮毛很容易就忘了,雖然做過大量的筆記,畫過各種腦圖,但轉化不成自己的東西,掌握不了底層的原理,狼吞虎嚥,很容易走火入魔,這讓我差點放棄了測試,想過轉開發,想過轉產品,甚至天真的想過去創業,整個人變得越來越浮躁。
然而在生活的逼迫之下,不得不面對現實,踏踏實實做好測試才是正確的選擇,移動端測試做膩了,就去做Web端,UI測試做煩了就去做介面,功能測試做累了就做自動化等等,不斷地找尋新鮮感。也可以改變自己的定位,比如可以從功能測試工程師轉變為自動化測試工程師,可以從測試開發工程師轉變為測試架構師,你會發現測試這個職業跟開發其實是差不多的,不要把自己侷限在某個標籤下,不斷地去探索和嘗試自己擅長的領域。
但嘗試歸嘗試,正常是不建議跳槽太過頻繁的,會給人一種不穩定的感覺,但如果你跟我一樣,為了擺脫外包的桎梏,多跳個幾次其實也沒什麼,只要在面試過程中解釋清楚一般都會理解的,不過最終肯定是需要有一段比較穩定的工作經歷,我在前幾年折騰完之後現在已經穩定工作了三年多,所以才沒影響我這一次的跳槽。
這三年裡,工作內容基本還是功能為主,但在閒餘時間把Python重學了一遍又一遍,學一遍忘一遍,直到我開始上手做專案寫框架,不斷地查漏補缺,慢慢地終於算是掌握了它,基於Python+Django等搭建了測試資料構建平臺,基於Python+Requests等寫了自動化介面測試框架,都不是Demo,而是真正基於業務去解決問題,當你看到研發和產品都在用你寫的平臺,甚至還會給你提Bug和需求的時候,那種感覺是很奇妙的,會激勵你去做的更好,去學習更多的東西,因而形成一個正向迴圈。
當然這個過程是需要付出很大心血的,尤其是身邊沒有人可以幫助你的情況下,我想如果早一點遇到霍格沃茲測試開發學社這樣的組織,應該會少走很多彎路。因為在這裡你可以隨時提問,會有很多跟你一樣的同行者,會有經驗豐富的前輩指引,不止有方法論,還有具體的解決方案,這是大多數人更需要的東西,你只有解決了一個又一個問題,才能真正理解那些形而上學的東西,不然都是假大空。

目標明確

我在報班之前其實對那些測試框架已經有所瞭解和使用,而且我還有學不完的各種知識付費課程,覺得也沒必要再花那個冤枉錢,畢竟一路都是自學走過來的,但猶豫對比了很久之後,還是選擇了來霍格沃茲測試開發學社學習下,因為他的課程確實很系統,而且有比較多的實戰專案,一節直播課下來可能比自學一週要學到的多。不過我後期因為個人瑣事耽誤了一些課程,到畢業都還沒全看完,狀態也不是很好,甚至都沒來得及複習一遍,面試前也沒有刷過筆試和演算法題之類的,那麼我是如何拿到Offer的呢?
我覺得最重要的就是明確目標,知道自己想要什麼,對什麼感興趣,如果不知道,那至少應該知道自己不想要什麼,對什麼不感興趣,這樣你就有了方向,有了範圍,有了取捨。
拿我自己來舉例,我不喜歡也不想找移動端相關的測試,因為外包那兩年每天面對著十幾款各式各樣的測試機,每一種機型的開發者模式設定和截圖方式都滾瓜爛熟,還有醜到爆的定製化作業系統對我真的是一種折磨,移動端APP我真的測吐了,所以ADB以及Appium這些移動端相關的工具和框架我就可以不再去複習,問就是會,但不好意思,記不清了。那我喜歡什麼呢,介面測試相關的,所以我只需要把網路協議抓包以及我自己寫的介面測試框架回顧一下即可。
再比如我對區塊鏈相關的專案和企業感興趣,我只需要去約面這類相關的公司就可以了,其它的儘可能都拒絕,除非薪資到位,但也要估摸下自己的能力,沒那個實力就別浪費彼此的時間了,正確地認識自己,合理的期望薪資,找到感興趣的領域,化被動為主動,就是你來挑公司,而不是公司挑你了,另外我首先會考慮遠端辦公的,所以面試也都是遠端,綜合下來面試效率得以極大地提升。

還原真實面試場景

如果要具體到面試題,說實話,不同企業不同面試官不同職級不同輪次都不太一樣,不過正常情況下都是基於你簡歷提到的那些技能點提問,比如簡歷寫了熟練掌握Python,那就有必要熟悉下裝飾器、閉包以及多執行緒等,再比如提到了解Ngnix,那正反向代理的區別肯定是要知道的。然後就是根據你過往所測試的業務去提問,一般會挑跟你面試崗位所要負責的業務關聯性最高的,或者你最熟悉的,你需要熟悉業務的整個流程,以及底層服務的呼叫關係,主要考查你對業務的熟練度以及深度等。最後就是根據你寫的測試框架和專案提問,比如框架解決了什麼問題,涉及的模組和設計思路,難點是哪塊,哪些地方還可以優化等等。
不知當講不當講,大概率還會有我最討厭的一種題目,那就是假設一個場景,讓你對此設計測試用例,面試官往往還會補充一句,不用太細,那樣會影響面試時間,當我聽到這兒的時候真心想來上一句國粹,在那短短的幾秒內我真的很難設計出什麼測試用例,除非它是個登入框(手動狗頭),我能按各種測試方法理論給你扯出個幾十條,但往往都沒那麼簡單,或者說過於簡單了,簡單到這種場景我平時基本都不會寫什麼囉嗦的測試用例,測就完事了唄,言歸正傳,如果真的遇到這種問題像我一樣答不上來幾句,建議在反問環節請教一下面試官,不要像我一樣把這茬兒給忘了,以至於現在還不會答,所以……這種題出場率真的很高,但我也只能幫到這兒了。
關於演算法,在我看來這東西本質上是用來篩選那些沒有實際工作經驗的應屆生用的,就像大多數公司卡學歷一樣,我們都知道學歷的高低和能力並不正相關,但競爭同一崗位的人如果太多的話,終歸要用某些條件來過濾掉一大批人,另外就是大廠的偏愛,而我對大廠並沒有什麼執念,所以也就沒必要刷什麼力扣之類的,而且30k以下的測開崗對演算法貌似也沒那麼高的要求,大可不必浪費太多精力,據我所知,現在大廠在選拔人才時,也越來越反感那些張口就給出BugFree最優解的刷題選手,除了能證明他有備而來,態度還不錯,其他什麼也證明不了,聽懂掌聲。
除此之外,我覺得我的個人網站(準確的說是筆記部落格)在某些時候也起到了一定的作用,曾經有大佬通過我在招聘網站遺留的部落格連結,看了我寫的內容,然後又找到我的GitHub給我發了真誠地職位邀請郵件,甚是驚喜,不過我沒有珍惜那次機會,因為當時還沒有跳槽的計劃,就不展開講了。我想說的是,嘗試把自己學到的東西總結分享輸出,於人於己都是好事,但我很反感那種不思考直接複製貼上別人東西的,完全就是在製造網際網路垃圾。
回到正題,當你順利或者磕磕絆絆地通過了一面二面甚至多人同時面的技術面之後,最後就是HR面了,也就是談薪資,文章開頭提到我薪資這塊沒談好,導致最後離期望差了一丟丟,鬱悶了好一陣子,主要原因就是我忽略了它的重要性,以為不涉及技術壓根兒就沒準備,本來是視訊形式的面試,耳機突然沒電了,然後臨時改成電話,在外面凍的哆哆嗦嗦的,面對人力同學一頓基操,很快就被繞進去了,也反映出了自己的談判能力太差,我本身就社恐,基本每次面試都很難發揮出真正的實力來,除了怪自己也沒什麼好抱怨的,其實手裡不止這一個Offer,不過確實是崗位匹配度很高,所以談的著急了一些,以至於還被人力當場誇了實誠,現在想想,可謂是傷害性不大侮辱性極強。
最後我想說,測試開發工程師本質上還是測試,而不是開發,之所以要求有程式碼能力,是希望我們在工作中可以用它去解決問題,可以用不同的工具,或者自己創造工具,但它也只是工具,重要的是解決問題的能力。而不是使用過多少工具,所以不要陷入某個工具的細枝末節裡無法自拔,遇到問題鑽牛角尖兒,搞懂它們的底層原理和技術架構才是正事,比如TCP/IP模型,比如PO模式等,以上只是我個人的一些淺薄認知,僅供參考。
最後的最後,感謝霍格沃茲測試開發學社,很久沒有這麼認真的寫過東西了,願讀到這裡的你前程似錦,生活不止眼前的苟且,還有詩和遠方的田野。

⬇️ 點選“下方連結”,提升測試核心競爭力!

>>更多技術文章分享和免費資料領取