# 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