PTT推薦

Re: [請益] 雲端技術是Java工程師的必備技能嗎

看板Soft_Job標題Re: [請益] 雲端技術是Java工程師的必備技能嗎作者
zanyking
(最後的六年級生)
時間推噓42 推:42 噓:0 →:12

※ 引述《cyntasha (cyntasha)》之銘言:
: 版友好,
: 目前是找工作找到懷疑人生的初階工程師。
: 想以Java為主要工作語言來點技能,但去了幾間公司面試後有點疑惑。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^這麼想的原因是什麼?

不是說專注於Java技能培養來選工作會有什麼問題,而是你的動機與原因如果跟現實
有偏差,即使別人選Java走得很順、換成你也有可能過得糟

: A公司是使用Spring boot技術,但也有接觸aws, gcp等等。
: B公司似乎java研發為主,雲端的部分是其他部門進行維運。
: C公司似乎流量比較大,使用noSQL技術、時序資料庫、多主機自動化部署,並使用
: java開發app及web。

我先假設你目前找工作的考量,是以職涯發展性最大出發來選,其他什麼月薪多一萬、
工時長短等等的都可以犧牲,那其實公司用什麼技術、用到什麼程度並不是首先得問的

我還年輕、還無憂無慮一人飽全家飽的時候,以下是我考慮公司時會第一時間問我自己
的問題:

1. 這間公司所主攻的市場是向上還是向下?
2. 這間公司的產品在市場上有競爭力嗎?市佔率會上升嗎?
3. 這間公司的產品的核心競爭力是建立在軟體開發水平上嗎?
4. 這間公司處在哪個時期?黑暗摸索、快速成長、成熟高原?
5. 這間公司的主事者對市場競爭有企圖心、積極投資產品研發嗎?

如果我真的以職涯發展為第一優先,那除非我目前程度真的很差,不然以上任何一個問題答案是負面的公司,我早年都是不考慮加入的

這些問題都通過了,才來看他的技術用什麼、用到哪裡

: 目前的疑惑是:
: 會處理高併發問題是必備技能嗎?需要專門挑選可以處理此問題的公司
: 以增加技術能力嗎?但看起來要處理這些問題,好像不是java技能的精進,
: 而是朝像docker, H8s技能點?要點的話似乎aws比較是主流?還是說其實台灣本科系
: 畢業docker, jenkins是基本知識呢?(我在國外學習,確實遇過熟悉這些的印度人)

處理高併發在台灣可能不是必備技能,但出了台灣任何產品服務以純軟體開發為核心的
中大型公司是必備技能,senior backend 以上對高併發沒想法的人(知道不同量級同一
個問題解法如何不同、如何過渡)只能在還沒賺錢的startup 做POC/MVP,等到量突然上
來了就得準備拿著選擇權滾蛋了,因為你寫的程式對公司在有效產出上是負的

管理Docker image 給大家用,確保全公司有哪些共用預設的program 要裝哪個版本才
不會衝,這個不見得是必要的,但是知道Docker 在整個堆疊的哪個位置,知道公司用的CI/CD pipeline 怎麼跟Docker運作,知道怎麼查找你要的image base據以開一個懶人包方便同team 的開發者在localhost 跑系統堆疊,這些技能是有用的

當然,如果你跟我一樣懶,就是很討厭在localhost 跑一堆不是自己寫的服務,那也可
以把公司的Dev env VPC 的Bastion開好,然後locahost Application 所有的upstream
service call通通都走ssh tunnel ,每次localhost app啟動前就是執行一整串ssh
tunnel 指令

但如果你要alter table schemas,那migration script還是乖乖先在local docker跑過確認一下吧

K8S是看組織規模的,如果你考慮未來要去夠大的公司、參與高複雜、要求HA等等等
的MicroServices 開發,那學起來不會虧

