1. 軟技能

最佳實踐

入門模組

本模組提供了一些軟技能建議,學生可以在學習 Web 開發的同時努力提升這些技能,這些技能在進入行業時也是很好的品質。它們將極大地幫助培養正確的學習、研究和協作態度,並增加獲得錄用的機會。

1.1 持續學習的心態

學生應該培養持續學習的心態。Web 行業在不斷發展,技術和趨勢總是在變化,他們需要不斷更新知識才能跟上步伐。

  • 養成定期閱讀技術新聞、部落格和瀏覽器釋出說明的習慣。

  • 半定期地參與閱讀任務或小型研究專案。

  • 留出特定的學習時間來學習新技能。

  • 保持好奇心。

推薦的新聞和資訊網站

1.2 擁抱失敗的開放態度

學生和新開發者常常因為害怕失敗而回避實驗和冒險(例如在開始新專案或探索新想法時)。花一些時間學習從錯誤中汲取價值,以及在未來類似情況下可以吸取和應用的教訓。

以下是一些提高此技能的技巧

  • 定義一個安全空間/同行群體,人們可以在其中自由提問,並且失敗不會受到嚴厲評判。

  • 關注你的本地社群,嘗試尋找可以為你提供幫助和建議的聚會小組,或者找到和你面臨同樣問題的人,他們可以提供精神支援或與你一起進行實驗。

  • (對於教育者)為你的評估設定評分標準,即使結果不正確,只要過程有充分的記錄,你仍然可以獲得合理的得分。為創新獎勵額外分數。

  • 在專案進行到一半時,與同行和導師一起進行“展示與講述”或一對一的會議,以獲得反饋和見解,瞭解你在哪裡走錯了路,並獲得如何回到正確軌道的建議。

  • 召開回顧會議,分析專案,看看哪些方面做得不好,並討論下次如何改進。

1.3 有效的研究

Web 開發者花費大量時間尋找工作中的問題解決方案。學生應該學習有效的尋找答案的策略,以及何時使用哪種方法(例如,不要每次遇到障礙就直接去打擾高階開發者)。

這些策略包括

  • 查閱文件。

    • 當你在使用某個工具/產品時遇到困難,首先查閱官方文件。令人驚訝的是,很多人想不到這樣做;官方文件通常面向初學者,所以有經驗的人可能認為它們不適合他們。

    • 瞭解不同型別的 文件 — 例如,教程、參考資料和其他型別 — 並理解每種型別在何時有用。

  • 有效地使用搜索引擎(參見 如何像專業人士一樣使用搜索:Google 及更高階搜尋的 10 個技巧)。

  • 選擇有效的資訊來源

    • 選擇推薦的網站,如 Stack OverflowMDN

    • 檢查文章的日期,並考慮討論的技術是否已過時。例如,關於 CSS 佈局的文章是否討論了 Grid 和 Flexbox 等現代方法,還是仍然呈現了使用浮動進行多列布局的過時技術?它是否仍然談論了針對 Internet Explorer 或 Netscape 4 等老式瀏覽器的 hack?

  • 有效利用社交媒體

    • 建立一個可以獲得幫助的人脈網路。

    • 加入社群群組,在那裡你可以尋找答案。例如

    • 學會付出和索取;互惠互利的 Web 開發者更有可能建立牢固的關係並持續獲得幫助。

    • 當你找到一個有用的答案時,寫下來。例如,寫成部落格或在社交網路上分享。寫作過程不僅能讓你理清思路,還能從社群獲得驗證和/或反饋。它還可以幫助你在行業中開始建立自己的聲譽。

  • 有效利用有經驗聯絡人的時間

    • “有經驗的聯絡人”指的是老師、導師或高階開發者。

    • 詢問他們偏好的溝通方式。

    • 提前仔細思考要問他們的問題,考慮到他們的時間有限且寶貴。

    • 確保事先做一些背景研究,不要問那些透過網路搜尋或官方文件可以找到答案的問題。

    • 限定會議時間為 30 分鐘。

    • 確定問題的優先順序。

    • 為會議設定一個目標,例如,“嘗試找到最高優先順序問題的解決方案”;解決最大的問題也可能帶來其他問題的修復。

  • 橡皮鴨除錯法 作為一種有效的幫助機制。另見 Rubber Duck Debugging

  • 使用 AI 幫助解決編碼問題(例如 ChatGPTGitHub Copilot)。你應該謹慎使用 AI 工具,並熟悉它們的優點和缺點。

    • 有利的一面是,它們可以極大地加快研究/搜尋速度,並幫助組織程式碼和複製貼上。

    • 另一方面,AI 工具沒有推理能力,並且經常提供誤導性或完全錯誤的答案。你不應該僅僅假設 AI 的答案是正確的,而應該用其他來源進行測試/驗證。

注意:

  • 在知道何時尋求幫助方面,肯定存在一個平衡。Web 開發者不應該經常打擾他們的同行/同事,但同樣,當他們不知道自己在做什麼時,也不應該獨自硬撐。
  • 考慮在合適的時候說“我不知道”的價值。

