天天看點

3 個技巧,讓你像技術專家一樣解決編碼問題

作者:LigaAI

「我應該如何提高解決問題的能力?盡管我掌握了 JavaScript,卻無法解決實際問題或了解複雜的 JavaScript 代碼。」

經常有年輕的開發者朋友問我類似的問題。對開發者來說,解決問題非常重要。編寫優秀的代碼是一門創造性的藝術,而要成為出色的開發者,就必須成為富有創造力的能夠解決問題的人。

我發現新手程式員犯的最大的錯誤是專注于學習文法,而不是學習如何解決問題。—— V. Anton Spraul

盡管我觀察到,解決問題的技能需要時間和經驗的積累,但我堅信掌握它并不需要很多年;隻要勇敢地直面問題,就會有所提高。我曾與許多初級開發人員一起工作,年輕人們也比他們的老夥計更善于解決問題。

本文将詳細講解三個技巧,讓開發者可以像技術專家一樣解決問題。重頭戲開始之前,我們先來看看技術專家和技術小白在解決問題方面有哪些不同。

專家思維 vs 新手思維

大多數人會回避或胡亂處理問題。優秀的思考者和上司者則會主動尋找問題,他們也擁有能夠更好地解決問題的方法。—— Michael Simmons

Robert J. Sternberg 教授根據美國心理學家 Herbert A. Simon、Robert Glaser 和 Micheline Chi 等人的研究,揭示了技術專家解決問題比技術小白更有效的秘密。

Arnaud Chevallier 在 Work forward in solving problems, not backward 一文中犀利寫道,「逆向工作法是一種從假設出發的方法。如果想要提高利潤率,逆向工作法會指引你去尋找增加收入的辦法,因為增加收入可以帶來更高的利潤率。那減少成本呢?難道在确定最終的解決方案之前,我們不應該先全面地了解各種可以實作目标的辦法嗎?」

可以看到,技術專家通常會花大量的時間尋找、明确和定義問題,并且使用正向工作法解決問題,同時密切關注問題解決的過程。下面就跟大家分享,技術專家們常用的問題解決技巧。

三個專家級的問題解決技巧

01 問題十二連 The 12 What Elses

提問題聽上去沒什麼難度,但要找到正确的、缺失的問題并準确地描述出來卻不容易。Lenedra J. Carroll 介紹的「問題十二連 The 12 What Elses」可以有效幫助我們擺脫這個苦惱。

在頭腦風暴時,先提出一個問題,并生成 12 個答案;然後選取其中一個答案轉化為下一個問題,再生成 12 個答案。不斷重複此過程,直到獲得一個明确的解決方案。

通過連續地提問,我們會得到一個「問題回答地圖」,它對假設的測試和結構化解決複雜問題很有幫助。

3 個技巧,讓你像技術專家一樣解決編碼問題

使用「問題回答地圖」測試假設

提問和追問是如何将我們往正确方向上引導的?下面兩個例子可能會給你答案。

3 個技巧,讓你像技術專家一樣解決編碼問題
3 個技巧,讓你像技術專家一樣解決編碼問題

02 根本原因分析法 Root Cause Analysis

我們經常在多次解決失敗後,才發現問題的情況跟預期有所不同,是以在開始解決問題之前,就要先了解其根本原因是什麼。

隻有消除錯誤的選擇,才能更好地定義問題并找到有效的解決方案。根本原因分析法有助于避免在錯誤的方向上浪費時間和精力。

3 個技巧,讓你像技術專家一樣解決編碼問題

根本原因分析的幾種方法

3 個技巧,讓你像技術專家一樣解決編碼問題

根本原因分析法的示例

當需要修複 Bug 時,開發者可以使用以下任意方式,進行根本原因分析:

  • 确定問題在哪個環境出現,并嘗試在相同和不同的環境中重制它,以掌握更好的了解。
  • 如果與 Web 性能有關,可以分析捆綁檔案。
  • 進行單元測試和內建測試。
  • 進行日志檔案分析。
  • 進行互動式調試。

03 使用多元思維 Spectrum Thinking

二進制思維認為事情的狀态是非黑即白的,隻有互相對立的兩種可能。有些時候它是正确的,但其他時候,它可能是一種錯誤的簡化。

3 個技巧,讓你像技術專家一樣解決編碼問題

二進制思維

與二進制思維對應的是多元思維,也可以稱作頻譜思維(Spectrum Thinking)。它會考慮更多選擇、更多替代方案和可能性,比如「兩者共存」「介于兩者之間」「其他的可能性」或「二者皆否」等。

3 個技巧,讓你像技術專家一樣解決編碼問題

頻譜思維

通過培養多元思維,開發者可以有效提升創造力;你會驚訝地發現,修複 Bug、解決沖突、設計/執行客戶需求的實作方案等居然會有這麼多種解決方案和方式。

以展示資訊詳情為例,二進制思維認為,資訊詳情要麼通過彈窗展示,要麼跳轉到一個帶傳回箭頭的新頁面進行展示。

3 個技巧,讓你像技術專家一樣解決編碼問題
3 個技巧,讓你像技術專家一樣解決編碼問題

多元思維認為還有其他可能性,比如新增 Tab 頁直接檢視和更新資訊,無需關閉目前清單頁面。

3 個技巧,讓你像技術專家一樣解決編碼問題

多元思維還可能認為,可以提供一個支援三種布局的動态模闆,讓使用者自主選擇要用以上哪種方式。

二進制思維和多元思維各有利弊,在實際工作中可以配合使用。

寫在最後

解決問題能力是一個超出軟體開發範疇的話題,它高度取決于我們的心态和态度。要想培養和提高解決(複雜)問題的能力,首先要對問題和挑戰充滿好奇心,而不是感到沮喪。

就像 Tim Hicks 說的那樣,「問題就像賽車道上的彎道。處理得好,便可以在接下來的直道中狀态滿分;如果過彎太快,很可能會引發側翻,影響後續賽程。」

(原文作者:Rakia Ben Sassi)

LigaAI 還将持續分享更多分享個人成長、職場進階、研發效能管理、前沿技術等消息。請持續關注 LigaAI,一起變大變強!

繼續閱讀