相比來說,Jenkins 我不會推薦特別去學,除非有老系統懶得搬家繼續用才去臨時抱佛腳現在不管是GitHub還是CircleCI 都很強大,想做什麼都能做,而且持續進步,隨需scaleout,自己家養一個還要維護、介面古老、功能陽春,用起來實在切心

AWS 我個人是比較喜歡,GCP 有些東西選項比較少,但不管哪個我都是terraform 下去
所以也許最重要的是要學terraform,另外練習如何用chatGPT 問出你要的設定是重要
的技能,不要再像我小時候那樣嗑完reference 才開始做事了

: 有使用render部署springboot side project的經驗,技能還能怎麼點呢?

不同的專業領域要求不同,我就說senior backend eng的問題意識吧,憑印象列一列,
其他的我也不敢講:

一個對外服務的系統,它的主架構長怎樣?request 怎麼流?從internet request 開始到後面會產生幾個requests 到哪幾個services上?那些services 背後採用哪些資料庫?哪些middleware?哪些cache?BI 那邊可能有哪些需求?需求的即時性有多高?
ETL cron job 要怎麼跑?Kafka 或是event queue等應不應該收到通知?
系統任何一點要是突然拔插頭該如何應對?GDPR/CCPA怎麼滿足?
Logging/instrumentation/healthcheck 等用什麼平台處理?如何降低成本?
在特定的Cloud 上(AWS/GCP) 目前的開發需求有幾種方案?哪個在開發時間/運作成本
比較上最划算?
目前公司採用哪幾種程式語言作為主力?這些程式語言在公司內總會形成套路堆疊的,
目前採用的軟體堆疊定式還符合需求嗎?


: 好好複習java知識嗎?java工程師碩畢期望待遇應該開多少呢?不好意思不太清楚
: 產業狀況問題有點多,謝謝。

待遇問題我太久沒在台灣找工作或負責徵才了,很難回答你,但關於Java 知識的複習
首先,你不可能憑著空氣去把Java寫好的,你只能沈浸在實際存在的嚴苛需求與困難
問題中掙扎,然後盡可能做到最好

就想一下,難道我現在看著課本用力解題,哪天就會有誰跑來問我:
『啊你Java 寫得怎麼樣?』嗎?

不可能嘛,就算有,那個問問題的應該也沒多厲害,因為這個問題本身就是錯的

我們只能說:
『我曾在哪間公司,開發過XXX系統,在開發某某功能的時候,我曾經思考過哪些方案
,後來挑了哪一個,原因是為什麼,最後開發時程多長、QPS撐到多少沒問題,運作成
本多少』

bla bla bla 可以連續講下去,如果他不阻止你,你甚至可以再挑兩個案例,每個都講
一兩個小時

只要能解決的問題夠難,能很好的呈現出你是如何思考、如何解決問題的,證明投資
在你身上未來產出相當不錯,那就夠了

Java programming ability 只是做軟體開發的基本能力之一而已,追求這個能力確實
是有助於提升開發實力並且能面對、能處理複雜的程式碼與較為成熟的開發模型與較
大規模的系統架構,但他不是最重要的,也不是未來薪水會不會漲、開發實力會不會
變強的關鍵因素

一個技術人的技能樹發展,是由他經歷過許許多多開發團隊的職務需求推動的
開發團隊的職務需求,是由每個當下技術軍備競賽的炙熱程度來形塑的
技術軍備競賽的天花板,是由市場大小、市場評估產品價值有多高、毛利率決定的

一家公司說他用Java,到底是他一直以來都用Java所以只會Java?
還是他的團隊規模與開發複雜度適合用Java?

所以如果沒有要跟特定的技術談戀愛的話,職缺拿到,首先先看看市場、看看軍備
競賽的炙熱程度、看看他們的產品、看看他們的企圖心,都看完了才會來看技術要
求相關內容