資源

1.4 協作與團隊合作

作為 Web 行業的專業人士,你將不得不與他人一起參與專案,並在頭腦風暴想法和建議時進行合作。並非每個人都天生具備團隊合作能力,因此儘早開始納入一些最佳實踐並在你認為自己有所欠缺的領域付出努力是有益的。

建議

  • 學習同理心、謙遜、衝突解決和合作。在所有互動中,保持禮貌和尊重,不要使用冒犯性語言。

  • 在現實世界中與團隊合作時,你將經常需要進行同行評審。練習如何建設性地、尊重地提供反饋。在接收反饋時,練習如何不將其視為針對個人,並專注於積極的方面以及你可以學到的東西。

  • 參與結對程式設計,或在團隊中合作完成評估,以體驗與他人合作。

  • 練習像真實軟體專案一樣執行專案,包括時間表、計劃和職責。瞭解軟體開發生命週期。掌握一些基本的專案規劃技能和工具,以便能夠估算和規劃你的工作/專案。

  • 作為課程的一部分,寫部落格記錄你的工作、學習和遇到的障礙,分享你的程式碼倉庫,讓同行批評你的工作,並主動修復他人程式碼中的問題。

  • 加入 Slack 頻道、Discord 或類似的平臺,向同行尋求幫助,分享資源,並討論需要完成的工作。例如

  • 練習提問和回答問題。即使問題看似有些微不足道,在討論或評審同行作品時,也要始終提出一兩個問題。練習解釋你在做什麼,並提出正確的問題來找出你需要知道的內容至關重要。

  • 互相幫助,而不是等待老師或高階開發者來幫助所有人。能力較弱的同行會更快獲得幫助,能力較強的同行將成為導師,體驗由此帶來的滿足感。

  • 觀察並向其他有經驗的人學習如何參與討論以及如何處理問題/除錯。

  • 加入一個開源專案來練習你學到的技能,與社群中的人們互動,並透過觀察他人來學習(有關有用資訊,請參見 如何為開源專案做出貢獻——初學者指南)。

我們的學習夥伴 Scrimba 透過其 Discord 伺服器提供強大的社群和協作體驗,旨在幫助其學生獲得這些技能。檢視以下嵌入式內容以瞭解更多資訊。

1.5 成功透過求職面試

技術職位面試可能要求很高,有些甚至有相當具體的要求。

建議

  • 學習有效的求職策略。例如

    • 參加社交活動和招聘會,與潛在僱主見面。

    • 保留你遇到的人和申請的公司清單。

    • 跟進你遇到的有希望的聯絡人。

  • 建立作品集。

  • 撰寫完美的簡歷。

  • 獲得經驗——構建真實的專案併為開源做出貢獻。

  • 建立你的線上形象。

  • 使用 LinkedIn 等網站來幫助上述工作。

  • 練習回答編碼和設計面試問題。

  • 建立一個軼事集,用於回答基於經驗的面試問題。

  • 瞭解招聘經理在候選人身上尋找的特質,並做好相應的準備

    • 一個他們能夠相處好的人。

    • 積極的態度,尊重、同理心、建設性。

    • 思想開放,能在多元化的團隊中與不同觀點的人很好地合作。

    • 當決策不如己意時,能夠保持優雅,為了更大的利益而保持一致。

    • 善於溝通和建立關係。

    • 堅韌、專注、善於解決問題。

    • 擁有一個好的作品集。

  • 保持耐心。即使是最好的候選人,在獲得理想工作之前也會被拒絕多個職位申請。

資源

1.6 工作流程與流程

技術專案的一個重要方面是初學者經常忽略的——專案的宏觀概念。他們可能會學會一個單獨的工具或語言,並理解自己需要做什麼,但卻不知道交付整個 Web 應用程式所需的其他所有程式碼庫、工具、系統和工作角色。瞭解以下內容很有幫助

  • 常見 Web 專案中的典型技術組合和應用程式架構。

  • 技術專案的典型流程,包括在這些流程中使用不同工具的位置。

  • 典型的工作角色,以及它們在這些流程中的參與度。

  • 常見的工作管理風格,如敏捷和瀑布。

資源

1.7 相關背景資訊

雖然對於理解課程中學到的技術主題並非必需,但一系列背景資訊可以幫助開發者獲得全面而靈活的視角。

建議

  • 為了理解事物為何如此,研究相關的歷史背景。例如

    • 為什麼 Web 的資料傳輸設計方式是這樣的,儘管存在更快的機制?

    • 為什麼 Web 使用帶有連結作為核心功能的文件模型,而如今它主要用於構建應用程式?

    • 為什麼 Web 標準會這樣被建立,並以協作的方式進行,儘管這個過程不一定像它可能的那樣有效率?

  • 研究相關的通用程式設計概念,例如

    • 物件的作用,以及它們在 JavaScript 等語言及其周邊 API 的設計中起到的作用。

    • 迴圈如何工作以及為什麼需要它們。

上一篇:入門模組 下一篇:2. 環境設定