在 Twitter 專案中學到的有效溝通、多人協作、團隊使命感

Twitter 專案桌面工作區實況
Twitter 專案桌面工作區實況
Twitter 專案桌面工作區實況

如果目標轉職軟體工程師,無論透過什麼管道和課程學習,一定要給自己一次機會,找兩三位志同道合的朋友,一起打造一項產品。因為在職場中,與不同職能的夥伴合作才是真實情況。有效溝通、多人協作、團隊使命感,或更多合作技能,都是一個人面對電腦敲鍵盤學不到的。

“Alone we can do so little, together we can do so much.”

— Helen Keller

以專案角度看我們在團隊中的角色

在統整重點學習前,先簡述這是怎麼樣的專案、以及我們所做的:

3 ~ 4 人組團一同復刻 Twitter,是 ALPHA Camp 全端開發課程 中,所有畢業生的共同回憶。在這個專案中,我們需要以全端或前後分離的方式來開發 …


以記帳軟體為例呈現如何扼要介紹產品專案

拎北欸記帳本
拎北欸記帳本
拎北欸記帳本

本筆記將以 WHY、HOW、WAHT 的黃金圈為主要框架,來摘錄打造記帳軟體 Web App 的目的、累積、收穫與學習。相關連結:

記帳軟體專案實作摘要

  • WHY:以商業、用戶、技術面來剖析專案的價值。
  • HOW:以熟練的部分、面臨的挑戰、印象深刻的體驗來彙整實作重點。
  • WHAT:彙整使用的技術清單及相關的技術筆記。

為何會選擇這個專案?


邁向全端開發者/全端工程師的學習手稿

developer from Unsplash
developer from Unsplash
developer from Unsplash

記錄在 Alpha Camp 學習「JavaScript 全端開發 — 學期 2–3 後端開發實務」的筆記,期待為非本科初心者指出學習誤區,提供明確方向及有效策略。從 PURPOSE 目的與起源、INPUT 投入和預備、OUTPUT 目標及成果、PROCESS 前提與策略,切入導讀。文章將於我在 第 12 屆 iT 邦幫忙鐵人團體賽專欄 中發表

PURPOSE 目的與起源

  1. 最有效的學習就是「教導他人」:根據學習金字塔 The Learning Pyramid,當能夠在學習中實作,實作後傳授,能夠協助技能紮實深根。
  2. 一群人能走得又遠又久:非常感謝 Alpha Camp 社群的揪團,團員中不乏身經百戰的前輩,讓從未挑戰過 iT 邦幫忙鐵人賽 的我,能夠按部就班上手。
  3. 施比受更有福是 Open Source 的核心:我相信 …


初學者也能懂「為什麼 JavaScript 中存在事件循環(Event Loop)?」

若搜尋 Event Loop 或事件循環,會出現一堆說明「什麼是 Event Loop?」的內容;但鮮少有解釋「為什麼 Event Loop 存在?」的材料。就連搜尋「Why event loop exists」都查不到相關資料。但我認為如果它存在,而且被大量使用,那肯定很重要。這篇筆記就是要談 Event Loop 的重要性。

