現在就業的確崩了
這次面試的時間是8月28號。距離上一次面試已經過去了一個月了,距離開始找工作已經過去了2個月。沒多少找工作經驗的我也體會到了什麼叫就業崩了。
看了一線碼農的採訪計劃後,我也把蘇州列為了找工作的地方之一。我成都感覺公司都翻爛了
- 要麼工資高,15000,但要求開發測試運維一條龍,什麼
.netcore
,devops
,CICD
,單元測試
和整合測試
,scrum
敏捷開發,k8s
,前後端分離
,RabbitMQ
,Redis
,微服務
全整上。我CICD,單元測試這些部分有學習,但也沒專案用過,敏捷開發除了外企常見,還有哪能接觸?上不去,真的上不去。 - 要麼就是工資相對高,12000左右,搞工業開發這一塊,但是要有經驗,我始終插不進去腳。
- 要麼就是工資低8000甚至9000起步,我尋思這是應屆生?跟我工資沒差我跳過去幹什麼
我發覺我目前這個目前這個技術階段還挺尷尬的。技術和經驗說深不深,說淺不淺,到底是上不能上,下不得下。
這次面試的公司是蘇州史斯萊克精密裝置,其基地應該是位於太湖邊上的孫武路。HR介紹該公司是清華畢業的華人建立,我在想該不會是高華潤人吧?主要業務是易拉罐瓶蓋生產裝置製造。近年來開始設計新能源汽車的電池蓋。據說的技術遷移應用。
面試前,HR首次詢問的工資,我回答的是14萬一年。初試是騰訊影片線上會議面試,商定在晚上6點半。一個應該是業務經理,一個技術工程師,年齡均偏大吧,可能有40多了。
技術工程師提問
-
首先是我做自我介紹
我叫XX,今年27歲,20年畢業與西南石油大學。畢業之後就一直在目前這家XX公司。所學的專業是軟體工程。在這邊基本上一直在做軟體開發。前期在做運維,大概一年之後轉向開發。早期是做winform的運維,當然也參與了一點後面的開發,但是參與得比較少。然後轉為asp.netcore的開發。到目前為止大概是開發了3個左右的專案。大概情況就是這樣。 -
你最近開發了專案前端用的是vue框架還有nuxt,後端用的webapi。那我問一下vue的一些問題吧。vue元件之間的通訊你會嗎?就簡單說一下大概的過程,父子之間通訊的過程
vue父元件向子元件傳遞資訊是透過那種類似於html標籤的形式,當然他不叫html,然後設定這個標籤的屬性,就把資料資料交給子元件了。然後u子元件內部透過那個defineProperty(defineProps)接受。至於子元件呼叫父元件的方法,這個學的不是很深入,整個框架是前端搭建的。元件通訊啊,官方文件裡面倒是有。可惜專案沒用到向上通訊,所以就忘了
-
好吧,那個nuxt,他會幫你把目錄生成好,然後你在專案的目錄下新增圖片。還有頁面就先當與你們只需壓迫在前端呼叫一些後端的介面嗎?那前端的互動什麼的,頁面的動作你們自己寫嗎?比如下拉框啊等等
如果是下拉框的話,我們是使用的elementui,elementplus
,所以說自定義元件這塊不是很瞭解。 -
就相當於前端美工給你們把那個頁面做好,你們直接負責API?
美工,他只給我們設計圖,我們自己把設計圖轉化為頁面,然後其實後端也是我們自己寫。(所謂的前後端分離,人不不分離) -
好,那麼webapi主要是與前端vue用什麼方式通訊?
http由幾種通訊?你是說http method方法嗎?最常用的就是get,然後涉及到表單的話會用post。當然還有put,delete,但是我們沒有使用這些,最常用的還是get和post。 -
這幾種方法是怎麼傳遞引數的?
get是直接在url中寫引數,post是在頭部後面的請求體中存放引數。 -
你前兩個專案使用的efcore,後一個專案使用的sqlsugar,那sqlsugar那個專案怎麼防止注入呢?
什麼情況下會發生注入?首先後端的是直接使用sql查詢,其次呢,如果使用了sql,又沒有使用引數化查詢的話,就會存在sql注入。但是我們一般是直接寫linq,如果查詢比較複雜的話,寫不出來,或者說下起來很費勁的話,才會寫sql。 -
那個多租戶,就是sqlsugar的多租戶你們用過嗎?
我沒有用過多租戶,請問多租戶指的是什麼呢? -
就是資料庫,你們的資料庫伺服器是同一個嗎?多租戶就是資料庫有幾個伺服器的時候,同一個sqlaugar客戶端訪問不同伺服器
哦,明白了。我們就只有一個資料庫伺服器,所有對應的應用都去訪問那個伺服器,所以沒有這種情況。我估計的有很多伺服器才能碰到這種需求。 -
sqlsugar有一些自帶的方法,比如鎖、事務,裡面的事務是怎麼樣的?裡面包含的所是什麼樣的情況?
鎖的話我不太瞭解?只聽說過悲觀鎖,樂觀鎖,不知道是不是指的這個?事務的話,我想一下,sqlsugar不想efcore,有一個saveChanges方法,在一個事務中把所有改動都儲存到了資料庫。但是sqlsugar,我沒有看到這種方法。但是sqlsugar涉及到多表修改的話,還是需要手動建立一個事務的,但是我們目前還沒有使用到。sqlsuagr似乎沒有像efcore的隱式的事務中多個修改一起提交。以後總是會遇到要顯示宣告事務的時候,讓我想起了以前寫ado.net,也是要顯示宣告事務
我查詢了sqlsugar的樂觀鎖,已明白其基本原理,就是資料庫中的記錄和實體之間比較版本欄位。剛好我們資料庫有一個更新時間欄位,可以用sqlaugar的IsEnableUpdateVersionValidation
把它宣告為樂觀鎖欄位。我回憶一下,到目前為止,只有一個多值屬性欄位被多個人更新,可以使用樂觀鎖。但目前為止其他地方几乎沒有使用樂觀鎖的必要。
悲觀鎖我的理解就是事務會暗中呼叫,讓其它事務沒法訪問相應資料,從而在本次事務內確保查詢和對查詢的修改正確。所以悲觀鎖存在,但不需要手動呼叫,只需要關注事務即可。 -
那你說一下單向繫結和雙向繫結
單向繫結的話,用的最多的是ref
物件,還有react
物件,但用的比較少。然後再標籤中引用這個物件,變數,就可以實現單向繫結。至於雙向繫結,他其實是一個回撥,介面上改動資料後呼叫回撥函式,但是vue提供了一個v-model
指令封裝了這個,就可以直接使用來實現雙向繫結。 -
說一下using關鍵字的作用
第一個作用是引入名稱空間,第二個作用是給名稱空間取別名。還有就是非託管資源。
比如說我們在C++裡面寫的函式,裡面使用了new申請了非託管記憶體。在C#中就可以使用dllimport
匯入C++中的函式,還可以使用C#類對這些函式進行封裝。然後這個類繼承IDispose
介面,在dispose方法裡面釋放非託管資源。當然這個釋放方法是C++裡面暴露出來的一個函式。然後我們在using程式碼塊裡面建立這個物件的時候就不用擔心記憶體洩漏,不用手動去呼叫釋放函式,能夠自動釋放非託管資源,這個比較方便。 -
之前你們做那個專案,裡面用到了那個大資料統計
大資料,我不知道這個概念指的是什麼? -
就是資料表裡面,每天大概會產生幾百萬條資料那種
沒有,我碰到的最多的話,是一個實時資料表,但總共才5000多萬條資料,但是也沒有說每天產生幾百萬條資料那麼誇張的。從我畢業就聽大資料這個詞,但完全不知道要面臨什麼問題,處理什麼問題
-
那如果是想要看很多資料的話,要如何讓他更高效呢?
嗯,首先就是分頁查詢。還有就是取決於表,如果說有很多比必要的欄位的話,是不需要查詢出來的。特別是vue,應該說elementui,在資料量比較多的時候,他就比較卡。使用分頁是很有必要的,大概800-900條就要分一次。 -
能說一下前端虛擬化嗎?
我不太確定這個概念? -
就是一次性查詢出來的時候也,都放在頁面,嗯,記憶體裡面,然後渲染的時候,不把記憶體裡面的資料都渲染出來。這樣的話,流暢度比較好,也不需要分頁,像是滾動載入
這種我沒有用過,但是我感覺跟分頁那個也挺像。因為我們有時候查詢資料的時候,也是全部查詢出來,然後點選下一頁的時候,從記憶體中過濾出相應位置的資料。而不是說到資料庫查詢那邊分頁。 -
你之前做過裝置通訊嗎?
我沒有直接跟硬體通訊過,因為我們這這邊是有硬體小組的。他們專門去硬體上採集資料,然後有兩個方向。一個是儲存現場的sqlite中,一個是透過MQ傳回中心的伺服器。 -
OK,那你之前用過訊息佇列吧?
我沒有用過專門的訊息佇列,只是使用過redis模擬的訊息佇列,使用lpush和rpop,因為也提供了通知功能。但是沒有用過RabbitMQ。 -
要是有一個請求,花了很長時間那種,怎麼處理?
如果是不需要立即回顯資料那種,可以使用一把方法介面,然後拉一個排隊的託管服務,把請求的操作交給託管服務去慢慢處理。然後請求直接返回。這是第一種。第二種,像是需要回顯資料的,不好意思,我有點忘了問題? -
要是有一個請求,花了很長時間那種,怎麼處理?這會帶來不好的體驗,怎麼去最佳化這個請求,只是針對單個請求,考慮為什麼請求時間會變長
在頭一個階段,比如果併發量比較大的話,請求可能卡在排隊階段,這種最好使非同步方法介面。理論上說是有用,但我們沒有碰到過這種,可能業務量比較小。
單個請求時間比較長的話,其實最多的是卡在資料庫的查詢上面,那可能就需要注意一下sql有沒有走到索引上面去。這種情況我們以前蹦到的比較多,後來是統一處理的。 -
寫過儲存過程嗎?就是那種比較複雜的sql
沒有寫過,我們使用的是物化檢視。有其他程式跑在伺服器上,去更新這個檢視。儲存過程自從畢業之後就沒用到了。有人能說說工作中哪裡會用嗎?
業務經理提問
-
問一下你關於業務方面的問題。你們是人工作業還是透過井下設定直接採集上來
我們的裝置主要是接實時資料,這是一個方面,還有就是比如壓裂車上面的一些作業資料,它上面本身是帶有感測器的。然後他們技術員會去看那些資料。那個採集軟體是技術員手動去填的。只有實時資料是自動採集的。 -
那個支援中心專案,你在這裡面主要是做運維的工作是吧
是的。這個專案我都不知道有多久了,因為我進來的時候已經是開發完畢很久了。我來了之後主要是負責我們業務這一塊功能的運維。 -
裡面有實時資料、影片監控啊。那個影片監控是實時的還是錄影?還有那個監測,那個工程作業是直接對井下作業實時監測的,還是隻是派工用的?
是實時影片。監測主要是靠實時資料。還有就是結合技術員開工之前填報的資訊做一些預警。派工的話,是中心派工之後,他們才開始作業。這種派工模式,實際上就是拿錢的個幹活的從原來的一個公司被分到兩個公司去了。
-
那這個現場的話,你有沒有去過?有沒有參與過現場的工作?
沒有。我沒有去過現場,只是做開發。現場組內有幾個人去過,一方面是安裝裝置,一方面是除錯軟體這些。 -
那現場作業系統這一類系統,井下作業只是在地面上,還是也參與井下?
嗯,地下有一個部分是參與了的,就是泵注那塊。會看加水加砂的情況,到了哪個地方,顯示在介面上,比較類似於你說的井下的。 -
手機端的話,你有沒有參與開發?
手機端我主要是提供介面,作業不是手機端的主要功能。主要用於現場管理,比如班前班後會,簽到,巡檢這些。真正作業的時候,他們是用電腦。 -
那實時資料有沒有考慮到弄到手機端去展示?
有。手機端也有實時資料展示功能。不過那是給中心的領導用的,他們在工作的時候用手機看比較方便。現場的手機端沒有這個功能。
之後就是技術工程師提問
-
你們的手機端開發使用的網頁還是安卓,還是微信小程式?
網頁的話,是有專門的那種殼,嗯,叫什麼(electron),裡面封裝了一個瀏覽器核心吧。但我們這邊用的是原生安卓開發,是移動端小組做的。 -
資料庫用到的比較多的是哪幾種?
中心業務上用的最多的是Oracle,現場用的是mysql,他們資料庫表結構是一樣的。填了資料之後,透過觸發器,記錄在一個表裡面。有一個程式去讀取這個表的觸發記錄,然後找到相應資料,放到MQ中,傳回中心的資料庫上面。實時資料的話,就使用的sqlite。那個資料比較多,每個月一個檔案,每個幾百兆,大概有幾個G吧,我不確定這個資料放mysql是否合適。 -
MQ這個資料發回中心的過程,如果有斷線重連。伺服器該怎麼處理
我不太清楚這方面,本地有一個上傳軟體,但不是我做的。但我知道這方面確實有問題,前兩年MQ傳資料回來時就經常丟資料,主要是訊息積壓。 -
你接受出差嗎?
接受。 -
你家在成都嗎?
我加沒在成都,我家在巴中,也是四川,比較小的一個城市。 -
你出來這麼遠,你家裡人接受嗎?
我覺得他們可能不會干涉太多。 -
你出過差嗎?比如說新疆那邊,烏魯木齊那邊
我出過,也是新疆那邊,是旁邊的一個城市,庫爾勒,距離還是挺近的。大概四五個月。 -
我們大部分工作都是在蘇州這邊的人員做的,有些具體的專案,也要跟著現場去。所以我在想,我們有個專案挺適合你的
我知道,C#搞工業去現場避免不了的。這樣的話,我猜他們也是想搞前後端分離的現場應用。然後用Electron使用SPA搞前端。剛好我這前後端都開發過。但是怎麼說呢,我最希望的還是實踐一下WPF,畢竟是.Net程式設計師啊。如果MAUI+Blazor熟悉的有福了,桌面端、網頁端、手機端也一併做了。可惜我手機端只用過一點MAUI8原生。
還有一上來就讓我跑現場搞那個專案,很難不讓我懷疑,就是讓我去衝專案的,我一從現場回來就會被解僱了。而且這和他們公司HR說的目前的業務也沒有聯絡。難道在新疆建設工廠嗎? -
你還與問題嗎?
今天晚上的面試我算是透過了嗎? -
因為現在是影片面試,有一些筆試我們都準備了的,還有一些面試題目。但是影片面試就只能這樣。之後的話,HR會通知你
好的,我知道了。
評價一下
-
我是沒有太重視vue的,在3、4月份,每天中午午休吧vue的官方文件和看完了,也看了下vue-router。然後專案上切換到vue了。但是關於應用構建這塊的工作,實際上是nuxt提供了。我把重心放在wpf和asp.netcore這邊,這次的面試提問是出乎我的意料的。唯一的不同時我WPF沒有在工作中用過,但vue在工作中用過,對於如何從零構建一個應用,顯然時後者更有經驗。但是vue/elementplus,或者或瀏覽器的響應式效能太爛了,一個表格,1000條資料就卡。
-
這在蘇州是正常工資嗎?我沒見過市面,不瞭解蘇州這邊的人力市場
-
面試總是,要麼很長時間沒有,讓我十分焦慮,要麼就扎堆來,挑戰我的時間表。不知道為什麼,你們也是這樣嗎?
-
技術官問的東西都不是很深入那種——八股文式的詢問,和前面的兩次面試感覺很不同。如果有人說他們是來找解決方案的,我都要信了。我不知道這個面試是否可靠?
-
成都就業現在真的這麼難嗎?
-
我這個階段的程式設計師真的是上不能上,下不得下的尷尬階段嗎?
-
我也在撿起英語,想著兩年後外語對話,能不能進外企。從大一到現在已經7年了,英語丟了這個久了。但是今年有來了個外企撤離潮,怕要成49年入國軍
-
MQ還是要學習使用的,看起來即使在現場也經常使用
-
熬夜寫部落格腰好痛
後記
- 第二天上午HR聯絡,面試應該是過了。在讓準備資料。雙證,個人資料表
附
- 第三天,第一次跑了一個線下面試,
索爾斯光電
。這個投遞其實在兩週前,然後這兩天才發了郵件過來通知。這次面試對我的衝擊力很大,非常大。我估計是進不去了,但他們仍然很友善。他們會詢問你的規劃,而不是把你當一次性用品。他們是真把你當人來看待的。建議有條件的一定要去,拼盡全力。
對於應屆生來說,我不知道是不是普遍,但一定不要進國企,至少在我這裡,這裡是真的把你當狗馴化,然後可以當牛使用。你再這裡是沒有任何未來的。他盡全力塑造你的奴隸思維。直到今天我見識到了其它企業,才知道這件事。回公司的路上差點落淚。