我給新手程式設計師的實用建議 | Linux 中國

語言: CN / TW / HK

做一個高效的、充滿好奇心的問題解決者吧!這會幫助你成為一名成功的程式設計師。

(本文字數:1798,閱讀時長大約:3 分鐘)

做一個高效的、充滿好奇心的問題解決者吧!這會幫助你成為一名成功的程式設計師。

你是否曾經遇到過這樣一種情況:你想解決一個問題,並且你在 YouTube 或 Google 中找到了相關的教程。嗯,你覺得看會了,可真做起來,卻止步不前,大腦一片空白。你感覺自己每一行程式碼都看懂了,可一旦離開了那個教程,就步履維艱。如果你在 HackerRank 或 LeetCode 上看過別人的解題過程,你就能體會到,一個有追求的程式設計師第一次看到這些挑戰時,他會是何種感受。舉例來說,假設你正在學習一門新語言,在你剛開始理解這門語言的基礎知識的時候,你看了一個教程,摩拳擦掌,結果發現自己無法獨立應用學到的知識,這反過來可能會導致你懷疑自己的知識和能力。

把教程付諸於實踐

你應該從頭開始嗎?如果你這麼做,你可能很快就會發現自己重複學習了很多次相同的知識點。雖然從頭開始並不一定是種浪費,但是,你該如何變得更高效呢?

死記硬背在程式設計中完全是行不通的。話雖如此,但你也不能夠忽視熟悉語法的重要性。因為,死記硬背和養成習慣之間是有明顯區別的。習慣是很難打破的。要養成多使用程式語言的常規語法、函式、方法、模式、正規化和構造的習慣,這樣你才能掌握它。掌握一門程式語言需要大量的創造力和練習。練習語法是非常必要的,直到它們能在你的腦海中自然地浮現,就像血液在血管裡流動一樣。

“問題解決”的工作原理

那麼,你該採取什麼樣的方案呢?這實際上取決於許多因素。這些因素可以是任何東西,下至技術限制,上至使用者需要。世界上有無數的問題,每個問題都有許多解決方式。如何選擇一個最好的?這就需要 “問題解決”(problem-solving)的技巧了。

下面是一個簡單的例子。你需要把兩個數 相加 ,讓它們等於 6 。顯然,你有多種方式可供選擇:

3 + 3 = 64 + 2 = 65 + 1 = 6

同理,如果你需要讓兩個數字,經過一次減法、乘法或除法運算後,得到的結果為 6 。你仍然有很多選項,包括:

8 - 2 = 612 / 2 = 63 * 2 = 6

每種方案都有它固有的限制,且各不相同。當你在現實生活中嘗試做出一個高效的方案時,你必須要考慮到所有的限制。這個方案可行嗎?有什麼障礙嗎?有可操作性嗎?是否可擴充套件呢?而如何最小化約束,並做出一個最優方案,就取決於問題型別和業務需要。

練習很重要

程式設計的目標不僅僅是解決問題。因此,從工程視角理解程式碼 如何 工作始終是一個優勢。這就是程式碼審查在企業級開發中發揮作用的地方。程式設計的最低要求是具備基本的編碼知識,包括語言的語法、函式和方法。歸根結底,“寫程式碼”是需要你去 的,所以練習總是有助於提高你的技能。流暢的寫作和複雜方案的開發都來自於持續的學習和訓練。

學習編碼

我撰寫和分享這篇文章,是為了鼓勵新程式設計師去探尋自己的內心,尋找那個“優秀的問題解決者”。請不要停止相信自己。

要成功編碼,你需要培養許多習慣。下面是我在學習編碼時保持高效的方法:

  1. 一個包含語法、方法和函式速查手冊 總能應付不時之需。
  2. 將問題分解成更小的部分,便於追蹤。
  3. 嘗試理解程式碼執行的核心概念。
  4. 構思解決方案時,大可發揮你的創造力 —— 但剛開始還是要注重基礎。
  5. 在練習時,建立儘可能多的應用和元件。
  6. 永遠不要從 Stack Overflow/Exchange 等開放平臺上覆制/貼上程式碼,特別是在不瞭解上下文的情況下。
  7. 跟著教程做了一遍後,嘗試從頭開始構建所有內容。即使你只能獨立完成一半,那也仍然是一個成就。

祝我們所有人好運!

via: https:// opensource.com/article/ 22/8/coding-advice-new-programmers

作者:Sachin Samal 選題: lkxed 譯者: lkxed 校對: wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出