Linux中國

我給新手程序員的實用建議

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

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

把教程付諸於實踐

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

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

「問題解決」的工作原理

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

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

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

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

8 - 2 = 612 / 2 = 6 或 *3 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中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國