面試就業過程的記錄了

chuangdu發表於2024-08-29

現在就業的確崩了

這次面試的時間是8月28號。距離上一次面試已經過去了一個月了,距離開始找工作已經過去了2個月。沒多少找工作經驗的我也體會到了什麼叫就業崩了

看了一線碼農的採訪計劃後,我也把蘇州列為了找工作的地方之一。我成都感覺公司都翻爛了

  • 要麼工資高,15000,但要求開發測試運維一條龍,什麼.netcoredevopsCICD單元測試整合測試scrum敏捷開發,k8s前後端分離RabbitMQRedis微服務全整上。我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涉及到多表修改的話,還是需要手動建立一個事務的,但是我們目前還沒有使用到。
  • 那你說一下單向繫結和雙向繫結
    單向繫結的話,用的最多的是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條資料就卡。
  • 這在蘇州是正常工資嗎?我沒見過市面,不瞭解蘇州這邊的人力市場
  • 面試總是,要麼很長時間沒有,讓我十分焦慮,要麼就扎堆來,挑戰我的時間表。不知道為什麼,你們也是這樣嗎?
  • 技術官問的東西都不是很深入那種——八股文式的詢問,和前面的兩次面試感覺很不同。如果有人說他們是來找解決方案的,我都要信了。我不知道這個面試是否可靠?
  • 成都就業現在真的這麼難嗎?
  • 我這個階段的程式設計師真的是上不能上,下不得下的尷尬階段嗎?
  • 我也在撿起英語,想著兩年後外語對話,能不能進外企。但是今年有來了個外企撤離潮,怕要成49年入國軍

本部落格參考MeoMiao 萌喵加速。轉載請註明出處!

相關文章