至於Java 不Java,對自己的起許不要那麼低,去對公司的話,兩到三年我上面講的
東西都有機會、甚至是必須摸一遍的,出了學校是沒有那種:『給我一個月的時間,
我把它學好再來』這種事,所有的東西都會不預期的噴到臉上,在有了chatGPT、
github copilot 的時代,我們都必須堅定地相信自己可以快速找到答案,然後把查詢
結果內化成自己的知識,之後就要能隨心所欲地使用,辦不到那就別做這一行了,
後面只會更苦的




--

在灣區打工的中年外籍碼農,有誰想在台灣組研發團隊做美國市場的,歡迎聊聊

--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.79.158.69 (臺灣)
PTT 網址
※ 編輯: zanyking (42.79.158.69 臺灣), 09/14/2023 17:11:46 ※ 編輯: zanyking (42.79.158.69 臺灣), 09/14/2023 17:20:50

sssyoyo09/14 17:24優文推

DrTech09/14 17:25真的。別把程式語言工具,當技能。

DrTech09/14 17:30真正後端技能是,選對戰場,別人給你一個商業需求時,又要

DrTech09/14 17:30高流量,高容錯,高可靠時。你的解決方案是什麼?你能不能

DrTech09/14 17:30做到比別人,快,穩,低成本?。

DrTech09/14 17:39選對戰場,自然薪資能力,水漲船高。選錯戰場,十年後還是

DrTech09/14 17:39 framework + CRUD。

rurumi85535709/14 17:42

ts0032868509/14 17:46

ja84101409/14 17:48

silveryiris09/14 18:13

cyntasha09/14 18:20哇真的很感謝特地回一篇,讓我更加理解如何以職涯發展

cyntasha09/14 18:20來評估找工作時的主要考量。也聽了上篇版友建議有找到

cyntasha09/14 18:20自認為ok的工作。之所以會詢問想以Java為工作語言點技

cyntasha09/14 18:20能,是因為以職涯發展來看,比較大間的外商看能力需求

cyntasha09/14 18:20,需要c或java能力?另外也有拿到海邊offer,軟工版比

cyntasha09/14 18:20較沒有它的評價,想順便請教一下,工程師待系統廠或像g

cyntasha09/14 18:20g it的看法,謝謝

devilkool09/14 18:21大師

single456509/14 18:26

askaleroux09/14 18:57原Po實在菜味濃 推這篇

keepxha09/14 19:49

drysor09/14 19:56推~

greengg09/14 19:59推 受益良多 感謝

loadingN09/14 20:39牛逼

※ 編輯: zanyking (123.194.157.176 臺灣), 09/14/2023 20:50:31 ※ 編輯: zanyking (123.194.157.176 臺灣), 09/14/2023 20:52:39

yogog809/14 21:03

believe9132609/14 21:31感謝大大

SeungHsu09/14 21:34優質推

Hsins09/14 21:48

loveu809/14 22:08推~

purplvampire09/14 22:43

remember6909/14 22:45這篇太優,推

iamOsaka09/14 23:09

ouryouth09/14 23:21Push

NikonD509/14 23:37

andy959599509/15 00:52

Burwei09/15 01:24

buke09/15 02:44

shiwa09/15 04:36

tttkkk09/15 04:48我發現這時代可能只剩下軟體工程師能看長篇文字了

ducky060909/15 08:24

Psyman09/15 08:49推,受益良多

Desert2209/15 09:46

blazers0809/15 10:02推推

jomss89898909/15 10:34good

kaichu0209/15 12:16

nayeonmywife09/15 14:09請問您生涯何時去灣區的,身份問題很困擾,不讀書的

nayeonmywife09/15 14:09話,感覺都要先進外商再內推

smily13409/15 19:51

timofEE09/16 00:46對新人優文 受用良多

d888809/16 16:47

AmosYang09/17 03:07推,尤其是那 5 個「考慮公司時」的問題

smallblack09/17 13:11優質文章 推推

eric52549809/17 23:12