Image for post
Image for post
JavaScript and Event Loop (from: SessionStack)
本文淬煉自 Philip Roberts 在 JS Conf 的演講影片 What the heck is the event loop anyway?[PJCHENder - 筆記] 理解 JavaScript 中的事件循環、堆疊、佇列和併發模式[知乎] JavaScript 事件循环:从起源到浏览器再到 Node.js[掘金] 为什么要有事件循环机制(Eve …


在 Alpha Camp 鍛鍊 Web Dev 的學習筆記 #學期2–2

《七龍珠》裡的 精神時光屋
《七龍珠》裡的 精神時光屋
《七龍珠》裡的 精神時光屋

Alpha Camp 的《JavaScript 全端開發課程》共三個學期、分五個階段,每個階段約莫一個月,對我來說很像 30 天一個循環的 精神時光屋。一轉眼已經過一半了,在此使用 ORID 焦點提問的四層次 來總結這一個月的學習。

〔OBJECTIVE〕 用「現在的你」來比較「 1 個月前的你」,你是否感覺到自己某方面的技能進步?

身為熱愛學習的 Learner,過程對我來說是種享受;在現實中應用所學,才是真正的考驗。

擴大問題解決的工具箱

無論第三方 API 串接、陣列資料處理方法、Local Storage 的操作,我發現「我遇到的問題,別人也碰過。」在這個開源文化的領域,有很多資源和工具可以輔助我們解決問題。不斷拓展我們的工具箱,可以釋放我們的專注力,以聚焦我們試圖解決的核心問題,並善用及升級我們的強項。

深化問題拆解的思考力

在面對問題時,我們往往只看到表面,或者先入為主地判斷。例如:新增搜尋功能時,很直觀認為「阿不就把關鍵字和資料拿出來比對一下就好?」但其實處理這個功能的步驟比上述複雜得多,若只是依循舊時的思維模式,就算有好的思考框架輔助,也很容易碰壁或陷入瓶頸。

原本自以為掌握了 Google 的運算思維,就能游刃有餘解決問題,但我發現真實的「思考力」並非按步驟想一遍,而是將複雜問題丟進腦中處理後,再輸出成自己能理解的概念。

用孩子學走路來類比:運算思維就像「學步車」,而思考力是「用自己步態行走」。

淬煉問題處理的方法論

經歷了 MVC 模式的 Coding style 練習,似乎逐漸熟練有次序地處理問題,也能夠精煉步驟,將資料處理、畫面渲染、流程控制拆開。不只提高程式碼管理的效能,也強化了 Debug 的效率,以及文件的易讀性。

而我意識到最關鍵的改變是,我逐步提煉出屬於自己的方法論,以應用在不同的問題上,而不僅是用在程式開發上。例如:寫文章的邏輯架構、組織資訊的處理程序、建構知識晶體的邏輯框架。

〔REFLECTIVE〕這些進步是怎麼累積的?過去幾週過程中經歷了什麼?在哪些環節刻意練習?

觸動我最深的不只是學會了什麼,而是經歷了什麼。

和朋友去爬的【台北|南港山攀岩步道】

起初以為是象山

在學期 2–2 之初,因為經歷了前面兩個月,對我來說相對順利的學習旅程。我發現自己不只「熱愛」盤整資訊、統整邏輯、處理事物底層的核心問題,甚至自豪已「擅於此道」,所以能用較高的效能及速度學習。

就像是第一次要去南港山五條縱攀路線時,我以為這對熱愛運動的我來說就跟爬象山一樣,應該難不倒我。這背後體現的其實是「無知」及「過度自信」。

其實縱攀南港山

當我進到第二週後,排山倒海的高密度、高質量的問題,令我感到招架不住。「燒腦」是這段歷程的關鍵字。我才赫然發現,自己的思維和技術還在不成熟的低速檔徘徊;而我也只窺見 Web Dev 領域中的冰山一角。「博大精深」是第二個合適的註解。

令我想起上攀最難的南港山路線 2 (一段五層樓高的峭壁)時,一度因為高估了自己的實力、低估挑戰的難度,而卡在半空中。費盡氣力上不去,又無從下去的窘境,幾乎讓我懷疑是不是要見耶穌了。

一位我很尊敬的長輩告訴我:「就像右撇子改用左手寫字,學會一項新的技能需要大量刻意練習。」

回首已過四獸山

最後的技術驗收,我也用了超過預期的時間和精力才完成。但當我排除最後一個 Bug 後,突然意識到「Wow!我完成了耶!」而且解決了超乎預期的問題、產出更完整和清晰的解決方案。

這感受跟我完成那驚險的五條路線後的心得異曲同工,一轉眼時間過去了,但我們也橫越了四獸山,重回平地。

〔INTERPRETIVE〕根據這次的「成長經驗」,是否能提煉出任何「能促使你持續學習和進步的行為與心態」?或者有哪些行為與心態是行不通的?

再多走一步

我超愛的一部電影《鋼鐵英雄 Hacksaw Ridge》中,主角 Desmond T. Doss 有段經典對白:「再救一個人吧!」

每次看到這段,我都情緒激動、不能自己。因為他關注的不再是眼前的困難、自己的軟弱,而是再往前走一步、再多救一個夥伴。

《鋼鐵英雄 Hacksaw Ridge》電影預告

我認為「再多走一步」的信念和焦點,正是在面臨巨大挑戰時,驅動我持續成長的關鍵。

一動三不動

所有初學者都聽過的一個攀岩技巧「三點不動一點動」,其實是非常有智慧的實用觀念。在面對不確定的下一步時,站穩現有的根基、發揮優勢強項、在可控風險內的攻克挑戰,其實是最佳捷徑。

面對未知」有點像我們在面臨的生涯選擇、或零背景的學習歷程。過去的我超常蠻力硬幹、豁出去不留餘力,然後跌得很慘。我發現其實這是魯莽而危險的,並且不負責任(因為有時會牽連他人,而且往往都是真正愛我、選擇要與我一起承擔的人們)。

團隊同在感

雖然我算是有較多彈性學習的時間,但面對高密度問題排山倒海而來、又想衝刺前進時,仍舊沒有餘力顧及他人並認真給予詳細的回饋。從彼此的回應量來看,相信大家與我有同樣的掙扎。

然而我發現即使在這麼緊繃的情況下,前幾學期累積的「情誼」,卻在這個時候成了關鍵的心理支柱——簡短卻有力的扶持。例如交作業時,偶爾會私訊寒暄一下彼此近況。雖然暫時無法花太多時間交流,但這種「知道有人正跟我一起打拼」的團隊同在感,讓我面對挑戰時,感到十分踏實。

攀繩與開路

山友們有著不成文的默契,總是會互相幫助。拓荒者們會在需要的地方留下記號、綁上繩子、釘上握把。我認為這也是學習社群很重要的一個環節!

適時為自己設下停損點,別害怕求救,必要時拉一把助教和前人留下來的繩子;也不吝於回饋,把寶貴的學習經驗,放上社群與大家分享,也為後人留下繩索。

〔DECISIONAL〕在下一階段的學習前,想對自己說些什麼?

以下所說的三點,我一件都還沒做到,所以才特別列下來提醒自己。

衝刺時保持呼吸、有節奏充分休息

一流的人如何保持顛峰》書摘影片

在《一流的人如何保持顛峰》開宗明義提及長盛不衰的祕訣是「 壓力+休息 = 成長」。這特別得一再提醒我自己,因為我是個痛恨睡太多卻需要超長時間睡眠的人。往往認為少睡一點,我就能同時陪伴家人、維持運動、閱讀、反思、學習、工作等。殊不知通常效能降低,適得其反。

真正能提高效能、倍增單位產值的方式是衝刺時保持呼吸、有節奏充分休息。

像欠債般,為人付出

國際領導力大師 John Maxwell 曾為人類的自私下過一個有趣的註解——每次照相時,你說「照片拍得超好超美!」是真的大家都被拍得很好看嗎?常常左邊那位閉眼、右邊那位歪嘴,但我們只看到自己神韻泰然。

我認為自己就有這種劣根性,常常都先想到自己。

而我在西元一世紀初代教會的使徒保羅身上,看到不同的身影。他說:「無論是希臘人、未開化的人、聰明人、愚拙人,我都欠他們債。」所以他總是全力以赴的完成傳福音開拓教會的使命。

容我簡單說明保羅是誰。在那個時代,猶太教是合法的而基督教是非法的、基督徒到處遭受迫害,身為猶太人的保羅,也曾經是加害者。他受過最高等級的猶太拉比訓練、擁有羅馬公民身份。然而當時,他卻因為受神強烈的呼召而放棄一切,專注完成在中亞到歐洲建立基督教會的使命。

類比到現代,可能就是長春藤盟校 PhD、美國矽谷高階經理人,放下人人稱羨的身份地位,去到人生地不熟的未開發地區服務,並且他還認為:「這是我欠他們的。」這樣的心志,令我震撼。而我相信,這樣的態度是我所欠缺的:將他人的需要擺在前面,並帶來正向影響力。這,也是無論哪個時代都極為寶貴的!

常常喜樂、不住禱告、凡事謝恩

常常喜樂是指「不以物喜,不以己悲,找到真實來源。」真正幸福快樂的來源,不是外在一切看得見的,因為它們往往變動快速,也無法長存;更不是貌似真實的內心感受,因為感覺可以被捏造、情緒也會矇騙人。至於真實的喜樂來源是什麼,每個人答案不一而足。對我來說是轉向創造我的神,找到真實的自我價值,但老實說知易行難。

不住禱告代表的是「常常提醒不要只靠自己」。我認為這要對「為何能得飽足」有非常深刻的理解——在自給自足的採集或農耕時期,豐收或荒蕪不單是勞穫,還得看天安排;而現代更須仰賴各行業的緊密分工。但這個概念在科技發達的現代,尤其容易被忘記,因為排山倒海的壓力和傾巢而出的資訊,容易令我們迷失在看似方便的生活中,而需要時常「被」提醒。

凡事謝恩,小時候我們都學過「因為要感謝的太多了,就謝天吧!」但隨著長大,感謝的質與量似乎都逐漸減少。可能是漸漸有能力了,就容易自滿居功;又或者理解了更多的現實,反而會更謹慎小心。反觀孩提時代就單純多了,凡事勞煩他人,卻總是大感幸福和感激。其實隨年齡增長,我們要感謝的反而更多,因為想前進地更遠、目標更大、責任更重,肯定需要更多人互助合作,以及神的帶領。

《聖經》提到:「常常喜樂,不住禱告,凡事謝恩;因為這是神在基督耶穌裡向你們所定的旨意。」就我有限的理解,凡神所說的,祂必成就。所以上述三點,一定可以做到。


給職場青年的人生上半場暫停策略 I

Life Strategy Beta in Infinite Game
Life Strategy Beta in Infinite Game
Life Strategy Beta in Infinite Game

你是否曾「工作到懷疑人生」?曾閃過「我為什麼要做這個(工作)」、「我為什麼而活」、「我在幹嘛」的念頭?曾經歷過「好不容易拿到這份工作,拼死拼活、越做越多,卻拿到不成比例的報酬,還被認為是不懂吃苦耐勞?」或者「出社會後,不斷轉換工作和領域,卻仍迷失方向?」
這時你需要:重新剖析「長輩建議」並認清現實運作的底層邏輯。同時擁抱向人生大喊暫停的勇氣,以及一段回顧過去、認識自己、盤點資源、重整戰略的時間。

本文淬煉自多項測驗、書籍與工作坊:the book & workshop@Taiwan of Half|Time InstituteThe Purpose Driven LifeChazownDestiny FinderInstinctCliftonStrengths16Personal …


前端開發的核心是用戶體驗 UX(User Experience),因為前端是一般人與應用程式 App 接觸的唯一介面。本文目的是幫助那些面對龐雜資訊的入門者有系統地學會——如何打造體驗流暢兼具美感的前端介面( User-friendly & Aesthetic)。此外,更揭秘超速且有效學習的重點能力。

Image for post
Image for post

在「Open Source 文化」濃厚的 Web dev 領域,網路上不乏有關前端開發的優質學習內容。但對於幾乎零基礎、非本科背景的我,在學習過程中發現最有價值的兩個關鍵元素——有系統的學習策略、互動熱絡的學習社群——能使學習效能最大化。

  • 有系統的學習策略:像蓋房子一樣,先有宏觀的藍圖、接著打好地基、最後才逐步建造、加上裝潢。反觀成為全端工程師的學習旅程,對應的就是:建立軟體開發的世界觀、Java …


學會如何打造軟體應用程式、創造價值、解決問題,進而提升人類的生活品質。適合零基礎入門者的有效策略,透過系統化的步驟,自學成為業界水準全端工程師。

以 JavaScript 為主的 全端 Web App 開發
以 JavaScript 為主的 全端 Web App 開發
from : Alpha Camp [全端 Web App 開發] 學習地圖 — 2020

只要 Google 搜尋「程式入門」、「自學網頁設計」、「轉職工程師」、「網路軟體開發學習」等關鍵字,不難找到許多內容豐富、條理清晰的資訊。再進一步循線搜尋「前端 後端 全端」、「 HTML/CSS/Javascript」,你可能會找到更多免費或付費的學習資源。

但網路應用程式開發是個龐大且不斷擴充的知識/技能體系。為避免不小心就鑽進死胡同,若能在「探索和體驗」的過程中「縱觀全局」同時「練就入門技能」,不僅一舉數得且能協助自己做出下一步的決策。

依據以上考量,加上對於「幫助人們發展有意義、有價值的職涯」這項使命的共鳴,我選擇 Alpha Camp (簡稱 …

郭耿綸 Kaleb

時而乘上浪峰、時而摔出浪板,靠著上帝才能一再拿起浪板、學著與這無限賽局共存的玩家。

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store