---
# System prepended metadata

title: HiExpert 2021 後端領航者論壇
tags: [record]

---

# HiExpert 2021 後端領航者論壇
###### tags: `record`

### 講師陣容:

#### 范聖佑
JetBrains 技術傳教士
負責推廣 Kotlin 程式語言、JetBrains 系列 IDE 及團隊合作解決方案。工作因素加上好奇心始然，常常實驗將 Kotlin 應用到不同領域，並試著以通俗易懂的方式將技術名詞講到人人能吸收。工作之餘也熱血經營 Laravel 台灣 & Kotlin Taipei 技術社群，來幫助更多的技術人 。
#### 曾義峰 Ant
TGO Networks 創始及現任委員
現在為台灣資安社區 CHROOT 成員。
15 年互聯網產業研發經驗，4 年顧問資歷。具備銀行安全交易系統、電子票證系統、清分清算系統、機載娛樂系統、數位廣告 (Adtech) 平台、古典樂線上平台及高效能電腦 (HPC) 集群入口平台、離岸風電鋼鐵數位賦能轉型等開發經驗。
曾任 HITCON (臺灣駭客年會) 講師、COSCUP (開源人年會) 講師、MOPCON (行動科技應用開發者年會) 講師、ModernWeb 年會講師、COSCon (中國開源年會) 講師，累計超過百場公開的演講經驗。
#### 黃健旻 Vincent
FunPodium 系統架構師
現為奕兆有限公司系統架構師。擁有多年且豐富的實戰經歷，興趣廣泛，Research、Architecture、Coding、DB、Agile、Ops.、Testing、Infra. 都有涉獵。主要使用 JVM 語言，但也十分喜歡 Python、Node.js、Go。[github](https://github.com/Jian-Min-Huang)
#### 劉奕為
彼利數位技術長
熟悉各式系統開發、軟體團隊管理、專案管理、跨部門領導與溝通、技術訓練，精通 Laravel、 Rails、 Flask 等後端網頁框架。
熱愛後端領域技術開發，且擅長與客戶和老闆溝通，信仰價值交付並關注商業結果，深信最優秀的開發者，是撰寫最有價值程式的工程師。同時喜歡分享知識，擅長已平易近人的描述方式幫助入門者學習程式，曾指導過的年齡層涵蓋 10 歲到 50 歲，也曾撰寫過至今累積破 20 萬瀏覽人次的熱門鐵人賽主題『 菜鳥後端工程師的第一門課 』，也已在 Hiskio 累積超過 1000 位學生。
#### Nic Lin
BitoEX 資深工程師
主要使用 Ruby 作為主力開發語言，約有 5 年的網站開發經驗，會的跟不會的一樣有很多。
喜歡找問題更喜歡解決問題，認為分享能夠幫助更多在職涯漫漫道路上的朋友，所以從寫 Blog 到經營 Youtube 頻道 「Nic 在地上滾的工程師」，目前頻道剛經營滿一年，有 4.7 萬訂閱及 200 萬次總觀看。
曾經第一次學習 React Native 就做了一個到目前有超過 4 萬用戶下載使用的 Side project 「北宜 beiyi」App 曾任北京全棧營線上課程講師，有線上培訓超過 200 名學員的經驗，並成功輔導超過 50 人順利轉職。

### 活動議程:
![](https://i.imgur.com/hYkzoaQ.png)


### 個人紀錄:

#### ANT分享
後端工程師 [facebook](https://www.facebook.com/yftzeng.tw)
前端: 接觸人比較多 
後端: 接觸機器比較多 (年紀資深通常後端)
以前通通叫做==全端==。
後端是否可以吃掉前端? (可以思考)
因為service時代，未來說不定又會全部合併，發展都是有可能的。

薪資問題:
產業 公司 職業 (上限) v.s 天賦 熱情 能力 (下限)
努力可以提升下限
選擇可以提升上限(如果已經覺得到達天花板，就可能要做出改變選擇)

Q: 技術 V.S domain know how?
domain knowledge: know how > know why > know when
聊天欄: know when-Why-how-what //四個同心圓為領域知識
聊天欄: know when->why->how->what(由內到外)

Q:選擇?
選擇會的那個去用就對了!
不然還會有額外學習的成本。
如果自己都不會，選擇朋友會的，至少可以問。
DB樹狀結構可以網路上查詢一下。
聊天欄: google技能先點滿!!! 
聊天欄: https://pingcap.com/blog/how-to-efficiently-choose-the-right-database-for-your-applications

Q: 軟技能如何培養?
非技術的都歸於軟技能。
解決問題的能力，老闆跟商業不管你是用甚麼解決的，重點是要解決。
學無止境，基礎要學扎實，面對新的東西就會可以比較快。
知道背後的東西，就可以比較出各個語言優勢，面對新的語言就可以很快分析出來。
70%以上工作的時候會遇到沒解決過的問題，所以快速學好及解決就是重點。

Q: 如何管理自己的時間來更好的學習?
遇到問題分析多少比例是自己未知的東西，甚至是google不到的
就需要人脈了~這就是為甚麼需要社群、需要朋友
因為無法點滿每個技能，所以處理問題的能力很重要。

Q: 面試?
不是寫code能力，重點是解決問題的能力。甚至口說解決流程都可以。
刷題要刷精，不是刷過就忘。
真的要刷，可以直接抓公司的bug，說不定還可以升職加薪。
聊天欄: 公司debug當刷題 很可以
聊天欄: 基本上沒有  沒有BUG的公司

Q: 程式語言的選擇?
公司的位置?公司的職缺? 是否接受remote?
未來趨勢? 使用者數量? 
聊天欄: https://insights.stackoverflow.com/survey/2020#most-loved-dreaded-and-wanted

#### John分享
被後端選擇:
有時候不一定是選擇後端，可能是被後端選擇。

Q:第一個選擇的語言是甚麼? 選擇語言的方式是甚麼?
第一個選javascript> java+ruby > python > php > Laravel
可以考慮語言使用的人數、是否有一直在更新、有沒有夠多人討論(越多人就可以越多solution)、未來性

Q:如何點技能樹?
要找到一個最基礎的語言，相關的框架和架構都要摸得透徹。
如果只會programming,在台灣會比較吃虧，所以要加一點資料庫，加一點架構
軟工具都要會: github、SVN、Lint

Q: Junior想挑戰Senior換職位?
要看公司的加薪升值的文化。
能夠獨立解決問題，品質先不說，但能獨立解決，是指標。
跨領域溝通的能力也要有。
做事有沒有效率?有沒有正確方法?方向有沒有對?是否符合團隊文化?
跟主管要有好的溝通，team leader的溝通。

Q: 團隊開發能力?
先自省，git使用上是否孰悉? 不要造成別人的困難
自己的程式碼的可讀性，不要讓別人猜
要一直問自己是否是錯的，因為變化太快了。
例會很重要。

Q: 如何為Junior規劃?
先從入門的，用免費的資源去思考，是不是真的有興趣。
可以用有趣的方式去了解可以做到甚麼。(初步)
線上課程跟著做完，會有點成就感。(進步)
接下來才是書。(第一本書翻完，後面就會更能翻完)
接著看實體課程，用原文的資源去增進。
聊天欄: 還是做中學 最快了

Q: 要提升?
clean code的原則要學清楚，再看公司可以用甚麼方式慢慢調整。
推: 《Code Complete》 《clean code》
聊天欄: Clean code 天龍好像常常特價 xd
聊天欄: https://www.books.com.tw/products/0010805887


#### Vincent分享
後端工程師的特質
前端後端面臨的問題可能不太相同，處理的面向不一樣
思考: 前端是否可以不用管後端? 反之亦然? 
假設你現在是前端或後端，想轉都可以轉，因為技術都會隨著時間改變，所以不一定晚進就吃虧。

Q:為甚麼選擇jvm?
其實很多時候都是誤打誤撞，不是我們選擇語言，都是語言選擇我們。
就業作為語言的選擇一定是重要的。
大部分以系統為主: C#、JVM (現況)
可以考慮一下在哪裡就業: 如果在比較偏僻的地方，有的語言就會比較少。
台灣其實有自己的現況，可以想一下。

Q: 管理技巧?
JVM角度(JAVA):因為java很早就宣稱是跨平台的，隨著後來時代變化，基本上大家的程式都慢慢往包裝的服務去走。
但其實不是只有這條路。
(他講了好多service)
會跟公司比較有關，其實每個語言都有不同的部署方法。
要思考的是有那麼多，哪個是適合我的，或是有沒有更適合的。

Q: 如何變得資深?
合格的Senior? 交給你一個東西，你至少可以給出一個solution
好的Senior? solution的多寡優劣分析
軟實力: 生產力跟價值，溝通能力，社交能力。 (當然，技術一定要有，刷題可能只是前測)
聊天欄: 入行第一步驟 先看得懂工程師笑話

Q: 前後端的心得，工具?
作為後端要勇敢地踏出去，不一定是前端來補足，但在做溝通畫面跟流程的時候，都要一起加入。
流程改變和需求變動，會造成後面好做不好做，所以意見參與很重要。
前端打不到後端的api的狀況下，如果後端能先給出一些東西，前端比較不會不好溝通。
聊天欄: 老闆: 這不難吧? ......隕石開發

GDE: 由google認證的技能

Q: 如何讓自己變強?
以前的學習都是輸入式學習，但其實我們應該學習的是output
推: output學習法
教別人會，拿來自省，當成一個cycle，不斷回顧就可以重新想
方法很多，包括參加比賽、meetup、publish...
因為有輸出，有循環，有回饋，便主動，有互動
所以會發現更多東西。
在過程中得到一些東西，隨著職涯成長，經歷也會慢慢增長，漸漸質變。

Q: 刷題的看法?
看公司，有些大公司就需要刷題，就是硬上線的工程師，沒有刷過就沒有下一關。
對於台灣的有些公司，刷題只是要辨別寫code的能力和辨別題目的能力。
比起寫得漂不漂亮，辨識題目的能力和解決問題的能力要先有。
可以反思為甚麼公司要考你這些，是不是要sence?還是要弄死你?
面試最重要要找到合適的人，而不是完美的人。

Q: 如何寫出高品質的程式碼?
每一個工程師都會碰到這個問題，寫一次寫五次寫十次，隨著時間和學習的東西越多，對待問題就會越來越有效率。
在減少bug的事情來說，CRUD很重要。
聊天欄: Create, Read, Update, Delete
聊天欄: USER總是能測出意想不到的BUG
經由不斷的寫，因為情境不一樣，所以選擇的方式都可以不一樣，但是! 重點是要解決問題。
取經很重要! 學了之後也要練成自己的東西。

Q: 補充?
大環境難改，可以先從自己改起。
聊天欄: 推荐個線上圖書館 給大家省去買書的費用https://1lib.tw/s/code%20complete
聊天欄: https://one.ebook.hyread.com.tw/index.jsp 這裡也可以借到很多電腦書



#### Nic分享_非本科生是否較吃虧
從心態和素養分析:
> 心態
不同公司不同主管都會有不同可能，不要覺得自己非本科就不好。
> 素養
很多非本科都很會溝通，要相信自己夠好，花時間去補足其他本科生就好了。

Q:薪資差別?
Junior可能是白紙，但是總會有作品，就可以評估。
Senior可能比較需要經驗

Q:培養底下的會希望
初期可能希望技術層面(做這個可以解決甚麼)> 再慢慢了解domainal how > 再回去輔助自己的技能
其實都是相輔相成的。
最後其實會發現軟技能會更重要:怎麼要求加薪

Q: 面試的時候怎麼準備? 
Junior的面試策略: 能力和能不能上，不一定直接相關，但跟表達有關係。
一開始可以去一些不怎麼想去的公司當練手。(反過來面試順序的)
要有關於對於後端的經驗，有一個作品當作證明會比較好。
看公司，有些公司就是希望你去刷題。

Q: 如何work from home?
前端後端一定是需要討論規格的，以現有的架構去開發。
會先訂一個基本規格和stack，透過會議討論去落實，有規定好的規格會更穩定。
可以去學現在的connection工具，善用工具。

Q: 協作?
在公司就不能講超過三句話，要用通訊軟體。
要公開討論，不要私聊，不然溝通了甚麼大家都不知道。

Q: 自己的技巧?
以前覺得自己算是半本科，透過面試和準備，才能更好的精進自己。
如果你連你自己都不知道自己在寫甚麼，那三個月後怎麼可能有人知道你在寫甚麼。
有時候就是會不知道對於團隊不好的事情，雖然可能是解決了Bug，但是溝通不良就不好。
犯錯的當下會很痛苦，但是就慢慢去克服。
跟朋友聊一聊很重要。

Q: side project經驗?
把side project變成Business看看，有更多user可以改更多東西。
可以讓面試官透過side project了解你目前的面向。


#### ShengYoFan分享
持續投入都可以獲得回報
之前網路上有個技術圖，超多技能樹

Q: remote?
工作上的技巧很重要，所以事情都要內部溝通。
所有人都要把自己的需求，溝通，都丟到一個地方。
因為知道是remote，可以藉由記錄，把整個思緒和溝通都提升起來。

聊天欄: Jetbrain + 91 TDD

### 截圖
![](https://i.imgur.com/2wuAniG.png)

### 別人的筆記:

https://docs.google.com/document/d/1J6su8nZyx6DYMuq0pdd9v57SP-9JqXetH4NhhANcRvI/edit#

https://hackmd.io/@EzraLin/H11cRRURd
